Advertisement
Guest User

Untitled

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