Autoit [Demande] Couleur des différentes céréales pour D.

Inscrit
24 Février 2012
Messages
55
Reactions
0
#1
Bonjours, Je me surnom Snakeddp.

Suite à la source fourni par Kratoz. bot-paysan.94/]Ici.
J'ai commencé alors mon bot AutoIT récolte pour D.
J'ai lu les différents tutoriels mais je n'ai pas réussir à faire fonctionner FFShowpixels de FastFrench. Ici.
Et j'ai fini par me familiarisé avec le language de programmation AutoIT ainsi que des sources de Kratoz (Encore merci à lui).

J'ai corrigé une petit erreur dans son code sans doute d’inattention
Voici le code corrigé :

Code:
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\Logo2.ico
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_Language=1036
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "Misc.au3"
#cs ----------------------------------------------------------------------------

   AutoIt Version : 3.3.6.0
   Auteur:         Kratoz

   Fonction du Script :
   Bot paysan complexe.

#ce ----------------------------------------------------------------------------

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\jessy\desktop\form1.kxf
$Form1_1_1 = GUICreate("Hello Bot", 355, 234, 558, 260)
$Group1 = GUICtrlCreateGroup("  Bot paysan par Kratoz   ", 8, 8, 337, 193)
$Button1 = GUICtrlCreateButton("Blé (Lv 1)", 16, 32, 89, 33)
$Button2 = GUICtrlCreateButton("Orge (Lv 10)", 15, 76, 89, 33)
$Button3 = GUICtrlCreateButton("Avoine (Lv 20)", 16, 120, 89, 33)
$Button4 = GUICtrlCreateButton("Houblon (Lv 30)", 15, 164, 89, 33)
$Button5 = GUICtrlCreateButton("Seigle (Lv 50)", 248, 32, 89, 33)
$Button6 = GUICtrlCreateButton("Riz (Lv 50)", 248, 76, 89, 33)
$Button7 = GUICtrlCreateButton("Malt (Lv 60)", 248, 120, 89, 33)
$Button8 = GUICtrlCreateButton("Chanvre (Lv 70)", 248, 164, 89, 33)
$Button9 = GUICtrlCreateButton("Mise à jour", 120, 96, 113, 49)
$Ressource = GUICtrlCreateInput("Ressource", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button10 = GUICtrlCreateButton("Lin (Lv 40)", 129, 164, 89, 33)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Radio1 = GUICtrlCreateRadio("Radio1", 40, 208, 17, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
$Radio2 = GUICtrlCreateRadio("Radio2", 160, 208, 17, 17)
$Radio3 = GUICtrlCreateRadio("Radio3", 248, 208, 17, 17)
$Label1 = GUICtrlCreateLabel("Banque", 64, 208, 41, 17)
$Label2 = GUICtrlCreateLabel("Farmer", 184, 208, 36, 17)
$Label3 = GUICtrlCreateLabel("Basique", 272, 208, 42, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$mode = 0
$afficher = 0
Func monstre()
      TrayTip("","Phase d'attaque",100)
      $attaque = 0
      $pix = 10
      $perso = PixelSearch(0, 0, 750, 510, 0xFF0000)
      $monstre = PixelSearch($perso[0] - 120, $perso[1] - 120, $perso[0] + 120, $perso[1] + 120, 0x0000FF)
      Sleep(100)
      If IsArray($monstre) Then
         TrayTip("","Monstre detecté, on attaque",100)
         Do
         $monstre = PixelSearch($perso[0] - $pix , $perso[1] - $pix, $perso[0] + $pix, $perso[1] + $pix, 0x0000FF)
            If IsArray($monstre) = True Then
               Send("é")
               MouseClick("left",$monstre[0], $monstre[1])
               $attaque = 1
               Sleep(2000)
               Send("^w")
               $reussi=1
            EndIf
         $pix = $pix+10
         Until $attaque = 1 Or $pix = 120
      Else
         TrayTip("","Pas de monstres aux alentours, on passe le tour",100)
         Send("^w")
      EndIf

   #cs $monstre = PixelSearch($perso[0] - 150, $perso[1] - 150, $perso[0] + 150, $perso[1] + 150, 0x0000FF)
   If Not @error Then
      Send("é")
      MouseClick("left",$monstre[0], $monstre[1])
      $mouse = MouseGetPos()
      PixelSearch($mouse[0]-30,$mouse[1]-30,$mouse[0]+30,$mouse[1]+30,0x223399);si on ne peu pas attaquer
      If @error Then; on cherche dans l'autre sens
         $attaque = 0
         $pix = 10
         While $attaque = 0
            If $pix > 140 Then
               ContinueLoop
            EndIf
         $monstre = PixelSearch($perso[0] - $pix , $perso[1] - $pix, $perso[0] + $pix, $perso[1] + $pix, 0x0000FF) ;on élargi le champ de recherche tant qu'on ne trouve pas de monstre
         If Not @error Then
            Send("é")
            MouseClick("left",$monstre[0], $monstre[1])
            $attaque = 1
         EndIf
         $pix = $pix + 10
         WEnd
      EndIf
      Sleep(2000)
      Send("+()")
      Send("^w")
      Sleep(2000)
   Else
   Send("^w")
   #ce EndIf

EndFunc

Func deplacement()
      TrayTip("","Fonction de déplacement commencée",100)
      Sleep(1000)
      $mouse = MouseGetPos()
      $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
      Sleep(100)
      If IsArray($case) = False Then
            TrayTip("","Obstacle detecté",100)
            MouseMove($perso[0],$perso[1] - 20);haut
            Sleep(1000)
            $mouse = MouseGetPos()
            $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
            Sleep(100)
            If IsArray($case) = False Then
            MouseMove($perso[0] - 45, $perso[1]);gauche
            Sleep(1000)
            $mouse = MouseGetPos()
            $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
            Sleep(100)
            EndIf

            If IsArray($case) = False Then
            MouseMove($perso[0] + 50, $perso[1]);droite
            Sleep(1000)
            $mouse = MouseGetPos()
            $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
            Sleep(100)
            EndIf

            If IsArray($case) = False Then
            MouseMove($perso[0], $perso[1] + 30);bas
            Sleep(1000)
            $mouse = MouseGetPos()
            $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
            Sleep(100)
            EndIf
            MouseClick("left")


      Else
            TrayTip("","Pas d'obstacle detecté, on avance",100)
            MouseClick("left",$mouse[0],$mouse[1])


      EndIf

EndFunc


Func secours()
      TrayTip("","Fonction de déplacement secours commencée",100)
      Sleep(1000)
      $mouse = MouseGetPos()
      $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
      Sleep(100)
      If IsArray($case) = False Then
            TrayTip("","Test de déplacement afin de detecté a nouveau le personnage",100)
            $perso = MouseGetPos()
            MouseMove($perso[0],$perso[1] - 20);haut
            Sleep(1000)
            $mouse = MouseGetPos()
            $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
            Sleep(100)
            If IsArray($case) = False Then
            MouseMove($perso[0] - 45, $perso[1]);gauche
            Sleep(1000)
            $mouse = MouseGetPos()
            $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
            Sleep(100)
            EndIf

            If IsArray($case) = False Then
            MouseMove($perso[0] + 50, $perso[1]);droite
            Sleep(1000)
            $mouse = MouseGetPos()
            $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
            Sleep(100)
            EndIf

            If IsArray($case) = False Then
            MouseMove($perso[0], $perso[1] + 30);bas
            Sleep(1000)
            $mouse = MouseGetPos()
            $case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
            Sleep(100)
            EndIf
            MouseClick("left")
            TrayTip("","Fin de la fonction de secours, reprise du processus normal",100)
            Sleep(1000)

      Else
            TrayTip("","Pas d'obstacle detecté, on avance",100)
            MouseClick("left",$mouse[0],$mouse[1])
            Sleep(1000)
      EndIf

EndFunc




Func exitbot()
                        TrayTip("Arrêt", "Arrêt du bot dans 1 seconde", 100)
                        Sleep(1000)
                        Exit
                     EndFunc

HotKeySet("{ESC}", "exitbot")
HotKeySet("{F1}", "exitbot")

Func pause()
   $pause = 1
   TrayTip("Pause","Le bot est en pause, appuyez sur F3 pour le relancer",100)
   Sleep(1000)
   Do

      If _IsPressed(72) Then
         $pause = 0
      EndIf
   Until $pause = 0
   TrayTip("Actif","Le bot est de nouveau actif",100)
EndFunc

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $Button1

         $Ressource = GUICtrlCreateInput("Blé", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)

                     If $mode = 0 Then
                        MsgBox(0,"Information nécessaire","Veuillez choisir un mode avant de lancer le bot")
                        ContinueLoop
                     EndIf
                     ProgressOn("Configuration", "Progression de la configuration", "",0,0)
                     ProgressSet( 25, 25 & " %")

                     Do
                     $nom = InputBox("Information nécessaire", "Entrez le nom de votre personnage"& @CRLF & @CRLF & "(Avec les majuscules)")
                     If Not WinExists($nom) Or $nom = "" Then
                     MsgBox(0,"Erreur","Fenêtre du personnage non trouvée")
                     Else
                     ProgressSet( 50, 50 & " %")
                     WinSetState($nom,"",@SW_MINIMIZE)
                     WinSetState($nom,"",@SW_RESTORE)
                     WinMove($nom, "", 0, 0, 800, 600)
                     MsgBox(0,"Information","Fenêtre de " & $nom & " redimensionnée")

                     EndIf
                     Until WinExists($nom) And $nom <> ""
                     Do
                     $temps = InputBox("Information nécessaire", "Insérez le temps de fauche (en seconde)"& @CRLF & @CRLF & "(Doit être compris entre 2 et 20)")
                     Until $temps > 1 And $temps < 21
                     ProgressSet( 75, 75 & " %")
                     Do
                     $verif = InputBox("Information nécessaire","Nombre de fauches entre vérification de l'inventaire  (minimum 10)" & @CRLF & @CRLF & "Exemple :  Si vous rentrez 10, le bot vérifiera si l'inventaire est plein toute les 10 coupes")
                     Until $verif > 9
                     ProgressSet(100 , "Bot prêt à l'emploi", "Configuration terminée")
                     MsgBox(0,"Information","Appuyez sur la touche Echap ou F1 de votre clavier si vous voulez stopper le bot"& @CRLF & @CRLF & "F2 pour mettre en pause puis F3 pour relancer")
                     TrayTip("", "Bot paysan actif", 100)
                     TrayTip("", "Appuyez sur la touche F2 de votre clavier pour mettre en pause le bot, et F3 pour le relancer", 100)
                     ProgressOff()
                     ;If $mode = 1 Then
                     ;   MsgBox(0, "Mode banque", "Vous avez choisi le mode banque, vous devez donc faire des configurations supplémentaires")
                     ;   Do
                     ;   $posxperso = InputBox("Coordonnée x personnage","Veuillez insérez la coordonnée x de votre personnage (Doit être compris entre -100 et 100)"& @CRLF & @CRLF"Par exemple : si vous êtes sur la map 5,-24 ; la coordonnée x de votre personnage sera :  5")
                     ;   Until $posxperso > -101 And $posxperso < 101
                     ;   Do
                     ;   $posxperso = InputBox("Coordonnée y personnage","Veuillez insérez la coordonnée y de votre personnage (Doit être compris entre -100 et 100)"& @CRLF & @CRLF"Par exemple : si vous êtes sur la map 5,-24 ; la coordonnée y de votre personnage sera : -24")
                     ;   Until $posxperso > -101 And $posxperso < 101
                     ;EndIf
                     $compteur = 0

                     While 1
                        HotKeySet("{F2}", "pause")
                        If $compteur = $verif Then
                           TrayTip("","Vérification de l'inventaire",100)
                           Send("i")
                           Sleep(1000)
                           $plein = PixelGetColor(724,495)
                           Sleep(1000)
                           If $plein = 0xA00101 Then
                              If $mode = 3 Then
                              TrayTip("","Inventaire plein : fermeture du jeu et du bot dans 3 secondes",100)
                              Sleep(3000)
                              WinClose($nom, "")
                              TrayTip("","Jeu fermé, arrêt du bot dans 3 secondes",100)
                              Sleep(3000)
                              Exit
                           ElseIf $mode = 2 Then
                              MouseClick("left",640,110)
                              Sleep(500)
                              MouseClick("left",722,128)
                              Sleep(500)
                              Send("Blé")
                              Sleep(500)
                              MouseClick("right",606,154)
                              Sleep(500)
                              MouseClick("left",564,211)
                              Sleep(500)
                              Send("{ENTER}")
                              Sleep(500)
                              Send("{ENTER}")
                              Sleep(500)
                              MouseClick("left",661,110)
                              Sleep(500)
                              MouseClick("right",606,154)
                              Sleep(500)
                              MouseClick("left",564,199)
                              Sleep(500)
                              Send("{ENTER}")
                              Sleep(500)
                              Send("{ENTER}")
                              TrayTip("","Inventaire vidé, on recommence la fauche",100)
                                 $compteur = 0
                                 Send("i")
                                 ContinueLoop
                              EndIf
                           Else
                           TrayTip("","Inventaire non plein, on continue la fauche",100)
                           $compteur = 0
                           Send("i")
                           ContinueLoop
                           EndIf
                        EndIf
                        PixelSearch(385, 571, 415, 573, 0xFF6100)
                        $combat = PixelGetColor(384, 572)

                        If $combat = 0xFF6100 Then
                           If $afficher = 0 Then
                              Send("+(")
                              Send("^w")
                              $afficher = 1
                              Sleep(1000)
                           EndIf
                           ;systeme de combat complexe
                           $tour = PixelGetColor(408, 515)
                           If $tour = 0xFF4D00 Then
                              TrayTip("", "Tour de jeu détecté", 100)

                              Sleep(1000)
                              $perso = PixelSearch(0, 0, 750, 510, 0xFF0000)

                              If Not @error Then
                                       TrayTip("","Phase d'attaque",100)
                                       #cs $attaque = 0
                                       $pix = 10
                                       Do
                                       $monstre = PixelSearch($perso[0] - $pix , $perso[1] - $pix, $perso[0] + $pix, $perso[1] + $pix, 0x0000FF)
                                          If Not @error Then
                                             Send("é")
                                             MouseClick("left",$monstre[0], $monstre[1])
                                             $attaque = 1
                                             Sleep(2000)
                                             Send("^w")
                                             $reussi = 1
                                          EndIf
                                       $pix = $pix+10
                                       #ce Until $attaque = 1 Or $pix = 150
                                  $monstre = PixelSearch($perso[0] - 120, $perso[1] - 120, $perso[0] + 120, $perso[1] + 120, 0x0000FF)
                                 If Not @error Then
                                       $attaque = 0
                                       $pix = 10
                                       Do
                                       $monstre = PixelSearch($perso[0] - $pix , $perso[1] - $pix, $perso[0] + $pix, $perso[1] + $pix, 0x0000FF)
                                          If Not @error Then
                                             Send("é")
                                             MouseClick("left",$monstre[0], $monstre[1])
                                             $attaque = 1
                                             Sleep(2000)
                                             Send("^w")
                                             $reussi = 1

                                          EndIf
                                       $pix = $pix+10
                                        Until $attaque = 1 Or $pix = 120

                                 Else
                                    TrayTip("","Phase de déplacement",100)
                                    $monstre = PixelSearch(0, 0, 800, 600, 0x0000FF)
                                    If Not @error Then
                                       $DistanceX = $monstre[0] - $perso[0]
                                       $DistanceY = $monstre[1] - $perso[1]

                                          If ($DistanceX < 0 And $DistanceY = 0) Then
                                          ;gauche
                                          TrayTip("", "gauche", 100)
                                             MouseMove($perso[0] - 45, $perso[1]);gauche
                                             deplacement()
                                             Sleep(2000)
                                             monstre()

                                          ElseIf ($DistanceX < 0 And $DistanceY < 0) Then
                                          ;haut gauche
                                          MouseMove($perso[0] - 70, $perso[1] - 30);haut gauche
                                          deplacement()
                                          Sleep(2000)
                                          monstre()

                                          ElseIf ($DistanceX > 0 And $DistanceY < 0) Then
                                          ;haut droite
                                          MouseMove($perso[0] + 70, $perso[1] - 30);haut droite
                                          deplacement()
                                          Sleep(2000)

                                             monstre()

                                          ElseIf ($DistanceX = 0 And $DistanceY < 0) Then
                                          ;haut
                                          MouseMove($perso[0],$perso[1] - 20);haut
                                          deplacement()
                                          Sleep(2000)
                                             monstre()

                                          ElseIf ($DistanceX < 0 And $DistanceY > 0) Then
                                          ;bas gauche
                                          MouseMove($perso[0] - 70, $perso[1] + 40);bas gauche
                                          deplacement()
                                          Sleep(2000)
                                             monstre()

                                           ElseIf ($DistanceX > 0 And $DistanceY = 0) Then
                                          ;droite
                                          MouseMove($perso[0] + 50, $perso[1]);droite
                                          deplacement()
                                          Sleep(2000)
                                             monstre()

                                          ElseIf ($DistanceX > 0 And $DistanceY > 0) Then
                                          ;bas droite
                                          MouseMove($perso[0] + 70, $perso[1] + 40);bas droite
                                          deplacement()
                                          Sleep(2000)
                                             monstre()

                                          ElseIf ($DistanceX = 0 And $DistanceY > 0) Then
                                          ;bas
                                          MouseMove($perso[0], $perso[1] + 30);bas
                                          deplacement()
                                          Sleep(2000)
                                             monstre()

                                          Else
                                          ;monstre non détecté
                                          MouseClick("left", 67, 160)
                                          $search2 = PixelSearch(0,0,800,600,0x16DCFF)
                                          If Not @error Then
                                          Send("é")
                                          MouseClick("left",$search2[0],$search2[1])
                                          Sleep(2000)
                                          EndIf
                                          Send("^w")
                                          ContinueLoop
                                          EndIf
                                          #cs If ($perso[0] - $monstre[0] < 0) Then
                                             ;on va à droite
                                             ;+80 -10
                                             MouseClick("left", $perso[0] + 80, $perso[1] - 10)
                                             Sleep(2000)
                                             monstre()
                                             TrayTip("", "droite", 100)
                                          Else
                                             ;-80 +10
                                             ;on va à gauche
                                             MouseClick("left", $perso[0] - 80, $perso[1] + 10)
                                             monstre()
                                             TrayTip("", "gauche", 100)
                                          EndIf

                                          If ($perso[1] - $monstre[1] > 0) Then
                                             ;on va en haut
                                             ;+30 -50
                                             MouseClick("left", $perso[0] + 10, $perso[1] - 35)
                                             Sleep(2000)
                                             monstre()
                                             TrayTip("", "haut", 100)
                                          Else
                                             ;on va en bas
                                             ;-30 +50
                                             MouseClick("left", $perso[0] - 25, $perso[1] + 45)
                                             Sleep(2000)
                                             monstre()
                                             TrayTip("", "bas", 100)
                                          #ce EndIf
                                       Else

                                          $search2 = PixelSearch(0,0,800,600,0x16DCFF)
                                          If Not @error Then
                                          Send("é")
                                          MouseClick("left",$search2[0],$search2[1])
                                          Sleep(2000)
                                          EndIf
                                          Send("^w")
                                       EndIf

                                 EndIf
                              Else

                              TrayTip("Personnage non détecté","Système de secours déclenché",100)
                              secours()

                              $monstre = PixelSearch(0, 0, 800, 600, 0x0000FF)
                              If Not @error Then
                                    Send("é")
                                    MouseClick("left",$monstre[0], $monstre[1])
                                    Sleep(2000)
                                    Send("^w")
                              Else

                              $search2 = PixelSearch(0,0,800,600,0x16DCFF)
                                 If Not @error Then
                                 Send("é")
                                 MouseClick("left",$search2[0],$search2[1])
                                 Sleep(2000)
                                 EndIf
                              EndIf
                              Send("^w")
                           EndIf
                           Send("^w")
                           Sleep(1000)
                           EndIf







                        Else
                                           $ble = PixelSearch(0,0,685,513,"0xFFFF44") ;recherche blé 1
                                         If @error Then
                                           $ble = PixelSearch(0,0,685,513,"0xFFFF45") ;recherche blé 2
                                         EndIf
                                         If @error Then
                                           $ble = PixelSearch(0,0,685,513,"0xFFFF46") ;recherche blé 3
                                         EndIf
                                         If @error Then
                                           $ble = PixelSearch(0,0,685,513,"0xFFFF49") ;recherche blé 4
                                         EndIf
                                         If @error Then
                                           $ble = PixelSearch(0,0,685,513,"0xFFFF48") ;recherche blé 5
                                         EndIf
                                         If @error Then
                                           $ble = PixelSearch(0,0,685,513,"0xFFFF48") ;recherche blé 6
                                         EndIf
                                         If @error Then
                                           $ble = PixelSearch(0,0,685,513,"0xFFDE2C") ;recherche blé 7
                                         EndIf
                                         If @error Then
                                           $ble = PixelSearch(0,0,685,513,"0xF6E13C") ;recherche blé 8
                                         EndIf ;
                                         If @error Then
                                          $ble = PixelSearch(0,0,685,513,"0xFDFB42") ;recherche blé 8
                                          EndIf
                                          If @error Then
                                             $ble = PixelSearch(0,0,685,513,"0xF3EF3E") ;recherche blé 8
                                          EndIf
                                          If @error Then
                                             $ble = PixelSearch(0,0,685,513,"0xEFE93C") ;recherche blé 8
                                          EndIf
                                          If @error Then
                                             $ble = PixelSearch(0,0,685,513,"0xFDFD42") ;recherche blé 8
                                          EndIf
                                          If @error Then
                                             $ble = PixelSearch(0,0,685,513,"0xEED939") ;recherche blé 8
                                          EndIf
                                          If @error Then
                                             $ble = PixelSearch(0,0,685,513,"0xB79329") ;recherche blé 8
                                          EndIf



                                             If Not @error Then
                                                $afficher = 0
                                                $x = $ble[0]
                                                $y = $ble[1]
                                                MouseClick("left",$x, $y)
                                                Sleep(400)
                                                $mouse = MouseGetPos()
                                                $name = PixelSearch($mouse[0]-80,$mouse[1]-80,$mouse[0]+80,$mouse[1]+80,0x322E25)
                                                If Not @error Then
                                                   ContinueLoop
                                                EndIf
                                                MouseMove($x + 5, $y + 20)
                                                Sleep($temps * 1200) ;L'erreur était ici, il avait mis sleep(100).
                                                $mouse = MouseGetPos()
                                                $fauche = PixelGetColor($mouse[0], $mouse[1])
                                                If $fauche <> 0xFF6600 Then;Si on ne peut pas faucher
                                                ContinueLoop
                                                EndIf
                                                MouseClick("left")
                                                $compteur = $compteur+1
                                                Sleep($temps * 1000)



                                             Else
                                                   $niveau = PixelSearch(0, 50, 750, 400, 0xFF6100)
                                                   $afficher = 0
                                                   If Not @error Then


                                                      MouseMove($niveau[0] + 10, $niveau[1] + 10)
                                                      MouseClick("left")
                                                      Sleep(1000)


                                                   Else

                                                      TrayTip("", "Pas de blé détecté, changez de carte si le problème persiste", 100)
                                                      Sleep("3000")
                                                   EndIf

                                                EndIf
                                             EndIf








                     WEnd
      Case $Button2
         $Ressource = GUICtrlCreateInput("Orge", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)
      Case $Button3
         $Ressource = GUICtrlCreateInput("Avoine", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)
      Case $Button4
         $Ressource = GUICtrlCreateInput("Houblon", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)
      Case $Button5
         $Ressource = GUICtrlCreateInput("Seigle", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)
      Case $Button6
         $Ressource = GUICtrlCreateInput("Riz", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)
      Case $Button7
         $Ressource = GUICtrlCreateInput("Malt", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)
      Case $Button8
         $Ressource = GUICtrlCreateInput("Malt", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)
      Case $Button10
         $Ressource = GUICtrlCreateInput("Lin", 136, 56, 81, 21)
         GUICtrlSetState(-1, $GUI_DISABLE)
               Case $Radio1
                  TrayTip("Mode banque","Le personnage effectue le trajet jusqu'a la banque lorsque son iventaire est plein pour y déposer la ressource choisie, puis revient sur la carte initial pour de nouveau faucher et ceci ainsi de suite",10000)
                  $mode = 1
               Case $Radio2
                  TrayTip("Mode farmer","Le personnage coupe la ressource choisie sans arrêt et lorsque son inventaire est plein il supprime la ressource de son inventaire, et ceci dans le but de monter son niveau de métier paysan rapidement",10000)
                  $mode = 2
               Case $Radio3
                  TrayTip("Mode basique","Le personnage coupe la ressource choisie sans arrêt et lorsque que son inventaire est plein, le bot ainsi que le jeu sont fermés",10000)
                  $mode = 3
   EndSwitch
WEnd
Ce qu'il me manque pour amélioré ce code:
-S'avoir comment récupérer les pixels et de les convertir (Si s'est obligé).

Quelqu'un est-il disponible pour m'apprendre à comment récupérer les pixels facilement (en particulier pour les pixels pour les différentes céréales) ? Je compte faire mon propre bot en entier mais quoi de mieux que de s'inspirer d'une source.
 
A

Anonymous

Invité
#2
Tu as un programme autoit qui te donne la couleur des pixels. Je crois que sa s'appelle autoit information. Tape autoit dans ton menu démarrer.
 
A

Anonymous

Invité
#3
Ton pseudo me dis quelqu'un "Snakeddp".
Mais je ne me souviens plus qui ???
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#4
@lolodu92,Oui, j'ai essayé avec AutoIt Window Info et j'ai trouvé des valeurs en hexadécimale.
Mais la plupart de celle que j'ai trouvé pour l'orge son identique à celle du décor. (Pour information, je suis à Astrub)

Y aurait'il un moyens de coder quelque chose comme:
_Recherche de la pixel.
-Si il ne trouve pas, ... Afficher sa sous forme de message ou autre.
-Si trouvé.
--Et si cette pixel appartient à une ressource récoltable.
--Alors la faucher.
--Sinon relancer la recherche de pixel mais sans prendre en compte celle d'avant.

J'espère avoir écrit quelque chose de compréhensible. En gros au lieu de cliquer sur une case vide et sur la pixel trouvé, il clique sur la pixel trouvé qui provient d'une ressource récoltable.

@Diable-man, j'utilise ce pseudo sur tout les bots au quel j'ai utilisé soit Xvols'b. Je me souviens t'avoir parlé sur le forum de Xvolks mais de quoi ... Je sais plus :)
 
A

Anonymous

Invité
#5
(J'étais le créateur du forum et du site)
Je me souviens de toi maintenant.
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#6
@Diable-man,Oui, je le sais très bien que tu n'es pas le Grand Xvolks juste le créateur du site mais tu avais fait un très beau site/fofo en tout cas.
Pour revenir à mon problème, connais-tu l'AutoIT pour m'aider dans mon problème ?
 
A

Anonymous

Invité
#7
L'autoiT remonte a très loin mais je jette un coup d'oeil a ton problème.
 
A

Anonymous

Invité
#8
Snakeddp a dit:
@lolodu92,Oui, j'ai essayé avec AutoIt Window Info et j'ai trouvé des valeurs en hexadécimale.
Mais la plupart de celle que j'ai trouvé pour l'orge son identique à celle du décor. (Pour information, je suis à Astrub)

Y aurait'il un moyens de coder quelque chose comme:
_Recherche de la pixel.
-Si il ne trouve pas, ... Afficher sa sous forme de message ou autre.
-Si trouvé.
--Et si cette pixel appartient à une ressource récoltable.
--Alors la faucher.
--Sinon relancer la recherche de pixel mais sans prendre en compte celle d'avant.
Tu dois faire un tableau qui initialise les "cellule" avec une ressource dessus.
Ensuite il regarde si il peut faucher et si pas il supprime la cellule en question et continue.
Inspire toi de sa https://cadernis.fr/index.php?threa...-du-client-d-et-initialisation-des-cases.623/
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#9
@Diable-man, Ah merci bien, je cherchais de nouveau comment utiliser FastFind.
De plus, j'allais marqué sa
Diable-man, Merci bien, je viens de relire le sujet sur FastFind (Fast = rapide et find = trouvé, il me semble :p) qui me semble parfait mais il y a marqué qu'il faut juste le mettre dans le dossier ou se trouve notre .au et de l'inclure à l'aide de include mais comment l'utiliser tel est la question !
Pour éviter le double message,
Voici mon nouveau message:
Je pars manger et j'attaque sa. En espérant que le poste (sans tutoriel) de d4rkv4n me facilite dans ma tache. Si j'y arrive, je devrais référencer les ... maps de récoltent incalculables pour qu'il utilise ces références comme cellid au lieu des pixels si j'ai bien compris. Après sa, je pourrais attaquer les déplacements et peut-être le retour banque. (Car avec cette technique, j'initialise la cellID de l'entrée, puis je rentre, j'initialise la cellID des banquiers et je parle à l'un d'entre eux puis je ressors incognitos avec retours à la map de récolte.) Bien sur, je pense faire qu'une seule map ce soir et je verais pour la suite. N'allons pas trop vite, le chemin sera sans doute semé d’embûche !
 
A

Anonymous

Invité
#10
Cela va t'apprendre pas mal de chose mais fais attention car les imprévus due au pixel est apprendre en conte.
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#11
Qu'entend tu pars les imprévus due au pixel est à prendre en compte ?
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#12
Pour réaliser un bon bot pixel, il faut que tu utilises FastFind, c'est vraiment très puissant (en passant, encore un merci à FastFrench pour sa réalisation).
FastFind 2.0 ici
Ouvre le fichier au3, tu as les fonctions avec leur doc en anglais. Si tu veux, y a une doc en français ici (ouvre le spoiler "Fonctions Autoit définies dans cet UDF FastFind.au3"), mais c'est pour la version 1.3, donc il manque quelques fonctions et certaines ont été modifiées.
Toutes ces fonctions te permettront de faire un bot pixel performant.

Voilà, si tu as des soucis avec cet UDF, n'hésite pas à répondre ici ;)
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#13
@NicoMasterChief , Merci bien, j'ai lu quasiment tout tes postes et les 2 docs que tu viens de mettre sur un autre poste.
Le problème s'est que j'arrive pas à comprendre comment faire ceci avec FastFind:


_Recherche du personnage sur la fenêtre dofus 800 x 600

\\J'avais pensé à sa :$perso = PixelSearch(0,0,800,600,0xFF0000)

_Si trouvé alors
\\ if not @error Then

_Recherche de groupe de monstre sur 800 x 600

\\J'avais pensé à :$creature = PixelSearch(0,0,800,600,0xFFFFFF)

_Si trouvé alors
\\ if not @error Then
\\ On exclu temporairement cette cellid grâce à FFAddExcludedArea() mais j'ai pas d'idée sur comment l'utiliser. Sans doute comme sa :
//Else
// FFAddExcludedArea($SearchResult[0]-1,$SearchResult[1]-1,$SearchResult[0]+1,$SearchResult[1]+1)

_On cherche le blé
//J'ai pu voir que pour le chanvre, un membre avait fait comme ceci :
//Global const $FFNB_Ble_COLORS=xx ;Nombre de pixel pour le chanvre trouvé
//Global const $gFFChanvreColors[$FFNB_CHANVRE_COLORS]=[xx, xx, xx, ..., xx] ;Les pixels trouvés sous forme hexadécimale.

_Si trouvé alors
\\ if not @error Then

_Allez dessus et si sa passe en surbrillance alors
//Aucune idée mais j'ai pu voir que sa pouvais ce formuler comme ceci:
//If PixelGetColor($SearchResult[0],$SearchResult[1]) <> $gFFChanvreColors Then

_On clique dessus
\\ MouseClick("left",$x[0],$y[1])

_On attend la récolte pré-définie avant de lancer la fonction récolte soit x temps en seconde.
\\Sleep($temps * 1500) ; 1500 car il faut le déplacement + la récolte de la ressource.

_On vérifie si on est pas en combat ou level up métier ou qu'on est full pods.
_Fight()
_LevelUp()
_FullPods()


Mais bon, je pense que sa va prendre du temps de faire sa par ressource donc j'avais pensé à faire quelque chose de simple avec les cellids déjà enregistré.
 

d4rkv4n

Contributeur
Inscrit
6 Mai 2012
Messages
129
Reactions
0
#14
Salut !

Si tu veux faire comme tu le dis quelque chose de simple, avec les cellID déjà enregistrés, alors tu suivras ma démarche :). Nous y reviendrons lorsque tu auras su inclure mes .au3, et que tu auras compris le système.
Chaque chose en son temps, mais courage, avec la motivation on peut faire de grandes choses ! :)
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#15
@D4rkv4n, Merci bien, je suis motivé et plein d'ambition. En espérant que je sois un bonne élève, Mr le professeur :D
Je compte faire beaucoup de tutoriel sur l'autoIt afin d'aider les futures membres et refaire vivre le forum enfin la partie autoIt comme avant.
Bien sur chaque chose en son temps, D'abord l'apprentissage et le codage de mon bot céréales puis la mise en tutoriel de celui-ci (totalement ou non ? Je verais bien) avec la totalité expliquer en français. Ainsi que comment utiliser la Dll de FastFind, etc.

Si tu peux m'apprendre via skype ou autre sa m'intéresse même si je poserai mes questions sur le forum et que j'y répondrai moi même après avoir compris.

De plus, avec ton système de CellIds, on peut faire de grande chose comme ... le refaire mais pour les Mapids (avec une demande de mapids avant la récolte), gérer l'aller-retours banque, gérer les cellids de changement de maps, en exclure certaine grâce à FastFinds, et ainsi révolutionner le monde des bots pixels sur D.

J'ai reçu ton invite skype et je tes ajoutés par la même occasion. Je me reconnecterai vers 18h 30 après les cours quoi.
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#16
Snakeddp a dit:
@NicoMasterChief , Merci bien, j'ai lu quasiment tout tes postes et les 2 docs que tu viens de mettre sur un autre poste.
Le problème s'est que j'arrive pas à comprendre comment faire ceci avec FastFind:


_Recherche du personnage sur la fenêtre D. 800 x 600

\\J'avais pensé à sa :$perso = PixelSearch(0,0,800,600,0xFF0000)

_Si trouvé alors
\\ if not @error Then

_Recherche de groupe de monstre sur 800 x 600

\\J'avais pensé à :$creature = PixelSearch(0,0,800,600,0xFFFFFF)

_Si trouvé alors
\\ if not @error Then
\\ On exclu temporairement cette cellid grâce à FFAddExcludedArea() mais j'ai pas d'idée sur comment l'utiliser. Sans doute comme sa :
//Else
// FFAddExcludedArea($SearchResult[0]-1,$SearchResult[1]-1,$SearchResult[0]+1,$SearchResult[1]+1)

_On cherche le blé
//J'ai pu voir que pour le chanvre, un membre avait fait comme ceci :
//Global const $FFNB_Ble_COLORS=xx ;Nombre de pixel pour le chanvre trouvé
//Global const $gFFChanvreColors[$FFNB_CHANVRE_COLORS]=[xx, xx, xx, ..., xx] ;Les pixels trouvés sous forme hexadécimale.

_Si trouvé alors
\\ if not @error Then

_Allez dessus et si sa passe en surbrillance alors
//Aucune idée mais j'ai pu voir que sa pouvais ce formuler comme ceci:
//If PixelGetColor($SearchResult[0],$SearchResult[1]) <> $gFFChanvreColors Then

_On clique dessus
\\ MouseClick("left",$x[0],$y[1])

_On attend la récolte pré-définie avant de lancer la fonction récolte soit x temps en seconde.
\\Sleep($temps * 1500) ; 1500 car il faut le déplacement + la récolte de la ressource.

_On vérifie si on est pas en combat ou level up métier ou qu'on est full pods.
_Fight()
_LevelUp()
_FullPods()


Mais bon, je pense que sa va prendre du temps de faire sa par ressource donc j'avais pensé à faire quelque chose de simple avec les cellids déjà enregistré.
Le but de FastFind est de remplacer PixelSearch par une fonction plus puissante, moi j'utilise "FFNearestSpot", qui permet de rechercher dans une zone définie un certain nombre de pixels.
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#17
@NicoMasterChief, Ok, merci bien je vais voir ce que je peux faire avec FFNearestSpot alors :)
 
Haut Bas