Advertisement
Guest User

Untitled

a guest
May 27th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 12.04 KB | None | 0 0
  1.  
  2. ;~ -----------------------------------------------------------------Combattre------------------------------------------------------------------------------
  3. Global $atkPortee = ""
  4. Global $atkKey = ""
  5. Global $posInvoc
  6. Global $nbLancerTour = ""
  7. Global $obstacle = False
  8. Global $combatState = 0
  9. Global $nbCombats = 0
  10. Global $posAmie[2], $posEnnemy[2] = ["0", "0"]
  11. Global $nbPM = 3
  12. Global $distanceEnnemy = 0
  13. Global $posAtkKey[2] = [640, 670]
  14. Global $feca=False
  15. Global $continuer
  16.  
  17.  
  18. Func _combattre()
  19.     $combatState = 1
  20. Beep (1000,1000)
  21.     Send(")") ; Debut du combat
  22.     _pause("6")
  23.     ; On retire le challenge et les cartes !
  24.     MouseClick("left", 9, 186, 1, 1) ; challenge
  25.     MouseClick("left", 261, 185, 1, 1)
  26.     ; ... Et on passe en tactique et creature
  27.     _tactiqueAndCreature()
  28.     Do
  29.         _waitTour()
  30.     Until $combatState = 0
  31. EndFunc   ;==>_combattre
  32.  
  33.  
  34. Func _tactiqueAndCreature()
  35.     $couleurDisabledCrea = 0xADADAD ;304, 512
  36.     $couleurEnabledCrea = 0xDAFA01
  37.  
  38.     ; On check les couleurs aux endroits du bouton créature et tactique
  39.     $displayed1 = PixelGetColor(960,711)
  40.     $displayed2 = PixelGetColor(939, 710)
  41.  
  42.     If $displayed1 = $couleurDisabledCrea Then
  43.  
  44.         MouseClick("left", 960, 711)
  45.     EndIf
  46.  
  47.     If $displayed2 = $couleurDisabledCrea Then
  48.  
  49.         MouseClick("left", 939, 710)
  50.     EndIf
  51.  
  52.     MouseMove(200, 300) ; Petit mouvement completement gratuit, histoire de ne pas laissée la souris sur le bouton vu que ça ouvre une bulle d'aide
  53. EndFunc   ;==>_tactiqueAndCreature
  54.  
  55.  
  56. Func _waitTour()
  57.     Do
  58.         _pause("1")
  59.         ; On passe un petit coup de verifs, ca fait pas de mal
  60.             _verifFinCombat()
  61.  
  62.         ; On check la couleur a 4-5 secondes dans l'horloge du tour
  63.         Local $color = PixelGetColor(827, 717)
  64.  
  65.         ; Et si celle si est orange, on lance le tour !
  66.         If $color = $theOrangeFight Then
  67.  
  68.             _tour()
  69.             ; Autrement, on verifie si le combat est fini. Qui sait ?
  70.  
  71.  
  72.  
  73.             _verifFinCombat()
  74.         EndIf
  75.         if PixelGetColor (619,717) = 0xFF5B3D Then
  76.             _passerTour ()
  77.             EndIf
  78.         ; Tout cela jusqu'a ce que le combatState soit = 0
  79.     Until $combatState = 0
  80.  
  81. EndFunc   ;==>_waitTour
  82.  
  83. Func _tour()
  84.     ; Si on est pas en mode invoc !
  85. $erreurAmie = False
  86.     ; On cherche posAmie (position de notre personnage)
  87.     _searchAmie()
  88.     ; On cherche posEnnemy (position de l'ennemi le plus proche)
  89.     _searchEnnemy()
  90.     ; On passe a la suite seulement si les positions sont trouvees (car positions non trouvees = $combatState 0 )
  91.  
  92.     ;If $combatState = 1 Then
  93. If $feca =true Then
  94.    If $distanceEnnemy <= 10 Then
  95.       _attaquerEnnemy ()
  96.    EndIf
  97.  
  98.    If $distanceEnnemy > 2 Then
  99.       _seRapprocherEnnemy ()
  100.    EndIf
  101. Else
  102.          _invocationSpecial()
  103.  
  104.  
  105.    _passerTour()
  106.               ; Ou on passe son tour
  107.  
  108.     EndIf
  109.  
  110.  
  111.  
  112.  
  113.  
  114.     _verifFinCombat()
  115. EndFunc   ;==>_tour
  116.  
  117.  
  118.  
  119. Func _attaquerEnnemy()
  120.     Local $nombreDeFois = 0
  121.     Do
  122.         MouseClick("left", $posAtkKey[0], $posAtkKey[1], 1, 1)
  123.         Sleep (1000)
  124.         MouseClick("left", $posEnnemy[0], $posEnnemy[1], 1, 1)
  125.         Sleep (1000)
  126.         MouseMove (58,286)
  127.         $nombreDeFois = $nombreDeFois + 1
  128.     Until $nombreDeFois = 2
  129.  
  130. EndFunc   ;==>_attaquerEnnemy
  131.  
  132. Func _searchAmie()
  133. Sleep (3000)
  134. $posAmie = PixelSearch($maxMapGauche, $maxMapHaut, $maxMapDroite, $maxMapBas, $theRed, 7)
  135.  
  136.  
  137.     ; Position non trouvee !
  138.     If @error Then
  139.         _verifFinCombat()
  140. $erreurAmie = True
  141.     EndIf
  142. EndFunc   ;==>_searchAmie
  143.  
  144.  
  145. Func _searchEnnemy()
  146.     if $erreurAmie = False Then
  147.     $distanceEnnemy = 0
  148.     $ecartX = 0
  149.     $ecartY = 0
  150.     $sortiesFenetre = 4
  151.     $continuer = 0
  152.     Do
  153.         $distanceEnnemy = $distanceEnnemy + 1
  154.         $ecartX = $ecartX + 20
  155.         $ecartY = $ecartY + 10
  156.         $SearchEnnemyGauche = $posAmie[0] - $ecartX
  157.         $SearchEnnemyDroite = $posAmie[0] + $ecartX
  158.         $SearchEnnemyHaut = $posAmie[1] - $ecartY
  159.         $SearchEnnemyBas = $posAmie[1] + $ecartY
  160.         $posEnnemy = PixelSearch($SearchEnnemyGauche, $SearchEnnemyHaut, $SearchEnnemyDroite, $SearchEnnemyBas, $theBlue, 7)
  161.         ; Quand ca marche on verifie que ca se trouve bien dans la fenetre
  162.         If Not @error Then
  163.          $continuer = 1
  164.         EndIf
  165.         ; Jusqu'a ce que
  166.     Until $continuer = 1 Or $distanceEnnemy = 50
  167.  
  168.  
  169.  
  170.     ; On reagit a la conclusion precedente
  171.     If $distanceEnnemy < 50 Then
  172.  
  173.     Else
  174.         _verifFinCombat()
  175.  
  176.     EndIf
  177.     EndIf
  178. EndFunc   ;==>_searchEnnemy
  179.  
  180. Func _seRapprocherEnnemy()
  181. If $continuer = 1 Then
  182.     ; Variables qui definissent la direction a adopter
  183.     $DistanceX = $posEnnemy[0] - $posAmie[0] ; Positif = Ennemi a droite , Negatif = Ennemi a gauche
  184.     $DistanceY = $posEnnemy[1] - $posAmie[1] ; Positif = Ennemi en bas , Negatif = Ennemi en haut
  185.  
  186.     ; Puis on traduit en nombre de pixels les PM disponibles (X=Abcisses , Y=Ordonnes)
  187.     $theMoveX = $nbPM * 25 ; 20 pixels (distance entre deux cases en abcisses)
  188.     $theMoveY = $nbPM * 12 ; 10 pixels (distance entre deux cases en ordonnees)
  189.     ; La combinaison de moveX et de moveY donne le deplacement (only en diagonale)
  190.  
  191.     ; Le mouvement aura lieu depuis notre position, on associe donc les deux
  192.     $XPlus = $posAmie[0] + $theMoveX
  193.     $XMoins = $posAmie[0] - $theMoveX
  194.     $YPlus = $posAmie[1] + $theMoveY
  195.     $YMoins = $posAmie[1] - $theMoveY
  196.     ; Les 4 variables precedentes contiennent donc l'abcisse et l'ordonnee d'un deplacement dans n'importequelle direction a partir de notre position
  197. $Deplacement = False
  198. $obstacle = False
  199.     ; --- Ennemy en Bas Droite -----
  200.     If $DistanceX > 0 And $DistanceY > 0 Then
  201.         MouseMove( $XPlus, $YPlus)
  202.         Sleep (200)
  203.         PixelSearch ($XPlus-5,$YPlus-5,$XPlus+5,$YPlus+5,0x006600)
  204.             If  Not @error Then
  205.             MouseClick("left", $XPlus, $YPlus)
  206.             $Deplacement = True
  207.     Else
  208.             $obstacle = True
  209.             EndIf
  210.                 EndIf
  211.         ; --- Ennemy en Bas Gauche -----
  212.     If $DistanceX < 0 And $DistanceY > 0 And $Deplacement = False Then
  213.             MouseMove( $XMoins, $YPlus)
  214.                 Sleep (200)
  215.             PixelSearch ($XMoins-5,$YPlus-5,$XMoins+5,$YPlus+5,0x006600)
  216.             If  Not @error Then
  217.             MouseClick("left", $XMoins, $YPlus)
  218.  
  219.             $Deplacement = True
  220.     Else
  221.             $obstacle = True
  222.             EndIf
  223.     EndIf
  224.  
  225.         ; --- Ennemy en Haut Droite -----
  226.     If $DistanceX > 0 And $DistanceY < 0 And $Deplacement = False Then
  227.        MouseMove( $XPlus, $YMoins)
  228.         Sleep (200)
  229.         PixelSearch ($XPlus-5,$YMoins-5,$XPlus+5,$YMoins+5,0x006600)
  230.             If  Not @error Then
  231.          $Deplacement = True
  232.          MouseClick("left", $XPlus, $YMoins)
  233.     Else
  234.          $obstacle = True
  235.            EndIf
  236.     EndIf
  237.  
  238.  
  239.         ; --- Ennemy en Haut Gauche -----
  240.     If $DistanceX < 0 And $DistanceY < 0 And $Deplacement = False  Then
  241.         MouseMove( $XMoins, $YMoins)
  242.             Sleep (200)
  243.     PixelSearch ($XMoins-5,$YMoins-5,$XMoins+5,$YMoins+5,0x006600)
  244.             If  Not @error Then
  245.         MouseClick("left", $XMoins, $YMoins)
  246.          $Deplacement = True
  247.     Else
  248.          $obstacle = True
  249.          EndIf
  250.     EndIf
  251.  
  252.  
  253.  
  254. If $obstacle = True  Then
  255.     If PixelGetColor (677,691)=  0xCA964A Then
  256.         _teleporte ()
  257.  
  258.     Else
  259.         If $DistanceX < 0 And $DistanceY < 0 Then
  260.     $posDeplacement = PixelSearch($XMoins-100 , $YMoins-60 , $XMoins+100 , $YMoins+60 , 0x557938, 7)
  261.     If Not @error Then
  262. MouseClick("left", $posDeplacement[0], $posDeplacement[1])
  263. EndIf
  264. ElseIf   $DistanceX > 0 And $DistanceY < 0  Then
  265.     $posDeplacement = PixelSearch($XPlus-100 , $YMoins-60 , $XPlus+100 , $YMoins+60 , 0x557938, 7)
  266.     If Not @error Then
  267. MouseClick("left", $posDeplacement[0], $posDeplacement[1])
  268. EndIf
  269.  
  270. ElseIf   $DistanceX < 0 And $DistanceY > 0  Then
  271.         $posDeplacement = PixelSearch($XMoins-100 , $YPlus-60 , $XMoins+100 , $YPlus+60 , 0x557938, 7)
  272.     If Not @error Then
  273. MouseClick("left", $posDeplacement[0], $posDeplacement[1])
  274.     EndIf
  275. ElseIf $DistanceX > 0 And $DistanceY > 0 Then
  276.             $posDeplacement = PixelSearch($Xplus-100 , $YPlus-60 , $Xplus+100 , $YPlus+60 , 0x557938, 7)
  277.     If Not @error Then
  278. MouseClick("left", $posDeplacement[0], $posDeplacement[1])
  279.     EndIf
  280.  
  281.     EndIf
  282.  
  283. EndIf
  284. EndIf
  285.  
  286. Else
  287.         $posDeplacement = PixelSearch($posAmie[0]-100 , $posAmie[1]-60 , $posAmie[0]+100 , $posAmie[1]+60 , 0x557938, 7)
  288.  
  289.             If Not @error Then
  290. MouseClick("left", $posDeplacement[0], $posDeplacement[1])
  291.             EndIf
  292. EndIf
  293.     _pause("6")
  294. EndFunc   ;==>_seRapprocherEnnemy
  295. Func _teleporteSpecial ()
  296.         Sleep (1000)
  297.         MouseClick ("left",677,691,1,5)
  298.         Sleep (200)
  299.     $posteleporte   = PixelSearch($maxMapGauche, $maxMapBas, $maxMapDroite, $maxMapBas, 0x223399, 7)
  300. if Not @error Then
  301.  
  302.             Sleep (1000)
  303.                 MouseClick ("left",$posteleporte[0] ,$posteleporte [1] ,1,5)
  304.  
  305. EndIf
  306. Sleep (300)
  307. MouseClick ("left",1287,234,1,5)
  308. EndFunc
  309.  
  310. Func _teleporte ()
  311.     Sleep (1000)
  312.         $ecartX = 0
  313.     $ecartY = 0
  314.     $continuerteleporte = 0
  315.     $teleporte = 0
  316.     MouseClick ("left",677,691,1,5)
  317.     Do
  318.         $teleporte = $teleporte + 1
  319. $ecartX = $ecartX + 20
  320.         $ecartY = $ecartY + 10
  321.         $SearchEnnemyGauche = $posEnnemy[0] - $ecartX
  322.         $SearchEnnemyDroite = $posEnnemy[0] + $ecartX
  323.         $SearchEnnemyHaut = $posEnnemy[1] - $ecartY
  324.         $SearchEnnemyBas = $posEnnemy[1] + $ecartY
  325.         $posteleporte = PixelSearch($SearchEnnemyGauche, $SearchEnnemyHaut, $SearchEnnemyDroite, $SearchEnnemyBas, 0x223399, 7)
  326.         if Not @error Then
  327.             $continuerteleporte =  1
  328.             Sleep (1000)
  329.                 MouseClick ("left",$posteleporte[0] ,$posteleporte [1] ,1,5)
  330.  
  331.              EndIf
  332.     Until $teleporte =50 or $continuerteleporte = 1
  333. Sleep (500)
  334. MouseClick ("left",1264,260,1,5)
  335.  
  336. EndFunc
  337.  
  338. Func _resetPos()
  339.     If $erreurAmie = False Then
  340.     $posAmie[0] = ""
  341.     $posAmie[1] = ""
  342.     $posEnnemy[0] = ""
  343.     $posEnnemy[1] = ""
  344.     EndIf
  345. EndFunc   ;==>_resetPos
  346.  
  347.  
  348.  
  349. Func _passerTour()
  350.     Send(")")
  351.     ;_resetPos()
  352. sleep (2000)
  353. EndFunc   ;==>_passerTour
  354.  
  355.  
  356.  
  357. Func _invocationSpecial ()
  358.         MouseMove (1238,245)
  359.     Sleep (300)
  360.     If PixelGetColor (670,671) = 0x372D2D  Then
  361.     MouseClick("left", 668, 669,1,5)
  362.    ElseIf PixelGetColor (690,658) =  0x6E432E Then
  363.     MouseClick ("left",700,665,1,5)
  364.     EndIf
  365. Sleep (500)
  366. $posInvoc = PixelSearch($maxMapGauche, $maxMapHaut, $maxMapDroite, $maxMapBas, 0x223399, 7)
  367.         ; Quand ca marche on verifie que ca se trouve bien dans la fenetre
  368.         If Not @error Then
  369.             Sleep (200)
  370.     MouseClick("left", $posInvoc[0], $posInvoc[1])
  371.  
  372.         EndIf
  373. Sleep (300)
  374. MouseClick ("left",1287,234,1,5)
  375. EndFunc
  376.  
  377.  
  378.  
  379. Func _invocation()
  380.     MouseMove (1238,245)
  381.     Sleep (300)
  382.     If PixelGetColor (670,671) = 0x372D2D  Then
  383.     MouseClick("left", 668, 669,1,5)
  384.    ElseIf PixelGetColor (690,658) =  0x6E432E Then
  385.     MouseClick ("left",700,665,1,5)
  386.     EndIf
  387. Sleep (500)
  388.  
  389. #cs
  390.     ; Variables qui definissent la direction a adopter
  391.     $DistanceX = $posEnnemy[0] - $posAmie[0] ; Positif = Ennemi a droite , Negatif = Ennemi a gauche
  392.     $DistanceY = $posEnnemy[1] - $posAmie[1] ; Positif = Ennemi en bas , Negatif = Ennemi en haut
  393.  
  394.     ; Puis on traduit en nombre de pixels les PM disponibles (X=Abcisses , Y=Ordonnes)
  395.     $theMoveX = 20 ; 20 pixels (distance entre deux cases en abcisses)
  396.     $theMoveY = 10 ; 10 pixels (distance entre deux cases en ordonnees)
  397.     ; La combinaison de moveX et de moveY donne le deplacement (only en diagonale)
  398.  
  399.     ; Le clic aura lieu depuis notre position, on associe donc les deux
  400.     $XPlus = $posAmie[0] + $theMoveX
  401.     $XMoins = $posAmie[0] - $theMoveX
  402.     $YPlus = $posAmie[1] + $theMoveY
  403.     $YMoins = $posAmie[1] - $theMoveY
  404.  
  405.     ; --- Ennemy en Bas Droite -----
  406.     If $DistanceX > 0 And $DistanceY > 0 Then
  407.         MouseClick("left", $XPlus, $YPlus)
  408.  
  409.         ; --- Ennemy en Bas Gauche -----
  410.     ElseIf $DistanceX < 0 And $DistanceY > 0 Then
  411.         MouseClick("left", $XMoins, $YPlus)
  412.  
  413.     ElseIf $DistanceX > 0 And $DistanceY < 0 Then
  414.         MouseClick("left", $XPlus, $YMoins)
  415.  
  416.         ; --- Ennemy en Haut Gauche -----
  417.     ElseIf $DistanceX < 0 And $DistanceY < 0 Then
  418.         MouseClick("left", $XMoins, $YMoins)
  419.  
  420. EndIf
  421.     #ce
  422.         $distanceInvoc = 0
  423.     $ecartX = 0
  424.     $ecartY = 0
  425.     $sortiesFenetre = 4
  426.     $continuer = 0
  427.     Do
  428.         $distanceInvoc = $distanceInvoc + 1
  429.         $ecartX = $ecartX + 20
  430.         $ecartY = $ecartY + 10
  431.         $SearchEnnemyGauche = $posAmie[0] - $ecartX
  432.         $SearchEnnemyDroite = $posAmie[0] + $ecartX
  433.         $SearchEnnemyHaut = $posAmie[1] - $ecartY
  434.         $SearchEnnemyBas = $posAmie[1] + $ecartY
  435.         $posInvoc = PixelSearch($SearchEnnemyGauche, $SearchEnnemyHaut, $SearchEnnemyDroite, $SearchEnnemyBas, 0x223399, 7)
  436.         ; Quand ca marche on verifie que ca se trouve bien dans la fenetre
  437.         If Not @error Then
  438.             Sleep (200)
  439.     MouseClick("left", $posInvoc[0], $posInvoc[1])
  440.          $continuer = 1
  441.         EndIf
  442.         ; Jusqu'a ce que
  443.     Until $continuer = 1 Or $distanceInvoc = 10
  444.  
  445. Sleep (200)
  446.     MouseClick ("left",1217,285,1)
  447. _verifspopups ()
  448.  
  449. EndFunc   ;==>_invocation
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement