Helfe->Pixelsearch&klick

06/23/2012 19:29 BluesBrother#1
wie die meisten die hier wohl fragen, bin auch ich jemand der sich erst seit ein paar Stunden mit Autoit beschäftigt habt und daher etwas Hilfe benötige

Zur Erklärung:
ich bin gerade dabei ein mehr oder weniger brauchbares Script zu basteln welches bei einem Browserspiel einiges für mich AFK erledigen soll. Beim testen wurde das was gewünscht wurde auch soweit getan.

Mein Problem entsteht durch ein aufploppendes Fenster welches ich mit Pixelsearch wegklicken wollte. Nur leider scheint Autoit dies nicht zu machen :(
vielleicht mag mir jemand etwas helfen:handsdown:

HTML Code:
Sleep (10000) 
$timer = timerinit()
while timerdiff($timer)<4000000
MouseClick ("left", 748, 476)
sleep (4000)
MouseClick ("left", 885, 545)
sleep (4000)
MouseClick ("left", 625,546)
sleep (4000)
MouseClick ("left", 740,617)
sleep (4000)
MouseClick ("left", 460,621)
sleep (4000)
MouseClick ("left", 584,690)
sleep (8000)
MouseClick ("left", 748, 476)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 885, 545)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 625,546)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 740,617)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 460,621)
sleep (4000)
MouseClick ("left", 319,414)
sleep (4000)
MouseClick ("left", 584,690)
sleep (4000)
MouseClick ("left", 319,414)
sleep (373000)



WEnd

--
--


Sleep (10000) 
while 1
			$variable = PixelSearch(808, 354, 822, 369, 0xD4D4D4)
		If IsArray($variable) = True Then
			MouseMove($variable [0], $variable [1], 1)
			sleep(500)
			MouseClick($variable)
			Sleep(500)
		EndIf

WEnd

habe es selber gelöst, indem ich mir das was ich wollte als zweites Script gebastelt habe. dennoch danke
06/23/2012 19:50 KDeluxe#2
Was meinst du mit "aufploppendes Fenster"? Fenster kannst du mit WinClose() schließen, alternativ könntest du mit ProcessClose() den Prozess des Fensters beenden.
06/23/2012 19:55 Cashblood#3
Quote:
Originally Posted by KDeluxe View Post
Was meinst du mit "aufploppendes Fenster"? Fenster kannst du mit WinClose() schließen, alternativ könntest du mit ProcessClose() den Prozess des Fensters beenden.
Ich glaube ProcessClose(), da es sich sicher um ein Online-Browsergame Handelt. Und Pixelsearch ist da oft nicht nötig, du kannst auch die Koordinaten Fest angeben, Aber nur wenn das fenster immer an gleicher stelle erscheint... aber da es auf dem Aufploppendem Fenster sicher die Farbe von dem Pixel den du suchst öfters im spiel gibt, sehe ich keine Vernünftigere Antwort
06/23/2012 20:14 BluesBrother#4
Quote:
Originally Posted by KDeluxe View Post
Was meinst du mit "aufploppendes Fenster"? Fenster kannst du mit WinClose() schließen, alternativ könntest du mit ProcessClose() den Prozess des Fensters beenden.
wie geschrieben ist es ein Browserspiel und jenes Auftauchende Ingamefenster verdeckt die zu klickenden Felder.

Das Pixelsearch wurde gewählt, weil ich mir dachte "wenn das Programm an Punkt X die Farbe grau sieht wird das graue Schließfeld gedrückt". Nur leider passiert nichts. ich habe immerhin die Koordinaten+Farbcode eingetragen. darum dachte ich mir hat dieses Script einen Fehler den ein Newbie nicht sieht.
06/23/2012 22:19 KDeluxe#5
Deshalb habe ich gefragt, was du damit meinst. Aus deinem Beitrag kann man nicht entnehmen, dass es sich dabei um ein Fenster des Spiels handelt, oder nicht.

Ich vermute mal, dass es immer das selbe Fenster ist und dementsprechend der Button zum schließen immer an der selben Stelle ist. Wenn das der Fall ist kannst du mit PixelGetColor() überprüfen, ob der Button zum schließen des Fensters existiert.
Ansonsten einfach mal überprüfen ob die Farbe und der Bereich passt.
06/23/2012 23:59 Cashblood#6
Quote:
Originally Posted by KDeluxe View Post
Deshalb habe ich gefragt, was du damit meinst. Aus deinem Beitrag kann man nicht entnehmen, dass es sich dabei um ein Fenster des Spiels handelt, oder nicht.

Ich vermute mal, dass es immer das selbe Fenster ist und dementsprechend der Button zum schließen immer an der selben Stelle ist. Wenn das der Fall ist kannst du mit PixelGetColor() überprüfen, ob der Button zum schließen des Fensters existiert.
Ansonsten einfach mal überprüfen ob die Farbe und der Bereich passt.
das geht ja "Technisch", aber Praktisch nicht, weil es die Graue farbe sicher öfters im spiel gibt und dadurch nciht nur darauf drückt.
06/24/2012 01:33 KDeluxe#7
Das geht sowohl theoretisch/technisch als auch praktisch, deine Erklärung ist für PixelGetColor() nicht zutreffend.
Naja, der TE hat ja schon selbst eine Lösung gefunden.