Also ich versuche hier gerade ein kleines Tool zu schreiben und habe folgendes Problem:
Es soll in einem Bereich nach einer bestimmten Farbe gesucht werden. Wird die Farbe gefunden, soll er auf Feld1 klicken. Wird die Farbe nicht gefunden, soll er auf Feld2 drücken.
Das Ganze sieht momentan so aus:
Code:
Func _Start()
$Xstabbar2 = GuiCtrlRead($Xstabbar) + 5
$Ystabbar2 = GuiCtrlRead($Ystabbar) + 2
$suchebild1 = _imagesearcharea('bild1.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$mx,$my,100)
$suchebild2 = _imagesearcharea('bild2.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$sx,$sy,100)
If $suchemute & $suchestab = 0 Then
MsgBox(0,"Error","Abgebrochen")
EndIf
While 1
$stabbar = PixelSearch($Xstabbar,$Ystabbar,$Xstabbar2,$Ystabbar2,0xFFAAAA,2)
Sleep(1000)
If not @error Then
MouseMove($mx,$my,1)
MouseClick("left",$mx,$my,1,0)
Sleep(1000)
MouseClick("left",$mx,$my,1,0)
Return
EndIf
If @error Then
MouseMove($sx,$sy,1)
MouseClick("left",$sx,$sy,1,0)
Sleep(100)
MouseClick("left",$sx,$sy,1,0)
Return
EndIf
WEnd
EndFunc
Er läuft also den Loop einmal durch aber reagiert nicht auf die Veränderung in dem Pixelsearch Bereich
-Start()
Func _Start()
$Xstabbar2 = GuiCtrlRead($Xstabbar) + 5
$Ystabbar2 = GuiCtrlRead($Ystabbar) + 2
$suchebild1 = _imagesearcharea('bild1.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$mx,$my,100)
$suchebild2 = _imagesearcharea('bild2.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$sx,$sy,100)
If $suchemute & $suchestab = 0 Then ; ?????
MsgBox(0,"Error","Abgebrochen")
EndIf
While 1
$stabbar = PixelSearch($Xstabbar,$Ystabbar,$Xstabbar2,$Ystabbar2,0xFFAAAA,2)
Sleep(1000) ; wofür ? verursacht nur fehler
If not @error Then
MouseMove($mx,$my,1)
MouseClick("left",$mx,$my,1,0)
Sleep(1000)
MouseClick("left",$mx,$my,1,0)
;Return musst du anders lösen
Else
MouseMove($sx,$sy,1)
MouseClick("left",$sx,$sy,1,0)
Sleep(100)
MouseClick("left",$sx,$sy,1,0)
;Return musst du anders lösen außerdem steht nichtmal bei was
;er soll z.b. Return 1
EndIf
WEnd
EndFunc
wie kann ich es also lösen dass er es folgender maßen macht:
Pixelsearch (Überprüfung ob der Bereich noch der Farbe entspricht)
Bei Farbe "Ok" auf Feld1 klicken
Bei Farbe "falsch" Feld2 klicken
Pixelsearch
Bei Farbe "falsch" Feld2 klicken
Bei Farbe "Ok" auf Feld1 klicken
Pixelsearch
Momentan erkennt er zwar am anfang die Farbe, aber anscheinend macht er danach nicht nochmal Pixelsearch
_Start()
Func _Start()
$Xstabbar2 = GuiCtrlRead($Xstabbar) + 5
$Ystabbar2 = GuiCtrlRead($Ystabbar) + 2
$suchebild1 = _imagesearcharea('bild1.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$mx,$my,100)
$suchebild2 = _imagesearcharea('bild2.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$sx,$sy,100)
If $suchemute & $suchestab = 0 Then ; ?????
MsgBox(0,"Error","Abgebrochen")
EndIf
While 1
$stabbar = PixelSearch($Xstabbar,$Ystabbar,$Xstabbar2,$Ystabbar2,0xFFAAAA,2)
Sleep(1000) ; wofür ? verursacht nur fehler
If not @error Then
MouseMove($mx,$my,1)
MouseClick("left",$mx,$my,1,0)
Sleep(1000)
MouseClick("left",$mx,$my,1,0)
;Return musst du anders lösen
Else
MouseMove($sx,$sy,1)
MouseClick("left",$sx,$sy,1,0)
Sleep(100)
MouseClick("left",$sx,$sy,1,0)
;Return musst du anders lösen außerdem steht nichtmal bei was
;er soll z.b. Return 1
EndIf
WEnd
EndFunc
soll er 2 mal pixelsearch machen und das in einer while schleife oder soll eine andere func aufgerudfen werden wenn das 1 pixelsearch beendet wird ?
_Start()
Func _Start()
$Xstabbar2 = GuiCtrlRead($Xstabbar) + 5
$Ystabbar2 = GuiCtrlRead($Ystabbar) + 2
$suchebild1 = _imagesearcharea('bild1.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$mx,$my,100)
$suchebild2 = _imagesearcharea('bild2.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$sx,$sy,100)
If $suchemute & $suchestab = 0 Then ; ?????
MsgBox(0,"Error","Abgebrochen")
EndIf
While 1
$stabbar = PixelSearch($Xstabbar,$Ystabbar,$Xstabbar2,$Ystabbar2,0xFFAAAA,2)
Sleep(1000) ; wofür ? verursacht nur fehler
If not @error Then
MouseMove($mx,$my,1)
MouseClick("left",$mx,$my,1,0)
Sleep(1000)
MouseClick("left",$mx,$my,1,0)
;Return musst du anders lösen
Else
MouseMove($sx,$sy,1)
MouseClick("left",$sx,$sy,1,0)
Sleep(100)
MouseClick("left",$sx,$sy,1,0)
;Return musst du anders lösen außerdem steht nichtmal bei was
;er soll z.b. Return 1
EndIf
WEnd
EndFunc
soll er 2 mal pixelsearch machen und das in einer while schleife oder soll eine andere func aufgerudfen werden wenn das 1 pixelsearch beendet wird ?
Wird über einen Hotkey aufgerufen
[Loop]
Pixelsearch
Farbe vorhanden klick 2x auf Feld1
Farbe nicht vorhanden klick 2x auf Feld2
[/Loop]
So soll es aussehen
Momentan macht er einfach nur den Pixelsearch und klickt dann dauerhaft auf Feld1
Func _Start()
#cs
$Xstabbar2 = GuiCtrlRead($Xstabbar) + 5
$Ystabbar2 = GuiCtrlRead($Ystabbar) + 2
$suchebild1 = _imagesearcharea('bild1.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$mx,$my,100)
$suchebild2 = _imagesearcharea('bild2.png',1,GuiCtrlRead($OLX),GuiCtrlRead($OLY),GuiCtrlRead($URX),GuiCtrlRead($URY),$sx,$sy,100)
If $suchemute & $suchestab = 0 Then ; ?????
MsgBox(0,"Error","Abgebrochen")
EndIf
#ce
;den teil kommentier ich mal aus da der beim pixelsearch erst nicht stört oder ;?
While 1
$stabbar = PixelSearch($Xstabbar,$Ystabbar,$Xstabbar2,$Ystabbar2,0xFFAAAA,2)
Sleep(1000) ; wofür ? verursacht nur fehler
If not @error Then
MouseMove($mx,$my,1)
MouseClick("left",$mx,$my,1,0)
Sleep(1000)
MouseClick("left",$mx,$my,1,0)
;Return musst du anders lösen
Else
MouseMove($sx,$sy,1)
MouseClick("left",$sx,$sy,1,0)
Sleep(100)
MouseClick("left",$sx,$sy,1,0)
;Return musst du anders lösen außerdem steht nichtmal bei was
;er soll z.b. Return 1
EndIf
WEnd
EndFunc
hab grad kein scite installiert ich kann nix überprüfen aber tu doch mal in jede zeile : consolewrite("1") consolewrite("2") consolewrite("3")überprüf bitte ob das so richtig ist und lass es mit console compilen bzw einfach in scite run . damit du siehst wo das programm stoppt
> Pixelsearch problem 06/06/2012 - AutoIt - 4 Replies guten tag und danke im vorraus
Problem
pixelsearch klickt unerwünschte pixel/farbe an (obwohl die PixelID nicht übereinstimmt)
€nglish
Pixelsearch is clicking random pixels,even if the PixelID is wrong
Func Start() ;^^
Pixelsearch Problem 03/18/2011 - AutoIt - 7 Replies Hey Leute,
wie ihr vielleicht mitbekommen habt, hab ich ja einen kleinen Aion Bot erstellt.
Klappt auch alles ganz wunderbar usw...Jetzt hab ich aber folgendes Problem :
Ich hab einen Pixelsearch Befehl eingebaut, damit er erkennt, wenn das Monster tot ist. Also wenn das Monster am Ende kein rotes Leben mehr hat, dann sammelt er Gegenstände auf. Bei mir klappt das auch alles ganz wunderbar. Nur bei einem Freun haben wir es dann nochmal getestet und bei ihm fing er an die Loot Taste zu...
Pixelsearch Bot Problem 10/12/2010 - Nostale - 22 Replies Ich habe mich entschlossen auch mal mit Autoit anzufangen und solche einfachen Leertasten Bots u.ä. bekomm ich auch hin aber irgendwie hab ich grade Probleme mit nem Pixelsearch Bot und zwar:
Mein Bot soll einen selbst Auswählbaren Bereich Nach einer Bestimmten Farbe "absuchen" und wenn diese Farbe kommt soll er einen Ton von sich geben - gleichzeitig soll er aber auch Botten. Mein script sieht im Moment so aus:
HotKeySet("{F1}", "starten")
HotKeySet("{F2}", "pause")
HotKeySet("{F3}",...
Kleines Problem mit PixelSearch 04/08/2010 - AutoIt - 4 Replies Da bin ich mal wieder >_>
Is eig ganz simpel:
Do
$pixel2=PixelSearch(351,249,431,532,0xFFFFFF, 5)
Until IsArray($pixel2)
If IsArray($pixel2) Then
If $get2 = "German" Then
MouseClick(360, 346)
ElseIf $get2 = "English" Then
MouseClick(400, 293)
pixelsearch problem 09/27/2009 - GW Bots - 4 Replies hi,
will mir nen bot schreiben komme aba ned weiter QQ
also er soll etwas solange tun bis er via pixelsearch die angegebene farbe ned mehr findet. so weit so gut nur bekomme ich das nich so richtig hin QQ.
hier meine versuche:
nr1:
do
send("1")
sleep(200)
send("2")