#cs
-----------------------------------
NOM PROGRAMME : DOFBOT G4
FONCTION : Automate pour Dofus
PROGRAMMEUR : H@RRY de dofbots.blogspot.com
DATE : 01/08/2012
-----------------------------------
#ce
#RequireAdmin
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
; === LES VARIABLES =============
; ===============================
#Region ### START VARIABLES ZONE ###
Global $currentVersion = 400
_verifVersion()
; --- INITIALISATIONS ---
Global $modeBot = 0
Global $tempsRecolte = 0
Global $nomPerso = ""
Global $verif = 10
Global $modeAggro = 0
Global $continuer = 0
Global $erreur = 0
Global $colorCheck = 0
Global $nbDeplacements = 0
Global $compteur = 0
Global $nbErreursCsq = 0
Global $popUp = 0
Global $totalRecolte = 0
Global $i = 0
Global $stepDMap = 0
Global $atkPortee = ""
Global $atkKey = ""
Global $nbPM = ""
Global $nbLancerTour = ""
Global $combatState = 0
Global $nbCombats = 0
Global $posDetruire[2], $posValiderDetruire[2], $posAmie[2], $posEnnemy[2] = [0,0]
Global $botOn = 0
Global $distanceEnnemy = 0
Global $posAtkKey[2] = [0,0]
Global $trajetState = 0
Global $couleurInv[26]
Global $sortieDeCombat = 0
Global $optionSlow = 0
Global $optionDebug = 0
Global $stepColorPerso = 0
Global $sortirDuLoopRessourcePerso = 0
Global $optionInvoc = 0
Global $nomBanque = ""
Global $posPorteBanque[2] = [0,0]
Global $posBanquier[2] = [0,0]
Global $posSortieBanque[2] = [0,0]
; --- INITIALISATION 2 ---
Global $maxMapHaut = 42
Global $maxMapBas = 500
Global $maxMapDroite = 680
Global $maxMapGauche = 19
Global $deplacementsMap[100]
Global $iniRecoltesRestantes = 200
Global $recoltesRestantes = $iniRecoltesRestantes
Global $posPorteBanqueAstrub[2] = ["500", "235"]
Global $posBanquierAstrub[2] = ["315","230"]
Global $posSortieBanqueAstrub[2] = ["219", "374"]
Global $posPorteBanqueBonta[2] = ["242", "299"]
Global $posBanquierBonta[2] = ["319", "269"]
Global $posSortieBanqueBonta[2] = ["213", "400"]
; --- COULEURS --
Global $couleurRessource[4]
Global $couleurPreuveRessource[2]=["0xBDBCB2","0xDEDEC7"]
Global $couleurRessourcePerso[4]=["","","",""]
Global $couleurBle[4] = ["0xF8D73E","0xF8E83E","0xF8DF38","0xFAD334"]
Global $couleurOrge[4] = ["0x394F08","0x3F540B","0x385009","0x3D500C"]
Global $couleurHoublon[4] = ["0x96CFAD","0x7EB390","0xA1C8AD","0x8AC19F"]
Global $couleurAvoine[4] = ["0xFCF0DF","0xF1EBA1","0xE8D1B8","0xDDC8B0"]
Global $couleurSeigle[4] = ["0xFCF0DF","0xF1EBA1","0xE8D1B8","0xDDC8B0"] ; A CHANGER PCK APPAREMMENT CST L'AVOINE CA !!
Global $couleurChanvre[4] = ["0xA1A520","0xAEA900","0xAEA800","0x7A9010"]
Global $couleurMalt[4] = ["0xBC7C25","0xB17228","0xB16B1F","0xA66D32"]
Global $couleurLin[4] = ["0xD8D0A6","0xE9D5B0","0xD1CAA4","0xDCD4AD"]
Global $couleurBleInventaire[5] = ["0xD9A910","0xE3BA2E","0xDBA801","0xCF9B00","0xE0B630"]
Global Const $couleurCroix = 0xFF6100
Global Const $theOrangeFight = 0xFF4D00
Global Const $theRed = 0xFF0000
Global Const $theBlue = 0x0000FF
Global Const $theOrange = 0xFF6100
Global Const $theGreenFight = 0x006600
Global Const $couleurInventaireVide = 0x514A3C ; BugInvPlein
Global Const $couleurInventaireVide2 = 0xBDB9A1 ; BugInvPlein
Global Const $couleurInventairePlein = 0xAE0707
; COULEUR PORTE BANQUE CENTRALE BONTA : 237, 300 0x827042 ; BANQUIER : 319, 269
; --- AUTRES VARIBLES ---
Global $magicWordUser = ""
Global $magicWord1 = ""
Global $magicWord2 = ""
; On ouvre le fichier du journal
Global $journalFile = FileOpen(@ScriptDir & "\dofbotJournal.txt",1)
#EndRegion ### END VARIABLES ZONE ###
; === LES GUI BIIIIATCH ===
#Region ### START Koda GUI section ### Form=c:\users\harry\documents\autoit script\dbg4_modele.kxf ; La Gui principale
Global $GUI = GUICreate("DBG" & $currentVersion & "", 595, 539, 191, 126)
Global $Tab1 = GUICtrlCreateTab(8, 8, 577, 513)
Global $TabSheet2 = GUICtrlCreateTabItem("Dofbot G4")
Global $journal = GUICtrlCreateEdit("", 16, 48, 257, 329, BitOR($ES_AUTOVSCROLL,$ES_READONLY,$WS_VSCROLL))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $grpCereales = GUICtrlCreateGroup("Ressource", 280, 40, 129, 49)
Global $btnNfoCereals = GUICtrlCreateButton("Aide", 344, 56, 51, 17)
Global $inputRessource = GUICtrlCreateInput("", 288, 60, 49, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $grpMode = GUICtrlCreateGroup("Mode", 416, 40, 161, 89)
Global $radioClassique = GUICtrlCreateRadio("Classique", 424, 56, 65, 17)
Global $radioFarmer = GUICtrlCreateRadio("Farmer (seulement blé)", 424, 80, 129, 17)
Global $radioBanque = GUICtrlCreateRadio("Banque (reglages sup. )", 424, 104, 137, 17)
Global $btnNfoMode = GUICtrlCreateButton("Aide", 528, 48, 43, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $grpAggro = GUICtrlCreateGroup("Aggro ressources", 416, 136, 161, 65)
Global $radioBip = GUICtrlCreateRadio("Jouer un bip", 424, 152, 145, 17)
Global $radioCombattre = GUICtrlCreateRadio("Combattre (reglages sup.)", 424, 176, 145, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $grpNom = GUICtrlCreateGroup("Nom du personnage", 416, 208, 161, 49)
Global $inputNomPerso = GUICtrlCreateInput("", 424, 228, 145, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $grpTemps = GUICtrlCreateGroup("Temps de recolte (en sec)", 416, 264, 161, 49)
Global $inputTempsRecolte = GUICtrlCreateInput("10", 424, 284, 145, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $btnLancer = GUICtrlCreateButton("Lancer (Echap pour stop)", 416, 328, 159, 41)
Global $btnEffacerJournal = GUICtrlCreateButton("Vider journal", 96, 32, 75, 15)
Global $grpBanque = GUICtrlCreateGroup("Mode Banque", 184, 380, 209, 129)
Global $btnNfoBanque = GUICtrlCreateButton("Aide", 270, 387, 43, 16)
Global $journalD = GUICtrlCreateEdit("", 192, 404, 89, 95, BitOR($ES_AUTOVSCROLL,$ES_READONLY,$WS_VSCROLL))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $btnEffacerJournalD = GUICtrlCreateButton("Effacer", 338, 392, 43, 17)
Global $btnHaut = GUICtrlCreateButton("Haut", 312, 412, 43, 17)
Global $btnGauche = GUICtrlCreateButton("Gauche", 285, 428, 43, 17)
Global $btnDroite = GUICtrlCreateButton("Droite", 339, 428, 43, 17)
Global $btnBas = GUICtrlCreateButton("Bas", 312, 444, 43, 17)
Global $radioBanqueAstrub = GUICtrlCreateRadio("Banque Astrub", 286, 467, 97, 17)
Global $radioBanqueBonta = GUICtrlCreateRadio("Banque Bonta", 286, 488, 97, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $grpCombattre = GUICtrlCreateGroup("Combattre", 400, 380, 177, 129)
Global $btnNfoCombattre = GUICtrlCreateButton("Aide", 464, 388, 43, 17)
Global $chkbInvocs = GUICtrlCreateCheckbox("Invocs", 520, 392, 49, 17)
Global $lblAttaqueKey = GUICtrlCreateLabel("Raccourci :", 408, 412, 59, 17)
Global $radioAtkKey1 = GUICtrlCreateRadio("1", 480, 415, 28, 14)
Global $radioAtkKey2 = GUICtrlCreateRadio("2", 512, 414, 28, 15)
Global $radioAtkKey3 = GUICtrlCreateRadio("3", 544, 414, 28, 15)
Global $lblNbLancerTour = GUICtrlCreateLabel("Nombre attaque/tour :", 408, 436, 109, 17)
Global $inputNbLancerTour = GUICtrlCreateInput("", 520, 436, 49, 21)
Global $lblPortee = GUICtrlCreateLabel("Portée de l'attaque :", 408, 460, 99, 17)
Global $inputPortee = GUICtrlCreateInput("", 520, 460, 49, 21)
Global $lblNbPM = GUICtrlCreateLabel("Ton nombre de PM :", 408, 484, 101, 17)
Global $inputPM = GUICtrlCreateInput("", 520, 484, 49, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $Group2 = GUICtrlCreateGroup("Options (facultatif)", 280, 96, 129, 177)
Global $btnNfoOptions = GUICtrlCreateButton("Aide", 344, 112, 51, 17)
Global $chkbSlow = GUICtrlCreateCheckbox("Slow", 288, 112, 49, 17)
Global $chkbHSlow = GUICtrlCreateCheckbox("Hyper Slow", 288, 136, 81, 17)
Global $chkbDebug = GUICtrlCreateCheckbox("Debug", 288, 160, 81, 17)
Global $btnAjouterRessource = GUICtrlCreateButton("Aj. ressource", 305, 209, 67, 25)
Global $Label2 = GUICtrlCreateLabel("2.", 288, 216, 13, 17)
Global $Label6 = GUICtrlCreateLabel("3.", 288, 248, 13, 17)
Global $btnSetColors = GUICtrlCreateButton("Bientot...", 304, 240, 67, 25)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $Checkbox1 = GUICtrlCreateCheckbox("Craft (réglages sup.)", 288, 184, 113, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $grpCompteurs = GUICtrlCreateGroup("Compteurs", 280, 280, 129, 97)
Global $inputTotalRecoltes = GUICtrlCreateInput("", 288, 297, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
Global $inputTotalPopups = GUICtrlCreateInput("", 288, 320, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
Global $inputTotalCombats = GUICtrlCreateInput("", 288, 344, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
Global $Label1 = GUICtrlCreateLabel("Récoltes", 352, 304, 46, 17)
Global $Label3 = GUICtrlCreateLabel("Popups", 352, 328, 40, 17)
Global $Label4 = GUICtrlCreateLabel("Combats", 352, 352, 45, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $btnCopierJournal = GUICtrlCreateButton("Copier journal", 16, 32, 75, 15)
Global $grpNews = GUICtrlCreateGroup("News", 16, 381, 161, 128)
Global $journalNews = GUICtrlCreateEdit("", 24, 397, 145, 104, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $btnVoirPreviousJournal = GUICtrlCreateButton("Précédent journal", 176, 32, 99, 15)
GUICtrlCreateTabItem("")
Global $lblFooter = GUICtrlCreateLabel("http://dofbots.blogspot.com", 448, 521, 136, 17)
Global $lblTitle = GUICtrlCreateLabel("Dofbot 4e Generation", 232, 0, 144, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
GUICtrlSetColor(-1, 0x000080)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
#Region ### START Koda GUI section ### Form=c:\users\harry\documents\autoit script\gui2.kxf
Global $GUI2 = GUICreate("DBG" & $currentVersion & " - Ressource record", 388, 232, 205, 132)
Global $PageControl1 = GUICtrlCreateTab(8, 8, 372, 184)
Global $TabSheet100 = GUICtrlCreateTabItem("Choix des couleurs")
Global $ColorBox = GUICtrlCreateEdit("", 184, 40, 185, 137, BitOR($ES_READONLY,$ES_WANTRETURN))
GUICtrlSetData(-1, "ColorBox")
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label100 = GUICtrlCreateLabel("Emmènes ton curseur sur la", 16, 40, 139, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label200 = GUICtrlCreateLabel("couleur choisie.", 16, 56, 80, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label300 = GUICtrlCreateLabel("Enregistres la en appuyant sur 'c'", 16, 80, 165, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label400 = GUICtrlCreateLabel("1/4", 80, 104, 19, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label4000 = GUICtrlCreateLabel("Pourquoi 4 couleurs ?", 16, 128, 109, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label500 = GUICtrlCreateLabel("Pour augmenter les chances de", 16, 152, 157, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Global $Label112 = GUICtrlCreateLabel("trouver votre ressource !", 16, 168, 125, 18)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
GUICtrlCreateTabItem("")
Global $btnValider2 = GUICtrlCreateButton("&Valider", 222, 200, 75, 25)
Global $btnAnnuler2 = GUICtrlCreateButton("&Annuler", 302, 200, 75, 25)
#EndRegion ### END Koda GUI section ###
;=== LETS GO ================
;============================
_trucsAvantLeWhile()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
exit
; Mode bot
Case $btnNfoMode
_infoMode()
Case $radioClassique
_selectRadioClassique()
Case $radioFarmer
_selectRadioFarmer()
Case $radioBanque
_selectRadioBanque()
; Options Bot
Case $btnNfoOptions
_infoOptions()
; Cereale(s)
Case $btnNfoCereals
_infoCereals()
Case $btnAjouterRessource
_enregistrementRessourcePerso()
; Mode combat
Case $btnNfoCombattre
_infoCombattre()
Case $radioBip
_selectRadioBip()
Case $radioCombattre
_selectRadioCombattre()
Case $radioAtkKey1
_selectRadioAtkKey1()
Case $radioAtkKey2
_selectRadioAtkKey2()
Case $radioAtkKey3
_selectRadioAtkKey3()
; Mode Banque
Case $btnNfoBanque
_infoBanque()
Case $btnHaut
_choixDirection("haut")
Case $btnBas
_choixDirection("bas")
Case $btnDroite
_choixDirection("droite")
Case $btnGauche
_choixDirection("gauche")
Case $btnEffacerJournalD
_effacerJournalDMap()
Case $radioBanqueAstrub
_selectRadioBanqueAstrub()
Case $radioBanqueBonta
_selectRadioBanqueBonta()
Case $btnCopierJournal
ClipPut(GUICtrlRead($journal))
MsgBox(64, "Dofbot", "Le contenu du journal a été copié dans le presse papier")
Case $btnEffacerJournal
GUICtrlSetData($journal,"")
Case $btnVoirPreviousJournal
ShellExecute(@ScriptDir & "\dofbotJournal.txt")
Case $btnLancer
_verifsDemarrage()
if $botOn = 0 Then
ContinueCase
EndIf
; == Et maintenant, le coeur de la maison, la cuisine ==
While 1
_allVerifs() ; On verifie un tas de trucs
If $botOn = 1 Then ; Si tout va bien on y va
_recolte()
Else ; Sinon on arrete le bot
journalMsg("Arret du bot")
; On rallume le bouton Lancer
GUICtrlSetState($btnLancer, $GUI_ENABLE)
ContinueCase
EndIf
WEnd
EndSwitch
WEnd
; === Fonctions GUIesques ===
; ===========================
Func _selectRadioClassique()
$modeBot = 1
_disableModeBanque()
EndFunc
func _selectRadioFarmer()
$modeBot = 2
_disableModeBanque()
EndFunc
func _selectRadioBanque()
$modeBot = 3
_enableModeBanque()
EndFunc
func _selectRadioBip()
$modeAggro = 1
_disableModeCombat()
EndFunc
Func _selectRadioCombattre()
$modeAggro = 2
_enableModeCombat()
EndFunc
Func _selectRadioAtkKey1()
$atkKey = 1
$posAtkKey[0] = 428
$posAtkKey[1] = 524
EndFunc
Func _selectRadioAtkKey2()
$atkKey = 2
$posAtkKey[0] = 453
$posAtkKey[1] = 525
EndFunc
Func _selectRadioAtkKey3()
$atkKey = 3
$posAtkKey[0] = 478
$posAtkKey[1] = 525
EndFunc
Func _selectRadioBanqueAstrub()
$nomBanque = "Astrub"
EndFunc
Func _selectRadioBanqueBonta()
$nomBanque = "Bonta"
EndFunc
; === Fonctions generales =======
; ===============================
Func journalMsg($messageJournal, $autresInfos = "")
If $optionDebug = 0 Then
$journalPrevious = GUICtrlRead($journal)
GUICtrlSetData($journal, @HOUR & ":" & @MIN & ":" & @SEC & " : " & $messageJournal & @CRLF & $journalPrevious )
FileWrite($journalFile, @HOUR & ":" & @MIN & ":" & @SEC & ":" & @MSEC & " : " & $messageJournal & @CRLF )
Else
$journalPrevious = GUICtrlRead($journal)
GUICtrlSetData($journal, @HOUR & ":" & @MIN & ":" & @SEC & ":" & @MSEC & " : " & $messageJournal & " + " & $autresInfos & @CRLF & $journalPrevious )
FileWrite($journalFile, @HOUR & ":" & @MIN & ":" & @SEC & ":" & @MSEC & " : " & $messageJournal & " + " & $autresInfos & @CRLF )
EndIf
EndFunc
Func stopBot($raison, $autresInfos = "")
journalMsg($raison & ". Arret en cours...")
If $combatState = 1 Then
$combatState = 0
EndIf
$botOn = 0
EndFunc
Func closeBotRac()
If $botOn = 1 Then
journalMsg("Arret en cours...", "Appui sur Echap")
$botOn = 0
If $combatState = 1 Then
$combatState = 0
EndIf
EndIf
EndFunc
Func _pause($lvl)
$sleepingTime = $lvl * 500
If $optionSlow = 0 Then
Sleep($sleepingTime)
; Si on est en slow option
ElseIf $optionSlow = 1 Then
Sleep($sleepingTime * 3)
; Si on est en HYPER slow option
ElseIf $optionSlow = 2 Then
Sleep($sleepingTime * 6)
Else
journalMsg("PAUSE fatal error.")
EndIf
EndFunc
Func _msgBienvenue()
journalMsg("Salut " & @UserName & " ! (OS :" & @OSVersion & ")" )
EndFunc
; === Fonctions de demarrage =====
Func _trucsAvantLeWhile()
_chargement()
_msgBienvenue()
_disableModeBanque()
_disableModeCombat()
_chargementNews()
EndFunc
; ===============================
Func _verifsDemarrage()
$verifsRequises=0
$verifsValidees=0
$errorRessourceInput=0
$ErreursList = "Voici la liste des erreurs :"
; -- Mode Bot ------------------
; ------------------------------
$verifsRequises = $verifsRequises + 1 ; 0/1
If $modeBot <> 0 Then ; Mode bot bien choisi
$verifsValidees = $verifsValidees + 1 ; 1/1
Else
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Le mode n'est pas choisi")
EndIf
If $modeBot = 3 Then ; Mode banque regle
$verifsRequises = $verifsRequises + 1
If $deplacementsMap[0] <> "" Then
$verifsValidees = $verifsValidees + 1
Else
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Deplacements pour le mode banque non enregistres")
EndIf
$verifsRequises = $verifsRequises + 1
If $nomBanque <> "" Then
$verifsValidees = $verifsValidees + 1
Else
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- T'as pas choisi de banque")
EndIf
EndIf
; -- Mode Aggro ----------------
; ------------------------------
$verifsRequises = $verifsRequises + 1 ; ; 1/2
If $modeAggro <> 0 Then ; Mode aggro bien choisi
$verifsValidees = $verifsValidees + 1 ; 2/2
Else
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Tu n'as pas choisi de mode pour les agressions")
EndIf
If $modeAggro = 2 Then ; Mode combat bien regle
$verifsRequises = $verifsRequises + 1 ; 2/3
$atkPortee = GUICtrlRead($inputPortee)
$nbPM = GUICtrlRead($inputPM)
$nbLancerTour = GUICtrlRead($inputNbLancerTour)
If $atkKey <> "" And $nbLancerTour <> "" And $atkPortee <> "" And $nbPM <> "" Then
$verifsValidees = $verifsValidees + 1 ; 3/3
Else
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Tu n'as pas bien rempli les reglages sup. du mode Combattre")
EndIf
EndIf
; -- Nom perso -----------------
; ------------------------------
$verifsRequises = $verifsRequises + 1 ; 2/3
$nomPerso = GUICtrlRead($inputNomPerso)
If WinExists($nomPerso) And $nomPerso <> "" Then
sleep(200)
WinSetState($nomPerso,"",@SW_MINIMIZE)
WinSetState($nomPerso,"",@SW_RESTORE)
WinMove($nomPerso, "", 0, 0, 700, 600)
WinMove($GUI,"",700, 0)
$verifsValidees = $verifsValidees + 1 ; 3/3
ElseIf $nomPerso = "" Then
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Tu n'as pas ecrit de nom de personnage")
Else
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Fenetre de ton personnage introuvable, verifies le Pseudo")
EndIf
; -- Temps de Fauche -----------
; ------------------------------
$verifsRequises = $verifsRequises + 1
$tempsRecolte = GUICtrlRead($inputTempsRecolte)
If $tempsRecolte <> "" And $tempsRecolte > 0 Then
$verifsValidees = $verifsValidees + 1
ElseIf $tempsRecolte = "" Then
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Temps de recolte non renseigne")
Else
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Temps de recolte incorrect")
EndIf
; -- Ressource ----------------
; -----------------------------
$verifsRequises = $verifsRequises + 1
$ressourceUser = GUICtrlRead($inputRessource)
If $ressourceUser = "Blé" Or $ressourceUser = "blé" Then
$couleurRessource = $couleurBle
ElseIf $ressourceUser = "Orge" Or $ressourceUser = "orge" Then
$couleurRessource = $couleurOrge
ElseIf $ressourceUser = "Avoine" Or $ressourceUser = "avoine" Then
$couleurRessource = $couleurAvoine
ElseIf $ressourceUser = "Houblon" Or $ressourceUser = "houblon" Then
$couleurRessource = $couleurHoublon
ElseIf $ressourceUser = "Lin" Or $ressourceUser = "lin" Then
$couleurRessource = $couleurLin
ElseIf $ressourceUser = "Seigle" Or $ressourceUser = "seigle" Then
$couleurRessource = $couleurSeigle
ElseIf $ressourceUser = "Malt" Or $ressourceUser = "malt" Then
$couleurRessource = $couleurMalt
ElseIf $ressourceUser = "Chanvre" Or $ressourceUser = "seigle" Then
$couleurRessource = $couleurChanvre
ElseIf $ressourceUser = "Perso" Or $ressourceUser = "perso" Then
If $couleurRessourcePerso[3] = "" Then
$errorRessourceInput = 39
Else
$couleurRessource = $couleurRessourcePerso
EndIf
; Les erreurs
ElseIf $ressourceUser = "" Then
$errorRessourceInput = 37 ; THE FAMOUS ERROR 37
Else ; = T'as ecrit n'importequoi
$errorRessourceInput = 38 ; Pourquoi 38 ? Je ne sais pas !
EndIf
If $errorRessourceInput = 38 Then
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Orthographe ressource incorrecte")
ElseIf $errorRessourceInput = 37 Then
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Ressource non renseignee")
ElseIf $errorRessourceInput = 39 Then
$PreviousErreursList = $ErreursList
$ErreursList = ( $PreviousErreursList & @CRLF & "- Ressources personnalisees non detectees")
Else
$verifsValidees = $verifsValidees + 1
EndIf
; -- Si tout est bon on lance --
if $verifsValidees = $verifsRequises Then
_preparatifs()
$lancement = MsgBox(64+4, "Dofbot", _
"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 & _
". Tu as bien laisser en place le redimensionnement." & @CRLF & _
". Le nom de ton perso est different du nom d'utilisateur Windows." & @CRLF & _
". Ton theme de couleur d'interface est bien le theme Beige (1.x)." & @CRLF & _
". Tu as desactive la transparence." & @CRLF & _
". Tu es en mode creature + mode tactique pour le mode combat." & @CRLF & _
". Ce n'est pas fini ! Tes raccourcis doivent etre les suivants :" & @CRLF & _
"- Passer son tour : 'CTRL+W'" & @CRLF & _
"- Ouvrir/fermer l'inventaire : 'i'"& @CRLF & @CRLF & _
"Alors, tu n'as rien oublier ? T'es sur de toi ? On peut commencer ?")
If $lancement = 6 Then
_demarrage()
EndIf
; -- Sinon .. Erreur --
Else
MsgBox(48,"Dofbot","Erreur, il manque des informations ou certaines informations sont incorrectes." & @CRLF & _
$ErreursList & @CRLF & @CRLF & _
"Autres precisions : Le bot doit etre lance en mode administrateur.")
EndIf
EndFunc
Func _switchMediumQuality()
sleep(500)
MouseClick("right",478, 120)
sleep(500)
MouseClick("left",534, 166)
sleep(500)
MouseClick("left",610, 177)
EndFunc
Func _preparatifs()
; Les CHKB d'options
$STATEslowOption = GUICtrlRead($chkbSlow)
$STATEhSlowOption = GUICtrlRead($chkbHSlow)
$STATEdebugOption = GUICtrlRead($chkbDebug)
If $STATEhSlowOption = 1 Then
$optionSlow = 2
ElseIf $STATEslowOption = 1 Then
$optionSlow = 1
Else
$optionSlow = 0
EndIf
If $STATEdebugOption = 1 Then
$optionDebug = 1
Else
$optionDebug = 0
EndIf
; La Checkbox pour les invocs
$stateOptionInvoc = GUICtrlRead($chkbInvocs)
If $stateOptionInvoc = 1 Then $optionInvoc = 1
If $stateOptionInvoc <> 1 Then $optionInvoc = 0
; Choix de la banque
$stateBanqueAstrub= GUICtrlRead($radioBanqueAstrub)
$stateBanqueBonta= GUICtrlRead($radioBanqueBonta)
If $stateBanqueAstrub = 1 Then
$posPorteBanque = $posPorteBanqueAstrub
$posBanquier = $posBanquierAstrub
$posSortieBanque = $posSortieBanqueAstrub
ElseIf $stateBanqueBonta = 1 Then
$posPorteBanque = $posPorteBanqueBonta
$posBanquier = $posBanquierBonta
$posSortieBanque = $posSortieBanqueBonta
EndIf
; On sauvegarde pour la next time
_sauvegarde()
EndFunc
Func _sauvegarde()
; 1. LES INPUTS
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Nom Personnage", GUICtrlRead($inputNomPerso))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Temps Recolte",GUICtrlRead($inputTempsRecolte))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Ressource", GUICtrlRead($inputRessource))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Attaques par tour", GUICtrlRead($inputNbLancerTour))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Portee de l'attaque", GUICtrlRead($inputPortee))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Nombre de PM", GUICtrlRead($inputPM))
; 2. Les tableaux
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Tableaux", "Couleur Ressource Perso[0]", $couleurRessourcePerso[0])
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Tableaux", "Couleur Ressource Perso[1]", $couleurRessourcePerso[1])
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Tableaux", "Couleur Ressource Perso[2]", $couleurRessourcePerso[2])
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Tableaux", "Couleur Ressource Perso[3]", $couleurRessourcePerso[3])
; 3. LES RADIOS
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Classique", GUICtrlRead($radioClassique))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Farmer", GUICtrlRead($radioFarmer))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Banque", GUICtrlRead($radioBanque))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Bip", GUICtrlRead($radioBip))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Combattre", GUICtrlRead($radioCombattre))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Touche d'attaque 1", GUICtrlRead($radioAtkKey1))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Touche d'attaque 2", GUICtrlRead($radioAtkKey2))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Touche d'attaque 3", GUICtrlRead($radioAtkKey3))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Banque Astrub", GUICtrlRead($radioBanqueAstrub))
IniWrite(@ScriptDir & "\dofbotSauvegarde.ini", "Radios", "Banque Bonta", GUICtrlRead($radioBanqueBonta))
EndFunc
Func _chargement()
; 1. LES INPUTS
$savedNomPerso = IniRead(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Nom Personnage", "")
$savedTempsRecolte = IniRead(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Temps Recolte", "")
$savedRessource = IniRead(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Ressource", "")
$savedNbLancerTour = IniRead(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Attaques par tour", "")
$savedPortee = IniRead(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Portee de l'attaque", "")
$savedPM = IniRead(@ScriptDir & "\dofbotSauvegarde.ini", "Inputs", "Nombre de PM", "")
GUICtrlSetData($inputNomPerso, $savedNomPerso, "")
GUICtrlSetData($inputTempsRecolte, $savedTempsRecolte, "")
GUICtrlSetData($inputRessource, $savedRessource, "")
GUICtrlSetData($inputNbLancerTour, $savedNbLancerTour, "")
GUICtrlSetData($inputPortee, $savedPortee, "")
GUICtrlSetData($inputPM, $savedPM, "")
; LES TABLEAUX
$savedCouleurPerso0 = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Tableaux", "Couleur Ressource Perso[0]", "")
$savedCouleurPerso1 = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Tableaux", "Couleur Ressource Perso[1]", "")
$savedCouleurPerso2 = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Tableaux", "Couleur Ressource Perso[2]", "")
$savedCouleurPerso3 = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Tableaux", "Couleur Ressource Perso[3]", "")
$couleurRessourcePerso[0] = $savedCouleurPerso0
$couleurRessourcePerso[1] = $savedCouleurPerso1
$couleurRessourcePerso[2] = $savedCouleurPerso2
$couleurRessourcePerso[3] = $savedCouleurPerso3
; LES RADIOS
$savedradioClassique = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Classique", "")
$savedradioFarmer = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Farmer", "")
$savedradioBanque = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Banque", "")
$savedradioBip = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Bip", "")
$savedradioCombattre = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Combattre", "")
$savedradioAtkKey1 = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Touche d'attaque 1", "")
$savedradioAtkKey2 = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Touche d'attaque 2", "")
$savedradioAtkKey3 = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Touche d'attaque 3", "")
$savedradioBanqueAstrub = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Banque Astrub", "")
$savedradioBanqueBonta = IniRead(@ScriptDir & "\dofbotSauvegarde.ini","Radios", "Banque Bonta", "")
If $savedradioClassique = 1 Then _selectRadioClassique() ; On ajoute ces if pour simuler le vrai clic sur la radio
GUICtrlSetState($radioClassique, $savedradioClassique)
If $savedradioFarmer = 1 Then _selectRadioFarmer()
GUICtrlSetState($radioFarmer, $savedradioFarmer)
If $savedradioBanque = 1 Then _selectRadioBanque()
GUICtrlSetState($radioBanque, $savedradioBanque)
If $savedradioBip = 1 Then _selectRadioCombattre()
GUICtrlSetState($radioBip, $savedradioBip)
If $savedradioCombattre = 1 Then _selectRadioCombattre()
GUICtrlSetState($radioCombattre, $savedradioCombattre)
If $savedradioAtkKey1 = 1 Then _selectRadioAtkKey1()
GUICtrlSetState($radioAtkKey1, $savedradioAtkKey1)
If $savedradioAtkKey2 = 1 Then _selectRadioAtkKey2()
GUICtrlSetState($radioAtkKey2, $savedradioAtkKey2)
If $savedradioAtkKey3 = 1 Then _selectRadioAtkKey3()
GUICtrlSetState($radioAtkKey3, $savedradioAtkKey3)
If $savedradioBanqueAstrub = 1 Then _selectRadioBanqueAstrub()
GUICtrlSetState($radioBanqueAstrub, $savedradioBanqueAstrub)
If $savedradioBanqueBonta = 1 Then _selectRadioBanqueBonta()
GUICtrlSetState($radioBanqueBonta, $savedradioBanqueBonta)
EndFunc
Func _demarrage()
; On transforme le bouton de demarrage
GUICtrlSetState($btnLancer, $GUI_DISABLE)
_switchMediumQuality()
; On desactive les reglages sup.
_disableModeBanque()
_disableModeCombat()
HotKeySet("{ESC}", "closeBotRac" )
journalMsg("Demarrage du bot")
$botOn = 1
; Reinitialisation des valeurs en cas de redemarrage
$nbErreursCsq = 0
EndFunc
; === Fonctions de verifications =
; ================================
Func _allVerifs()
; Forcement, on verifie pas l'aggro si on est deja en combat, pareil pour les pods
If $combatState = 0 Then
_verifAggros()
If $trajetState = 0 Then
_verifPods()
EndIf
EndIf
_verifsPopups()
_pause("2")
EndFunc
Func _verifPods()
; Si le compteur de fauche = la verif, on va jeter un oeil
If $compteur = $verif And $botOn = 1 Then
Send ("i")
journalMsg("Verification de l'inventaire")
$pods = 0
$compteur = 0
$stepNumber = 0
$abscisseEnPlus = 0
_pause("6")
; On releve la temperature de nos pods tranche par tranche
Do
$couleurInv[$stepNumber] = PixelGetColor(540 + $abscisseEnPlus,487)
If $optionDebug = 1 Then
journalMsg("Tranche " & $stepNumber & " = " & $couleurInv[$stepNumber])
EndIf
$stepNumber = $stepNumber + 1
$abscisseEnPlus = $abscisseEnPlus + 5
Until $stepNumber = 26
$stepNumber = 0
Do
$color = $couleurInv[$stepNumber]
$stepNumber = $stepNumber + 1
; Si la couleur est rouge on considere l'inevntaire plein
If $color = $couleurInventairePlein Or $stepNumber = 26 Then
$pods = 1
EndIf
; On considère l'inventaire non plein quand on trouve la couleur d'invetaire vide avant le bout de la barre
Until $color = $couleurInventaireVide Or $color = $couleurInventaireVide2 Or $pods = 1
; =============== QUARTIER DEBUG ==============
; =============================================
If $optionDebug = 1 Then
If $color = $couleurInventairePlein Then
journalMsg("CouleurInventairePlein trouvee a la tranche " & $stepNumber)
ElseIf $stepNumber = 26 Then
journalMsg("CouleurInventairePlein non trouvee")
ElseIf $color = $couleurInventaireVide Then
journalMsg("CouleurInventaireVide trouvee tranche " & $stepNumber)
EndIf
EndIf
; --- INVENTAIRE PLEIN ---
; ------------------------
if $pods = 1 Then
journalMsg("Inventaire plein (25/25)")
; Pour le Mode banque, on fait ce qui suit
if $modeBot = 3 Then
_pause(1)
Send ("i")
_pause(6)
_allerBanque()
_deposerBanque()
_retourBanque()
; Et pour les deux autres modes, on fait les bails t'as vu !
ElseIf $modeBot <> 3 Then
_inventairePlein()
_pause(4)
; Pour ces modes la, faut refermer l'inventaire :)
Send ("i")
_pause(4)
EndIf
; --- INVENTAIRE NON PLEIN ---
; ----------------------------
Else
; On met en pourcentage !
$pleinPourcent = (($stepNumber - 1)/25)*100
journalMsg("Inventaire non plein (rempli a " & $pleinPourcent & "%)")
Send ("i")
_pause(4)
EndIf
EndIf
EndFunc
Func _inventairePlein()
; Mode classique
if $modeBot = 1 Then
stopBot("Mode classique")
EndIf
; Mode farmer
if $modeBot = 2 Then
MouseClick("left",663,133)
sleep(500)
Send("Blé")
sleep(500)
; On clique droit a la position de la premiere ressource trouvee
MouseClick("right", 550, 155)
sleep(500)
$posDetruire[0] = 551 - 20
$posDetruire[1] = 155 + 42
; On clic gauche sur Detruire
MouseClick("left",$posDetruire[0], $posDetruire[1])
sleep(500)
$posValiderDetruire[0] = $posDetruire[0] + 65
$posValiderDetruire[1] = $posDetruire[1] - 15
sleep(500)
; On valide la quantitee
MouseClick("left",$posValiderDetruire[0], $posValiderDetruire[1])
sleep(500)
; Voulez vous vraiment ... OUI !
MouseClick("left",320, 340)
journalMsg("Suppression du ble effectuee")
EndIf
EndFunc
Func _verifAggros()
; On check la couleur a l'endroit qui devient orange quand on est en combat : le bouton pret
$couleur = PixelGetColor(336, 566)
if $couleur = $couleurCroix Then ; (car couleur croix = couleur bouton Pret)
journalMsg("Combat détécté", $couleurCroix & " trouvée en 336, 566")
if $modeAggro = 1 Then
_alerte()
ElseIf $modeAggro = 2 Then
_combattre()
EndIf
Else
If $optionDebug = 1 Then journalMsg("Combat non détécté", $couleur & " trouvée en 336, 566")
EndIf
EndFunc
Func _verifFinCombat()
; On regarde si la croix est dans la place !
$color = PixelSearch(655, 70, 670, 180, $couleurCroix)
If Not @error Then
$nbCombats = $nbCombats + 1
GUICtrlSetData($inputTotalCombats, $nbCombats )
$combatState = 0
journalMsg("Fin du combat")
MouseClick("left", $color[0], $color[1])
; Si on etait en trajet, on recommence la derniere action
If $trajetState = 1 Then
$sortieDeCombat = 1
$stepDMap = $stepDMap - 1
journalMsg("On reprend le trajet aller (" & $stepDMap & "e etape)")
ElseIf $trajetState = 2 Then
$sortieDeCombat = 1
$stepDMap = $stepDMap + 1
journalMsg("On reprend le trajet retour (" & $stepDMap & "e etape)")
EndIf
EndIf
EndFunc
Func _verifsPopups()
_killPopups(370, 343, "Up/Echange/Defi")
_killPopups(486, 245, "Up perso")
; Le reste seulement si on est pas en trajet
If $trajetState = 0 Then
_killPopups(199, 292, "Invitation groupe")
_killPopups(665, 81, "Inventaire")
_killPopups(637, 78, "Fenetre des sorts")
_killPopups(218, 81, "Fenetre des caracs")
_killPopups(671, 67, "Map")
EndIf
EndFunc
Func _verifsFauchesRestantes()
If $recoltesRestantes < 1 Then
stopBot("Fauches restantes < 1")
EndIf
EndFunc
Func _killPopups($x, $y, $sujet)
$couleur = PixelGetColor($x, $y)
if $couleur = $couleurCroix Then
; Pour l'inventaire, on suprimme le mouseclick, car il peut causer des changements de map
If $sujet = "Inventaire" Then
Send("i")
$popUp = $popUp + 1
GUICtrlSetData($inputTotalPopups, $popUp )
journalMsg("Fermeture Popup (" & $sujet & ")")
Else
$popUp = $popUp + 1
GUICtrlSetData($inputTotalPopups, $popUp )
MouseClick("left",$x, $y)
journalMsg("Fermeture Popup (" & $sujet & ")")
EndIf
EndIf
EndFunc
Func _tactiqueAndCreature()
$couleurDisabled = 0x7B7B7B ;304, 512
$couleurEnabled = 0xA1E401
$displayed1 = PixelGetColor(305,512)
$displayed2 = PixelGetColor(297, 525)
If $displayed1 = $couleurDisabled Then
journalMsg("On passe en mode tactique")
MouseClick("left",305,512)
EndIf
If $displayed2 = $couleurDisabled Then
journalMsg("On passe en mode creature")
MouseClick("left", 297, 525)
EndIf
EndFunc
; === Fonctions Aggros ==========
; ===============================
Func _alarmSong()
Beep (200 *3,500)
Beep (300 *3,500)
Beep (400 *3,500)
sleep(500)
Beep (400 *3,500)
Beep (400 *3,500)
Beep (400 *3,500)
EndFunc
Func _alerte()
stopBot("Alerte aggro !!")
_alarmSong()
EndFunc
Func _combattre()
$combatState = 1
journalMsg("Dofbot combat !")
Send("^w") ; Debut du combat
_pause("6")
; On retire le challenge et les cartes !
MouseClick("left", 32, 164)
MouseClick("left", 687, 480)
; ... Et on passe en tactique et creature
_tactiqueAndCreature()
Do
_waitTour()
Until $combatState = 0
EndFunc
Func _waitTour()
Do
_pause("1")
; On passe un petit coup de verifs, ca fait pas de mal
_allVerifs()
; On check la couleur a 4-5 secondes dans l'horloge du tour
$color = PixelGetColor(372, 516)
; Et si celle si est orange, on lance le tour !
If $color = $theOrangeFight Then
journalMsg("A notre tour")
_tour()
; Autrement, on verifie si le combat est fini. Qui sait ?
Else
_verifFinCombat()
EndIf
; Tout cela jusqu'a ce que le combatState soit = 0
Until $combatState = 0
EndFunc
Func _tour()
; Si on est pas en mode invoc !
If $optionInvoc = 0 Then
; On cherche posAmie (position de notre personnage)
_searchAmie()
; On cherche posEnnemy (position de l'ennemi le plus proche)
_searchEnnemy()
; On passe a la suite seulement si les positions sont trouvees (car positions non trouvees = $combatState 0 )
If $combatState = 1 Then
; Si l'ennemi est a portee, on attaque et on passe notre tour
If $distanceEnnemy <= $atkPortee Then
journalMsg("Ennemi a portee (" & $distanceEnnemy & " < " & $atkPortee & ")")
_attaquerEnnemy()
_passerTour()
; S'il n'est pas a portee, on se rapproche !
Else
journalMsg("On se rapproche de l'ennemi")
_seRapprocherEnnemy()
; Puis on reffectue les recherches
_searchAmie()
_searchEnnemy()
; On passe a la suite seulement si les positions sont trouvees (car positions non trouvees = $combatState 0 )
If $combatState = 1 Then
; Puis on attaque et on passe notre tour s'il est portee
If $distanceEnnemy <= $atkPortee Then
journalMsg("Ennemi a portee (" & $distanceEnnemy & " < " & $atkPortee & ")")
_attaquerEnnemy()
_passerTour()
; Ou on passe son tour
Else
_passerTour()
EndIf
EndIf
EndIf
EndIf
; Si on est en mode invoc !
Else
_searchAmie()
_searchEnnemy()
; Si on s'est bien trouve :p
If $combatState = 1 Then
_invocation()
_passerTour()
EndIf
EndIf
; On regarde si le combat est termine.
_verifFinCombat()
EndFunc
Func _passerTour()
Send("^w")
journalMsg("On passe le tour")
_resetPos()
_pause("10")
EndFunc
Func _attaquerEnnemy()
$nombreDeFois = 0
journalMsg("On attaque (" & $nbLancerTour & " fois)")
Do
Mouseclick("left", $posAtkKey[0], $posAtkKey[1])
MouseClick("left", $posEnnemy[0], $posEnnemy[1])
_pause("6")
$nombreDeFois = $nombreDeFois + 1
Until $nombreDeFois = $nbLancerTour
EndFunc
Func _searchAmie()
$posAmie = PixelSearch( $maxMapGauche , $maxMapHaut, $maxMapDroite, $maxMapBas, $theRed, 7)
If $optionDebug = 1 Then
journalMsg("PosAmie = " & $posAmie[0] & "," & $posAmie[1] )
EndIf
; Position non trouvee !
If @error Then
_verifFinCombat()
If $combatState = 0 Then
journalMsg("Nous ne sommes pas en combat !")
Else
stopBot("Position personnage introuvable.")
_alarmSong()
EndIf
EndIf
EndFunc
Func _searchEnnemy()
$distanceEnnemy = 0
$ecartX = 0
$ecartY = 0
$sortiesFenetre = 4
$continuer = 0
Do
$distanceEnnemy = $distanceEnnemy + 1
$ecartX = $ecartX + 20
$ecartY = $ecartY + 10
$SearchEnnemyGauche = $posAmie[0] - $ecartX
$SearchEnnemyDroite = $posAmie[0] + $ecartX
$SearchEnnemyHaut = $posAmie[1] - $ecartY
$SearchEnnemyBas = $posAmie[1] + $ecartY
$posEnnemy = PixelSearch( $SearchEnnemyGauche, $SearchEnnemyHaut, $SearchEnnemyDroite, $SearchEnnemyBas, $theBlue, 7)
; Quand ca marche on verifie que ca se trouve bien dans la fenetre
If Not @error Then
If $posEnnemy[0] > 5 And $posEnnemy[0] < 695 Then $sortiesFenetre = $sortiesFenetre - 2
If $posEnnemy[1] < 510 And $posEnnemy[1] > 30 Then $sortiesFenetre = $sortiesFenetre - 2
If $sortiesFenetre = 0 Then $continuer = 1
EndIf
; Jusqu'a ce que
Until $continuer = 1 Or $distanceEnnemy = 50
If $optionDebug = 1 Then
journalMsg("PosEnnemy = " & $posEnnemy[0] & "," & $posEnnemy[1])
EndIf
; On reagit a la conclusion precedente
If $distanceEnnemy < 50 Then
Else
_verifFinCombat()
If $combatState = 1 Then
stopBot("Position ennemie introuvable")
_alarmSong()
EndIf
EndIf
EndFunc
Func _seRapprocherEnnemy()
; Variables qui definissent la direction a adopter
$DistanceX = $posEnnemy[0] - $posAmie[0] ; Positif = Ennemi a droite , Negatif = Ennemi a gauche
$DistanceY = $posEnnemy[1] - $posAmie[1] ; Positif = Ennemi en bas , Negatif = Ennemi en haut
; Puis on traduit en nombre de pixels les PM disponibles (X=Abcisses , Y=Ordonnes)
$theMoveX = $nbPM * 20 ; 20 pixels (distance entre deux cases en abcisses)
$theMoveY = $nbPM * 10 ; 10 pixels (distance entre deux cases en ordonnees)
; La combinaison de moveX et de moveY donne le deplacement (only en diagonale)
; Le mouvement aura lieu depuis notre position, on associe donc les deux
$XPlus = $posAmie[0] + $theMoveX
$XMoins = $posAmie[0] - $theMoveX
$YPlus = $posAmie[1] + $theMoveY
$YMoins = $posAmie[1] - $theMoveY
; Les 4 variables precedentes contiennent donc l'abcisse et l'ordonnee d'un deplacement dans n'importequelle direction a partir de notre position
; --- Ennemy en Bas Droite -----
If $DistanceX > 0 And $DistanceY > 0 Then
MouseClick("left", $XPlus, $YPlus )
; --- Ennemy en Bas Gauche -----
ElseIf $DistanceX < 0 And $DistanceY > 0 Then
MouseClick("left", $XMoins, $YPlus )
; --- Ennemy en Haut Droite -----
ElseIf $DistanceX > 0 And $DistanceY < 0 Then
MouseClick("left", $XPlus, $YMoins )
; --- Ennemy en Haut Gauche -----
ElseIf $DistanceX < 0 And $DistanceY < 0 Then
MouseClick("left", $XMoins, $YMoins )
EndIf
_resetPos()
_pause("6")
EndFunc
Func _resetPos()
$posAmie[0] = ""
$posAmie[1] = ""
$posEnnemy[0] = ""
$posEnnemy[1] = ""
EndFunc
Func _invocation()
Mouseclick("left", $posAtkKey[0], $posAtkKey[1])
journalMsg("On invoque la bebete")
; Variables qui definissent la direction a adopter
$DistanceX = $posEnnemy[0] - $posAmie[0] ; Positif = Ennemi a droite , Negatif = Ennemi a gauche
$DistanceY = $posEnnemy[1] - $posAmie[1] ; Positif = Ennemi en bas , Negatif = Ennemi en haut
; Puis on traduit en nombre de pixels les PM disponibles (X=Abcisses , Y=Ordonnes)
$theMoveX = 20 ; 20 pixels (distance entre deux cases en abcisses)
$theMoveY = 10 ; 10 pixels (distance entre deux cases en ordonnees)
; La combinaison de moveX et de moveY donne le deplacement (only en diagonale)
; Le clic aura lieu depuis notre position, on associe donc les deux
$XPlus = $posAmie[0] + $theMoveX
$XMoins = $posAmie[0] - $theMoveX
$YPlus = $posAmie[1] + $theMoveY
$YMoins = $posAmie[1] - $theMoveY
; --- Ennemy en Bas Droite -----
If $DistanceX > 0 And $DistanceY > 0 Then
MouseClick("left", $XPlus, $YPlus )
; --- Ennemy en Bas Gauche -----
ElseIf $DistanceX < 0 And $DistanceY > 0 Then
MouseClick("left", $XMoins, $YPlus )
; --- Ennemy en Haut Droite -----
ElseIf $DistanceX > 0 And $DistanceY < 0 Then
MouseClick("left", $XPlus, $YMoins )
; --- Ennemy en Haut Gauche -----
ElseIf $DistanceX < 0 And $DistanceY < 0 Then
MouseClick("left", $XMoins, $YMoins )
EndIf
EndFunc
; === Fonctions de Recolte =======
; ===============================
Func _recolte()
$posRessource = 0
$i = Random(0,3,1)
$posRessource = PixelSearch(0,0,690,500,$couleurRessource[$i],1)
$errorFuncRecolte = 0
If Not @error Then
; Petit paragraphe de verification, grace au petit rectangle gris a droite du pointeur
MouseMove($posRessource[0], $posRessource[1])
$useless = PixelSearch($posRessource[0] + 20, $posRessource[1] - 50, $posRessource[0] + 100, $posRessource[1] + 10, $couleurPreuveRessource[0],1)
If @error Then $errorFuncRecolte = $errorFuncRecolte + 1
$useless2 = PixelSearch($posRessource[0] + 20, $posRessource[1] - 50, $posRessource[0] + 100, $posRessource[1] + 10, $couleurPreuveRessource[1],1)
If @error Then $errorFuncRecolte = $errorFuncRecolte + 1
; Erreur de petit carre gris non trouve alors que la ressource est soit disant trouvee
If $errorFuncRecolte = 2 Then
$nbErreursCsq = $nbErreursCsq + 1
If $optionDebug = 1 Then journalMsg("Mini box grise a droite du curseur introuvable (" & $nbErreursCsq & " fois sur 100 max)")
If $nbErreursCsq > 100 Then
stopbot("Ressource introuvable", "Plus de 100 fois consecutives")
EndIf
Else
journalMsg("Recolte !", $couleurRessource[$i] & " en (" & $posRessource[0] & "," & $posRessource[1] & ")")
$totalRecolte = $totalRecolte + 1
; Mise a jour des compteurs
$compteur = $compteur + 1
GUICtrlSetData($inputTotalRecoltes, $totalRecolte )
; Le clic, biatch !
MouseClick("left")
sleep($tempsRecolte * 1000)
; La pause qui suit correspond au temps d'aller sur le ble par exemple
_pause("2")
$nbErreursCsq = 0
EndIf
; Si la ressource n'est pas trouvee, erreur habituelle
Else
$nbErreursCsq = $nbErreursCsq + 1
If $optionDebug = 1 Then journalMsg("Ressource introuvable (" & $nbErreursCsq & " fois sur 100 max)")
if $nbErreursCsq > 100 Then
stopbot("Ressource introuvable","Plus de 100 fois consecutives")
EndIf
EndIf
EndFunc
Func _enregistrementRessourcePerso()
; Au cas ou c'est la 2e fois dans cette meme session on reinitialise
$sortirDuLoopRessourcePerso = 0
; Pas envie de le mettre en Global plus haut
$validage0 = 0
If $couleurRessourcePerso[3] <> "" Then
$validage0 = MsgBox(48 + 1,"Dofbot", "Attention ! Des couleurs ont deja ete enregistrees dans ce fichier : " & @ScriptDir & "\dofbotSauvegarde.ini" & @CRLF & @CRLF & _
"En continuant, tu vas les ecraser !")
ElseIf $couleurRessourcePerso[3] = "" Then
$validage0 = 1
EndIf
If $validage0 = 1 Then
$validage1 = MsgBox(48 + 1,"Dofbot", "En cliquant sur Ok, tu devras enregistrer 4 couleurs de pixel d'une ou plusieurs ressources, " & _
"ce sera ces 4 couleurs que Dofbot cherchera a recolter :)." & @CRLF & @CRLF & _
"PS : Tes 4 couleurs seront stockees apres lancement dans ce fichier : " & @ScriptDir & "\dofbotSauvegarde.ini")
; Si c'est ok on y va !
If $validage1 = 1 Then
$colorOfPos = 0
GUISetState(@SW_SHOW, $GUI2) ; On sort l'autre GUI
GUISetState(@SW_HIDE, $GUI)
HotKeySet("c", "_capturerCouleur") ; On prend soin de mettre le raccourci pour la fonction _capturerCouleur
While 1
$mousePos = MouseGetPos()
$colorOfPos = PixelGetColor($mousePos[0], $mousePos[1])
GUICtrlSetBkColor($ColorBox, $colorOfPos)
GUICtrlSetData($ColorBox, "Couleur (en hexadecimal) :" & @CRLF & Hex($colorOfPos))
sleep(50)
If $sortirDuLoopRessourcePerso = 1 Then ; ça arrive grace a la fonction _capturerCouleur() qui est appellée
MsgBox(64,"Dofbot","Bravo tu viens d'enregistrer une ressource perso ! Ecris 'perso' dans la case ressource pour l'utiliser :).")
; On desactive le HotKeySet
ExitLoop
EndIf
WEnd
EndIf
EndIf
EndFunc
Func _capturerCouleur()
$mousePos = MouseGetPos()
$couleurPointee = PixelGetColor($mousePos[0], $mousePos[1])
$couleurRessourcePerso[$stepColorPerso] = $couleurPointee
$stepColorPerso = $stepColorPerso + 1
GUICtrlSetData($Label400, $stepColorPerso + 1 &"/4)")
MsgBox(64,"Dofbot","Couleur numero " & $stepColorPerso & "/4 enregistree")
; Si on a terminé, on se barre
If $stepColorPerso = 4 Then
; On desactive le raccourci
HotKeySet("c")
GUISetState(@SW_HIDE, $GUI2)
GUISetState(@SW_SHOW, $GUI)
$sortirDuLoopRessourcePerso = 1
EndIf
EndFunc
; === Fonctions Banque ==========
; ===============================
Func _choixDirection($direction)
_journalDMapWrite($direction)
$deplacementsMap[$stepDMap] = $direction
$stepDMap = $stepDMap + 1
$nbDeplacements = $nbDeplacements + 1
EndFunc
Func _journalDMapWrite($msgJournalDMap)
$journalDPrevious = GUICtrlRead ($journalD)
if $journalDPrevious = "" Then
GUICtrlSetData ($journalD, $stepDMap & ". " & $msgJournalDMap)
Else
GUICtrlSetData ($journalD, $stepDMap & ". " & $msgJournalDMap & @CRLF & $journalDPrevious)
EndIf
EndFunc
Func _effacerJournalDMap()
; On efface seulement si ce n'est pas vide
If $stepDMap > 0 Then
Do
$stepDMap = $stepDMap - 1
$nbDeplacements = $nbDeplacements - 1
$deplacementsMap[$stepDMap] = ""
GUICtrlSetData ($journalD, "")
Until $stepDMap = 0
EndIf
EndFunc
Func _deposerBanque()
If $botOn = 1 Then
; Clic sur porte banque
journalMsg("On rentre dans la banque")
MouseClick("left",$posPorteBanque[0],$posPorteBanque[1])
_pause(15)
; Clic sur banquier
journalMsg("On parle au monsieur")
MouseClick("left",$posBanquier[0],$posBanquier[1])
_pause(6)
; Clic sur parler
journalMsg("On clique sur Parler")
MouseClick("left",$posBanquier[0] + 10,$posBanquier[1] + 25)
_pause(6)
; Clic sur consulter son coffre
journalMsg("On consulte son coffre")
MouseClick("left", 100, 255)
_pause(6)
; Transferer toute les ressources
journalMsg("On balance tout dans le coffre !")
MouseClick("left", 544, 157)
_pause(6)
; Clic sur Transferer tous les objets
MouseClick("left", 451, 166)
_pause(6)
; Fermer interface banque
MouseClick("left", 667, 125)
_pause(6)
; Sortir banque
journalMsg("On ressort de la banque")
MouseClick("left", $posSortieBanque[0], $posSortieBanque[1])
_pause(6)
EndIf
EndFunc
Func _allerBanque()
journalMsg("Debut trajet aller banque")
$trajetState = 1
$stepDMap = 0
Do
; On va a la destination enregistree
if $deplacementsMap[$stepDMap] = "haut" Then
_goMap("haut")
ElseIf $deplacementsMap[$stepDMap] = "bas" Then
_goMap("bas")
ElseIf $deplacementsMap[$stepDMap] = "gauche" Then
_goMap("gauche")
Elseif $deplacementsMap[$stepDMap] = "droite" Then
_goMap("droite")
EndIf
$stepDMap = $stepDMap + 1
Until $deplacementsMap[$stepDMap] = "" Or $botOn = 0
$trajetState = 0
EndFunc
Func _retourBanque()
journalMsg("Debut trajet retour banque")
$trajetState = 2
Do
; On fait tout a l'envers pour revenir sur nos pas
$stepDMap = $stepDMap - 1
if $deplacementsMap[$stepDMap] = "haut" Then
_goMap("bas")
ElseIf $deplacementsMap[$stepDMap] = "bas" Then
_goMap("haut")
ElseIf $deplacementsMap[$stepDMap] = "gauche" Then
_goMap("droite")
Elseif $deplacementsMap[$stepDMap] = "droite" Then
_goMap("gauche")
EndIf
Until $stepDMap = 0 Or $botOn = 0
$trajetState = 0
journalMsg("On est revenus sur la map de fauche.")
EndFunc
Func _goMap($direction)
$erreur = 0
$continuer = 0
If $botOn = 1 Then ; Seulement si le bot marche
if $direction = "gauche" Then
Do
$yRandom = Random($maxMapHaut + 30, $maxMapBas - 30)
MouseMove($maxMapGauche, $yRandom)
sleep(500)
PixelSearch($maxMapGauche, $yRandom - 15, $maxMapGauche + 15, $yRandom + 15, $theOrange)
if Not @error Then
$continuer = 1
sleep(500)
MouseClick("left", $maxMapGauche, $yRandom)
_DMapAttente()
Else
$erreur = $erreur + 1
EndIf
Until $continuer = 1 Or $erreur = 15
ElseIf $direction = "droite" Then
Do
$yRandom = Random($maxMapHaut + 30, $maxMapBas - 30)
MouseMove($maxMapDroite, $yRandom)
sleep(500)
PixelSearch($maxMapDroite - 15, $yRandom - 15, $maxMapDroite, $yRandom + 15, $theOrange) ; A droite donc rectangle de search a gauche
if Not @error Then
$continuer = 1
sleep(500)
MouseClick("left", $maxMapDroite, $yRandom)
_DMapAttente()
Else
$erreur = $erreur + 1
EndIf
Until $continuer = 1 Or $erreur = 15
ElseIf $direction = "haut" Then
Do
$xRandom = Random($maxMapGauche + 30, $maxMapDroite - 50)
MouseMove($xRandom, $maxMapHaut)
sleep(500)
PixelSearch($xRandom - 15, $maxMapHaut, $xRandom + 15, $maxMapHaut +15, $theOrange) ; En bas donc rectangle de search au dessus
if Not @error Then
$continuer = 1
sleep(500)
MouseClick("left",$xRandom, $maxMapHaut)
_DMapAttente()
Else
$erreur = $erreur + 1
EndIf
Until $continuer = 1 Or $erreur = 15
Elseif $direction = "bas" Then
Do
$xRandom = Random($maxMapGauche + 50, $maxMapDroite - 50)
MouseMove($xRandom, $maxMapBas)
sleep(500)
PixelSearch($xRandom - 15, $maxMapBas - 15, $xRandom + 15, $maxMapBas, $theOrange) ; En bas donc rectangle de search au dessus
if Not @error Then
$continuer = 1
sleep(500)
MouseClick("left",$xRandom, $maxMapBas)
_DMapAttente()
Else
$erreur = $erreur + 1
EndIf
Until $continuer = 1 Or $erreur = 15
EndIf
If $erreur = 15 Then
stopBot("Impossible de changer de map")
EndIf
EndIf
EndFunc
Func _DMapAttente()
Local $tryAgain = 0
Local $i = 0
$miniMap = PixelChecksum(325, 530, 370, 565)
Do
$i = $i + 1
_pause("1")
_allVerifs()
; On reessaie si ça dure trop longtemps !
If $i = 25 Then
; Si on etait en trajet, on recommence la derniere action
If $trajetState = 1 Then
$sortieDeCombat = 1
$stepDMap = $stepDMap - 1
journalMsg("On reessaie (" & $stepDMap & "e etape)")
ElseIf $trajetState = 2 Then
$sortieDeCombat = 1
$stepDMap = $stepDMap + 1
journalMsg("On reessaie (" & $stepDMap & "e etape)")
EndIf
$tryAgain = 1
EndIf
Until $minimap <> PixelChecksum(325, 530, 370, 565) Or $botOn = 0 Or $sortieDeCombat = 1 Or $tryAgain = 1
$sortieDeCombat = 0
_pause("2")
EndFunc
;=== Fonctions d'affichages =
;============================
Func _enableModeBanque()
$guiPreviousState = GUICtrlGetState ($btnBas)
if $guiPreviousState = 144 Then
GUICtrlSetState( $btnBas, $GUI_ENABLE)
GUICtrlSetState( $btnHaut, $GUI_ENABLE)
GUICtrlSetState( $btnGauche, $GUI_ENABLE)
GUICtrlSetState( $btnDroite, $GUI_ENABLE)
GUICtrlSetState( $btnEffacerJournalD, $GUI_ENABLE)
GUICtrlSetState( $journalD, $GUI_ENABLE)
GUICtrlSetState( $radioBanqueAstrub, $GUI_ENABLE)
GUICtrlSetState( $radioBanqueBonta, $GUI_ENABLE)
EndIf
EndFunc
Func _disableModeBanque()
$guiPreviousState = GUICtrlGetState ($btnBas)
if $guiPreviousState = 80 Then
GUICtrlSetState( $btnBas, $GUI_DISABLE)
GUICtrlSetState( $btnHaut, $GUI_DISABLE)
GUICtrlSetState( $btnGauche, $GUI_DISABLE)
GUICtrlSetState( $btnDroite, $GUI_DISABLE)
GUICtrlSetState( $btnEffacerJournalD, $GUI_DISABLE)
GUICtrlSetState( $journalD, $GUI_DISABLE)
GUICtrlSetState( $radioBanqueAstrub, $GUI_DISABLE)
GUICtrlSetState( $radioBanqueBonta, $GUI_DISABLE)
EndIf
EndFunc
Func _enableModeCombat()
$guiPreviousState = GUICtrlGetState ($radioAtkKey1)
if $guiPreviousState = 144 Then
GUICtrlSetState( $lblAttaqueKey, $GUI_ENABLE)
GUICtrlSetState( $radioAtkKey1, $GUI_ENABLE)
GUICtrlSetState( $radioAtkKey2, $GUI_ENABLE)
GUICtrlSetState( $radioAtkKey3, $GUI_ENABLE)
GUICtrlSetState( $lblNbLancerTour, $GUI_ENABLE)
GUICtrlSetState( $inputNbLancerTour, $GUI_ENABLE)
GUICtrlSetState( $lblPortee, $GUI_ENABLE)
GUICtrlSetState( $lblNbPM, $GUI_ENABLE)
GUICtrlSetState( $inputPM, $GUI_ENABLE)
GUICtrlSetState( $inputPortee, $GUI_ENABLE)
GUICtrlSetState( $chkbInvocs, $GUI_ENABLE)
EndIf
EndFunc
Func _disableModeCombat()
$guiPreviousState = GUICtrlGetState ($radioAtkKey1)
if $guiPreviousState = 80 Then
GUICtrlSetState( $lblAttaqueKey, $GUI_DISABLE)
GUICtrlSetState( $radioAtkKey1, $GUI_DISABLE)
GUICtrlSetState( $radioAtkKey2, $GUI_DISABLE)
GUICtrlSetState( $radioAtkKey3, $GUI_DISABLE)
GUICtrlSetState( $lblNbLancerTour, $GUI_DISABLE)
GUICtrlSetState( $inputNbLancerTour, $GUI_DISABLE)
GUICtrlSetState( $lblPortee, $GUI_DISABLE)
GUICtrlSetState( $lblNbPM, $GUI_DISABLE)
GUICtrlSetState( $inputPM, $GUI_DISABLE)
GUICtrlSetState( $inputPortee, $GUI_DISABLE)
GUICtrlSetState( $chkbInvocs, $GUI_DISABLE)
EndIf
EndFunc
; === Fonctions d'informations =
; ==============================
Func _infoMode()
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 & _
". Mode Classique : " & @CRLF & _
"Quand l'inventaire est plein le bot s'arrete." & @CRLF & @CRLF & _
". Mode Farmer : " & @CRLF & _
"Quand l'inventaire est plein le bot supprime le ble de l'inventaire puis continue de faucher." & @CRLF & @CRLF & _
". Mode Banque : " & @CRLF & _
"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 & _
"D'autres modes a suggerer ? Contactes moi : harry.dotcom@hotmail.fr !")
EndFunc
Func _infoOptions()
MsgBox("64","Options", "Pour repondre aux besoins qu'avaient de nombreuses personnes, j'ai installé trois options. " & @CRLF & @CRLF & _
". Slow :" & @CRLF & _
"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 & _
". Hyper Slow :" & @CRLF & _
"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 & _
". Debug :" & @CRLF & _
"J'ai souvent hesiter entre un journal qui en disait beaucoup ou un journal plus leger qui ne rentrait pas dans les details." & @CRLF & _
"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 & _
"D'autres options a suggerer ? Contactes moi : harry.dotcom@hotmail.fr !")
EndFunc
Func _infoBanque()
MsgBox("64","Mode Banque", "Pour que ce mode marche, tu dois activer ta minimap et desactiver le zoom d'interieur !" & @CRLF & @CRLF & _
"Le trajet a enregistrer ici est le trajet (MAP SPOT DE CEREALEA) -> (MAP BANQUE)" & @CRLF & _
"Levais bot reviendra au spot de cereales en suivant le meme trajet a l'envers." & @CRLF & @CRLF & _
"Des questions, idees ou des suggestions ? Envoies moi un mail : harry.dotcom@hotmail.fr !")
EndFunc
Func _infoCombattre()
MsgBox("64","Mode Combat v1", "Desactives la transparence ! D'autres choses sont a savoir : " & @CRLF & @CRLF & _
"Raccourci 1 : Bouton d'attaque au corps a corps (²)" & @CRLF & _
"Raccourci 2 : Premier sort (é)"& @CRLF & _
'Raccourci 3 : Deuxieme sort (")'& @CRLF & @CRLF & _
". Concernant l'attaque : " & @CRLF & _
"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 & _
"Il est preferable de ne pas etre en groupe" & @CRLF & _
"Des suggestions ? Contactes moi : harry.dotcom@hotmail.fr !")
EndFunc
Func _infoCereals()
MsgBox("64","Dofbot","J'ai ajouté quelques céréales moi meme, mais rien ne dit qu'elles fonctionnent chez vous. " & @CRLF & @CRLF & _
"- Blé" & @CRLF & _
"- Orge" & @CRLF & _
"- Houblon" & @CRLF & _
"- Avoine" & @CRLF & _
"- Seigle" & @CRLF & _
"- Chanvre" & @CRLF & _
"- Malt" & @CRLF & _
"- Lin" & @CRLF & @CRLF & _
"+ Absolument tout grace a l'option d'ajout de ressource")
;~ $botOn = 1
;~ _preparatifs()
;~ _deposerBanque()
;~ $botOn = 0
EndFunc
; === Fonctions qui se connectent ===
; ===================================
Func _verifVersion()
; On va chercher deux petits fichiers que j'ai mis en ligne au prealable
$bLien = InetRead("http://harrydotcom.fr/Dofbots/lien.txt",1) ; exemple : "http://bit.ly/JC8BDH"
$bLastVersion = InetRead("http://harrydotcom.fr/Dofbots/version.txt",1) ; exemple : "308"
; On affiche un msg d'erreur si il y a eu un probleme
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")
; On transforme ce qu'on vient de trouver en chaines de caracteres
$lastVersion = BinaryToString($bLastVersion)
$lien = BinaryToString($bLien)
If $lastVersion > $currentVersion Then
$ouvrir_site = MsgBox(64+4, "Dofbot", "Une nouvelle version (" & $lastVersion & ") est en ligne !" & @CRLF & _
"Aller télécharger la nouvelle version?")
If $ouvrir_site = 6 Then
ShellExecute($lien)
Exit
EndIf
EndIf
EndFunc
Func _chargementNews()
$bNews = InetRead("http://harrydotcom.fr/Dofbots/news.txt",1)
If @error Then MsgBox(64,"Dofbot","Impossible de recuperer les News !")
$news = BinaryToString($bNews)
$finalNews = StringSplit($news,"next",1 + 2)
$arraySize = UBound($finalNews)
For $i = 0 To $arraySize - 2 Step + 2
$previousJournalNews = GUICtrlRead($journalNews)
If $previousJournalNews <> "" Then
GUICtrlSetData($journalNews, $finalNews[$i] & @CRLF & $finalNews[$i + 1] & @CRLF & $previousJournalNews)
Else
GUICtrlSetData($journalNews, $finalNews[$i] & @CRLF & $finalNews[$i + 1])
EndIf
Next
EndFunc