#RequireAdmin
#cs ----------------------------------------------------------------------------
NOM PROGRAMME : DoBoT Vers. Alpha 0.4
FONCTION : Automate pour D.
PROGRAMMEUR : Charles ou neOwx
DATE : 12/12/12
#ce ----------------------------------------------------------------------------
#include <Misc.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
; == Variable ==
Global $Config = 0
dim $PosRessource[90]
dim $PosBanque[90]
Global $Cpt = 0 ; $Cpt est le compteur pour la variable $PosRessource
Global $Cpt1 = 0 ; Cpt1 est le compteur pour la variable $PosBanque
Global $Cpt2 = 0 ; Cpt2 est le compteur pour la verif d'inventaire.
Global $max = 0 ; Sert dans la Fauche
; == Debut (GUI) ==
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("DoBoT Vers. Alpha 0.0", 443, 194, 192, 124)
$Group1 = GUICtrlCreateGroup(" Infos ", 8, 8, 281, 105)
$Name = GUICtrlCreateLabel("Nom du Personnage :", 24, 32, 107, 17)
$TempsFauche = GUICtrlCreateLabel("Temps de Fauche : ", 24, 56, 99, 17)
$NameRessource = GUICtrlCreateLabel("Nom de Ressource :", 24, 80, 101, 17)
GUICtrlCreateInput("", 152, 32, 121, 21)
GUICtrlCreateInput("", 152, 56, 121, 21)
GUICtrlCreateInput("", 152, 80, 121, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup(" Mode ", 304, 8, 129, 105)
$Radio1 = GUICtrlCreateRadio("Classique", 312, 32, 81, 17)
$Radio2 = GUICtrlCreateRadio("Farmer", 312, 56, 73, 17)
$Radio3 = GUICtrlCreateRadio("Banque", 312, 80, 81, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Sav. Pos. Ressource", 8, 128, 137, 57, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Sav. Pos. Banque", 152, 128, 137, 57, $WS_GROUP)
$Button3 = GUICtrlCreateButton("OK", 304, 128, 129, 57, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If $Config = 0 Then
Config()
EndIf
SavePosRessource ()
Case $Button2
If $Config = 0 Then
Config()
EndIf
SavePosBanque ()
Case $Button3
FRun ()
EndSwitch
WEnd
; == Fonction ==
; --- Base ---
Func FRun ()
;J 'entre dans la boucle principale
While 1
Fauche()
VerifAgro()
VerifPopup()
WEnd
EndFunc
Func Config ()
; Je change la dimenssion de la fenêtre
WinActivate($Name)
Sleep(1000)
WinMove($Name, "", 0, 0, 845, 700)
Sleep(3000)
; Je passe le jeu en qualité Basse
MouseMove(809,41)
MouseClick("left")
Sleep(500)
MouseMove(306,216)
MouseClick("left")
Sleep(500)
MouseMove(715,525)
MouseClick("left")
Sleep(1000)
EndFunc
Func SavePosRessource ()
MsgBox(0, "Aide", "Pour enregistrer la position des ressources, cliquez sur F1. Appuyer sur ENTRER quand vous avez terminés")
Do
If _IsPressed("70") Then
$Var1 = MouseGetPos()
$PosRessource[$Cpt] = $Var1[0]
$Cpt = $Cpt + 1
$PosRessource[$Cpt] = $Var1[1]
$Cpt = $Cpt + 1
Sleep(500)
EndIf
Until _IsPressed("0D")
$max = $Cpt
$Cpt = 0
If $Radio3 = 1 Then
SavePosBanque()
EndIf
FRun()
EndFunc
Func SavePosBanque ()
MsgBox(0, "Aide", "Pour enregistrer la position de la banque, cliquez sur F1. Appuyer sur ENTRER quand vous avez terminés")
Do
If _IsPressed("70") Then
$Var1 = MouseGetPos()
$PosBanque[$Cpt1] = $Var1[0]
$Cpt2 = $Cpt2 + 1
$PosBanque[$Cpt1] = $Var1[1]
$Cpt1 = $Cpt1 + 1
EndIf
Until _IsPressed("0D")
$max = $Cpt1
$Cpt1 = 0
FRun()
EndFunc
Func Fauche()
MouseMove($PosRessource[$Cpt], $PosRessource[$Cpt + 1])
MouseClick("left")
Sleep($TempsFauche * 1000 + 1000)
$Cpt = $Cpt + 1
If $max = $Cpt Then
$Cpt = 0
EndIf
$Cpt2 = $Cpt2 + 1
If $Cpt2 = 15 Then
VerifInventaire()
$Cpt2 = 0
EndIf
EndFunc
; --- Verfif ---
Func VerifAgro()
$Color = PixelGetColor(406,673)
If $Color = 0xFF6100 Then
Combat()
EndIf
EndFunc
Func VerifPopup()
EndFunc
Func VerifInventaire ()
MouseMove(558, 679)
MouseClick("left")
Sleep(1000)
$Color = PixelGetColor(662, 536)
If $Color = 0xBB02604 Then
InventairePlein()
EndIf
EndFunc
Func InventairePlein ()
If $Radio1 = 1 Then
Exit
EndIf
If $Radio2 = 1 Then
MouseMove(729, 124)
MouseClick("left")
MouseMove(801, 142)
MouseClick("left")
Send($NameRessource)
Sleep(1000)
MouseMove(667, 176)
MouseClick("right")
MouseMove(569, 228)
MouseClick("left")
MouseMove(615, 201)
MouseClick("left")
MouseMove(720, 203)
MouseClick("left")
MouseMove(366, 395)
MouseClick("left")
EndIf
If $Radio3 = 1 Then
GoBanque ()
EndIf
EndFunc
Func GoBanque ()
EndFunc
; --- Combat ---
Func Combat ()
MouseMove(485, 511)
MouseClick("left")
Do
VerifTour ()
Deplace ()
Attaque ()
$Color = PixelGetColor(485, 511)
Until $Color = 0xFF6100
MouseMove(485, 511)
MouseClick("left")
Sleep(500)
EndFunc
Func VerfiTour ()
Do
$Color = PixelGetColor(448, 609)
Sleep(1000)
Until $Color = 0xFF4D00
EndFunc
Func Deplace ()
$PosPerso = PixelSearch(0, 0, 845, 700, 0xFF0000) ;Je prend la position de perso
$trouver = 0
$ajout_px_x1 = 10
$ajout_px_x2 = 10
$ajout_px_y1 = 10
$ajout_px_y2 = 10
Do
If $PosPerso[0]+$ajout_px_x1 > 845 Then
$ajout_px_x1 = 0
EndIf
If $PosPerso[1]+$ajout_px_x2 > 845 Then
$ajout_px_x2 = 0
EndIf
If $PosPerso[0]+$ajout_px_y1 > 700 Then
$ajout_px_y1= 0
EndIf
If $PosPerso[1]+$ajout_px_y2 > 700 Then
$ajout_px_y2 = 0
EndIf
$PosMonstre = PixelSearch($PosPerso[0]-$ajout_px_x1, $PosPerso[1]-$ajout_px_y1, $PosPerso[0]+$ajout_px_x2, $PosPerso[1]+$ajout_px_y2, 0x0000FF) ; je recherche le monstre le plus proche du perso
If not @error Then
$trouver = 1
EndIf
$ajout_px_x1 = $ajout_px_x1 + 10
$ajout_px_x2 = $ajout_px_x2 + 10
$ajout_px_y1 = $ajout_px_y1 + 10
$ajout_px_y2 = $ajout_px_y2 + 10
Until $trouver = 1
MouseMove($PosPerso[0], $PosPerso[1]) ; Je me déplace sur le perso
Do
If $PosMonstre[0]+$ajout_px_x1 > 845 Then
$ajout_px_x1 = 0
EndIf
If $PosMonstre[1]+$ajout_px_x2 > 845 Then
$ajout_px_x2 = 0
EndIf
If $PosMonstre[0]+$ajout_px_y1 > 700 Then
$ajout_px_y1= 0
EndIf
If $PosMonstre[1]+$ajout_px_y2 > 700 Then
$ajout_px_y2 = 0
EndIf
$PosCase = PixelSearch($PosMonstre[0]-$ajout_px_x1, $PosMonstre[1]-$ajout_px_y1, $PosMonstre[0]+$ajout_px_x2, $PosMonstre[1]+$ajout_px_y2, 0x00CC66) ; Je recherche la case verte la plus proche du monstre
If not @error Then
$trouver = 1
EndIf
$ajout_px_x1 = $ajout_px_x1 + 10
$ajout_px_x2 = $ajout_px_x2 + 10
$ajout_px_y1 = $ajout_px_y1 + 10
$ajout_px_y2 = $ajout_px_y2 + 10
Until $trouver = 1
MouseMove($PosCase[0], $PosCase[1]) ; Je me déplace sur cette case
MouseClick("Left")
EndFunc
Func Attaque ()
MouseMove(547, 619)
MouseClick("left")
MouseMove($PosMonstre[0], $PosMonstre[1])
MouseClick("left")
Sleep(1000)
MouseMove(485, 511)
MouseClick("left")
EndFunc