; ==== DOFBOTS.BLOGSPOT.COM ====
; ==== CODE PAR H@RRY ====
#RequireAdmin
; == Includes ==
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include "Misc.au3"
; == Variables ==
$mode = 0
$tempsFauche = 0
$aggro = 0
Global $nomProgramme = "Dofbot Paysan G2"
Global $couleurDuBle[5] = ["0xFAEE47","0xF9C72C","0xF8D130","0xF7C426","0xFAE03B"]
Global $couleurBleInventaire[5] = ["0xD9A910","0xE3BA2E","0xDBA801","0xCF9B00","0xE0B630"]
Const $couleurCroix = 0xFF6100
Const $couleurInventaireVide = 0x514A3C, $couleurInventairePlein = 0xA00101
Const $verif = 10
Global $posDetruire[2], $posValiderDetruire[2] = [0,0]
$compteur = 0
$nbErreursCsq = 0
$popUp = 0
$fauche = 0
$i = 0
Global $botOn = 0
; == GUI ==
#Region ### START Koda GUI section ### Form=c:\users\dreadz\desktop\autoit script\dofbot3.kxf
Global $GUI_1 = GUICreate($nomProgramme, 594, 370, 197, 126)
GUISetIcon("D:\005.ico", -1)
Global $PageControl1 = GUICtrlCreateTab(8, 8, 580, 344)
;- ONGLET 1 -
Global $TabSheet1 = GUICtrlCreateTabItem("Aide")
Global $Group2 = GUICtrlCreateGroup("Fonctionnement du bot :", 16, 128, 185, 105)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label2 = GUICtrlCreateLabel("Bot a detection de pixels.", 24, 152, 139, 18)
Global $Label5 = GUICtrlCreateLabel("Qualite flash optimale : Moyenne.", 24, 176, 162, 18)
Global $Label7 = GUICtrlCreateLabel("Cette version ne fauche que le ble.", 24, 200, 172, 18)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $labelUrlBlog = GUICtrlCreateLabel("DOFBOTS.BLOGSPOT.COM", 48, 48, 495, 64)
GUICtrlSetFont(-1, 36, 800, 0, "Impact")
GUICtrlSetColor(-1, 0x808080)
Global $Group1 = GUICtrlCreateGroup("A propos", 216, 128, 177, 169)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label8 = GUICtrlCreateLabel("Dofbot Paysan 2e Generation ©.", 224, 152, 160, 18)
GUICtrlCreateLabel("", 224, 176, 4, 4)
Global $Label9 = GUICtrlCreateLabel("Code par H@rry Dotcom.", 224, 176, 125, 18)
Global $Label12 = GUICtrlCreateLabel("Il existe peut etre une nouvelle", 224, 224, 150, 18)
Global $Label13 = GUICtrlCreateLabel("version de ce bot.", 224, 248, 91, 18)
Global $Label6 = GUICtrlCreateLabel("Partez verifier sur le blog :).", 224, 272, 138, 18)
Global $Label14 = GUICtrlCreateLabel("Date de sortie : 13/03/2012", 224, 200, 150, 18)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Group3 = GUICtrlCreateGroup("Contact", 400, 128, 177, 81)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label10 = GUICtrlCreateLabel("harry.dotcom@hotmail.fr", 408, 152, 123, 18)
Global $Label11 = GUICtrlCreateLabel("M'envoyer un mail en cas de pbs.", 408, 176, 165, 18)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;- ONGLET 2 -
Global $TabSheet2 = GUICtrlCreateTabItem("Bot Paysan")
GUICtrlSetState(-1,$GUI_SHOW)
Global $journal = GUICtrlCreateEdit("", 16, 64, 273, 225, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$WS_VSCROLL))
GUICtrlSetData(-1, @HOUR & ":" & @MIN & ":" & @SEC & " : " & "Ouverture du programme")
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $labelJournal = GUICtrlCreateLabel("Journal de bord :", 16, 40, 85, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $inputTempsFauche = GUICtrlCreateInput("Temps de fauche (en sec)", 428, 265, 145, 22, $ES_NUMBER)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $inputNom = GUICtrlCreateInput("Nom du personnage", 428, 233, 145, 22)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $buttonDemarrer = GUICtrlCreateButton("LANCER (Echap pour stopper)", 424, 296, 153, 41)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $buttonViderJournal = GUICtrlCreateButton("Vider le journal", 190, 296, 80, 22)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label3 = GUICtrlCreateLabel("Total de fauches :", 16, 295, 91, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label4 = GUICtrlCreateLabel("Total de popups :", 16, 320, 87, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $GroupeMode = GUICtrlCreateGroup("Mode", 424, 40, 153, 97)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $radioClassique = GUICtrlCreateRadio("Classique", 432, 64, 129, 17)
Global $radioFarmer = GUICtrlCreateRadio("Farmer", 432, 88, 129, 17)
Global $radioBanque = GUICtrlCreateRadio("Banque (reglages sup.)", 432, 112, 129, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $GroupeCereals = GUICtrlCreateGroup("Cereale(s)", 304, 40, 113, 241)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $cerealBle = GUICtrlCreateCheckbox("Ble (lv 1)", 312, 64, 97, 17)
Global $cerealOrge = GUICtrlCreateCheckbox("Orge (lv 10)", 312, 88, 97, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $cerealAvoine = GUICtrlCreateCheckbox("Avoine (lv 20)", 312, 112, 97, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $cerealHoublon = GUICtrlCreateCheckbox("Houblon (lvl 30)", 312, 136, 97, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $cerealLin = GUICtrlCreateCheckbox("Lin (lv 40)", 312, 160, 97, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $cerealSeigle = GUICtrlCreateCheckbox("Seigle (lv 50)", 312, 184, 97, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $cerealRiz = GUICtrlCreateCheckbox("Riz (lv 50)", 312, 208, 97, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $cerealMalt = GUICtrlCreateCheckbox("Malt (lv 60)", 312, 232, 97, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $cerealChanvre = GUICtrlCreateCheckbox("Chanvre (lv 70)", 312, 256, 97, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $GroupeAggro = GUICtrlCreateGroup("Aggro ressources", 424, 144, 153, 73)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $radioBip = GUICtrlCreateRadio("Jouer un Bip", 432, 168, 113, 17)
Global $radioCombattre = GUICtrlCreateRadio("Combattre", 432, 192, 113, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $totalFauches = GUICtrlCreateInput("0", 112, 296, 73, 22)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $totalPopups = GUICtrlCreateInput("0", 112, 320, 73, 22)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $GroupeEtat = GUICtrlCreateGroup("Etat", 304, 288, 113, 49)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $labelEtat = GUICtrlCreateLabel("A l'arret", 312, 312, 52, 18)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateTabItem("")
Global $copyright = GUICtrlCreateLabel("Copyright © 2012, H@rry Dotcom, dofbots.blogspot.com", 320, 352, 270, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; == Boucle While ==
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
exit
Case $radioClassique
$mode = 1
Case $radioFarmer
$mode = 2
Case $radioBanque
$mode = 3
Case $radioBip
$aggro = 1
Case $radioCombattre
$aggro = 2
Case $buttonViderJournal
GUICtrlSetData($journal,"")
Case $buttonDemarrer
_verifsDemarrage()
if $botOn = 0 Then
ContinueCase
EndIf
; == Et maintenant, le coeur de la maison, la cuisine ==
While 1
_verifAggros() ; On verifie tout avant de faucher
_verifsPopups()
_verifInventaire()
if $botOn = 1 Then ; Si tout va bien on y va
_fauchage()
Else ; Sinon on arrete le bot
journalMsg("Arret du bot")
GUICtrlSetState($buttonDemarrer, $GUI_ENABLE)
GUICtrlSetData($labelEtat, "A l'arret")
ContinueCase
EndIf
WEnd
EndSwitch
WEnd
; == Fonctions : Boutons, Leviers et Rouages ==
Func _verifsDemarrage()
$verifsValidees=0
; -- Mode --
if $mode <> 0 Then
$verifsValidees = $verifsValidees + 1
EndIf
; -- Aggro --
if $aggro <> 0 Then
$verifsValidees = $verifsValidees + 1
EndIf
; -- Nom perso --
$nomPerso = GUICtrlRead($inputNom)
if WinExists($nomPerso) And $nomPerso <> "" Then
sleep(200)
WinSetState($nomPerso,"",@SW_MINIMIZE)
WinSetState($nomPerso,"",@SW_RESTORE)
WinMove($nomPerso, "", 0, 0, 700, 600)
WinMove($GUI_1,"",700, 0, 594, 400)
$verifsValidees = $verifsValidees + 1
EndIf
; -- Temps de Fauche --
$tempsFauche = GUICtrlRead($inputTempsFauche)
if $tempsFauche < 12 And $tempsFauche > 3 Then
$verifsValidees = $verifsValidees + 1
EndIf
; -- Si tout est bon on lance la bete --
if $verifsValidees = 4 Then
_demarrage()
; -- Sinon .. Erreur --
Else
MsgBox(0,"Dofbot","Erreur, il manque des informations ou certaines informations sont incorrectes. Verifies bien que :" & @CRLF & _
"- Le mode de fauchage et de gerance de l'aggro sont bien choisis." & @CRLF & _
"- Le nom du perso connecte est bien ecrit (avec les accents)" & @CRLF & _
"- Tu as bel et bien ouvert Dofus et connecte ton personnage." & @CRLF & _
"- Le temps de fauche est bien defini entre 3 et 12.")
EndIf
EndFunc
Func _demarrage()
GUICtrlSetState($buttonDemarrer, $GUI_DISABLE)
GUICtrlSetData($labelEtat, "En marche")
HotKeySet("{ESC}", "closeBotRac" )
journalMsg("Demarrage du bot")
$botOn = 1
EndFunc
Func _verifAggros()
$couleur = PixelGetColor(336, 566)
if $couleur = $couleurCroix Then ; Couleur croix = Couleur bouton Pret
if $aggro = 1 Then
_alerte()
EndIf
if $aggro = 2 Then
_combattre()
EndIf
EndIf
EndFunc
Func _alerte()
Beep (400 *3,500)
Beep (400 *3,500)
Beep (400 *3,500)
sleep(500)
Beep (400 *3,500)
Beep (400 *3,500)
Beep (400 *3,500)
stopBot("Aggression !")
EndFunc
Func _combattre()
; A CODER !
EndFunc
Func _verifsPopups()
_fermeturePopups(370, 343) ; Verif up / echange / defi
_fermeturePopups(199, 292) ; Verif invit goupe
_fermeturePopups(665, 81) ; Verif inventaire ouvert
_fermeturePopups(637, 78) ; Verif sorts
_fermeturePopups(218, 81) ; Verif caracs ouverte
_fermeturePopups(671, 67) ; Verif map ouverte
EndFunc
Func _fermeturePopups($x, $y)
$couleur = PixelGetColor($x, $y)
if $couleur = $couleurCroix Then
$popUp = $popUp + 1
GUICtrlSetData($totalPopups, $popUp )
MouseClick("left",$x, $y)
journalMsg("Fermeture d'une Popup")
EndIf
EndFunc
Func _verifInventaire()
if $compteur = $verif Then
_inventaireCheck()
EndIf
EndFunc
Func _inventaireCheck()
journalMsg("Verification de l'inventaire")
$compteur = 0
Send ("i")
sleep(800)
$couleur = PixelGetColor(665,488)
if $couleur = $couleurInventairePlein Then
_inventairePlein()
Else
journalMsg("Inventaire non plein.")
EndIf
sleep(500)
MouseClick("left",665, 81)
EndFunc
Func _inventairePlein()
if $mode = 1 Then
stopBot("Fin normale du mode classique")
EndIf
if $mode = 2 Then
MouseClick("left",663,133)
sleep(500)
Send("Blé")
sleep(500)
$step = 0
Do
$posBleInventaire = PixelSearch(525,130,690,500,$couleurBleInventaire[$step],2)
if @error Then
$step = $step + 1
if $step = 4 Then
stopBot("Probleme dans la suppression du ble en mode farmer")
EndIf
EndIf
Until Not @error
MouseClick("right",$posBleInventaire[0], $posBleInventaire[1])
sleep(500)
$posDetruire[0] = $posBleInventaire[0] - 20
$posDetruire[1] = $posBleInventaire[1] + 42
MouseClick("left",$posDetruire[0], $posDetruire[1])
sleep(500)
$posValiderDetruire[0] = $posDetruire[0] + 65
$posValiderDetruire[1] = $posDetruire[1] - 15
sleep(500)
MouseClick("left",$posValiderDetruire[0], $posValiderDetruire[1])
sleep(500)
MouseClick("left",320, 340)
journalMsg("Suppression du ble effectuee")
EndIf
if $mode = 3 Then
; MODE BANQUE
EndIf
EndFunc
Func _fauchage()
$posBle = 0
$posBle = PixelSearch(0,0,690,500,$couleurDuBle[$i],1)
if Not @error Then
journalMsg("Fauche un ble")
$fauche = $fauche + 1
$compteur = $compteur + 1
GUICtrlSetData($totalFauches, $fauche )
MouseClick("left",$posBle[0], $posBle[1])
sleep($tempsFauche * 1000 + 2000)
$i = Random(0,4,1)
$nbErreursCsq = 0
Else
$i = Random(0,4,1)
$nbErreursCsq = $nbErreursCsq + 1
if $nbErreursCsq > 100 Then
stopbot("Ble introuvable")
EndIf
EndIf
EndFunc
Func journalMsg($messageJournal)
$journalPrevious = GUICtrlRead($journal)
GUICtrlSetData($journal, @HOUR & ":" & @MIN & ":" & @SEC & " : " & $messageJournal & @CRLF & $journalPrevious )
EndFunc
Func stopBot($raison)
journalMsg($raison & ". Arret en cours...")
$botOn = 0
EndFunc
Func closeBotRac()
journalMsg("Arret dans quelques secondes...")
$botOn = 0
EndFunc