Ich habe eine While-Schleife geschrieben, die eigentlich perfekt funktioniert. Aber nur, wenn man macht, was sie will. Und genau das ist das Problem.
Die Schleife verarbeitet ein 2D-Array.
Spoiler anzeigen
While Not $save_array[0][0] = ""
_ArrayDisplay($save_array)
;Dank der Anzeige funktioniert es nun immer. Aber was kann ich anstatt der Anzeige nehmen?? Es soll nicht sichtbar sein...
If $save_array[0][0] = "Quest" Then
$toolbar = _GUICtrlToolbar_FindToolbar("TES Construction Set", "")
_GUICtrlToolbar_ClickIndex($toolbar, 21)
WinWait("Quest")
ControlSend("Quest", "", 2064, "{DOWN " & $save_array[0][1] -1 & "}")
_ArrayDelete($save_array, 0)
ElseIf $save_array[0][0] = "Skript" Then
;~ ...
_ArrayDelete($save_array, 0)
ElseIf $save_array[0][0] = "Dialog" Then
$toolbar = _GUICtrlToolbar_FindToolbar("TES Construction Set", "")
_GUICtrlToolbar_ClickIndex($toolbar, 22)
WinWait("Dialogue")
ControlSend("Dialogue", "", 1448, "{DOWN " & $save_array[0][1] -1 & "}")
_ArrayDelete($save_array, 0)
EndIf
Sleep(500)
WEnd
Aus bestimmten Gründen muss ich vor einer bestimmten Funktion Fenster(Dialog, Quest, Skript) schließen. Da ich diese anch der Funktion aufrufen will, speichere ich sie im Array(Element $i,0 = Fensterart; Element $i,1 = Info)
Die Schleife übernimmt den Wiederaufruf.
Getestet habe ich das mit einem Questfenster und einem Dialogfenster. Wenn ich das Questfenster zuerst öffne und dann das Dialogfenster, wird durch die Schleife nur das Dialogfenster geöffnet, obwohl beide im Array stehen.
Wenn ich das Dialogfenster zuerst öffne und danach das Questfenster, werden beide korrekt angezeigt.
Ich verstehe bloß nicht warum.
Kann mir da jemand helfen?