Actiona, optimisation

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

JacksPohte

Membre
Jan 8, 2021
6
0
61
23
Une maison dans les nuages
Discord
JacksPohte#7003
Bonjour tout le monde.
Depuis quelques temps j'automatise des tâches via actiona,( petit bot bucheron/paysans ), au début j'utilsais la reconaissance de pixel pour localiser les ressources a récolter mais c'était laborieux car je devais les repérer manuellement avec la souris et ceux pour toutes les ressources, donc extremement long et utilisable uniquement sur la maps ou j'ai repéré les ressources.
Pour pallier a ce problème je suis passé a la reconnaissance d'image plutôt que celle de pixel, mais je rencontre un autre ( petit ) problème que je n'avais pas avec le pixel.
En mode pixel le bot récoltait les ressources dans l'ordre avec lequel je les avais repérés, mais en mode image, il les récolte aléatoirement, se balladant de long en large sur toute la maps, il peut récolter un blé en haut de la map, puis redescendre en récolter un autre alors qu'il en restait en haut.
Du coup je voulais vous demander s'il était possible avec la recherche d'image de lui faire récolter les ressources dans un ordre logique ? Et si oui comment ?
 

kiyoshi666

Membre
Sep 23, 2019
53
6
129
30
tu as la documentation ici :
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!

donc ici pour tout les outils d'actionaz : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!

dans ton cas donc recherche d'image : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!

là on t'indique que tu as une variables : maximum d'images à chercher de base c'est dans :
Trouver image > Avancé > Nombre maximum d'image a chercher
Dans ton cas ici je serais toi je mettrais une valeur admettons 10.

Dans ce cas tu ne vas plus obtenir une position unique mais un tableau de position :
position_sortie = [pos1, pos2, pos3, ..., pos N]

N<=10
Toi ce que tu devras faire a partir de là c'est conserver la position X, Y précédemment cliquer et choisir la position X, Y parmis les 10 position qui est le plus proche de la précédente position.

donc là par exemple un truc tout con serais de faire une boucle qui parcoure tout les éléments de ton tableau et calcul la distance entre ancienne position et nouvelle
ici tu as le lien consacré au code : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
tu auras un tableau de point a parcourir donc : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
var monObjet = new Point(x, y);
pour accéder a x :
monObjet.x

Donc là en gros tu vas faire un truc du genre :
temp = (ancienne_pos.x - position_sortie.x)^2 + (ancienne_position.y position_sortie.y)^2
if (temp < temp2)
temp2 = temp
position_acliquer = position_sortie

Et cela en itérant sur une boucle en gros :
pythagore pour la distance mais pas besoin de faire la racine juste le carré suffit si tu compare a une ancienne valeur temp2 que tu devras initialiser avec :
temp2 = (ancienne_pos.x - position_sortie[0].x)^2 + (ancienne_position.y position_sortie[0].y)^2


Du coup fin de boucle tu vas avoir une position a cliquer qui elle seras l'élément trouver le plus proche de ton personnage :
position_acliquer tu devras l'initialiser aussi :
var position_acliquer ) new Point(x,y);

bref en esperant que cela taide tu as un until code dans interne et je pense pas que ce que tu demandes soit vraiment dur a faire avec les liens de doc fournis etc... mais pose une question si tu bloque