Syntax?

02/10/2011 13:52 programm2008#16
Ok ich habe die Anzahl der Bilder auf 17 runtergesetzt trotzdem erscheint diese Tabelle allerdings geht die nun bis 17???
02/10/2011 14:25 KDeluxe#17
Unverbesserlich... Tabelle → _ArrayDisplay($myPics)
Nimm einfach [Only registered and activated users can see links. Click Here To Register...], dieses kannst du vollständig kopieren.
02/10/2011 17:33 programm2008#18
danke bro. Der bot ist jetzt vollkommen, allerdings braucht der ja ewig bis er das richtige Bild erkannt hat kann man was dagegen machen??? Gibts vllt auch _ImagesSearchArea ????

$res = _WaitForImagesSearchArea($myPics, $max, 1, $x, $y, 100)
02/10/2011 17:47 KDeluxe#19
Kannst du dein Script mal mit der ImageSearch .au3 und .dll posten (im Anhang). Die _ImageSearch Funktionen hätte man aber auch besser umsetzen können.
02/11/2011 09:12 programm2008#20
So sieht das fertige Programm aus. Allerdings braucht der bei den 18 Bildern ewig bis er das richtige hat..


PHP Code:
#include <ImageSearch.au3>
#include <Array.au3>
$x 
$y 
0

_okey
()                                                                

Func _okey()
Sleep(1000)    
MouseClick("left",1086,716,2,0)                ;Klick auf Würfel
Sleep
(2000)                                ;2 Sekunden wartenbis Okey geladen ist

$ok 
_imagesearcharea('okey.bmp',1,640,560,771,620,$x,$y,100)        ;Suche nach dem "Okey.Bild" in der Mitte
    
If $ok 1 Then                                                    ;Wenn das Bild gefunden wird dann
        MouseClick
("left",$x,$y,3,0)                                ;Klick aufs "Okey.Bild" und das Programm startet von neuem
        _okey
()
    Else                                                             ;
WICHTIG Wenn Nein dann läuft das Programm weiter
        _losbild
()
    EndIf                                                            ;
Ende der Bedingung
EndFunc

Func _losbild
()
$los _imagesearch('los.bmp',1,$x,$y,100)                            ;Suche nach dem "Los.Bild"
    
If $los 1 Then ;                                                ;Wenn das "Los.Bild" gefunden wird läuft das Programm weiter
        _losfragee
()
    Else                                                             ;
Wenn das "Los.Bild" nicht gefunden wirddann klicke auf die vorgegebenen Koordinaten
        MouseClick
("left",840,442,2,0)
        
MouseClick("left",840,464,2,0)                                ;Klickkoordinate für Frage
        MouseClick
("left",840,450,2,0)                                ;Klickkoordinate für Frage
        MouseClick
("left",840,505,2,0)                                ;Klickkoordinate für Frage
        MouseClick
("left",840,521,2,0)                                ;Klickkoordinate für Frage
        MouseClick
("left",840,609,2,0)
        
MouseClick("left",840,480,2,0)                                ;Klickkoordinate für Frage
        MouseClick
("left",1060,716,2,0)                                ;Klickkoordinate für Okey
        _okey
()
    EndIf
EndFunc
        
Func _losfragee
()
    
$max 18 ;Anzahl der Bilder
Dim $myPics
[$max 1]
For 
$i 0 To $max
    
If $i == 0 Then
        $myPics
[$i] = $max
    
Else
        
$myPics[$i] = $i ".bmp"
    
EndIf
Next

Dim $x
$y 
$res 
_WaitForImagesSearch($myPics$max1$x$y100) ;maximal x Sekunden für x Bilder [B][COLOR="Red"]HIER BRAUCHT DER FAST EINE MINUTE UM DAS RICHTIGE BILD ZU ERKENNEN[/COLOR][/B]
If 
$res 0 Then
    
If $res == 1 Then
        MsgBox
(0,'Los','Los ist nicht vorhanden')
        Exit
    ElseIf 
$res == 12 Then
        MouseClick
("left"84055010)
        
_losrichtig()
    Else
        
MouseClick("left"$x$y10)
        
_losrichtig()
    EndIf
EndIf
EndFunc

Func _losrichtig
()
MouseClick("left",1060,716,1,0)                                ;Klickkoordinate für Okey
Sleep
(1000)                                                    ;Wartet eine Sekunde
MouseClick
("left",629,571,1,0)                                ;Klickkoordinate für Ich-Will-Gewinnen
Sleep
(1000)                                                    ;Wartet eine Sekunde
MouseClick
("left",951,638,1,0)                                ;Klickkoordinate für Teilnehmen
Sleep
(1000)                                                    ;Wartet eine Sekunde
MouseClick
("left",717,610,1,0)                                ;Klickkoordinate für WeiterGehts
Sleep
(1000)                                                    ;Wartet eine Sekunde
_okey
()                                                        ;Das Unterprogramm _okey wird gestartet
EndFunc 
02/11/2011 14:36 KDeluxe#21
Wenn du den Bereich eingrenzen möchtest kannst du die Funktion doch einfach um 4 Parameter erweitern, wo soll das Problem sein? Ist es für ein bestimmtes Fenster?
02/12/2011 17:18 programm2008#22
Ja ist es
02/12/2011 17:19 programm2008#23
WaitForImagesSearchArea gibts doch nicht??
02/12/2011 20:08 KDeluxe#24
Eigentlich schon, du musst nur die Funktionen in der UDF etwas ändern.
02/13/2011 15:51 programm2008#25
Was heißt UDF ^^
02/13/2011 20:37 KDeluxe#26
UDF = User Defined Function

In diesem Fall die ImageSearch.au3. Ich persönlich würde die UDF nie benutzen (liegt auch daran, dass ich eigentlich kein AutoIt benutze), da sie mir zu Fehleranfällig wäre.
Ich hab der UDF mal 4 neue Funktionen verpasst, aber ich hatte keine Lust, die UDF komplett zu bearbeiten.

Neue Funktionen:
  • _WaitForImageSearchArea
  • _WaitForImagesSearchArea
  • _WaitForImageSearchWindow
  • _WaitForImagesSearchWindow
  • _ImageSearch bearbeitet

Der Source Code der ImageSearchDLL.dll ist übrigens Open Source. Falls sich jemand dafür interessieren sollte, [Only registered and activated users can see links. Click Here To Register...].
02/14/2011 22:34 programm2008#27
KILLER DELUXE DU BIST EINFACH DER BESTE. ICH HOFFE GENAU WIE DU MIR GEHOLFEN HAST WIRD AUCH DIR EINER IN NOT HELFEN