Hilfe beim Script

  • Hi Leute,

    bin zur Zeit am Schreiben eines Scripts, bei dem ich mit ImageSearch arbeite. Allerdings will es nicht ganz so hinhauen. Aus irgendeinem Grund, will er den Else-Befehl nicht ausführen. Kann mir jemand sagen, woran das liegt? schonmal danke im voraus.

    [spoiler]

    [autoit]


    #RequireAdmin
    #include <ImageSearch.au3>

    [/autoit][autoit][/autoit][autoit]

    Global $fenster
    Global $active = 0

    [/autoit][autoit][/autoit][autoit]

    HotKeySet ("{PGUP}","starten")
    HotKeySet ("{PGDN}","beenden")

    [/autoit][autoit][/autoit][autoit]

    $x1=0
    $x2=0
    $x3=0
    $y1=0
    $y2=0
    $y3=0

    [/autoit][autoit][/autoit][autoit]

    While 1
    sleep(1)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func starten()
    While 1
    $result1 = _ImageSearch("x.png",1,$x1,$y1,125)
    If $result1 = 1 Then
    MouseClick ("LEFT",$x1,$y1)
    sleep (500)
    $result2 = _ImageSearch("xx.png",1,$x2,$y2,125)
    If $result2 = 1 Then
    MouseClick ("Left",$x2,$y2)
    Else
    If $result1 And $result2 = 0 Then
    $result3 = _ImageSearch("xxx.png",1,$x3,$y3,125)
    If $result3 = 1 Then
    MouseClick ("LEFT",$x3,$y3)
    EndIf
    EndIf
    EndIf
    EndIf
    WEnd
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func beenden()
    Exit 1
    EndFunc

    [/autoit]


    [spoiler]

  • Hi,
    du must immer auch die Syntax von

    [autoit]

    if Else Endif

    [/autoit]


    einhalten.

    Bei dir ist das ein ordentliches Durcheinander.
    if (xxxx = xxx ) then yyyyyyy
    Wenn deine If abfrage in einer Zeile ohne Else geschrieben wird, brauchst du kein EndIF.

    MfG
    Der_Doc

  • Hi,
    du must immer auch die Syntax von

    [autoit]

    if Else Endif

    [/autoit]


    einhalten.

    Bei dir ist das ein ordentliches Durcheinander.
    if (xxxx = xxx ) then yyyyyyy
    Wenn deine If abfrage in einer Zeile ohne Else geschrieben wird, brauchst du kein EndIF.

    MfG
    Der_Doc


    danke hat jetzt funktioniert.

    allerdings funktioniert mein script nur mit einem wert. habe gedacht, ich kann das mit arrays lösen, um einer Variable mehrere Werte zuzuweisen, die alle überprüft werden. Kann das funktionieren oder wie muss ich das machen?

    hier mein aktueller Code

    Spoiler anzeigen
    [autoit]


    #RequireAdmin
    #include <ImageSearch.au3>

    [/autoit]

    Global $fenster
    Global $active = 0

    HotKeySet ("{PGUP}","starten")
    HotKeySet ("{PGDN}","beenden")

    $x1=0
    $x2=0
    $x3=0
    $y1=0
    $y2=0
    $y3=0

    While 1
    sleep(1)
    WEnd

    Func starten()
    While 1

    $result1 = _ImageSearch("x.png",1,$x1,$y1,150)
    If $result1 = 1 Then
    MouseClick ("LEFT",$x1,$y1)

    sleep (100)

    $result2 = _ImageSearch ("xx.png",1,$x2,$y2,150)
    If $result2 = 1 Then
    MouseClick ("LEFT",$x2,$y2)

    sleep (100)

    EndIf

    Else
    $result3 = _ImageSearch("xxx.png",1,$x3,$y3,150)
    If $result3 = 1 Then
    MouseClick ("LEFT",$x3,$y3)
    EndIf

    EndIf
    WEnd
    EndFunc


    Func beenden()
    Exit 1
    EndFunc

    [autoit][/autoit]