|
You last visited: Today at 18:54
Advertisement
Frage zu If Not
Discussion on Frage zu If Not within the AutoIt forum part of the Coders Den category.
08/20/2010, 21:59
|
#1
|
elite*gold: 0
Join Date: Jul 2009
Posts: 492
Received Thanks: 126
|
Frage zu If Not
Hi
Ich habe ein Bot geschrieben der zuhauen soll wenn er eine bestimmte farbe nicht finded, hier mal der teil der dafür zuständig ist
Code:
$OL = PixelSearch($X_ObenLinks,$X_ObenLinks,$Y_ObenLinks,$Y_ObenLinks,$FarbeOL)
IsArray($OL)
[B]If Not PixelGetColor($X_ObenLinks,$Y_ObenLinks,$FarbeOL) = 1 Then[/B][U];Er schlägt bei verbeinung nicht zu[/U]
MouseMove($OL[0],$OL[1],1)
MouseClick("LEFT")
Sleep(100)
EndIf
OL heißt ObenLinks^^
|
|
|
08/20/2010, 23:30
|
#2
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
das kann erstmal garnicht gehen...
Quote:
|
PixelGetColor($X_ObenLinks,$Y_ObenLinks,$FarbeOL)
|
PixelGetColor ( x , y [, hwnd] )
habs mal mit pixelsearch gemacht...habs iwie grade mit pixelgetcolor nicht hinbekommen  werden vom tv abgelenkt 
hoffe das hilft... ^^
PHP Code:
HotKeySet("{ESC}", "_exit")
While 1
$test = PixelSearch(702,305, 768,349, 0xCFCAFF)
If IsArray($test) = False Then
MsgBox("","","nicht gefunden. jetz angreifen...")
Sleep(2000)
Else
MsgBox("","","gefunden. pause machen!")
Sleep(2000)
EndIf
WEnd
Func _exit()
Exit
EndFunc
While 1
Sleep("200")
WEnd
|
|
|
08/21/2010, 00:06
|
#3
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Laut deiner Beischreibung sollte es so sein:
PHP Code:
$OL = PixelSearch($X_ObenLinks, $X_ObenLinks ,$Y_ObenLinks, $Y_ObenLinks, $FarbeOL)
If Not @error Then
If Not (PixelGetColor($X_ObenLinks, $Y_ObenLinks) == $FarbeOL) Then
MouseClick("left", $OL[0], $OL[1], 1, 1)
Sleep(100)
EndIf
EndIf
|
|
|
08/21/2010, 00:31
|
#4
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
Quote:
Originally Posted by WiiZocker
Hi
Ich habe ein Bot geschrieben der zuhauen soll wenn er eine bestimmte farbe nicht finded...
|
Code:
If PixelGetColor($x,$y) <> $color then zuhauen()
NOT macht sinn wenn dein return ein bool ist. Bei PixelGetColor returned jedoch immer eine farbe also eine dezimal zahl (int).
Sinn machen würde z.B.
Code:
If not WinExists ( $title ) then tuEtwas()
Da WinExists immer eine 1 (true) oder eine 0(false) returned.
Deine kreation
Code:
If Not PixelGetColor($X_ObenLinks,$Y_ObenLinks,$FarbeOL) = 1 Then
würde, mal abgesehen von den syntaxfehlern, erfüllt sein wenn der return von pixelgetcolor nicht gleich 1 ist. Also immer wenn die gefundene Farbe eine andere ist als 1.
|
|
|
08/21/2010, 11:30
|
#5
|
elite*gold: 0
Join Date: Jul 2009
Posts: 492
Received Thanks: 126
|
Quote:
|
würde, mal abgesehen von den syntaxfehlern, erfüllt sein wenn der return von pixelgetcolor nicht gleich 1 ist. Also immer wenn die gefundene Farbe eine andere ist als 1.
|
Bin noch nicht sehr vertraut mit Pixelgetcolor, arbeite sonst nie mit Pixelsearch/Pixelgetcolor usw.
Aber danke euch, ich werdes gleich testen.
Edit: Danke Moep, du hast mir sehr geholfen 
Hast nen tollen klick auffem THX Button bekommen
|
|
|
08/21/2010, 17:23
|
#6
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
PHP Code:
If $Color <> 0xFFFFFF Then ;...
Ist im Prinzip das selbe wie:
PHP Code:
If Not ($Color = 0xFFFFFF) Then ;...
Funktionieren tut beides, bei der Verwendung von "Not" sollte man aber die Klammer um den
Vergleich setzen.
|
|
|
08/21/2010, 17:44
|
#7
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
ich hatte das erst so
If Not PixelGetColor($X_ObenLinks, $Y_ObenLinks) = $Farbe Then
und frag mich dieganze zeit warum das nicht geht..
wusste nicht, dass mann das in eine klammer setzen kann/muss...
danke KD, jetz seh ich wie manns richtig macht 
" If Not (PixelGetColor($X_ObenLinks, $Y_ObenLinks) == $FarbeOL) Then "
aber das von moep ist glaube ich bischen "leichter" zu sehen..
" If PixelGetColor($x,$y) <> $color then "
|
|
|
08/21/2010, 21:44
|
#8
|
elite*gold: 0
Join Date: Jul 2009
Posts: 492
Received Thanks: 126
|
Ahm mal ne blöde frage:
Wenn ich sowas habe: If PixelGetColor($x,$y) <> $color then
wo kann ich das "or" für eine weitere Farbe hinsetzen?
Muss ich den befehl neuschreiben und statt $FarbeOL zb $AndereFarbe hinschreiben?
Naja ich muss mal bischen ruimprobieren wies geht ;D danke euch für die hilfe^^
|
|
|
08/22/2010, 02:01
|
#9
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
Quote:
Originally Posted by WiiZocker
Ahm mal ne blöde frage:
Wenn ich sowas habe: If PixelGetColor($x,$y) <> $color then
wo kann ich das "or" für eine weitere Farbe hinsetzen?
Muss ich den befehl neuschreiben und statt $FarbeOL zb $AndereFarbe hinschreiben?
Naja ich muss mal bischen ruimprobieren wies geht ;D danke euch für die hilfe^^
|
If (PixelGetColor($x,$y) <> $color) OR (PixelGetColor($x,$y) <> $color1) then
Quote:
Originally Posted by omer36
danke KD, jetz seh ich wie manns richtig macht 
" If Not (PixelGetColor($X_ObenLinks, $Y_ObenLinks) == $FarbeOL) Then "
aber das von moep ist glaube ich bischen "leichter" zu sehen..
" If PixelGetColor($x,$y) <> $color then "
|
Im Grunde stimmt ja beides.
- KD vergleicht erst und sagt dann wenn der vergleich unwahr ist mache etwas (da ja die Klammer immer zuerst ausgewertet wird).
- Bei mir wird diekt auf ungleichheit gecheckt.
|
|
|
All times are GMT +1. The time now is 18:54.
|
|