Aller au contenu

World of Warcraft , Fabriquez vous un programme de pêche automatique avec AutoHotKey !

Avant-propos 

Sachez qu’utiliser un Bot de Pêche pour automatiser le jeu ne respecte pas les règles du jeu , aussi je vous conseille de ne pas l’utiliser sur un compte officiel ou compte privé ( en fonction des règles du serveur ) sans quoi vous risquez de voir votre compte BANNI .Cet article à un but pédagogique et est la pour vous montrer que la programmation est une matière abordable par tous et qu’elle peut vous être utile dans beaucoup de domaines .Si vous choisissez d’utiliser ce programme en jeu vous le faites a vos risques et périls et je ne peux être tenu pour responsable des sanctions que l’on prendrait contre vous. 

AutoHotKey

Si vous ne connaissez pas AutoHotKey , c’est peut être le moment de le découvrir .Il s’agit d’un langage de programmation Script qui permet de faire une multitude de choses sous Windows et entre autres l’automatisation de certaines taches .Ce logiciel est totalement gratuit , il possède une documentation assez fournie et facile a lire si vous programmez un peu (ou beaucoup!).Voici le lien pour le télécharger.

La pêche de World of Warcraft.

Si comme moi vous avez été ou vous êtes joueur de World of Warcraft ,vous aurez alors probablement pratiqué la pêche dans ce jeu. Le seul problème est que le pêche dans World of Warcraft est rapidement saoulante voir une torture si vous y passez plusieurs heures … imaginez maintenant que vous pourriez faire autre chose pendant que votre ordinateur pêche pour vous .Et bien sachez que c’est totalement possible avec AutoHotKey !

Les étapes

Téléchargez AutoHotkey , créez un fichier texte que vous enregistrerez au nom que vous voulez mais avec l’extension « .AHK » –> « nom_de_fichier.ahk », puis « clic droit » , »editez ».

Il faut détecter le bouchon :

Le bouchon ci-contre est un des bouchons standards du jeu , il va nous falloir positionner la souris sur le bouchon pour préparer l’action de relever la ligne.Ce que nous allons faire pour détecter le bouchon est de détecter la couleur d’une des plume dessus . Comme vous le voyez sur l’image une des plumes se détache bien du fond c’est la plume rouge, c’est elle que je vais détecter.

 

 

 

Il y a justement une fonction permettant de détecter la couleur sur laquelle notre souris est pointée. Je vais donc demander à  l’appui de la touche « F9 » par exemple de récupérer la couleur sous la souris. J’utilise « F9 » car il me semble qu’elle n’est pas assigné dans le jeu pour autre chose. Ça sera l’étape de configuration , elle sera indispensable car la lumière dans le jeu change en fonction de l’heure de la journée et des zones dans lesquelles vous voudrez pêcher et les couleurs du bouchon change avec l’environnement.

Voici le code pour la configuration:

F9::
MouseGetPos,bx,by
PixelGetColor,bouchon,bx,by
MsgBox La couleur est %bouchon%, la position x est %bx% la position en y est %by%.
return

A l’appui de la touche F9 il effectuera  l’opération entre le « F9 » et le « return »

La première chose à faire est de récupérer la position de la souris avec le « MouseGetPos,bx,by » la valeur des coordonnées X et Y est stockée dans les variables « bx » et « by ».

Lorsque vous allez appuyer sur « F9 » l’ordinateur va regarder ou se trouve votre souris et stocker la position de celle ci dans nos variables.Une fois que nous connaissons la position de ce que nous voulons détecter nous allons chercher la couleur de ce qu’il y a l’écran à ces coordonnées avec une autre fonction .

PixelGetColor,bouchon,bx,by

Cette fonction ci-dessus permet de récupérer la couleur au coordonnées « bx »et « by » et de les stocker dans la variable « bouchon »

Ensuite une « message box » est ouverte vous donnant les valeurs que vous avez récupéré , ainsi vous savez que ça a bien été pris en compte.

La recherche du bouchon

F12::
loop
{
sleep 2000
Send {&}
sleep 2000

PixelSearch,Px,Py,200,200,1600,800,bouchon,10,fast
if errorlevel=0
{

MouseMove,Px,Py,10

}

 

A l’appui sur la touche « F12 » on lance la canne a pêche , en utilisant « Send {&} » l’action de pêche a été préalablement posée à la première position de la barre de sort, et son raccourci clavier est « & » , j’ai intercalé des « sleep 2000 » qui ne sont ni plus ni moins que des pauses de 2000 millisecondes ou 2 secondes .Elles ont pour objet de palier à la latence que peut avoir le serveur si , l’action n’est pas assez rapide il ne lance pas la recherche tout de suite.

nous utilisons ensuite la fonction « PixelSearch »

PixelSearch,Px,Py,200,200,1600,800,bouchon,10,fast

Nous lui demandons donc de chercher un pixel de la couleur de « bouchon » dans le cadre 200,200,1600,800 (ces valeurs peuvent être ajustées suivant la taille de votre écran l’idée ici étant d’éliminer le tour). Le 10 qui suit est une tolérance ( plus ou moins 10 sur le Rouge,le Vert et le Bleu) il faudra l’ajuster si la détection ne se fait pas ou si elle se fait n’importe ou. J’ai eu de bons résultats avec 10 donc je l’ai laissé.

Une fois trouvé les valeurs sont stockés dans « Px »et « Py », nous déclenchons l’action du mouvement avec « if errorlevel=0 » et nous demandons le mouvement de la souris au positions de détections « Px » et « Py » a une vitesse de 10.

Relever la ligne

C’est la que les choses se complique, parce que AutoHotKey n’a pas de système de détection de volume audio ( du moins pas a ma connaissance). Mais ce n’est pas un gros problème nous allons pouvoir mettre un petit Vumètre et détecter l’aiguille. Vous pouvez chercher une autre solution si vous êtes courageux, n’hésitez surtout pas à la partager! Pour ce qui nous concerne voici le Vumètre que j’ai utilisé. Je crois que c’est une version Windows 7 mais elle fonctionne parfaitement sous Windows 10.

Vous allez devoir également passé en mode fenêtré afin que le Vumètre soit visible avec la fenêtre du jeu nous allons devoir détecter une position de l’aiguille et sa couleur, voici ce que ça donne:

loop{
PixelGetColor,color,1830,430
if(color > 0xa0a0a0)
{
MouseClick,right
sleep 3000
Send {Echap}
break

Une fois que la souris est au dessus du bouchon , il boucle en attendant que l’aiguille passe en 1830;430 ( pour mon écran ) le fond du Vumètre est blanc (0x000000) si elle est supérieur a une valeur un peu grise que j’ai choisi arbitrairement alors c’est que l’aiguille et là et par conséquent c’est que le bouchon à bougé .Ensuite clic gauche pour remonter la ligne attente de 3 seconde le temps du ramassage automatique ( il faut bien évidement activer fouille auto dans les réglages du jeu) puis le programme envoi un « Echap » pour fermer la fenêtre et recommencer.

les positions de démarrage

Pour que ça ne soit pas la galère il faut que tout se positionne automatiquement , si vous avez à le faire à la main ça va très très vite être galère .

CoordMode, Pixel,Screen
CoordMode, Mouse,Screen

run c:\VUMeter.exe

sleep 1000
WinMove,VUMeter,,1354,267,,

ifWinExist,World of Warcraft
WinActivate
WinMove,World of Warcraft,,0,0,1800,1040

On lance le Vumètre ( que j’ai mis a C:\) et on le bouge pour le positionner , il faut  rajouter un « sleep 1000 » entre les deux pour qu’il ai le temps de l’afficher ,il bouge la fenêtre avec WinMove à la bonne position ,il fait de même avec la fenêtre de WOW qu’il redimensionne pour que tout soit visible.

Au dessus , c’est seulement pour que les coordonnées correspondent entre l’écran et la souris.

Voici que que ça donne sur le jeu :

Pour finir voici le programme complet a coller dans un fichier texte et a renommer en « .ahk« :

 

CoordMode, Pixel,Screen
CoordMode, Mouse,Screen
run c:\VUMeter.exe
sleep 1000
WinMove,VUMeter,,1354,267,,

ifWinExist,World of Warcraft
WinActivate
WinMove,World of Warcraft,,0,0,1800,1040

F10::
Reload
return

F11::
ExitApp
return

F9::
MouseGetPos,bx,by
PixelGetColor,bouchon,bx,by
MsgBox La couleur est %bouchon%, la position x est %bx% la position en y est %by%.
return

F12::
loop
{
sleep 2000
Send {&}
sleep 2000

PixelSearch,Px,Py,200,200,1600,800,bouchon,10,fast
if errorlevel=0
{

MouseMove,Px,Py,10

}
sleep 1000

loop{
PixelGetColor,color,1830,430
if(color > 0xa0a0a0)
{
MouseClick,right
sleep 3000
Send {Echap}
break
}

}

}

 

La procédure :

  1. Copiez / collez le programme ci dessus dans un fichier texte
  2. Enregistrez le en lui donnant un nom avec l’extension « .ahk » Exemple « nom.ahk »
  3. Téléchargez Autohotkey ici
  4. Téléchargez le VUmetre ici
  5. Copiez le Vumètre sur la racine (C:\)
  6. Lancez le jeu et passez le en mode fenêtré
  7. Mettez le sort de pêche en 1 dans la barre de sort
  8. Vérifiez que la fouille auto est activée
  9. Lancez le programme
  10. —>Les fenêtres doivent se mettre en place à la bonne position
  11. Lancez votre bouchon , positionnez votre souris sur le bouchon en préférant une couleur qui se détache du fond (la plume rouge fonctionne généralement bien)
  12. Une fois au bon endroit appuyez sur « F9 » , une fenêtre s’ouvre et vous indique que la couleur a bien été prise
  13. Appuyez sur « F12 »
  14. Et miracle ! Ça pêche tout seul 🙂 !
  15. Il y a deux autre fonctions , « F10 » qui relance votre script vous aurez alors a reprendre la couleur et « F11 » il stop le script .

 

Amusez vous bien avec ce programme et pensez à vous inscrire !

 

Sylvain Altmayer

 

Nouveau ! Une vidéo explicative pour vous aider a utiliser mon programme ! Pensez a la liker et a suivre la chaine ! merci d’avance ! 🙂

 

 

 

 

Le même lien sur Odysee.

 

 

 

44 commentaires sur “World of Warcraft , Fabriquez vous un programme de pêche automatique avec AutoHotKey !”

  1. bonjour quand on veux pecher a zereth mortis pour la monture il y a les bruit de la cascade qu fond bouger vumeter et qui me font remonter ma ligne directement. as-tu une solution ?

    1. Bonjour , si le bruit est continu l’aiguille doit changer de niveau pour rester a un minimum plus élevé avec le bruit de fond que génère la chute d’eau. Peut être est t’il possible dans ce cas de changer les coordonnées de l’endroit ou se trouve l’aiguille au repos dans la ligne « PixelGetColor,color,1830,430 ». Il faut regarder ou se trouvent les nouvelles coordonnées avec la « Windows Spy » d’autohotkey.

  2. Bonjour, le vu meter ne fonctionne pas j’ai pourtant vérifier tout mes réglages et tout est OK et il détecte bien la bonne sortie audio mais il y a rien qui se passe l’aiguille ne bouge pas.
    Pouvez vous m’aider ?
    Merci d’avance

    1. Bonjour la dernière fois que j’ai vu un soucis comme le votre c’était un casque qui était connecté et qui interférait avec le Vumètre est ce que vous en auriez un a tout hasard ?

      1. Bonjour merci pour votre réponse. Et oui effectivement j’utilise un casque mais j’ai trouvé une parade j’ai ouvert le gestionnaire audio et lorsque et dès lors le vumeter detecte les sons de mon micro donc j’ai placé mon micro contre le haut parleur du casque et ça fonctionne. C’est pas le top mais au moins sa marche lol

        1. Bonjour , normalement le Vumètre doit lire la sortie audio principale ( elle est marquée sur la barre de la fenêtre du vumètre).Normalement on peut changer la source avec un clic droit sur le haut-parleur dans la barre de tache , « ouvrir les paramètres du son » et « choisir votre périphérique de sortie ».
          Bonne idée le micro contre le hautparleur ha ha ! 🙂

  3. Penses-tu qu’il soit possible de créer un script similaire pour tag en champ de bataille et le quitter quand celui-ci est terminé ?

    (1. Ouvrir codex de recherche, tag en CDB,
    2. Accepter le tag quand il proc ((apres 10min))
    3. Quitter le CDB quand celui-ci est terminé
    4. Répéter l’opération)

  4. Voici une version qui permet de s’affranchir de VuMeter.
    Version imparfaite car il ne détecte pas toujours le prise ou l’inverse.
    En fonction de l’eau et de la lumière je doit ajuster les seuils pour lower et upper.
    Renforcer la condition de détection avec les composantes verte et bleue (avec éventuellement des seuil différents) doivent permettre de fiabilisé – Mais j’ai la flemme de faire plein de tests

    F9::
    MouseGetPos,bx,by
    PixelGetColor,bc,bx,by
    bcr := (bc & 0xFF) ;red
    bcg := ((bc & 0xFF00) >> 8) ;green
    bcb := ((bc & 0xFF0000) >> 16) ;blue
    MsgBox La couleur est %bc%, la position x est %bx% la position en y est %by%.

    return

    F11::
    ExitApp
    return

    F12::
    loop
    {
    sleep 2000
    Send {p}
    sleep 2000

    PixelSearch,nbx,nby,1000,300,2400,900,bc,5,fast
    if errorlevel=0
    {
    mx := nbx+20
    my := nby+20
    MouseMove,mx,my,10
    PixelGetColor,nbc,nbx,nby
    sleep 2000

    }

    loop
    {
    PixelGetColor,nbc,nbx,nby
    nbcr := (nbc & 0xFF) ;red
    nbcg := ((nbc & 0xFF00) >> 8) ;green
    nbcb := ((nbc & 0xFF0000) >> 16) ;blue
    lower := bcr-50
    upper := bcr+50

    if nbcr not between %lower% and %upper%
    {
    ; MsgBox coulleur differente %nbcr% %bcr% , %nbcg% %bcg% , %nbcb% %bcb%
    MouseClick,right
    sleep 2000
    break

    }
    }

    }

    1. Bonjour , très bonne idée de détecter une variation de couleur supérieur ou inferieur a un seuil pour se passer du Vumètre ! 🙂
      Merci beaucoup pour votre partage !

    2. Bonjour , je test votre script depuis 2semaine et tout ce passait super bien actuellement lorsque je le lance , le clic pour ramasser l’hamecon est direct il n’attend plus que VM monte a -10 et je ne comprends pas pourquoi si quelqu’un sait ca m’aidera beaucoup car je suis bloqué et je ne trouve pas de réponse ou de solution a ca

  5. L’idée de base du script est très ingénieuse.
    J’ai juste fait un ajustement dessus en insérant un « while ». (il relance si il ne detecte plus le bouchon sous la souris).

  6. Salut ! Tout fonctionne à merveille, je n’en abuse pas, mais j’aurais aimé savoir comment aurais-tu fais une boucle de 30 minutes pour que ça mange un appât en même temps qu’un lancer ?

    1. Bonjour , non je n’y avais pas pensé pour être honnête , mais je regarderai ca lorsque j’aurai un peu de temps de disponible 🙂
      Merci pour ton commentaire

        1. Bonjour, si le clic est direct c’est qu’il valide la condition :
          if(color > 0xa0a0a0) ( détection du passage du noir au blanc sur le vumètre )
          ca signifie que les coordonnées de la « goutte » de l’aiguille du vumètre ne sont pas bonnes sur votre écran .
          il faut regarder les coordonnées de la « goutte » de l’aiguille avec la windows spy d’Autohotkey ( click droit sur le « H » dans la barre de tache ) et remettre les coordonnées correctes dans sur la ligne juste au dessus de la condition.
          « PixelGetColor,color,1830,430 » 1830 étant la coordonnée en X et 430 celle en Y.

  7. Salut! Jai un petit probleme, parfois le clique se met en marche après l’activation du VUMETRE et parfois pas, j’ai déjà réalisé la modification indiquée dans les commentaires précédents.
    As tu une idée d’où peut venir le problème ?
    Merci 🙂

    1. Bonjour , il se peut que votre résolution d’écran ne corresponde pas a celle du mien .Il faut vérifier la position de l’aiguille au repos ( sans bruits ) . Ouvrez la windows spy d’autohotkey ( click droit sur le H d’autohotkey dans la barre de tache ) cliquez sur votre bureau puis déplacez la souris au milieu du rond de l’aiguille et vérifiez les coordonnées ( 1830,430 pour moi ) Le programme détecte le passage du noir au blanc lorsque l’aiguille bouge . ( n’oubliez pas de remettre la version d’origine pour que ca fonctionne dans ce sens la 🙂 .

  8. bonjour Lucan , ton bot marche à la perfection , un amis m’a initier à superMacro qui est une alternative au bot de pêche que tu nous offre .
    Aussi avec le nouveau système de pèche de world of warcraft on peut rajouter un hameçon , je suis un peu nouveau dans le script et tes idées seraient la bienvenu pour l’ajout d’un hameçon.

    1. Bonjour , il faut vérifier les volumes ( bruitage dans le jeu , et ceux du gestionnaire audio). Normalement le vumètre vous donnes une image de ce qui passe sur vos hauts parleurs du volume principal.

  9. Salut, je vois pas pourquoi il y à un Vumetre, j’ai réglé à
    F12::
    loop
    {
    sleep 2000
    Send {&}
    sleep 10000

    à la place de
    sleep 2000
    Send {&}
    sleep 2000

    Car le vumètre ne m’était d’aucune utilité, il ne relevais la canne aussitôt après l’avoir lancé, vous avez une idée ?
    Cordialement

    1. Bonjour ,le vumètre sert a détecter le son lorsque le bouchon bouge parce-qu’ auto-hot-key ne le fait pas. Par contre je ne vois pas pourquoi vous augmentez le temps entre le lancé de la canne et la recherche du bouchon.

  10. Bonjour ,c’est vrai que les bruits sont gênant , il ne faut laisser que les bruitages pour éviter les bruits parasites . Si vous voulez changer la position de détection et la mettre vers -7 , il faut regarder ou se trouve la partie ronde noir de l’aiguille a cette mesure . C’est possible avec la Windows Spy ( Click droit sur le H de autohotkey dans la barre de tache ) , il faut placer votre souris a l’endroit ou l’aiguille devra se trouver et lire la nouvelle position dans la windows spy .
    Concrètement ça donne ça :

    il faut remplacer :

    loop{
    PixelGetColor,color,1830,430
    if(color > 0xa0a0a0)

    Par

    loop{
    PixelGetColor,color,1870,405
    if(color < 0xa0a0a0)

    Comme vous le voyez pour changer le sens de la détection il faut simplement changer le sens du signe dans if(color < 0xa0a0a0) et vous le voyez la nouvelle position dans PixelGetColor,color,1870,405 .

    N’hésitez pas a faire des essais pour comprendre comment ça fonctionne , amusez vous bien !

    Sylvain

  11. Bonjour,

    Je teste votre script, c’est très intéressant. Cependant un petit problème persiste sur wow : le vumètre bouge constament, à cause du bruit ambiant (la mer par exemple), du coup, il active le ramassage trop souvent, pour rien.

    Je pense qu’une version inverse serai top, par exemple, il s’active quand l’aiguille atteint un certain niveau (détection de la couleur noire sur fond blanc, dès que l’aiguille va atteindre la position sous le -7 par exemple), mais je n’ai pas les compétences pour ça 😛

    Merci !

  12. Bonjour ,La couleur se prends a la pointe de la souris , il faut tacher de prendre une couleur qui ressort par rapport a l’environnement exemple rouge aux bois de la peinombre qui est plutôt bleuté et bleu carmine qui est plus orangé. C’est bien d’avoir essayé de bouger la tolérance , après différents tests c’est ce que j’avais trouvé de plus efficace mais c’est une bonne idée d’avoir tenté de l’ajuster . Pour que la couleur soit plus exacte , vous remarquerez que lorsque vous positionnez votre souris sur le bouchon , il change légèrement de couleur ( s’éclaircit ) , il y a deux solutions pour remédiez a ce problème , la plus simple est une copie d’écran avec l’outil de capture d’écran de Windows et de prendre la couleur sur la copie d’écran. La deuxième est de faire la prise de couleur juste après que le poisson ai mordu ( la couleur ne change plus ) , mais il faut faire vite 🙂 .
    J’espère que ça vous aidera !

    a bientôt

  13. Bonjour, j’ai un soucis avec la mémorisation de la couleur. La souris ne se place pas correctement. J’ai essayé de modifier la tolérance sur la ligne de mémorisation de la couleur mais si je monte trop, la souris se place n’importe ou et lorsque je baisse trop, la souris ne bouge plus. Un petit coup de main svp?

  14. Hey, pourquoi ma canne a pèche se relève directement, a peine lancer la souris se dirige dessus et recupere directement je ne comprend pas

    1. Bonjour , si la canne se relève directement c’est que vous remplissez la condition :
      PixelGetColor,color,1830,430
      if(color > 0xa0a0a0)

      le problème vient du fait que la partie ronde de l’aiguille a la position -20 sur votre écran n’est pas a la même position que sur mon écran .
      Pour régler ce problème il faut ouvrir la Spy Windows de Auto HotKey ( click droit dans la barre de tache sur le « H » icone de autohotkey et click sur windows spy )
      clickez sur le vumetre et positionnez votre souris au niveau du rond de l’aiguille lorsqu’il n’y a pas de son ( mesure -20) du deuxième cadran ( celui de droite ) lisez la valeur dans la spy windows de « Mouse position » , »On Screen » et remplacez les valeurs dans votre script dans la ligne : PixelGetColor,color,1830,430 .

      Sylvain

  15. Bonjour et bon travail , ca fonctionnait pour moi y’a quelque mois ,je viens de tester aujourd’hui et l aiguille de vu meter ne bouge plus .
    Pourriez vous m’aidé.

    1. Bonjour Mooliiii ! Est ce que vous pouvez vous assurer que l’aiguille du vu-mètre arrive bien en “1830,430” Il peut y avoir des problèmes de coordonnées sur certains écrans.
      Pour le savoir , lancez le script pour avoir AutotHotKey en mémoire puis dans la barre de tache Click droit sur le “H” d’AutoHotKey et lancez “Windows spy” . Cette fenêtre affiche les coordonnées de la souris entre autre , allez jusqu’à l’endroit ou l’aiguille doit arriver sur le Vu-metre et regardez si les coordonnées sont correctes.
      Si ce n’est pas le cas corrigez les dans la ligne :”PixelGetColor,color,1830,430″.
      Verifiez également que vous avez bien :”MouseClick,right” pour relever la canne a pêche car dans une première version j’avais mit “Left”.
      Tennez moi au courant ! a bientôt

      Sylvain

    1. Bonjour Philippe , vérifiez que le script est bien exécuté , et que vous avez bien collé tout le texte en vert ( avec les accolades a la fin ). Lorsque vous appuyez sur “F9” une Message box doit s’ouvrir vous indiquant que la couleur est prise avec le code de la couleur et la position de la souri au moment ou vous appuyez sur “F9”

  16. En fait si le bruit était gênant il aurait tendance a relever la canne trop souvent . En revanche il se peut que le vumetre ne soit pas au bon endroit est ce qu’il se charge au démarrage ? Wow doit également etre en mode fenetré pour que le vumetre soit visible est ce que c’est le cas ?

  17. Bonjour , oui il fonctionne sur la version officielle actuelle et sur toutes les autres , il est basé sur la détection de couleur du bouchon donc tant que la couleur du bouchon est différente de celle de l’environnement ( ou que Blizzard ne passe pas le jeu en noir et blanc 🙂 ) ça fonctionne .Il faut toute fois placer l’action de pêche sur le raccourci « 1 » dans la barre d’action et ne garder que les bruitages dans le son pour ne pas est parasité par la musique.
    Pour ce qui est de la détection je ne sais pas trop ce que Blizzard recherche et je ne peux pas vous conseiller de l’utiliser dans le but par exemple d’attraper la monture a Boralus, Vous savez que vous prenez un risque en l’utilisant puisque ça enfreint les règles du jeu , je ne peux vous conseiller que la plus grande prudence sachant que pour cet article , il est surtout fait dans un but éducatif l’idée dans mon esprit est d’intéresser les gens a la programmation .

    Sylvain

    1. Merci de la réponse rapide, je m’amuse a la programmation pour le moment sur serveur privé, j’arrive juste pas a relever la canne à pêche. Je pense que le bruit ambiant « cascade etc » fait défaut.
      je n’ai aucun clique au moment de relever, une idée ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *