Error:

  • hallo :)
    ich hab folgendes problem wenn ich in meinem programm auf den start button klicke kommt folgende fehlermeldung:

    Zitat

    Line -1:
    Error: Array variable subscript badly formatted


    nun meine frage was hat dieser error zu bedeuten?
    heißt das das in line 1 ein fehler ist? ?(
    und ich hab auch eigentlich kein array gesetzt was mich noch mehr verwundert weil im error was von array steht
    naja hoffe jemand kann helfen
    lg

  • kann man so nicht sagen, poste pls mal dein script, dann können wir dir sicher helfen

    Computers are like Airconditioning. They don´t work with open Windows.

  • so da ich poste mal das script :o

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon

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

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\Icons\icon_dark.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    If $CmdLine[0] <> 3 Then
    Exit
    EndIf

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

    $main_pid = $CmdLine[1]
    $cool_key = $CmdLine[2]
    $cool_hwnd = $CmdLine[3]
    $cool_block = 1
    $time_start = 0
    $cool_time = 1740000
    Global $cool_pos = PixelSearch ( 0, 0, 1024, 800, 0x2E5C52)
    Global $cool_pos[0] = $cool_startx , $cool_pos[1] = $cool_starty

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

    $val = IniRead("config.ini","Lvl ","cool_block","x")
    If $val = "x" Then
    Else
    If Number($val) = 0 Or Number($val) = 1 Then
    $cool_block = Number($val)
    EndIf
    EndIf

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

    $val = IniRead("config.ini","Lvl ","cool_time","x")
    If $val = "x" Then
    Else
    If Number($val) = 0 Then
    Else
    $cool_time = Number($val) * 1000
    EndIf
    EndIf

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

    $val = IniRead("config.ini","Lvl ","cool_startx","x")
    If $val = "x" Then
    Else
    If Number($val) = 0 Then
    Else
    $cool_startx = Number($val)
    EndIf
    EndIf

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

    $val = IniRead("config.ini","Lvl ","cool_starty","x")
    If $val = "x" Then
    Else
    If Number($val) = 0 Then
    Else
    $cool_starty = Number($val)
    EndIf
    EndIf

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

    Func _Start()
    $pos = WinGetPos(HWnd($cool_hwnd))
    IniWrite("Temp.ini","Lvl ","load","1")

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

    If $cool_block = 1 Then BlockInput(1)

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

    DllCall("Functions.dll","int","fnPostMessage","hwnd", $cool_hwnd, "long", 256, "long", 111 + $cool_key, "long", 0)
    Sleep(350)
    DllCall("Functions.dll","int","fnSetCursorPos","int",$pos[0] + $cool_startx,"int",$pos[1] + $cool_starty)
    Sleep(400)
    DllCall("Functions.dll","int","fnPostMessage","hwnd",$cool_hwnd,"int",0x0201,"int",0x0001, "long",_MakeLong($pos[0] + $cool_startx,$pos[1] + $cool_starty))
    Sleep(100)
    DllCall("Functions.dll","int","fnPostMessage","hwnd",$cool_hwnd,"int",0x0202,"int",0x0001,"long",_MakeLong($pos[0] + $cool_startx,$pos[1] + $cool_starty))

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

    Sleep(300)
    DllCall("Functions.dll","int","fnSetCursorPos","int",$pos[0] + $cool_startx,"int",$pos[1] + $cool_starty)
    Sleep(400)
    DllCall("Functions.dll","int","fnPostMessage","hwnd",$cool_hwnd,"int",0x0201,"int",0x0001, "long",_MakeLong($pos[0] + $cool_startx,$pos[1] + $cool_starty))
    Sleep(100)
    DllCall("Functions.dll","int","fnPostMessage","hwnd",$cool_hwnd,"int",0x0202,"int",0x0001,"long",_MakeLong($pos[0] + $cool_startx,$pos[1] + $cool_starty))
    Sleep(400)
    $time_start = TimerInit()
    BlockInput(0)
    IniDelete("Temp.ini","Lvl ","load")
    EndFunc

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

    Func _Stop()
    $pos = WinGetPos(HWnd($cool_hwnd))
    IniWrite("Temp.ini","Lvl ","load","1")

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

    If $cool_block = 1 Then BlockInput(1)

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

    DllCall("Functions.dll","int","fnSetCursorPos","int",$pos[0] + $cool_startx,"int",$pos[1] + $cool_starty)
    Sleep(300)
    DllCall("Functions.dll","int","fnPostMessage","hwnd",$cool_hwnd,"int",0x0201,"int",0x0001, "long",_MakeLong($pos[0] + $cool_startx,$pos[1] + $cool_starty))
    Sleep(200)
    DllCall("Functions.dll","int","fnPostMessage","hwnd",$cool_hwnd,"int",0x0202,"int",0x0001,"long",_MakeLong($pos[0] + $cool_startx,$pos[1] + $cool_starty))
    Sleep(300)
    BlockInput(0)
    IniDelete("Temp.ini","Lvl ","load")
    EndFunc

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

    Func _CheckM()
    While 1
    $check = IniRead("Temp.ini","Lvl ","load","x")
    If $check = "x" Then
    ExitLoop
    EndIf
    Sleep(100)
    WEnd
    EndFunc

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

    _CheckM()
    _Start()

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

    While 1
    Sleep(100)
    If ProcessExists($main_pid) = 0 Then
    _Stop()
    Exit
    EndIf
    If TimerDiff($time_start) >= $cool_time Then
    _CheckM()
    _Stop()
    _Start()
    EndIf

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

    WEnd

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

    Func _MakeLong($LoWord,$HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
    EndFunc

    [/autoit]
  • lol ^^
    vielleicht solltest du bei zeile 59 mal ein exceptionhandling einbauen ^^
    also

    [autoit]

    $pos = WinGetPos(HWnd($cool_hwnd))
    If @error Then
    <bla bla>
    else
    <bla bla>
    endif

    [/autoit]

    das dürfte dein problem schon lösen, aber warum autoit solche schlechten fehlermeldungen macht weiss ich nicht,
    vieleicht will autoit dass wir beim programmieren etwas mehr denken (mirs is vorher ne ähnliche meldung gekommen ^^ )

    BugFix scheint auch ne gute erkläung zu haben, wenn das so is, würd ich da nen exceptionhandling einbauen, damit man es eben doch aufrufen kann ohne die parameter zu geben...

    Dies ist ein Arzeneimittel.
    Bei Risiken und Haluzinationen fressen sie die Packungsbeilage und schlagen Sie ihren Arzt oder Apotheker.
    Jede Haftung wird abgelent.

    Vielen Dank für Ihre Kundentreue.
    mfg. TimBlo

    Aperture Science

    http://www.youtube.com/watch?v=Y6ljFaKRTrI

  • 1. Die Funktion Wingetos in Zeile 59 gibt ne array als rückgabewert, genauso der Pixelsearch in zeile 19, das sollte mal das Prob mit den arays lösen, musst du alt anpassen.

    2. deine if... then
    nix
    else schleifen macen irgendwie keinen sinn
    Du hast da praktisch geschrieben (ich beziehe mich mal auf zeile 31:
    31:wenn $val "x" ist dann (da sollte was sein was er machen soll)
    32:wenn dem nicht so ist dann (auch hier sollte was sein)
    33wenn derNummerische Audruck von $val 0 ist oder der Nummerische ausdruck von $val 1 ist dann soll er
    34:$cool_block auf den Nummerischen ausdruck von Val setzten, also 0 od 1

    Zeile 33 und 34 machen ja noch sinn, aber was sollen 31 und 32??? übrigens genauso an vielen anderen Stellen.

    3. Für mich sieht das sehr stark nach Bot aus, bzw kann ich es fast sicher sagen mit funktionen wie _checkm() (für checkmap???) und _start(), _stop()...
    genauso hast du startpunkte x und y drinen, cool_time, ich schätze mal das soll die Zeit sein nac der du ne Fertigkeit wieder einsetzten Kannst.

    Daher pls CLOSE

    Computers are like Airconditioning. They don´t work with open Windows.