elitepvpers

elitepvpers (https://www.elitepvpers.com/forum/)
-   AutoIt (https://www.elitepvpers.com/forum/autoit/)
-   -   AutoIT erstes Werk (ImageSearch) (https://www.elitepvpers.com/forum/autoit/4083609-autoit-erstes-werk-imagesearch.html)

.TheBlueOptic 06/11/2016 20:31

AutoIT erstes Werk (ImageSearch)
 
Hallo das ist mein erstes Werk und wollte mal fragen was ich ändern muss oder falsch gemacht habe.
Code:

#include<ImageSearch.au3>

HotKeySet("(NUMPAD2)","starten")
HotKeySet("(NUMPAD3)","beenden")
$x1=0
$y1=0
$x2=0
$y2=0

While 1
  Sleep(1)
WEnd

Func starten()
          While 1
                $resulte=_ImageSearch("IdleWC.png",1,$x1,$y1,0)
                        If $resulte=1 Then
                          $resulte_ImageSearch("yewtext.png",1,$x2,$y2,0)
                                  IF $resulte=1 Then
                                        MouseClick("LEFT",$x2,$y2)
                                  EndIf
                        EndIf
          WEnd
EndFunc

Func beenden()
  exit 0
EndFunc

Es soll nach einem Bild "idleWC.png suchen und sobald das gefunden wurde nach "yewtext.png" suchen und mit der Maus einmal einen Links klick machen und das alles in Dauerschleife.

Meine frage: wie bekomme ich die Dauerschleife hin und kann ich auch sagen IdleWC muss auf einer bestimmten XY sein damit "then" gemacht wird.

Moneypulation 06/12/2016 12:12

Dein Sleep(1) solltest du in deiner Endlosschleife in mind. 100-1000 ändern, damit weniger CPU verbraucht wird. HotKeySet unterbricht den Sleep, also kannst du ihn beliebig groß setzen. Da du nach Fehlern fragst, wäre hilfreich, was genau bei dir nicht funktioniert. Falls die Bilder nicht gefunden werden, kann es an deiner 0 Toleranz liegen. Das kannst du ruhig auf 40-60 ändern, falls es keine sehr kleinen Bilder sind.

Quote:

Meine frage: wie bekomme ich die Dauerschleife hin
Die Dauerschleife hast du doch schon durch die While 1 Schleife. Es empfiehlt sich jedoch, nachdem du dein erstes Bild gefunden hast, einen kleinen Sleep einzubauen, falls dein 2. Bild nicht bereits auf dem Bildschirm ist, da es sonst ein paar Millisekunden brauchen könnte, um dargestellt zu werden.
Fehlt außerdem nicht ein "=" bei deinem 2. ImageSearch Aufruf?

Quote:

und kann ich auch sagen IdleWC muss auf einer bestimmten XY sein damit "then" gemacht wird
If ($result = 1) AND ($x1 = $deinX) AND ($y1 = $deinY)

Falls du das Bild nur in einem bestimmten Bereich suchst, kannst du auch einfach _ImageSearchArea verwenden

alpines 06/12/2016 12:34

Sicher das deine HotKeys klappen? (NUMPAD2) sollte eigentlich {NUMPAD2} lauten.


All times are GMT +2. The time now is 15:06.

Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.