#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\Logo2.ico
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_Language=1036
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "Misc.au3"
#cs ----------------------------------------------------------------------------
AutoIt Version : 3.3.6.0
Auteur: Kratoz
Fonction du Script :
Bot paysan complexe.
#ce ----------------------------------------------------------------------------
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\jessy\desktop\form1.kxf
$Form1_1_1 = GUICreate("Hello Bot", 355, 234, 558, 260)
$Group1 = GUICtrlCreateGroup(" Bot paysan par Kratoz ", 8, 8, 337, 193)
$Button1 = GUICtrlCreateButton("Blé (Lv 1)", 16, 32, 89, 33)
$Button2 = GUICtrlCreateButton("Orge (Lv 10)", 15, 76, 89, 33)
$Button3 = GUICtrlCreateButton("Avoine (Lv 20)", 16, 120, 89, 33)
$Button4 = GUICtrlCreateButton("Houblon (Lv 30)", 15, 164, 89, 33)
$Button5 = GUICtrlCreateButton("Seigle (Lv 50)", 248, 32, 89, 33)
$Button6 = GUICtrlCreateButton("Riz (Lv 50)", 248, 76, 89, 33)
$Button7 = GUICtrlCreateButton("Malt (Lv 60)", 248, 120, 89, 33)
$Button8 = GUICtrlCreateButton("Chanvre (Lv 70)", 248, 164, 89, 33)
$Button9 = GUICtrlCreateButton("Mise à jour", 120, 96, 113, 49)
$Ressource = GUICtrlCreateInput("Ressource", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button10 = GUICtrlCreateButton("Lin (Lv 40)", 129, 164, 89, 33)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Radio1 = GUICtrlCreateRadio("Radio1", 40, 208, 17, 17)
GUICtrlSetState(-1, $GUI_DISABLE)
$Radio2 = GUICtrlCreateRadio("Radio2", 160, 208, 17, 17)
$Radio3 = GUICtrlCreateRadio("Radio3", 248, 208, 17, 17)
$Label1 = GUICtrlCreateLabel("Banque", 64, 208, 41, 17)
$Label2 = GUICtrlCreateLabel("Farmer", 184, 208, 36, 17)
$Label3 = GUICtrlCreateLabel("Basique", 272, 208, 42, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$mode = 0
$afficher = 0
Func monstre()
TrayTip("","Phase d'attaque",100)
$attaque = 0
$pix = 10
$perso = PixelSearch(0, 0, 750, 510, 0xFF0000)
$monstre = PixelSearch($perso[0] - 120, $perso[1] - 120, $perso[0] + 120, $perso[1] + 120, 0x0000FF)
Sleep(100)
If IsArray($monstre) Then
TrayTip("","Monstre detecté, on attaque",100)
Do
$monstre = PixelSearch($perso[0] - $pix , $perso[1] - $pix, $perso[0] + $pix, $perso[1] + $pix, 0x0000FF)
If IsArray($monstre) = True Then
Send("é")
MouseClick("left",$monstre[0], $monstre[1])
$attaque = 1
Sleep(2000)
Send("^w")
$reussi=1
EndIf
$pix = $pix+10
Until $attaque = 1 Or $pix = 120
Else
TrayTip("","Pas de monstres aux alentours, on passe le tour",100)
Send("^w")
EndIf
#cs $monstre = PixelSearch($perso[0] - 150, $perso[1] - 150, $perso[0] + 150, $perso[1] + 150, 0x0000FF)
If Not @error Then
Send("é")
MouseClick("left",$monstre[0], $monstre[1])
$mouse = MouseGetPos()
PixelSearch($mouse[0]-30,$mouse[1]-30,$mouse[0]+30,$mouse[1]+30,0x223399);si on ne peu pas attaquer
If @error Then; on cherche dans l'autre sens
$attaque = 0
$pix = 10
While $attaque = 0
If $pix > 140 Then
ContinueLoop
EndIf
$monstre = PixelSearch($perso[0] - $pix , $perso[1] - $pix, $perso[0] + $pix, $perso[1] + $pix, 0x0000FF) ;on élargi le champ de recherche tant qu'on ne trouve pas de monstre
If Not @error Then
Send("é")
MouseClick("left",$monstre[0], $monstre[1])
$attaque = 1
EndIf
$pix = $pix + 10
WEnd
EndIf
Sleep(2000)
Send("+()")
Send("^w")
Sleep(2000)
Else
Send("^w")
#ce EndIf
EndFunc
Func deplacement()
TrayTip("","Fonction de déplacement commencée",100)
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
If IsArray($case) = False Then
TrayTip("","Obstacle detecté",100)
MouseMove($perso[0],$perso[1] - 20);haut
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
If IsArray($case) = False Then
MouseMove($perso[0] - 45, $perso[1]);gauche
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
EndIf
If IsArray($case) = False Then
MouseMove($perso[0] + 50, $perso[1]);droite
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
EndIf
If IsArray($case) = False Then
MouseMove($perso[0], $perso[1] + 30);bas
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
EndIf
MouseClick("left")
Else
TrayTip("","Pas d'obstacle detecté, on avance",100)
MouseClick("left",$mouse[0],$mouse[1])
EndIf
EndFunc
Func secours()
TrayTip("","Fonction de déplacement secours commencée",100)
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
If IsArray($case) = False Then
TrayTip("","Test de déplacement afin de detecté a nouveau le personnage",100)
$perso = MouseGetPos()
MouseMove($perso[0],$perso[1] - 20);haut
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
If IsArray($case) = False Then
MouseMove($perso[0] - 45, $perso[1]);gauche
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
EndIf
If IsArray($case) = False Then
MouseMove($perso[0] + 50, $perso[1]);droite
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
EndIf
If IsArray($case) = False Then
MouseMove($perso[0], $perso[1] + 30);bas
Sleep(1000)
$mouse = MouseGetPos()
$case = PixelSearch($mouse[0]-20, $mouse[1]-20,$mouse[0]+20,$mouse[1]+20,0x006600)
Sleep(100)
EndIf
MouseClick("left")
TrayTip("","Fin de la fonction de secours, reprise du processus normal",100)
Sleep(1000)
Else
TrayTip("","Pas d'obstacle detecté, on avance",100)
MouseClick("left",$mouse[0],$mouse[1])
Sleep(1000)
EndIf
EndFunc
Func exitbot()
TrayTip("Arrêt", "Arrêt du bot dans 1 seconde", 100)
Sleep(1000)
Exit
EndFunc
HotKeySet("{ESC}", "exitbot")
HotKeySet("{F1}", "exitbot")
Func pause()
$pause = 1
TrayTip("Pause","Le bot est en pause, appuyez sur F3 pour le relancer",100)
Sleep(1000)
Do
If _IsPressed(72) Then
$pause = 0
EndIf
Until $pause = 0
TrayTip("Actif","Le bot est de nouveau actif",100)
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$Ressource = GUICtrlCreateInput("Blé", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
If $mode = 0 Then
MsgBox(0,"Information nécessaire","Veuillez choisir un mode avant de lancer le bot")
ContinueLoop
EndIf
ProgressOn("Configuration", "Progression de la configuration", "",0,0)
ProgressSet( 25, 25 & " %")
Do
$nom = InputBox("Information nécessaire", "Entrez le nom de votre personnage"& @CRLF & @CRLF & "(Avec les majuscules)")
If Not WinExists($nom) Or $nom = "" Then
MsgBox(0,"Erreur","Fenêtre du personnage non trouvée")
Else
ProgressSet( 50, 50 & " %")
WinSetState($nom,"",@SW_MINIMIZE)
WinSetState($nom,"",@SW_RESTORE)
WinMove($nom, "", 0, 0, 800, 600)
MsgBox(0,"Information","Fenêtre de " & $nom & " redimensionnée")
EndIf
Until WinExists($nom) And $nom <> ""
Do
$temps = InputBox("Information nécessaire", "Insérez le temps de fauche (en seconde)"& @CRLF & @CRLF & "(Doit être compris entre 2 et 20)")
Until $temps > 1 And $temps < 21
ProgressSet( 75, 75 & " %")
Do
$verif = InputBox("Information nécessaire","Nombre de fauches entre vérification de l'inventaire (minimum 10)" & @CRLF & @CRLF & "Exemple : Si vous rentrez 10, le bot vérifiera si l'inventaire est plein toute les 10 coupes")
Until $verif > 9
ProgressSet(100 , "Bot prêt à l'emploi", "Configuration terminée")
MsgBox(0,"Information","Appuyez sur la touche Echap ou F1 de votre clavier si vous voulez stopper le bot"& @CRLF & @CRLF & "F2 pour mettre en pause puis F3 pour relancer")
TrayTip("", "Bot paysan actif", 100)
TrayTip("", "Appuyez sur la touche F2 de votre clavier pour mettre en pause le bot, et F3 pour le relancer", 100)
ProgressOff()
;If $mode = 1 Then
; MsgBox(0, "Mode banque", "Vous avez choisi le mode banque, vous devez donc faire des configurations supplémentaires")
; Do
; $posxperso = InputBox("Coordonnée x personnage","Veuillez insérez la coordonnée x de votre personnage (Doit être compris entre -100 et 100)"& @CRLF & @CRLF"Par exemple : si vous êtes sur la map 5,-24 ; la coordonnée x de votre personnage sera : 5")
; Until $posxperso > -101 And $posxperso < 101
; Do
; $posxperso = InputBox("Coordonnée y personnage","Veuillez insérez la coordonnée y de votre personnage (Doit être compris entre -100 et 100)"& @CRLF & @CRLF"Par exemple : si vous êtes sur la map 5,-24 ; la coordonnée y de votre personnage sera : -24")
; Until $posxperso > -101 And $posxperso < 101
;EndIf
$compteur = 0
While 1
HotKeySet("{F2}", "pause")
If $compteur = $verif Then
TrayTip("","Vérification de l'inventaire",100)
Send("i")
Sleep(1000)
$plein = PixelGetColor(724,495)
Sleep(1000)
If $plein = 0xA00101 Then
If $mode = 3 Then
TrayTip("","Inventaire plein : fermeture du jeu et du bot dans 3 secondes",100)
Sleep(3000)
WinClose($nom, "")
TrayTip("","Jeu fermé, arrêt du bot dans 3 secondes",100)
Sleep(3000)
Exit
ElseIf $mode = 2 Then
MouseClick("left",640,110)
Sleep(500)
MouseClick("left",722,128)
Sleep(500)
Send("Blé")
Sleep(500)
MouseClick("right",606,154)
Sleep(500)
MouseClick("left",564,211)
Sleep(500)
Send("{ENTER}")
Sleep(500)
Send("{ENTER}")
Sleep(500)
MouseClick("left",661,110)
Sleep(500)
MouseClick("right",606,154)
Sleep(500)
MouseClick("left",564,199)
Sleep(500)
Send("{ENTER}")
Sleep(500)
Send("{ENTER}")
TrayTip("","Inventaire vidé, on recommence la fauche",100)
$compteur = 0
Send("i")
ContinueLoop
EndIf
Else
TrayTip("","Inventaire non plein, on continue la fauche",100)
$compteur = 0
Send("i")
ContinueLoop
EndIf
EndIf
PixelSearch(385, 571, 415, 573, 0xFF6100)
$combat = PixelGetColor(384, 572)
If $combat = 0xFF6100 Then
If $afficher = 0 Then
Send("+(")
Send("^w")
$afficher = 1
Sleep(1000)
EndIf
;systeme de combat complexe
$tour = PixelGetColor(408, 515)
If $tour = 0xFF4D00 Then
TrayTip("", "Tour de jeu détecté", 100)
Sleep(1000)
$perso = PixelSearch(0, 0, 750, 510, 0xFF0000)
If Not @error Then
TrayTip("","Phase d'attaque",100)
#cs $attaque = 0
$pix = 10
Do
$monstre = PixelSearch($perso[0] - $pix , $perso[1] - $pix, $perso[0] + $pix, $perso[1] + $pix, 0x0000FF)
If Not @error Then
Send("é")
MouseClick("left",$monstre[0], $monstre[1])
$attaque = 1
Sleep(2000)
Send("^w")
$reussi = 1
EndIf
$pix = $pix+10
#ce Until $attaque = 1 Or $pix = 150
$monstre = PixelSearch($perso[0] - 120, $perso[1] - 120, $perso[0] + 120, $perso[1] + 120, 0x0000FF)
If Not @error Then
$attaque = 0
$pix = 10
Do
$monstre = PixelSearch($perso[0] - $pix , $perso[1] - $pix, $perso[0] + $pix, $perso[1] + $pix, 0x0000FF)
If Not @error Then
Send("é")
MouseClick("left",$monstre[0], $monstre[1])
$attaque = 1
Sleep(2000)
Send("^w")
$reussi = 1
EndIf
$pix = $pix+10
Until $attaque = 1 Or $pix = 120
Else
TrayTip("","Phase de déplacement",100)
$monstre = PixelSearch(0, 0, 800, 600, 0x0000FF)
If Not @error Then
$DistanceX = $monstre[0] - $perso[0]
$DistanceY = $monstre[1] - $perso[1]
If ($DistanceX < 0 And $DistanceY = 0) Then
;gauche
TrayTip("", "gauche", 100)
MouseMove($perso[0] - 45, $perso[1]);gauche
deplacement()
Sleep(2000)
monstre()
ElseIf ($DistanceX < 0 And $DistanceY < 0) Then
;haut gauche
MouseMove($perso[0] - 70, $perso[1] - 30);haut gauche
deplacement()
Sleep(2000)
monstre()
ElseIf ($DistanceX > 0 And $DistanceY < 0) Then
;haut droite
MouseMove($perso[0] + 70, $perso[1] - 30);haut droite
deplacement()
Sleep(2000)
monstre()
ElseIf ($DistanceX = 0 And $DistanceY < 0) Then
;haut
MouseMove($perso[0],$perso[1] - 20);haut
deplacement()
Sleep(2000)
monstre()
ElseIf ($DistanceX < 0 And $DistanceY > 0) Then
;bas gauche
MouseMove($perso[0] - 70, $perso[1] + 40);bas gauche
deplacement()
Sleep(2000)
monstre()
ElseIf ($DistanceX > 0 And $DistanceY = 0) Then
;droite
MouseMove($perso[0] + 50, $perso[1]);droite
deplacement()
Sleep(2000)
monstre()
ElseIf ($DistanceX > 0 And $DistanceY > 0) Then
;bas droite
MouseMove($perso[0] + 70, $perso[1] + 40);bas droite
deplacement()
Sleep(2000)
monstre()
ElseIf ($DistanceX = 0 And $DistanceY > 0) Then
;bas
MouseMove($perso[0], $perso[1] + 30);bas
deplacement()
Sleep(2000)
monstre()
Else
;monstre non détecté
MouseClick("left", 67, 160)
$search2 = PixelSearch(0,0,800,600,0x16DCFF)
If Not @error Then
Send("é")
MouseClick("left",$search2[0],$search2[1])
Sleep(2000)
EndIf
Send("^w")
ContinueLoop
EndIf
#cs If ($perso[0] - $monstre[0] < 0) Then
;on va à droite
;+80 -10
MouseClick("left", $perso[0] + 80, $perso[1] - 10)
Sleep(2000)
monstre()
TrayTip("", "droite", 100)
Else
;-80 +10
;on va à gauche
MouseClick("left", $perso[0] - 80, $perso[1] + 10)
monstre()
TrayTip("", "gauche", 100)
EndIf
If ($perso[1] - $monstre[1] > 0) Then
;on va en haut
;+30 -50
MouseClick("left", $perso[0] + 10, $perso[1] - 35)
Sleep(2000)
monstre()
TrayTip("", "haut", 100)
Else
;on va en bas
;-30 +50
MouseClick("left", $perso[0] - 25, $perso[1] + 45)
Sleep(2000)
monstre()
TrayTip("", "bas", 100)
#ce EndIf
Else
$search2 = PixelSearch(0,0,800,600,0x16DCFF)
If Not @error Then
Send("é")
MouseClick("left",$search2[0],$search2[1])
Sleep(2000)
EndIf
Send("^w")
EndIf
EndIf
Else
TrayTip("Personnage non détecté","Système de secours déclenché",100)
secours()
$monstre = PixelSearch(0, 0, 800, 600, 0x0000FF)
If Not @error Then
Send("é")
MouseClick("left",$monstre[0], $monstre[1])
Sleep(2000)
Send("^w")
Else
$search2 = PixelSearch(0,0,800,600,0x16DCFF)
If Not @error Then
Send("é")
MouseClick("left",$search2[0],$search2[1])
Sleep(2000)
EndIf
EndIf
Send("^w")
EndIf
Send("^w")
Sleep(1000)
EndIf
Else
$ble = PixelSearch(0,0,685,513,"0xFFFF44") ;recherche blé 1
If @error Then
$ble = PixelSearch(0,0,685,513,"0xFFFF45") ;recherche blé 2
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xFFFF46") ;recherche blé 3
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xFFFF49") ;recherche blé 4
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xFFFF48") ;recherche blé 5
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xFFFF48") ;recherche blé 6
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xFFDE2C") ;recherche blé 7
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xF6E13C") ;recherche blé 8
EndIf ;
If @error Then
$ble = PixelSearch(0,0,685,513,"0xFDFB42") ;recherche blé 8
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xF3EF3E") ;recherche blé 8
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xEFE93C") ;recherche blé 8
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xFDFD42") ;recherche blé 8
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xEED939") ;recherche blé 8
EndIf
If @error Then
$ble = PixelSearch(0,0,685,513,"0xB79329") ;recherche blé 8
EndIf
If Not @error Then
$afficher = 0
$x = $ble[0]
$y = $ble[1]
MouseClick("left",$x, $y)
Sleep(400)
$mouse = MouseGetPos()
$name = PixelSearch($mouse[0]-80,$mouse[1]-80,$mouse[0]+80,$mouse[1]+80,0x322E25)
If Not @error Then
ContinueLoop
EndIf
MouseMove($x + 5, $y + 20)
Sleep($temps * 1200) ;L'erreur était ici, il avait mis sleep(100).
$mouse = MouseGetPos()
$fauche = PixelGetColor($mouse[0], $mouse[1])
If $fauche <> 0xFF6600 Then;Si on ne peut pas faucher
ContinueLoop
EndIf
MouseClick("left")
$compteur = $compteur+1
Sleep($temps * 1000)
Else
$niveau = PixelSearch(0, 50, 750, 400, 0xFF6100)
$afficher = 0
If Not @error Then
MouseMove($niveau[0] + 10, $niveau[1] + 10)
MouseClick("left")
Sleep(1000)
Else
TrayTip("", "Pas de blé détecté, changez de carte si le problème persiste", 100)
Sleep("3000")
EndIf
EndIf
EndIf
WEnd
Case $Button2
$Ressource = GUICtrlCreateInput("Orge", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Case $Button3
$Ressource = GUICtrlCreateInput("Avoine", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Case $Button4
$Ressource = GUICtrlCreateInput("Houblon", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Case $Button5
$Ressource = GUICtrlCreateInput("Seigle", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Case $Button6
$Ressource = GUICtrlCreateInput("Riz", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Case $Button7
$Ressource = GUICtrlCreateInput("Malt", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Case $Button8
$Ressource = GUICtrlCreateInput("Malt", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Case $Button10
$Ressource = GUICtrlCreateInput("Lin", 136, 56, 81, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Case $Radio1
TrayTip("Mode banque","Le personnage effectue le trajet jusqu'a la banque lorsque son iventaire est plein pour y déposer la ressource choisie, puis revient sur la carte initial pour de nouveau faucher et ceci ainsi de suite",10000)
$mode = 1
Case $Radio2
TrayTip("Mode farmer","Le personnage coupe la ressource choisie sans arrêt et lorsque son inventaire est plein il supprime la ressource de son inventaire, et ceci dans le but de monter son niveau de métier paysan rapidement",10000)
$mode = 2
Case $Radio3
TrayTip("Mode basique","Le personnage coupe la ressource choisie sans arrêt et lorsque que son inventaire est plein, le bot ainsi que le jeu sont fermés",10000)
$mode = 3
EndSwitch
WEnd