Probleme mit variablen

  • Bei mir schon. Bei mir wird auch $NUMMER erhöht.
    Und eine Frage: Warum nennst du dein 4 Gewinnt "Keylogger.au3" ?

    Edit: Seltsam... Beim ersten starten wurde $NUMMER bei mir erhöht, beim 2. starten aber nichtmehr ?(

    Einmal editiert, zuletzt von Ineluki (24. Juli 2010 um 09:08)

  • Ich glaube es liegt an der desktop auflösung und an der Funktion GUI on primery click oder so ch weiß nicht weil bei mir funktionieren nur die negativen Koordinaten

    PS: keylogger is n anderes projekt hat aber nur was mit passwortspeicherung zu tun nich mit normalen keyloggern hab nur noch keinen namen und falls das auch komisch klingt ich hatte keine lust ein neues Script zu speichern also hab ichs in das kopiert

    Mal noch ne frage warum kann ich keine Arrayvariable als Variable benutzen
    Bsp
    $123 = Spielstein[Zeile[$Zahl]][$Zahl]

  • [autoit]

    Global $NUMMER=0...Func SetColor() AutoItSetOption("MouseCoordMode", 1) $X_COORD = MouseGetPos(0) $FARBE="ROT" Switch $X_COORD Case $X_COORD<-352 Or $X_COORD>352 Sleep(500) Case -352 To -260 $NUMMER = 0 Case -250 To -158 $NUMMER = 1 Case -148 To 56 $NUMMER = 2 Case -46 To 46 $NUMMER = 3 Case 56 To 148 $NUMMER = 4 Case 158 To 250 $NUMMER = 5 Case 260 To 352 $NUMMER = 6 EndSwitch If $Zeile[$NUMMER]= -1 Then MsgBox(16,"ERROR","blablabla") $Zeile[$NUMMER]=0 Else _SetImagefromResource($Spielstein[$NUMMER][$Zeile[$NUMMER]],$FARBE, @ScriptDir & "\PIC.dll", $RT_RCDATA) $Zeile[$NUMMER]-=1 EndIf

    [/autoit]

    MouseGetPos liefert ein Array zurück deshalb kann es nicht gehen, desweiteren würde (im korrigierten Skript) die erste Case Abfrage alle witeren Abfragen verhindern, da sie ja immer wahr ist, da Switch .. Case nach der ersten Lösung aufhört weiter zu testen,

    mfg (Auto)Bert

  • Mousegetpos leifert mit dem parameter 0 nur die x Koordinate zurück und dies nicht in einem Array sondern in einem Intergerwert, damit ist deine aussage falsh

    Dein kommentar zur ersten switchabfrage stimmt glaube ich auch nicht, da es nur testet ob die koordinate über dem Maximalwert oder unter dem minimalwert ist

  • Hallo alexanderschill,

    mit mosegetpos hast du recht (habe leider übersehen, dass du eine Dimension mit gegeben hast). Der Teil zu Switch stimmt aber wie du anhand dieses (unbsinnigen) SKriptes prüfen kannst:

    [autoit]

    $zahl = InputBox("Zahl eingeben")
    Switch $zahl
    case $zahl <= 10 or $zahl > 10
    MsgBox(0,"","Die Zahl ist entweder kleiner gleich oder grösser 10")
    case Else
    MsgBox(0,"",$zahl)
    EndSwitch

    [/autoit]

    wenn du eine Zahl eingibst wird immer nur die 1, MsgBox angezeigt,

    mfg (Auto)Bert

  • oh hupps sorry hab ich übersehen dieses zeichen (>) muss eigentlich ein < sein danke

    ne stimmt gar nicht, wenn dus dir mal anschaust steht vor der ersten zahl ein - und deshalb stimmt der bereich von -356 bis +356

  • ne sry hab nur das $ vergessen im forum geht aber trotzdem nich

    Spoiler anzeigen

    C:\Users\Alex\Desktop\4 Gewinnt.au3 (114) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    _SetImagefromResource($Spielstein[$NUMMER][$Zeile[$NUMMER]],$FARBE, @ScriptDir & "\PIC.dll", $RT_RCDATA)
    _SetImagefromResource(^ ERROR

  • Ich hab nur mal kurz deinen letzten Poste gelesen. Also wie es schon dransteht, ist

    [autoit]

    ($Spielstein[$NUMMER][$Zeile[$NUMMER]]

    [/autoit]


    für die Array zu groß, also ist $NUMMER oder $Zeile[$NUMMER] größer wie du es davor für die Array festgelegt hast, oder es sind negative Zahlen!
    Kannst es ja mit

    [autoit]

    ConsoleWrite("Check:" & $NUMMER & "/" & $Zeile[$NUMMER] & @lf)

    [/autoit]

    überprüfen.