Skript-Problem

  • [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $GA = 0

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

    GUICreate("Spiel", @DesktopWidth, @DesktopHeight - 60, 0, 0)
    $figur = GUICtrlCreatePic(@ScriptDir & "\auto_1.jpg", 315, 450, 200, 100)
    GUISetState(@SW_SHOW)
    While 1
    ToolTip($GA, 1, 1)
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then
    Exit
    EndIf
    If $GA <> 1 or 3 or 5 or 7 Then
    $GA = $GA + 1
    GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 145, 300, 180, 85)
    ElseIf $GA <> 2 or 3 or 6 or 7 Then
    $GA = $GA + 2
    GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 326, 300, 180, 85)
    ElseIf $GA <> 4 or 5 or 6 or 7 Then
    $GA = $GA + 4
    GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 507, 300, 180, 85)
    EndIF
    WEnd

    [/autoit]

    Problem: Er erstellt immer nur den 1. Gegner, und zählt dann immer um 1 hoch.

  • Ganz einfach, weil die erste Bedinung immer eintritt, somit kommen die elseif's gar nicht dran :P
    Außerdem benutzt du das or falsch, so ist's richtig:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $GA = 0

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

    GUICreate("Spiel", @DesktopWidth, @DesktopHeight - 60, 0, 0)
    $figur = GUICtrlCreatePic(@ScriptDir & "\auto_1.jpg", 315, 450, 200, 100)
    GUISetState(@SW_SHOW)
    While 1
    ToolTip($GA, 1, 1)
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then
    Exit
    EndIf
    If $GA <> 1 or $GA <> 3 or $GA <> 5 or $GA <> 7 Then
    $GA = $GA + 1
    GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 145, 300, 180, 85)
    MsgBox(0,"",$GA)
    ElseIf $GA <> 2 or $GA <> 3 or $GA <> 6 or $GA <> 7 Then
    $GA = $GA + 2
    GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 326, 300, 180, 85)
    ElseIf $GA <> 4 or $GA <> 5 or $GA <> 6 or $GA <> 7 Then
    $GA = $GA + 4
    GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 507, 300, 180, 85)
    EndIF
    WEnd

    [/autoit]
    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Nee so geht es auch nicht. Ich habe es jetzt so gelöst.

    [autoit='2. If in der While Schleife']

    If $G1 = 0 Then
    $G1 = 1
    $G1_a = GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 145, 300, 180, 85)
    ElseIf $G2 = 0 Then
    $G2 = 1
    $G2_a = GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 326, 300, 180, 85)
    ElseIf $G3 = 0 Then
    $G3 = 1
    $G3_a = GUICtrlCreatePic(@ScriptDir & "\GEGNER.jpg", 507, 300, 180, 85)
    EndIF

    [/autoit]
  • War auch keine Lösung für dein Problem, sondern hat dir nur die Fehler mit den OR's gezeigt...

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"