Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #RequireAdmin
  2.  
  3. #cs
  4. -----------------------------------
  5. NOM PROGRAMME : DOFBOT G3
  6. FONCTION : Automate pour Dofus
  7. PROGRAMMEUR : H@RRY
  8. DATE : Avril 2012 (ou Mars, je sais plus :o)
  9. -----------------------------------
  10. #ce
  11. #include <ButtonConstants.au3>
  12. #include <EditConstants.au3>
  13. #include <GUIConstantsEx.au3>
  14. #include <StaticConstants.au3>
  15. #include <TabConstants.au3>
  16. #include <WindowsConstants.au3>
  17. #include <array.au3>
  18.  
  19. ; On declare la version, ca sert pour verifier s'il y a une maj dispo, avant de lancer la GUI
  20. Global $currentVersion = 314
  21. _verifVersion()
  22.  
  23. #Region ### START Koda GUI section ### Form=c:\users\dreadz\desktop\autoit script\dbg4_modele.kxf
  24. Global $GUI = GUICreate("DBG" & $currentVersion, 601, 523, 203, 172)
  25. Global $Tab1 = GUICtrlCreateTab(8, 8, 577, 497)
  26. Global $TabSheet2 = GUICtrlCreateTabItem("Paysan v4")
  27. Global $journal = GUICtrlCreateEdit("", 16, 48, 257, 233, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$WS_VSCROLL))
  28. GUICtrlSetFont(-1, 8, 400, 0, "Arial")
  29. Global $grpCereales = GUICtrlCreateGroup("Cereale(s)", 288, 40, 121, 49)
  30. Global $chkbBle = GUICtrlCreateCheckbox("Ble (lv 1)", 296, 64, 97, 17)
  31. Global $btnNfoCereals = GUICtrlCreateButton("Aide", 352, 48, 51, 17)
  32. GUICtrlCreateGroup("", -99, -99, 1, 1)
  33. Global $grpMode = GUICtrlCreateGroup("Mode", 416, 40, 161, 89)
  34. Global $radioClassique = GUICtrlCreateRadio("Classique", 424, 56, 65, 17)
  35. Global $radioFarmer = GUICtrlCreateRadio("Farmer", 424, 80, 57, 17)
  36. Global $radioBanque = GUICtrlCreateRadio("Banque (reglages sup. )", 424, 104, 137, 17)
  37. Global $btnNfoMode = GUICtrlCreateButton("Aide", 528, 48, 43, 17)
  38. GUICtrlCreateGroup("", -99, -99, 1, 1)
  39. Global $grpAggro = GUICtrlCreateGroup("Aggro ressources", 416, 136, 161, 65)
  40. Global $radioBip = GUICtrlCreateRadio("Jouer un bip", 424, 152, 145, 17)
  41. Global $radioCombattre = GUICtrlCreateRadio("Combattre (reglages. sup.)", 424, 176, 145, 17)
  42. GUICtrlCreateGroup("", -99, -99, 1, 1)
  43. Global $grpNom = GUICtrlCreateGroup("Nom du personnage", 416, 208, 161, 57)
  44. Global $inputNomPerso = GUICtrlCreateInput("", 424, 232, 145, 21)
  45. GUICtrlCreateGroup("", -99, -99, 1, 1)
  46. Global $grpTemps = GUICtrlCreateGroup("Temps de fauche (en sec)", 416, 272, 161, 57)
  47. Global $inputTempsFauche = GUICtrlCreateInput("", 424, 296, 145, 21)
  48. GUICtrlCreateGroup("", -99, -99, 1, 1)
  49. Global $btnLancer = GUICtrlCreateButton("LANCER (Echap pour stopper)", 416, 336, 163, 41)
  50. Global $btnEffacerJournal = GUICtrlCreateButton("Vider journal", 144, 32, 75, 15)
  51. Global $grpBanque = GUICtrlCreateGroup("Mode Banque", 202, 364, 206, 129)
  52. Global $btnNfoBanque = GUICtrlCreateButton("Aide", 288, 371, 43, 16)
  53. Global $journalD = GUICtrlCreateEdit("", 210, 388, 89, 95, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$WS_VSCROLL))
  54. GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
  55. Global $btnEffacerJournalD = GUICtrlCreateButton("Effacer", 356, 376, 43, 17)
  56. Global $btnHaut = GUICtrlCreateButton("Haut", 330, 404, 43, 17)
  57. Global $btnGauche = GUICtrlCreateButton("Gauche", 303, 420, 43, 17)
  58. Global $btnDroite = GUICtrlCreateButton("Droite", 357, 420, 43, 17)
  59. Global $btnBas = GUICtrlCreateButton("Bas", 330, 436, 43, 17)
  60. Global $radioBanqueAstrub = GUICtrlCreateRadio("Banque d'Astrub", 304, 467, 97, 17)
  61. GUICtrlCreateGroup("", -99, -99, 1, 1)
  62. GUICtrlSetState(-1, $GUI_DISABLE)
  63. Global $grpCombattre = GUICtrlCreateGroup("Combattre", 16, 364, 177, 129)
  64. Global $btnNfoCombattre = GUICtrlCreateButton("Aide", 80, 372, 43, 17)
  65. Global $lblAttaqueKey = GUICtrlCreateLabel("Raccourci :", 24, 388, 59, 17)
  66. Global $radioAtkKey1 = GUICtrlCreateRadio("1", 96, 391, 25, 14)
  67. Global $radioAtkKey2 = GUICtrlCreateRadio("2", 128, 390, 25, 15)
  68. Global $radioAtkKey3 = GUICtrlCreateRadio("3", 160, 390, 25, 15)
  69. Global $lblNbLancerTour = GUICtrlCreateLabel("Nombre attaque/tour :", 24, 412, 109, 17)
  70. Global $inputNbLancerTour = GUICtrlCreateInput("", 136, 412, 49, 21)
  71. Global $lblPortee = GUICtrlCreateLabel("Portee de l'attaque :", 24, 436, 99, 17)
  72. Global $inputPortee = GUICtrlCreateInput("", 136, 436, 49, 21)
  73. Global $lblNbPM = GUICtrlCreateLabel("Ton nombre de PM :", 24, 460, 101, 17)
  74. Global $inputPM = GUICtrlCreateInput("", 136, 460, 49, 21)
  75. GUICtrlCreateGroup("", -99, -99, 1, 1)
  76. GUICtrlSetState(-1, $GUI_DISABLE)
  77. Global $grpNfo = GUICtrlCreateGroup("", 416, 384, 161, 109)
  78. Global $btnVisiterSite = GUICtrlCreateButton("Visiter dofbots.blogspot.com", 424, 466, 145, 18)
  79. Global $lblEtat = GUICtrlCreateLabel("Dofbot a l'arret", 425, 423, 88, 19)
  80. GUICtrlSetFont(-1, 10, 400, 0, "Calibri")
  81. GUICtrlSetColor(-1, 0xFF0000)
  82. Global $lblEmail = GUICtrlCreateLabel("harry.dotcom@hotmail.fr", 424, 448, 118, 17)
  83. Global $lblVersion = GUICtrlCreateLabel("Version : " & $currentVersion, 425, 400, 122, 17)
  84. GUICtrlCreateGroup("", -99, -99, 1, 1)
  85. Global $Group2 = GUICtrlCreateGroup("Options", 288, 96, 121, 65)
  86. Global $btnNfoOptions = GUICtrlCreateButton("Aide", 352, 104, 51, 17)
  87. Global $inputOptions = GUICtrlCreateInput("", 296, 128, 105, 21)
  88. GUICtrlCreateGroup("", -99, -99, 1, 1)
  89. Global $Group3 = GUICtrlCreateGroup("Totaux", 16, 288, 177, 73)
  90. Global $inputTotalFauches = GUICtrlCreateInput("", 24, 329, 49, 21, $ES_READONLY)
  91. Global $inputTotalPopups = GUICtrlCreateInput("", 80, 328, 49, 21, $ES_READONLY)
  92. Global $inputTotalCombats = GUICtrlCreateInput("", 136, 328, 49, 21, $ES_READONLY)
  93. Global $Label9 = GUICtrlCreateLabel("Fauches", 24, 310, 45, 17)
  94. Global $Label10 = GUICtrlCreateLabel("Popups", 80, 310, 40, 17)
  95. Global $Label11 = GUICtrlCreateLabel("Combats", 136, 310, 45, 17)
  96. GUICtrlCreateGroup("", -99, -99, 1, 1)
  97. Global $btnCopierJournal = GUICtrlCreateButton("Copier journal", 64, 32, 75, 15)
  98. GUICtrlCreateTabItem("")
  99. Global $lblFooter = GUICtrlCreateLabel("Codé par H@rry. Dofbot est gratuit.", 8, 505, 170, 17)
  100. Global $lblTitle = GUICtrlCreateLabel("Dofbot 3e Generation", 232, 0, 144, 23)
  101. GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
  102. GUICtrlSetColor(-1, 0x808000)
  103. GUISetState(@SW_SHOW)
  104. #EndRegion ### END Koda GUI section ###
  105.  
  106. ; ---------------------------------------
  107. ; ----- LES VARIABLES -------------------
  108. ; ---------------------------------------
  109. $modeBot = 0
  110. $tempsFauche = 0
  111. $modeAggro = 0
  112. $continuer = 0
  113. $erreur = 0
  114. $colorCheck = 0
  115. $nbDeplacements = 0
  116.  
  117. Global $couleurBle[4] = ["0xF8D73E","0xF8E83E","0xF8DF38","0xFAD334"]
  118. Global $couleurOrge[4] = ["0x394F08","0x3F540B","0x385009","0x3D500C"]
  119. Global $couleurBleInventaire[5] = ["0xD9A910","0xE3BA2E","0xDBA801","0xCF9B00","0xE0B630"]
  120.  
  121. Global Const $couleurCroix = 0xFF6100
  122. Global Const $theOrangeFight = 0xFF4D00
  123. Global Const $theRed = 0xFF0000
  124. Global Const $theBlue = 0x0000FF
  125. Global Const $theOrange = 0xFF6100
  126. Global Const $theGreenFight = 0x006600
  127. Global Const $couleurInventaireVide = 0x514A3C
  128. Global Const $couleurInventaireVide1 = 0xBDB9A1 ; BugInvPlein (1) 12433825 : 0xBDB9A1
  129.  
  130. Global Const $couleurInventairePlein = 0xAE0707
  131. Global Const $verif = 10
  132. Global $maxMapHaut = 42
  133. Global $maxMapBas = 500
  134. Global $maxMapDroite = 680
  135. Global $maxMapGauche = 19
  136.  
  137. Global $deplacementsMap[100]
  138. Global $posDetruire[2], $posValiderDetruire[2], $posAmie[2], $posEnnemy[2] = [0,0]
  139. $compteur = 0
  140. $nbErreursCsq = 0
  141. $popUp = 0
  142. $fauche = 0
  143. $i = 0
  144. $stepDMap = 0
  145. $atkPortee = ""
  146. $atkKey = ""
  147. $nbPM = ""
  148. $nbLancerTour = ""
  149. $combatState = 0
  150. $nbCombats = 0
  151. Global $botOn = 0
  152. Global $distanceEnnemy = 0
  153. Global $posAtkKey[2] = [0,0]
  154. Global $trajetState = 0
  155. Global $couleurInv[26]
  156. Global $sortieDeCombat = 0
  157. Global $optionSlow = 0
  158. Global $optionDebug = 0
  159.  
  160. _msgBienvenue(@HOUR)
  161. ;=== LETS GO ================
  162. ;============================
  163. _disableModeBanque()
  164. _disableModeCombat()
  165. While 1
  166.     $nMsg = GUIGetMsg()
  167.     Switch $nMsg
  168.         Case $GUI_EVENT_CLOSE
  169.             exit
  170.  
  171.         ; Mode bot
  172.         Case $btnNfoMode
  173.             _infoMode()
  174.         Case $radioClassique
  175.             $modeBot = 1
  176.             _disableModeBanque()
  177.         Case $radioFarmer
  178.             $modeBot = 2
  179.             _disableModeBanque()
  180.         Case $radioBanque
  181.             $modeBot = 3
  182.             _enableModeBanque()
  183.  
  184.         ; Options Bot
  185.         Case $btnNfoOptions
  186.             _infoOptions()
  187.  
  188.         ; Cereale(s)
  189.         Case $btnNfoCereals
  190.             _infoCereals()
  191.  
  192.         ; Mode combat
  193.         Case $btnNfoCombattre
  194.             _infoCombattre()
  195.         Case $radioBip
  196.             $modeAggro = 1
  197.             _disableModeCombat()
  198.         Case $radioCombattre
  199.             $modeAggro = 2
  200.             _enableModeCombat()
  201.         Case $radioAtkKey1
  202.             $atkKey = 1
  203.             $posAtkKey[0] = 428
  204.             $posAtkKey[1] = 524
  205.         Case $radioAtkKey2
  206.             $atkKey = 2
  207.             $posAtkKey[0] = 453
  208.             $posAtkKey[1] = 525
  209.         Case $radioAtkKey3
  210.             $atkKey = 3
  211.             $posAtkKey[0] = 478
  212.             $posAtkKey[1] = 525
  213.  
  214.         ; Mode Banque
  215.         Case $btnNfoBanque
  216.             _infoBanque()
  217.         Case $btnHaut
  218.             _choixDirection("haut")
  219.         Case $btnBas
  220.             _choixDirection("bas")
  221.         Case $btnDroite
  222.             _choixDirection("droite")
  223.         Case $btnGauche
  224.             _choixDirection("gauche")
  225.         Case $btnEffacerJournalD
  226.             _effacerJournalDMap()
  227.         Case $radioBanqueAstrub
  228.             $nomBanque = 1
  229.  
  230.         Case $btnCopierJournal
  231.             ClipPut($journal)
  232.         Case $btnEffacerJournal
  233.             GUICtrlSetData($journal,"")
  234.  
  235.         Case $btnVisiterSite
  236.             ShellExecute("http://dofbots.blogspot.com")
  237.  
  238.         Case $btnLancer
  239.             _verifsDemarrage()
  240.             if $botOn = 0 Then
  241.                 ContinueCase
  242.             EndIf
  243.  
  244.             ; == Et maintenant, le coeur de la maison, la cuisine ==
  245.             While 1
  246.                 _allVerifs()
  247.                 if $botOn = 1 Then ; Si tout va bien on y va
  248.                     _fauchage()
  249.                 Else ; Sinon on arrete le bot
  250.                     journalMsg("Arret du bot")
  251.                     GUICtrlSetState($btnLancer, $GUI_ENABLE)
  252.                     GUICtrlSetData($lblEtat, "A l'arret")
  253.                     GUICtrlSetColor($lblEtat, 0xFF0000)
  254.                     ; Et on reactive les deux loulous
  255.                     _enableModeBanque()
  256.                     _enableModeCombat()
  257.                     ContinueCase
  258.                 EndIf
  259.             WEnd
  260.     EndSwitch
  261. WEnd
  262.  
  263. ; === Fonctions generales =======
  264. ; ===============================
  265. Func journalMsg($messageJournal, $autresInfos = "")
  266.     ; La fonction qui ecrit dans le journal
  267.     If $optionDebug = 0 Then
  268.         $journalPrevious = GUICtrlRead($journal)
  269.         GUICtrlSetData($journal, @HOUR & ":" & @MIN & ":" & @SEC & " : " & $messageJournal & @CRLF & $journalPrevious )
  270.     Else
  271.         $journalPrevious = GUICtrlRead($journal)
  272.         GUICtrlSetData($journal, @HOUR & ":" & @MIN & ":" & @SEC & ":" & @MSEC & " : " & $messageJournal & " + " & $autresInfos & @CRLF & $journalPrevious )
  273.     EndIf
  274. EndFunc
  275.  
  276. Func stopBot($raison, $autresInfos = "")
  277.     journalMsg($raison & ". Arret en cours...")
  278.     If $combatState = 1 Then
  279.         $combatState = 0
  280.     EndIf
  281.     $botOn = 0
  282. EndFunc
  283.  
  284. Func closeBotRac()
  285.     If $botOn = 1 Then
  286.         journalMsg("Arret en cours...", "Appui sur Echap")
  287.         $botOn = 0
  288.         If $combatState = 1 Then
  289.             $combatState = 0
  290.         EndIf
  291.     EndIf
  292. EndFunc
  293.  
  294. Func _pause($lvl)
  295.     $sleepingTime = $lvl * 500
  296.     If $optionSlow = 0 Then
  297.         Sleep($sleepingTime)
  298.     ; Si on est en slow option
  299.     ElseIf $optionSlow = 1 Then
  300.         Sleep($sleepingTime * 3)
  301.     ; Si on est en HYPER slow option
  302.     ElseIf $optionSlow = 2 Then
  303.         Sleep($sleepingTime * 6)
  304.     Else
  305.         journalMsg("PAUSE ERROR : Comment t'as fait pour en arriver la ?")
  306.     EndIf
  307. EndFunc
  308.  
  309. Func _msgBienvenue($heure)
  310.     journalMsg("Salut " & @UserName & " ! (OS :" & @OSVersion & ")" )
  311. EndFunc
  312.  
  313. ; === Fonctions de demarrage =====
  314. ; ===============================
  315. Func _verifsDemarrage()
  316.     $verifsRequises=0
  317.     $verifsValidees=0
  318.     $ErreursList = "Voici la liste des erreurs :"
  319.  
  320.     ; -- Mode Bot ------------------
  321.     ; ------------------------------
  322.     $verifsRequises = $verifsRequises + 1 ; 0/1
  323.     If $modeBot <> 0 Then ; Mode bot bien choisi
  324.         $verifsValidees = $verifsValidees + 1 ; 1/1
  325.     Else
  326.         $PreviousErreursList = $ErreursList
  327.         $ErreursList = ( $PreviousErreursList & @CRLF & "- Le mode n'est pas choisi")
  328.     EndIf
  329.  
  330.     If $modeBot = 3 Then ; Mode banque regle
  331.         $verifsRequises = $verifsRequises + 1
  332.         If $deplacementsMap[0] <> "" Then
  333.             $verifsValidees = $verifsValidees + 1
  334.         Else
  335.             $PreviousErreursList = $ErreursList
  336.             $ErreursList = ( $PreviousErreursList & @CRLF & "- Deplacements pour le mode banque non enregistres")
  337.         EndIf
  338.     EndIf
  339.  
  340.     ; -- Mode Aggro ----------------
  341.     ; ------------------------------
  342.     $verifsRequises = $verifsRequises + 1 ; ; 1/2
  343.     If $modeAggro <> 0 Then ; Mode aggro bien choisi
  344.         $verifsValidees = $verifsValidees + 1 ; 2/2
  345.     Else
  346.         $PreviousErreursList = $ErreursList
  347.         $ErreursList = ( $PreviousErreursList & @CRLF & "- Tu n'as pas choisi de mode pour les agressions")
  348.     EndIf
  349.  
  350.     If $modeAggro = 2 Then ; Mode combat bien regle
  351.         $verifsRequises = $verifsRequises + 1 ; 2/3
  352.         $atkPortee = GUICtrlRead($inputPortee)
  353.         $nbPM = GUICtrlRead($inputPM)
  354.         $nbLancerTour = GUICtrlRead($inputNbLancerTour)
  355.         If $atkKey <> "" And $nbLancerTour <> "" And $atkPortee <> "" And $nbPM <> "" Then
  356.             $verifsValidees = $verifsValidees + 1 ; 3/3
  357.         Else
  358.             $PreviousErreursList = $ErreursList
  359.             $ErreursList = ( $PreviousErreursList & @CRLF & "- Tu n'as pas bien rempli les reglages sup. du mode Combattre")
  360.         EndIf
  361.     EndIf
  362.  
  363.     ; -- Nom perso -----------------
  364.     ; ------------------------------
  365.     $verifsRequises = $verifsRequises + 1 ; 2/3
  366.     $nomPerso = GUICtrlRead($inputNomPerso)
  367.     If WinExists($nomPerso) And $nomPerso <> "" Then
  368.         sleep(200)
  369.         WinSetState($nomPerso,"",@SW_MINIMIZE)
  370.         WinSetState($nomPerso,"",@SW_RESTORE)
  371.         WinMove($nomPerso, "", 0, 0, 700, 600)
  372.         WinMove($GUI,"",700, 0)
  373.         $verifsValidees = $verifsValidees + 1 ; 3/3
  374.     ElseIf $nomPerso = "" Then
  375.         $PreviousErreursList = $ErreursList
  376.         $ErreursList = ( $PreviousErreursList & @CRLF & "- Tu n'as pas ecrit de nom de personnage")
  377.     Else
  378.         $PreviousErreursList = $ErreursList
  379.         $ErreursList = ( $PreviousErreursList & @CRLF & "- Fenetre de ton personnage introuvable, verifies le Pseudo")
  380.     EndIf
  381.  
  382.     ; -- Temps de Fauche -----------
  383.     ; ------------------------------
  384.     $verifsRequises = $verifsRequises + 1 ; 3/4
  385.     $tempsFauche = GUICtrlRead($inputTempsFauche)
  386.     If $tempsFauche <> "" And $tempsFauche > 0 Then
  387.         $verifsValidees = $verifsValidees + 1
  388.     ElseIf $tempsFauche = "" Then
  389.         $PreviousErreursList = $ErreursList
  390.         $ErreursList = ( $PreviousErreursList & @CRLF & "- Temps de fauche non renseigne")
  391.     Else
  392.         $PreviousErreursList = $ErreursList
  393.         $ErreursList = ( $PreviousErreursList & @CRLF & "- Temps de fauche incorrect")
  394.     EndIf
  395.  
  396.     ; -- Si tout est bon on lance --
  397.     if $verifsValidees = $verifsRequises Then
  398.         _preparatifs()
  399.         $lancement = MsgBox(64+4, "Dofbot", "NOTE : Option debug " & $optionDebug & @CRLF & @CRLF & _
  400.         "Avant de m'envoyer un mail ou de laisser un commentaire sur le blog pour dire que ca ne marche pas, verifies bien que :" & @CRLF & @CRLF & _
  401.         ". Tu as bien laisser en place le redimensionnement." & @CRLF & _
  402.         ". Le nom de ton perso est different du nom d'utilisateur Windows." & @CRLF & _
  403.         ". Ton theme de couleur d'interface est bien le theme Beige (1.x)." & @CRLF & _
  404.         ". Tu as desactive la transparence." & @CRLF & _
  405.         ". Tu es en mode creature + mode tactique pour le mode combat." & @CRLF & _
  406.         ". Ce n'est pas fini ! Tes raccourcis doivent etre les suivants :" & @CRLF & _
  407.         "- Passer son tour : 'CTRL+W'" & @CRLF & _
  408.         "- Ouvrir/fermer l'inventaire : 'i'"& @CRLF & @CRLF & _
  409.         "Alors ? Tu n'as rien oublier ? T'es suuur de toi ? On peut commencer ?")
  410.         If $lancement = 6 Then
  411.             _demarrage()
  412.         EndIf
  413.     ; -- Sinon .. Erreur --
  414.     Else
  415.         MsgBox(48,"Dofbot","Erreur, il manque des informations ou certaines informations sont incorrectes." & @CRLF & _
  416.         $ErreursList & @CRLF & @CRLF & _
  417.         "Autres precisions : Le bot doit etre lance en mode administrateur.")
  418.     EndIf
  419. EndFunc
  420.  
  421. Func _switchMediumQuality()
  422.     sleep(500)
  423.     MouseClick("right",478, 120)
  424.     sleep(500)
  425.     MouseClick("left",534, 166)
  426.     sleep(500)
  427.     MouseClick("left",610, 177)
  428. EndFunc
  429.  
  430. Func _preparatifs()
  431.  
  432.     $options = GUICtrlRead($inputOptions)
  433.     If $options = 10 Then
  434.         $optionSlow = 1
  435.         $optionDebug = 0
  436.     ElseIf $options = 1030 Then
  437.         $optionSlow = 1
  438.         $optionDebug = 1
  439.     ElseIf $options = 11 Then
  440.         $optionSlow = 2
  441.         $optionDebug = 0
  442.     ElseIf $options = 1130 Then
  443.         $optionSlow = 2
  444.         $optionDebug = 1
  445.     ElseIf $options = 30 Then
  446.         $optionSlow = 0
  447.         $optionDebug = 1
  448.     EndIf
  449.  
  450.     ; On switch en medium quality
  451.     _switchMediumQuality()
  452. EndFunc
  453.  
  454. Func _demarrage()
  455.     ; On transforme le bouton de demarrage et le label d'etat
  456.     GUICtrlSetState($btnLancer, $GUI_DISABLE)
  457.     GUICtrlSetData($lblEtat, "Marche")
  458.     GUICtrlSetColor($lblEtat, 0x00FF00)
  459.     ; On desactive les reglages
  460.     _disableModeBanque()
  461.     _disableModeCombat()
  462.     HotKeySet("{ESC}", "closeBotRac" )
  463.     journalMsg("Demarrage du bot")
  464.     $botOn = 1
  465.  
  466.     ; Reinitialisation des valeurs en cas de redemarrage
  467.     $nbErreursCsq = 0
  468. EndFunc
  469.  
  470.  
  471. ; === Fonctions de verifications =
  472. ; ================================
  473. Func _allVerifs()
  474.     If $combatState <> 1 Then
  475.         _verifAggros()
  476.         If $trajetState = 0 Then
  477.             _verifInventaire()
  478.         EndIf
  479.     EndIf
  480.     _verifsPopups()
  481.     sleep(1000)
  482. EndFunc
  483.  
  484. Func _verifInventaire()
  485.     ; Si le compteur de fauche = la verif, on va jeter un oeil
  486.     If $compteur = $verif And $botOn = 1 Then
  487.         Send ("i")
  488.         journalMsg("Verification de l'inventaire")
  489.         $pods = 0
  490.         $compteur = 0
  491.         $stepNumber = 0
  492.         $abscisse = 0
  493.         _pause("6")
  494.  
  495.         ; On releve la temperature de nos pods tranche par tranche
  496.         Do
  497.             $couleurInv[$stepNumber] = PixelGetColor(540 + $abscisse,487)
  498.             If $optionDebug = 1 Then
  499.                 journalMsg("Tranche " & $stepNumber & " = " & $couleurInv[$stepNumber])
  500.             EndIf
  501.             $stepNumber = $stepNumber + 1
  502.             $abscisse = $abscisse + 5
  503.         Until $stepNumber = 26
  504.  
  505.         $stepNumber = 0
  506.         Do
  507.             $color = $couleurInv[$stepNumber]
  508.             $stepNumber = $stepNumber + 1
  509.             ; Seulement si la couleur est rouge on considere l'inevntaire plein
  510.             If $color = $couleurInventairePlein Or $stepNumber = 26 Then
  511.                 $pods = 1
  512.             EndIf
  513.         Until $color = $couleurInventaireVide Or $color = $couleurInventaireVide1 Or $pods = 1
  514.         ; La 2 c'est pour le bug inventaire vide (apparemment pas encore resolu chez certains users)
  515.  
  516.         ; =============== QUARTIER DEBUG ==============
  517.         ; =============================================
  518.         If $optionDebug = 1 Then
  519.             If $color = $couleurInventairePlein Then
  520.                 journalMsg("CouleurInventairePlein trouvee a la tranche " & $stepNumber)
  521.             ElseIf $stepNumber = 26 Then
  522.                 journalMsg("CouleurInventairePlein non trouvee")
  523.             ElseIf $color = $couleurInventaireVide Then
  524.                 journalMsg("CouleurInventaireVide trouvee tranche " & $stepNumber)
  525.             EndIf
  526.         EndIf
  527.  
  528.         ; --- INVENTAIRE PLEIN ---
  529.         ; ------------------------
  530.         if $pods = 1 Then
  531.             journalMsg("Inventaire plein (25/25)")
  532.             ; Mode banque
  533.             if $modeBot = 3 Then
  534.                 sleep(500)
  535.                 Send ("i")
  536.                 sleep(5000)
  537.                 _allerBanque()
  538.                 _deposerBanque()
  539.                 _retourBanque()
  540.             ; Pour mode 1 et 2 on fait ce qu'il y a a faire !
  541.             ElseIf $modeBot <> 3 Then
  542.                 _inventairePlein()
  543.                 sleep(3000)
  544.                 ; On referme l'inventaire
  545.                 Send ("i")
  546.                 sleep(3000)
  547. ;~              MouseClick("left", 667, 80) ; Au clic comme a l'ancienne dans la G2 :p
  548. ;~              sleep(2000)
  549.             EndIf
  550.  
  551.         ; --- INVENTAIRE NON PLEIN ---
  552.         ; ----------------------------
  553.         Else
  554.             journalMsg("Inventaire non plein (" & $stepNumber - 1 & "/25)")
  555.             Send ("i")
  556.             sleep(3000)
  557.         EndIf
  558.     EndIf
  559. EndFunc
  560.  
  561. Func _inventairePlein()
  562.     ; Mode classique
  563.     if $modeBot = 1 Then
  564.         stopBot("Mode classique")
  565.     EndIf
  566.  
  567.     ; Mode farmer
  568.     if $modeBot = 2 Then
  569.         MouseClick("left",663,133)
  570.         sleep(500)
  571.         Send("Blé")
  572.         sleep(500)
  573.         ; On clique droit a la position de la premiere ressource trouvee
  574.         MouseClick("right", 550, 155)
  575.         sleep(500)
  576.         $posDetruire[0] = 551 - 20
  577.         $posDetruire[1] = 155 + 42
  578.         ; On clic gauche sur Detruire
  579.         MouseClick("left",$posDetruire[0], $posDetruire[1])
  580.         sleep(500)
  581.         $posValiderDetruire[0] = $posDetruire[0] + 65
  582.         $posValiderDetruire[1] = $posDetruire[1] - 15
  583.         sleep(500)
  584.         ; On valide la quantitee
  585.         MouseClick("left",$posValiderDetruire[0], $posValiderDetruire[1])
  586.         sleep(500)
  587.         ; Voulez vous vraiment ... OUI !
  588.         MouseClick("left",320, 340)
  589.         journalMsg("Suppression du ble effectuee")
  590.     EndIf
  591. EndFunc
  592.  
  593. Func _verifAggros()
  594.     ; On check la couleur a l'endroit qui devient orange quand on est en combat : le bouton pret
  595.     $couleur = PixelGetColor(336, 566)
  596.     if $couleur = $couleurCroix Then ; (car couleur croix = couleur bouton Pret)
  597.         journalMsg("Detection d'entree en combat")
  598.         if $modeAggro = 1 Then
  599.             _alerte()
  600.         ElseIf $modeAggro = 2 Then
  601.             _combattre()
  602.         EndIf
  603.     EndIf
  604. EndFunc
  605.  
  606. Func _verifFinCombat()
  607.     ; On regarde si la croix est dans la place !
  608.     $color = PixelSearch(655, 70, 670, 180, $couleurCroix)
  609.     If Not @error Then
  610.         $nbCombats = $nbCombats + 1
  611.         GUICtrlSetData($inputTotalCombats, $nbCombats )
  612.         $combatState = 0
  613.         journalMsg("Fin du combat")
  614.         MouseClick("left", $color[0], $color[1])
  615.         ; Si on etait en trajet, on recommence la derniere action
  616.         If $trajetState = 1 Then
  617.             $sortieDeCombat = 1
  618.             $stepDMap = $stepDMap - 1
  619.             journalMsg("On reprend le trajet aller (" & $stepDMap & "e etape)")
  620.         ElseIf $trajetState = 2 Then
  621.             $sortieDeCombat = 1
  622.             $stepDMap = $stepDMap + 1
  623.             journalMsg("On reprend le trajet retour (" & $stepDMap & "e etape)")
  624.         EndIf
  625.     EndIf
  626. EndFunc
  627.  
  628. Func _verifsPopups()
  629.     _killPopups(370, 343, "Up/Echange/Defi")
  630.     _killPopups(486, 245, "Up perso")
  631.     ; Le reste seulement si on est pas en trajet
  632.     If $trajetState = 0 Then
  633.         _killPopups(199, 292, "Invitation groupe")
  634.         _killPopups(665, 81, "Inventaire")
  635.         _killPopups(637, 78, "Fenetre des sorts")
  636.         _killPopups(218, 81, "Fenetre des caracs")
  637.         _killPopups(671, 67, "Map")
  638.     EndIf
  639. EndFunc
  640.  
  641. Func _killPopups($x, $y, $sujet)
  642.     $couleur = PixelGetColor($x, $y)
  643.     if $couleur = $couleurCroix Then
  644.         ; Pour l'inventaire, on suprimme le mouseclick, car il peut causer des changements de map
  645.         If $sujet = "Inventaire" Then
  646.             Send("i")
  647.             $popUp = $popUp + 1
  648.             GUICtrlSetData($inputTotalPopups, $popUp )
  649.             journalMsg("Fermeture Popup (" & $sujet & ")")
  650.         Else
  651.             $popUp = $popUp + 1
  652.             GUICtrlSetData($inputTotalPopups, $popUp )
  653.             MouseClick("left",$x, $y)
  654.             journalMsg("Fermeture Popup (" & $sujet & ")")
  655.         EndIf
  656.     EndIf
  657. EndFunc
  658.  
  659.  
  660. ; === Fonctions Aggros ==========
  661. ; ===============================
  662. Func _alarmSong()
  663.     Beep (200 *3,500)
  664.     Beep (300 *3,500)
  665.     Beep (400 *3,500)
  666.     sleep(500)
  667.     Beep (400 *3,500)
  668.     Beep (400 *3,500)
  669.     Beep (400 *3,500)
  670. EndFunc
  671.  
  672. Func _alerte()
  673.     stopBot("Alerte aggro !!")
  674.     _alarmSong()
  675. EndFunc
  676.  
  677. Func _combattre()
  678.     $combatState = 1
  679.     journalMsg("Dofbot combat !")
  680.     ; MouseClick("left", 320, 505) ; Verouillage combatn // MouseClick("left", 309, 514) ; Mode tactique // Mode creatures
  681.     Send("^w") ; Debut du combat
  682.     _pause("6")
  683.     ; On retire le challenge et les cartes !
  684.     MouseClick("left", 32, 164)
  685.     MouseClick("left", 687, 480)
  686.     Do
  687.         _waitTour()
  688.     Until $combatState = 0
  689. EndFunc
  690.  
  691. Func _waitTour()
  692.     Do
  693.         _pause("1")
  694.         ; On passe un petit coup de verifs, ca fait pas de mal
  695.         _allVerifs()
  696.         ; On check la couleur a 4-5 secondes dans l'horloge du tour
  697.         $color = PixelGetColor(372, 516)
  698.         ; Et si celle si est orange, on lance le tour !
  699.         If $color = $theOrangeFight Then
  700.             journalMsg("A notre tour")
  701.             _tour()
  702.         ; Autrement, on verifie si le combat est fini. Qui sait ?
  703.         Else
  704.             _verifFinCombat()
  705.         EndIf
  706.     ; Tout cela jusqu'a ce que le combatState soit = 0
  707.     Until $combatState = 0
  708.  
  709. EndFunc
  710.  
  711. Func _tour()
  712.     ; On cherche posAmie (position de notre personnage)
  713.     _searchAmie()
  714.     ; On cherche posEnnemy (position de l'ennemi le plus proche)
  715.     _searchEnnemy()
  716.     ; On passe a la suite seulement si les positions sont trouvees (car positions non trouvees = $combatState 0 )
  717.     If $combatState = 1 Then
  718.         ; Si l'ennemi est a portee, on attaque et on passe notre tour
  719.         If $distanceEnnemy <= $atkPortee Then
  720.             journalMsg("Ennemi a portee (" & $distanceEnnemy & " < " & $atkPortee & ")")
  721.             _attaquerEnnemy()
  722.             _passerTour()
  723.         ; S'il n'est pas a portee, on se rapproche !
  724.         Else
  725.             journalMsg("On se rapproche de l'ennemi")
  726.             _seRapprocherEnnemy()
  727.             ; Puis on reffectue les recherches
  728.             _searchAmie()
  729.             _searchEnnemy()
  730.             ; On passe a la suite seulement si les positions sont trouvees (car positions non trouvees = $combatState 0 )
  731.             If $combatState = 1 Then
  732.                 ; Puis on attaque et on passe notre tour s'il est portee
  733.                 If $distanceEnnemy <= $atkPortee Then
  734.                     journalMsg("Ennemi a portee (" & $distanceEnnemy & " < " & $atkPortee & ")")
  735.                     _attaquerEnnemy()
  736.                     _passerTour()
  737.                 ; Ou on passe son tour
  738.                 Else
  739.                     _passerTour()
  740.                 EndIf
  741.             EndIf
  742.         EndIf
  743.     EndIf
  744.     ; On regarde si le combat est termine.
  745.     _verifFinCombat()
  746. EndFunc
  747.  
  748. Func _passerTour()
  749.     Send("^w")
  750.     journalMsg("On passe le tour")
  751.     _resetPos()
  752.     _pause("10")
  753. EndFunc
  754.  
  755. Func _attaquerEnnemy()
  756.     $nombreDeFois = 0
  757.     journalMsg("On attaque (" & $nbLancerTour & " fois)")
  758.     Do
  759.         Mouseclick("left", $posAtkKey[0], $posAtkKey[1])
  760.         MouseClick("left", $posEnnemy[0], $posEnnemy[1])
  761.         _pause("6")
  762.         $nombreDeFois = $nombreDeFois + 1
  763.     Until $nombreDeFois = $nbLancerTour
  764. EndFunc
  765.  
  766. Func _searchAmie()
  767.     $posAmie = PixelSearch( $maxMapGauche , $maxMapHaut, $maxMapDroite, $maxMapBas, $theRed, 7)
  768.  
  769.     If $optionDebug = 1 Then
  770.         journalMsg("PosAmie = " & $posAmie[0] & "," & $posAmie[1] )
  771.     EndIf
  772.  
  773.     ; Position non trouvee !
  774.     If @error Then
  775.         _verifFinCombat()
  776.         If $combatState = 0 Then
  777.             journalMsg("Nous ne sommes pas en combat !")
  778.         Else
  779.             stopBot("Position personnage introuvable.")
  780.             _alarmSong()
  781.         EndIf
  782.     EndIf
  783. EndFunc
  784.  
  785. Func _searchEnnemy()
  786.     $distanceEnnemy = 0
  787.     $ecartX = 0
  788.     $ecartY = 0
  789.     $sortiesFenetre = 4
  790.     $continuer = 0
  791.     Do
  792.         $distanceEnnemy = $distanceEnnemy + 1
  793.         $ecartX = $ecartX + 20
  794.         $ecartY = $ecartY + 10
  795.         $SearchEnnemyGauche = $posAmie[0] - $ecartX
  796.         $SearchEnnemyDroite = $posAmie[0] + $ecartX
  797.         $SearchEnnemyHaut = $posAmie[1] - $ecartY
  798.         $SearchEnnemyBas = $posAmie[1] + $ecartY
  799.         $posEnnemy = PixelSearch( $SearchEnnemyGauche, $SearchEnnemyHaut, $SearchEnnemyDroite, $SearchEnnemyBas, $theBlue, 7)
  800.         ; Quand ca marche on verifie que ca se trouve bien dans la fenetre
  801.         If Not @error Then
  802.             If $posEnnemy[0] > 5 And $posEnnemy[0] < 695 Then $sortiesFenetre = $sortiesFenetre - 2
  803.             If $posEnnemy[1] < 510 And $posEnnemy[1] > 30 Then $sortiesFenetre = $sortiesFenetre - 2
  804.             If $sortiesFenetre = 0 Then $continuer = 1
  805.         EndIf
  806.     ; Jusqu'a ce que
  807.     Until $continuer = 1 Or $distanceEnnemy = 50
  808.  
  809.     If $optionDebug = 1 Then
  810.         journalMsg("PosEnnemy = " & $posEnnemy[0] & "," & $posEnnemy[1])
  811.     EndIf
  812.  
  813.     ; On reagit a la conclusion precedente
  814.     If $distanceEnnemy < 50 Then
  815.  
  816.     Else
  817.         _verifFinCombat()
  818.         If $combatState = 1 Then
  819.             stopBot("Position ennemie introuvable")
  820.             _alarmSong()
  821.         EndIf
  822.     EndIf
  823. EndFunc
  824.  
  825. Func _seRapprocherEnnemy()
  826.     ; Variables qui definissent la direction a adopter
  827.     $DistanceX = $posEnnemy[0] - $posAmie[0] ; Positif = Ennemi a droite , Negatif = Ennemi a gauche
  828.     $DistanceY = $posEnnemy[1] - $posAmie[1] ; Positif = Ennemi en bas , Negatif = Ennemi en haut
  829.  
  830.     ; Puis on traduit en nombre de pixels les PM disponibles (X=Abcisses , Y=Ordonnes)
  831.     $theMoveX = $nbPM * 20 ; 20 pixels (distance entre deux cases en abcisses)
  832.     $theMoveY = $nbPM * 10 ; 10 pixels (distance entre deux cases en ordonnees)
  833.     ; La combinaison de moveX et de moveY donne le deplacement (only en diagonale)
  834.  
  835.     ; Le mouvement aura lieu depuis notre position, on associe donc les deux
  836.     $XPlus = $posAmie[0] + $theMoveX
  837.     $XMoins = $posAmie[0] - $theMoveX
  838.     $YPlus = $posAmie[1] + $theMoveY
  839.     $YMoins = $posAmie[1] - $theMoveY
  840.     ; Les 4 variables precedentes contiennent donc l'abcisse et l'ordonnee d'un deplacement dans n'importequelle direction a partir de notre position
  841.  
  842.     ; --- Ennemy en Bas Droite -----
  843.     If $DistanceX > 0 And $DistanceY > 0 Then
  844.         MouseClick("left", $XPlus, $YPlus )
  845.  
  846.     ; --- Ennemy en Bas Gauche -----
  847.     ElseIf $DistanceX < 0 And $DistanceY > 0 Then
  848.         MouseClick("left", $XMoins, $YPlus )
  849.  
  850.     ; --- Ennemy en Haut Droite -----
  851.     ElseIf $DistanceX > 0 And $DistanceY < 0 Then
  852.         MouseClick("left", $XPlus, $YMoins )
  853.  
  854.     ; --- Ennemy en Haut Gauche -----
  855.     ElseIf $DistanceX < 0 And $DistanceY < 0 Then
  856.         MouseClick("left", $XMoins, $YMoins )
  857.     EndIf
  858.  
  859.     _resetPos()
  860.     _pause("6")
  861. EndFunc
  862.  
  863. Func _resetPos()
  864.     $posAmie[0] = ""
  865.     $posAmie[1] = ""
  866.     $posEnnemy[0] = ""
  867.     $posEnnemy[1] = ""
  868. EndFunc
  869.  
  870. ; === Fonctions de Fauche =======
  871. ; ===============================
  872. Func _fauchage()
  873.     $posBle = 0
  874.     $i = Random(0,3,1)
  875.     $posBle = PixelSearch(0,0,690,500,$couleurBle[$i],1)
  876.     if Not @error Then
  877.         journalMsg("Fauche un ble", $posBle[0] & "," & $posBle[1])
  878.         $fauche = $fauche + 1
  879.         $compteur = $compteur + 1
  880.         GUICtrlSetData($inputTotalFauches, $fauche )
  881.         MouseClick("left",$posBle[0], $posBle[1])
  882.         sleep($tempsFauche * 1000)
  883.         ; La pause qui suit correspond au temps d'aller sur le ble par exemple
  884.         _pause("2")
  885.         $nbErreursCsq = 0
  886.     Else
  887.         $nbErreursCsq = $nbErreursCsq + 1
  888.         if $nbErreursCsq > 100 Then
  889.             stopbot("Ble introuvable")
  890.         EndIf
  891.     EndIf
  892. EndFunc
  893.  
  894.  
  895. ; === Fonctions Banque ==========
  896. ; ===============================
  897. Func _choixDirection($direction)
  898.     _journalDMapWrite($direction)
  899.     $deplacementsMap[$stepDMap] = $direction
  900.     $stepDMap = $stepDMap + 1
  901.     $nbDeplacements = $nbDeplacements + 1
  902. EndFunc
  903.  
  904. Func _journalDMapWrite($msgJournalDMap)
  905.     $journalDPrevious = GUICtrlRead ($journalD)
  906.     if $journalDPrevious = "" Then
  907.         GUICtrlSetData ($journalD, $stepDMap & ". " & $msgJournalDMap)
  908.     Else
  909.         GUICtrlSetData ($journalD, $stepDMap & ". " & $msgJournalDMap & @CRLF & $journalDPrevious)
  910.     EndIf
  911. EndFunc
  912.  
  913. Func _effacerJournalDMap()
  914.     ; On efface seulement si ce n'est pas vide
  915.     If $stepDMap > 0 Then
  916.         Do
  917.             $stepDMap = $stepDMap - 1
  918.             $nbDeplacements = $nbDeplacements - 1
  919.             $deplacementsMap[$stepDMap] = ""
  920.             GUICtrlSetData ($journalD, "")
  921.         Until $stepDMap = 0
  922.     EndIf
  923. EndFunc
  924.  
  925. Func _deposerBanque()
  926.     If $botOn = 1 Then
  927.         ; Clic sur porte banque
  928.         journalMsg("On rentre dans la banque")
  929.         MouseClick("left",500,235)
  930.         _pause(15)
  931.         ; Clic sur banquier
  932.         journalMsg("On parle au monsieur")
  933.         MouseClick("left",315,230)
  934.         _pause(6)
  935.         ; Clic sur parler
  936.         MouseClick("left",325,255)
  937.         _pause(6)
  938.         ; Clic sur consulter son coffre
  939.         MouseClick("left", 100, 255)
  940.         _pause(6)
  941.         ; Transferer toute les ressources
  942.         journalMsg("On balance tout dans le coffre !")
  943.         MouseClick("left", 544, 157)
  944.         _pause(6)
  945.         ; Clic sur Transferer tous les objets
  946.         MouseClick("left", 451, 166)
  947.         _pause(6)
  948.         ; Fermer interface banque
  949.         MouseClick("left", 667, 125)
  950.         _pause(6)
  951.         ; Sortir banque
  952.         journalMsg("On ressort de la banque")
  953.         MouseClick("left", 219, 374)
  954.         _pause(6)
  955.     EndIf
  956. EndFunc
  957.  
  958. Func _allerBanque()
  959.     journalMsg("Debut trajet aller banque")
  960.     $trajetState = 1
  961.     $stepDMap = 0
  962.     Do
  963.         ; On va a la destination enregistree
  964.         if $deplacementsMap[$stepDMap] = "haut" Then
  965.             _goMap("haut")
  966.         ElseIf $deplacementsMap[$stepDMap] = "bas" Then
  967.             _goMap("bas")
  968.         ElseIf $deplacementsMap[$stepDMap] = "gauche" Then
  969.             _goMap("gauche")
  970.         Elseif $deplacementsMap[$stepDMap] = "droite" Then
  971.             _goMap("droite")
  972.         EndIf
  973.         $stepDMap = $stepDMap + 1
  974.     Until $deplacementsMap[$stepDMap] = "" Or $botOn = 0
  975.     $trajetState = 0
  976. EndFunc
  977.  
  978. Func _retourBanque()
  979.     journalMsg("Debut trajet retour banque")
  980.     $trajetState = 2
  981.     Do
  982.         ; On fait tout a l'envers pour revenir sur nos pas
  983.         $stepDMap = $stepDMap - 1
  984.         if $deplacementsMap[$stepDMap] = "haut" Then
  985.             _goMap("bas")
  986.         ElseIf $deplacementsMap[$stepDMap] = "bas" Then
  987.             _goMap("haut")
  988.         ElseIf $deplacementsMap[$stepDMap] = "gauche" Then
  989.             _goMap("droite")
  990.         Elseif $deplacementsMap[$stepDMap] = "droite" Then
  991.             _goMap("gauche")
  992.         EndIf
  993.     Until $stepDMap = 0 Or $botOn = 0
  994.     $trajetState = 0
  995.     journalMsg("On est revenus sur la map de fauche.")
  996. EndFunc
  997.  
  998. Func _goMap($direction)
  999.     $erreur = 0
  1000.     $continuer = 0
  1001.     If $botOn = 1 Then ; Seulement si le bot marche
  1002.         if $direction = "gauche" Then
  1003.             Do
  1004.                 $yRandom = Random($maxMapHaut + 30, $maxMapBas - 30)
  1005.                 MouseMove($maxMapGauche, $yRandom)
  1006.                 sleep(500)
  1007.                 PixelSearch($maxMapGauche, $yRandom - 15, $maxMapGauche + 15, $yRandom + 15, $theOrange)
  1008.                 if Not @error Then
  1009.                     $continuer = 1
  1010.                     sleep(500)
  1011.                     MouseClick("left", $maxMapGauche, $yRandom)
  1012.                     _DMapAttente()
  1013.                 Else
  1014.                     $erreur = $erreur + 1
  1015.                 EndIf
  1016.             Until $continuer = 1 Or $erreur = 15
  1017.  
  1018.         ElseIf $direction = "droite" Then
  1019.             Do
  1020.                 $yRandom = Random($maxMapHaut + 30, $maxMapBas - 30)
  1021.                 MouseMove($maxMapDroite, $yRandom)
  1022.                 sleep(500)
  1023.                 PixelSearch($maxMapDroite - 15, $yRandom - 15, $maxMapDroite, $yRandom + 15, $theOrange) ; A droite donc rectangle de search a gauche
  1024.                 if Not @error Then
  1025.                     $continuer = 1
  1026.                     sleep(500)
  1027.                     MouseClick("left", $maxMapDroite, $yRandom)
  1028.                     _DMapAttente()
  1029.                 Else
  1030.                     $erreur = $erreur + 1
  1031.                 EndIf
  1032.             Until $continuer = 1 Or $erreur = 15
  1033.  
  1034.         ElseIf $direction = "haut" Then
  1035.             Do
  1036.                 $xRandom = Random($maxMapGauche + 30, $maxMapDroite - 50)
  1037.                 MouseMove($xRandom, $maxMapHaut)
  1038.                 sleep(500)
  1039.                 PixelSearch($xRandom - 15, $maxMapHaut, $xRandom + 15, $maxMapHaut +15, $theOrange) ; En bas donc rectangle de search au dessus
  1040.                 if Not @error Then
  1041.                     $continuer = 1
  1042.                     sleep(500)
  1043.                     MouseClick("left",$xRandom, $maxMapHaut)
  1044.                     _DMapAttente()
  1045.                 Else
  1046.                     $erreur = $erreur + 1
  1047.                 EndIf
  1048.             Until $continuer = 1 Or $erreur = 15
  1049.  
  1050.         Elseif $direction = "bas" Then
  1051.             Do
  1052.                 $xRandom = Random($maxMapGauche + 50, $maxMapDroite - 50)
  1053.                 MouseMove($xRandom, $maxMapBas)
  1054.                 sleep(500)
  1055.                 PixelSearch($xRandom - 15, $maxMapBas - 15, $xRandom + 15, $maxMapBas, $theOrange) ; En bas donc rectangle de search au dessus
  1056.                 if Not @error Then
  1057.                     $continuer = 1
  1058.                     sleep(500)
  1059.                     MouseClick("left",$xRandom, $maxMapBas)
  1060.                     _DMapAttente()
  1061.                 Else
  1062.                     $erreur = $erreur + 1
  1063.                 EndIf
  1064.             Until $continuer = 1 Or $erreur = 15
  1065.         EndIf
  1066.         If $erreur = 15 Then
  1067.             stopBot("Impossible de changer de map")
  1068.         EndIf
  1069.     EndIf
  1070. EndFunc
  1071.  
  1072. Func _DMapAttente()
  1073.     $miniMap = PixelChecksum(325, 530, 370, 565)
  1074.     Do
  1075.         sleep(500)
  1076.         _allVerifs()
  1077.     Until $minimap <> PixelChecksum(325, 530, 370, 565) Or $botOn = 0 Or $sortieDeCombat = 1
  1078.     $sortieDeCombat = 0
  1079.     _pause("2")
  1080. EndFunc
  1081.  
  1082. ;=== Fonctions d'affichages =
  1083. ;============================
  1084. Func _enableModeBanque()
  1085.     $guiPreviousState = GUICtrlGetState ($btnBas)
  1086.     if $guiPreviousState = 144 Then
  1087.         GUICtrlSetState( $btnBas, $GUI_ENABLE)
  1088.         GUICtrlSetState( $btnHaut, $GUI_ENABLE)
  1089.         GUICtrlSetState( $btnGauche, $GUI_ENABLE)
  1090.         GUICtrlSetState( $btnDroite, $GUI_ENABLE)
  1091.         GUICtrlSetState( $btnEffacerJournalD, $GUI_ENABLE)
  1092.         GUICtrlSetState( $journalD, $GUI_ENABLE)
  1093.         GUICtrlSetState( $radioBanqueAstrub, $GUI_ENABLE)
  1094.     EndIf
  1095. EndFunc
  1096.  
  1097. Func _disableModeBanque()
  1098.     $guiPreviousState = GUICtrlGetState ($btnBas)
  1099.     if $guiPreviousState = 80 Then
  1100.         GUICtrlSetState( $btnBas, $GUI_DISABLE)
  1101.         GUICtrlSetState( $btnHaut, $GUI_DISABLE)
  1102.         GUICtrlSetState( $btnGauche, $GUI_DISABLE)
  1103.         GUICtrlSetState( $btnDroite, $GUI_DISABLE)
  1104.         GUICtrlSetState( $btnEffacerJournalD, $GUI_DISABLE)
  1105.         GUICtrlSetState( $journalD, $GUI_DISABLE)
  1106.         GUICtrlSetState( $radioBanqueAstrub, $GUI_DISABLE)
  1107.     EndIf
  1108. EndFunc
  1109.  
  1110. Func _enableModeCombat()
  1111.     $guiPreviousState = GUICtrlGetState ($radioAtkKey1)
  1112.     if $guiPreviousState = 144 Then
  1113.         GUICtrlSetState( $lblAttaqueKey, $GUI_ENABLE)
  1114.         GUICtrlSetState( $radioAtkKey1, $GUI_ENABLE)
  1115.         GUICtrlSetState( $radioAtkKey2, $GUI_ENABLE)
  1116.         GUICtrlSetState( $radioAtkKey3, $GUI_ENABLE)
  1117.         GUICtrlSetState( $lblNbLancerTour, $GUI_ENABLE)
  1118.         GUICtrlSetState( $inputNbLancerTour, $GUI_ENABLE)
  1119.         GUICtrlSetState( $lblPortee, $GUI_ENABLE)
  1120.         GUICtrlSetState( $lblNbPM, $GUI_ENABLE)
  1121.         GUICtrlSetState( $inputPM, $GUI_ENABLE)
  1122.         GUICtrlSetState( $inputPortee, $GUI_ENABLE)
  1123.     EndIf
  1124. EndFunc
  1125.  
  1126. Func _disableModeCombat()
  1127.     $guiPreviousState = GUICtrlGetState ($radioAtkKey1)
  1128.     if $guiPreviousState = 80 Then
  1129.         GUICtrlSetState( $lblAttaqueKey, $GUI_DISABLE)
  1130.         GUICtrlSetState( $radioAtkKey1, $GUI_DISABLE)
  1131.         GUICtrlSetState( $radioAtkKey2, $GUI_DISABLE)
  1132.         GUICtrlSetState( $radioAtkKey3, $GUI_DISABLE)
  1133.         GUICtrlSetState( $lblNbLancerTour, $GUI_DISABLE)
  1134.         GUICtrlSetState( $inputNbLancerTour, $GUI_DISABLE)
  1135.         GUICtrlSetState( $lblPortee, $GUI_DISABLE)
  1136.         GUICtrlSetState( $lblNbPM, $GUI_DISABLE)
  1137.         GUICtrlSetState( $inputPM, $GUI_DISABLE)
  1138.         GUICtrlSetState( $inputPortee, $GUI_DISABLE)
  1139.     EndIf
  1140. EndFunc
  1141.  
  1142. ; === Fonctions d'informations =
  1143. ; ==============================
  1144. Func _infoMode()
  1145.     MsgBox("64","Modes fauche v3", "Dans les 3 modes, le bot fauche le ble de la map en verifiant l'inventaire toute les 10 fauches. " & @CRLF & @CRLF & _
  1146.     ". Mode Classique : " & @CRLF & _
  1147.     "Quand l'inventaire est plein le bot s'arrete." & @CRLF & @CRLF &  _
  1148.     ". Mode Farmer : " & @CRLF & _
  1149.     "Quand l'inventaire est plein le bot supprime le ble de l'inventaire puis continue de faucher." & @CRLF & @CRLF & _
  1150.     ". Mode Banque : " & @CRLF & _
  1151.     "Quand l'inventaire est plein le bot va poser le ble en banque puis il revient faucher. Plus d'infos dans l'aide associee a ce mode." & @CRLF & @CRLF & _
  1152.     "D'autres modes a suggerer ? Contactes moi : harry.dotcom@hotmail.fr !")
  1153. EndFunc
  1154.  
  1155. Func _infoOptions()
  1156.     MsgBox("64","Options", "Pour repondre aux besoins qu'avaient de nombreuses personnes, j'ai installé trois options. " & @CRLF & @CRLF & _
  1157.     ". Slow Mode : Tapes 10 (ou 1030 si tu veux le debug avec)" & @CRLF & _
  1158.     "Tous les temps de pauses sont multiplies par 3 (sauf le temps de fauche), option a activer pour ceux qui ont des lags importants." & @CRLF & @CRLF &  _
  1159.     ". Hyper Slow Mode : Tapes 11 (ou 1130 si tu veux le debug avec)" & @CRLF & _
  1160.     "Tous les temps de pauses sont multiplies par 6 (sauf le temps de fauche), option a activer pour ceux qui ont des lags importants." & @CRLF & @CRLF &  _
  1161.     ". Debug Mode : Tapes 30" & @CRLF & _
  1162.     "J'ai souvent hesiter entre un journal qui en disait beaucoup ou un journal plus leger qui ne rentrait pas dans les details." & @CRLF & _
  1163.     "Avec cette option, le journal sera beaucoup plus detaillé, cela t'aideras surement a comprendre par toi meme d'ou vient ton probleme (si tu en as un)."   & @CRLF & @CRLF & _
  1164.     "D'autres options a suggerer ? Contactes moi : harry.dotcom@hotmail.fr !")
  1165. EndFunc
  1166.  
  1167. Func _infoBanque()
  1168.     MsgBox("64","Mode Banque", "Pour que ce mode marche, tu dois activer ta minimap et desactiver le zoom d'interieur !" & @CRLF & @CRLF & _
  1169.     "Le trajet a enregistrer ici est le trajet (MAP SPOT DE CEREALEA) -> (MAP BANQUE)" & @CRLF & _
  1170.     "Levais bot reviendra au spot de cereales en suivant le meme trajet a l'envers." & @CRLF & @CRLF & _
  1171.     "Des questions, idees ou des suggestions ? Envoies moi un mail : harry.dotcom@hotmail.fr !")
  1172. EndFunc
  1173.  
  1174. Func _infoCombattre()
  1175.     MsgBox("64","Mode Combat v1", "Desactives la transparence ! D'autres choses sont a savoir : " & @CRLF & @CRLF & _
  1176.     "Raccourci 1 : Bouton d'attaque au corps a corps (²)" & @CRLF & _
  1177.     "Raccourci 2 : Premier sort (é)"& @CRLF & _
  1178.     "Raccourci 3 : Deuxieme sort ('Guillemets')"& @CRLF & @CRLF & _
  1179.     ". Concernant l'attaque : " & @CRLF & _
  1180.     "Choisis une attaque a portee libre qui n'a pas de restrictions en dehors de sa portee. Plus la portee est grande, moins il y aura de difficultes pour le bot." & @CRLF & @CRLF &  _
  1181.     ". Avant de lancer le bot avec le mode combat : " & @CRLF & _
  1182.     "Tu dois avoir actif le mode tactique et le mode creature, tu peux le faire dans un combat inutile (contre un piou par exemple)." & @CRLF & _
  1183.     "Il est preferable de ne pas etre en groupe" & @CRLF & _
  1184.     "Des suggestions ? Contactes moi : harry.dotcom@hotmail.fr !")
  1185. EndFunc
  1186.  
  1187. Func _infoCereals()
  1188.     MsgBox("64","Fauchage v1", "Pour l'instant seul le ble est disponible !")
  1189. EndFunc
  1190.  
  1191. ; === Fonctions qui se connectent ===
  1192. ; ===================================
  1193.  
  1194. Func _verifVersion()
  1195.     ; On va chercher deux petits fichiers que j'ai mis en ligne au prealable
  1196.     $bLien = InetRead("http://harrydotcom.fr/Dofbots/lien.txt",1) ; exemple : "http://bit.ly/JC8BDH"
  1197.     $bLastVersion = InetRead("http://harrydotcom.fr/Dofbots/version.txt",1) ; exemple : "308"
  1198.     ; On affiche un msg d'erreur si il y a eu un probleme
  1199.     If @error Then MsgBox(64,"Dofbot","Impossible de verifier si une nouvelle version est disponible ! M'enfin, c'est pas grave ! Tu peux aller voir toi meme sur dofbots.blogspot.com")
  1200.     ; On transforme ce qu'on vient de trouver en chaines de caracteres
  1201.     $lastVersion = BinaryToString($bLastVersion)
  1202.     $lien = BinaryToString($bLien)
  1203.     If $lastVersion > $currentVersion Then
  1204.         $ouvrir_site = MsgBox(64+4, "Dofbot", "Une nouvelle version (" & $lastVersion & ") est en ligne !" & @CRLF & _
  1205.         "Aller télécharger la nouvelle version?")
  1206.         If $ouvrir_site = 6 Then
  1207.             ShellExecute($lien)
  1208.             Exit
  1209.         EndIf
  1210.     EndIf
  1211. EndFunc