Frage zu If Not

08/20/2010 21:59 WiiZocker#1
Hi:o

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:cool:

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 omer36#2
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 :D werden vom tv abgelenkt :D
hoffe das hilft... ^^
PHP Code:
HotKeySet("{ESC}""_exit")

While 
1
    $test 
PixelSearch(702,305768,3490xCFCAFF)
    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 KDeluxe#3
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) == $FarbeOLThen
        MouseClick
("left"$OL[0], $OL[1], 11)
        
Sleep(100)
    EndIf
EndIf 
08/21/2010 00:31 | Moep |#4
Quote:
Originally Posted by WiiZocker View Post
Hi:o

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 WiiZocker#5
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 :D
Hast nen tollen klick auffem THX Button bekommen
08/21/2010 17:23 KDeluxe#6
PHP Code:
If $Color <> 0xFFFFFF Then ;... 
Ist im Prinzip das selbe wie:
PHP Code:
If Not ($Color 0xFFFFFFThen ;... 
Funktionieren tut beides, bei der Verwendung von "Not" sollte man aber die Klammer um den
Vergleich setzen.
08/21/2010 17:44 omer36#7
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 :D
" 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 WiiZocker#8
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 | Moep |#9
Quote:
Originally Posted by WiiZocker View Post
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 View Post
danke KD, jetz seh ich wie manns richtig macht :D
" 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.