AutoIT Imagesearch

04/28/2014 00:21 CherryCokeHD#1
Guten Abend zusammen,

Ich bin grad dabei mein eignen klein FarmBot zu schreiben. Allerdings fehlt es mir an ein paar begriffen.

Ich möchte das der Bot Solang auf den Button "Suchen" klickt bis er dem
Button "Join" gefunden hat und dann da sofort drauf klickt.

Wie müsste ich diesen Satz formulieren?

Bitte um Hilfe! :D

EDIT: Man kann bei das Game auf den "Such" Button klicken..nach einer ungewissen Zeit erscheint ein "Dungeon" wo man drauf klicken Kann "Join"
04/28/2014 11:47 Croco™#2
Da du, lobenswerter Weise, nur Begriffe wolltest:

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[opt. [Only registered and activated users can see links. Click Here To Register...]]
04/28/2014 13:00 CherryCokeHD#3
Vielen Dank soweit...

Nur wo ist hier der Fehler? irgendwie will er "Until" nicht ausführen

Quote:
Func Start()
ToolTip("",0,0)
Do
$pos = MouseGetPos()
$IS = _ImageSearch("search.png",1,$x,$y,100)
If $IS = 1 Then
MouseClick("left",$x,$y,1,10)
MouseMove($pos [0], $pos [1], 10)
Until
$IS = _ImageSearch("join3.png",1,$x,$y,100)
If $IS = 1 Then
MouseClick("left",$x,$y,1,10)
MouseMove($pos [0], $pos [1], 10)
IMR()
EndIf
WEnd
EndFunc
04/28/2014 14:00 Paraly#4
Quote:
Originally Posted by CherryCokeHD View Post
Vielen Dank soweit...

Nur wo ist hier der Fehler? irgendwie will er "Until" nicht ausführen
Du musst Until ja auch zuweisen wann er aufhören soll mit der schleife.

z.B.
Do; er beginnt die schleife
CODE
CODE
CODE

Until $Bild = "gefunden"; Hier endet die Schleife und er wiederholt diese Schleife solange bis die Anforderung von Until erfüllt wurde, in diesem fall muss die Variable $Bild den String "gefunden" beinhalten.
04/28/2014 14:15 alpines#5
Quote:
Originally Posted by CherryCokeHD View Post
Vielen Dank soweit...
Code:
Func Start()
ToolTip("",0,0)
Do
$pos = MouseGetPos()
$IS = _ImageSearch("search.png",1,$x,$y,100)
If $IS = 1 Then
MouseClick("left",$x,$y,1,10)
MouseMove($pos [0], $pos [1], 10)
Until
$IS = _ImageSearch("join3.png",1,$x,$y,100)
If $IS = 1 Then
MouseClick("left",$x,$y,1,10)
MouseMove($pos [0], $pos [1], 10)
IMR()
EndIf
WEnd
EndFunc
Nur wo ist hier der Fehler? irgendwie will er "Until" nicht ausführen
Bei dem Code läufts mir kalt den Rücken runter.

So ist besser
Code:
Func Start()
	ToolTip(0, 0, 0)
	Do
		$aPos = MouseGetPos()
		If _ImageSearch("search.png", 1, $x, $y, 100) Then
			MouseClick("left", $x, $y, 1, 10)
			MouseMove($aPos[0], $aPos[1], 10)
		EndIf
	Until _ImageSearch("join3.png", 1, $x, $y, 100)
	MouseClick("left", $x, $y, 1, 10)
	MouseMove($aPos[0], $aPos[1], 10)
	IMR()
EndFunc
Der Code von mir wird sicherlich falsch sein, da du nur Durchfall gepostet hast.
Mir scheint es so als ob du dich mit der Sprache nicht mal annähernd auseinandergesetzt hast.
04/28/2014 14:30 ichwillkeinevieren#6
Quote:
Originally Posted by alpines View Post
Bei dem Code läufts mir kalt den Rücken runter.

So ist besser
Code:
Func Start()
	ToolTip(0, 0, 0)
	Do
		$aPos = MouseGetPos()
		If _ImageSearch("search.png", 1, $x, $y, 100) Then
			MouseClick("left", $x, $y, 1, 10)
			MouseMove($aPos[0], $aPos[1], 10)
		EndIf
	Until _ImageSearch("join3.png", 1, $x, $y, 100)
	MouseClick("left", $x, $y, 1, 10)
	MouseMove($aPos[0], $aPos[1], 10)
	IMR()
EndFunc
Der Code von mir wird sicherlich falsch sein, da du nur Durchfall gepostet hast.
Mir scheint es so als ob du dich mit der Sprache nicht mal annähernd auseinandergesetzt hast.
Ich habe leider das Problem das kein Script bei mir ausgeführt werden kann wenn ich nicht irgendwo das angebe
PHP Code:
while 1
Sleep 
(1)
WEnd 

also so würde erst der script bei mir starten(allgemein jeder)
PHP Code:
Func Start()
    
ToolTip(000)
    Do
        
$aPos MouseGetPos()
        If 
_ImageSearch("search.png"1$x$y100Then
            MouseClick
("left"$x$y110)
            
MouseMove($aPos[0], $aPos[1], 10)
        EndIf
    
Until _ImageSearch("join3.png"1$x$y100)
    
MouseClick("left"$x$y110)
    
MouseMove($aPos[0], $aPos[1], 10)
    
IMR()
EndFunc


while 1
Sleep 
(1)
WEnd 
04/28/2014 14:47 alpines#7
Wut? Funktionen kannst du auch sonst wo im Code verstecken und sie werden nicht ausgeführt. Warum nicht, weil man sie nicht ausführt.
Es spielt keine Rolle wo man das hinpackt, außerdem sollte man sich das
While 1
Sleep(1)
WEnd
abgewöhnen.
04/28/2014 15:53 CherryCokeHD#8
Quote:
Originally Posted by alpines View Post
Bei dem Code läufts mir kalt den Rücken runter.

So ist besser
Code:
Func Start()
	ToolTip(0, 0, 0)
	Do
		$aPos = MouseGetPos()
		If _ImageSearch("search.png", 1, $x, $y, 100) Then
			MouseClick("left", $x, $y, 1, 10)
			MouseMove($aPos[0], $aPos[1], 10)
		EndIf
	Until _ImageSearch("join3.png", 1, $x, $y, 100)
	MouseClick("left", $x, $y, 1, 10)
	MouseMove($aPos[0], $aPos[1], 10)
	IMR()
EndFunc
Der Code von mir wird sicherlich falsch sein, da du nur Durchfall gepostet hast.
Mir scheint es so als ob du dich mit der Sprache nicht mal annähernd auseinandergesetzt hast.
Deine Aussage ist auch richtig ^^ Habe keinerlei Erfahrung damit. Hab mir zwar sämtliche Anfänger TuT angeschaut und viele Videos auf YT aber anhand solcher befehle zu kombinieren hört es bei mir auf

EDIT:

Ich würde es gern verstehen wollen, aber irgend wie geht es nicht in meiner Birne rein.
04/28/2014 17:27 alpines#9
Quote:
Originally Posted by CherryCokeHD View Post
Deine Aussage ist auch richtig ^^ Habe keinerlei Erfahrung damit. Hab mir zwar sämtliche Anfänger TuT angeschaut und viele Videos auf YT aber anhand solcher befehle zu kombinieren hört es bei mir auf

EDIT:

Ich würde es gern verstehen wollen, aber irgend wie geht es nicht in meiner Birne rein.
Dann wird das wohl heute noch ein langer Tag werden.
04/28/2014 20:15 CherryCokeHD#10
Ich denke auch :D
04/28/2014 20:30 YatoDev#11
Du musst die funktion auch aufrufen ;) das ist anfängerkram. da hat niemand so wirklich bock dir zu helfen
05/01/2014 00:51 flumio#12
Probiere das mal,

Code:
$x = 0
$Y = 0

Func Start()
	$found = False
	while NOT $found
		MouseClick("left", X, Y, 1, 10) ;hier musst du die Koordinaten X, Y vom "Suchen" eingeben
		Sleep(100)
		$start= _ImageSearch("join.png",1,$x,$y,80)
		If $start = 1 Then
				$found = true;
				Sleep(500)
				MouseClick("left", $x, $y, 1, 10)
		ElseIf $start = 0 Then
				Sleep(100);
		EndIf;
	WEnd
EndFunc