JungleTimer | Countdown stoppt sobald ein anderer beginnt.

  • Hallo Leute,

    ich bräuchte Hilfe bei meinem Countdown.
    Der Countdown funktioniert soweit, jedoch stoppt einer der Countdowns sobald ein anderer beginnt.

    Wie kann ich dies verhindern/umgehen?

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    HotKeySet ("{NUMPAD1}", "O_Blue")
    HotKeySet ("{NUMPAD2}", "O_Red")
    HotKeySet ("{NUMPAD3}", "E_Blue")
    HotKeySet ("{NUMPAD4}", "E_Red")
    HotKeySet ("{NUMPAD5}", "Dragon")
    HotKeySet ("{NUMPAD6}", "Baron")
    HotKeySet("{F3}", "Terminate")

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

    $GUI = GUICreate("Jungle Timer", 256, 154, 252, 198)
    $O_Blue = GUICtrlCreateLabel("Own Blue Buff", 18, 8, 72, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $O_Red = GUICtrlCreateLabel("Own Red Buff", 19, 32, 71, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $E_Blue = GUICtrlCreateLabel("Enemy Blue Buff", 8, 56, 82, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $E_Red = GUICtrlCreateLabel("Enemy Red Buff", 8, 80, 81, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $Dragon = GUICtrlCreateLabel("Dragon", 50, 104, 39, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $Baron = GUICtrlCreateLabel("Baron Nashor", 20, 128, 69, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $O_Blue_T = GUICtrlCreateLabel(" ", 103, 8, 55, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $O_Red_T = GUICtrlCreateLabel(" ", 103, 32, 55, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $E_Blue_T = GUICtrlCreateLabel(" ", 103, 56, 55, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $E_Red_T = GUICtrlCreateLabel(" ", 103, 80, 55, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $Dragon_T = GUICtrlCreateLabel(" ", 103, 104, 55, 17)
    $Baron_T = GUICtrlCreateLabel(" ", 103, 128, 55, 17)
    $N1 = GUICtrlCreateLabel("Numpad 1", 192, 8, 52, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $N4 = GUICtrlCreateLabel("Numpad 4", 192, 80, 52, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $N5 = GUICtrlCreateLabel("Numpad 5", 192, 104, 52, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $N6 = GUICtrlCreateLabel("Numpad 6", 192, 128, 52, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $Label4 = GUICtrlCreateLabel("Numpad 2", 192, 32, 52, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    $N3 = GUICtrlCreateLabel("Numpad 3", 192, 56, 52, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Tahoma")
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func O_Blue()
    For $i = 300 to 0 Step -1
    GUICtrlSetData($O_Blue_T, $i)
    Sleep(1000)
    Next
    GUICtrlSetData($O_Blue_T, "Respawned")
    Sleep(2000)
    EndFunc

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

    Func O_Red()
    For $i = 300 to 0 Step -1
    GUICtrlSetData($O_Red_T, $i)
    Sleep(1000)
    Next
    GUICtrlSetData($O_Red_T, "Respawned")
    Sleep(2000)
    EndFunc

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

    Func E_Blue()
    For $i = 300 to 0 Step -1
    GUICtrlSetData($E_Blue_T, $i)
    Sleep(1000)
    Next
    GUICtrlSetData($E_Blue_T, "Respawned")
    Sleep(2000)
    EndFunc

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

    Func E_Red()
    For $i = 300 to 0 Step -1
    GUICtrlSetData($E_Red_T, $i)
    Sleep(1000)
    Next
    GUICtrlSetData($E_Red_T, "Respawned")
    Sleep(2000)
    EndFunc

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

    Func Dragon()
    For $i = 360 to 0 Step -1
    GUICtrlSetData($Dragon_T, $i)
    Sleep(1000)
    Next
    GUICtrlSetData($Dragon_T, "Respawned")
    Sleep(2000)
    EndFunc

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

    Func Baron()
    For $i = 420 to 0 Step -1
    GUICtrlSetData($Baron_T, $i)
    Sleep(1000)
    Next
    GUICtrlSetData($Baron_T, "Respawned")
    Sleep(2000)
    EndFunc

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

    Func Terminate()
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von KazuZockt (30. August 2012 um 20:34)

  • Danke BadBunny.

    Ich habe nun ein Fehler bei meinem Countdown und somit den ganzen ersten Beitrag bearbeitet.

  • Du kannst die Funktionen nicht parallel laufen lassen, das geht nicht. Du könntest höchstens in die Mainloop ein Switch einbauen das bei bestimmten Variablen ("Schalter Variablen" nenn ich die mal) anfangen den passenden Wert hochzuzählen. Dadurch können mehrere Gleichzeitig geladen werden.

    PS: Bitte nicht den 1. Beitrag immer ganz verändern weil sonst manche Antworten keinen Sinn mehr ergeben und die Übersicht fehlt. Am besten ein EDIT: oder so dazu machen und das neue Problem schreiben und dann nochmal im Post dadrunter oder so. Danke

    Gruß

  • Könntest du mir ein Beispiel nennen? Ich verstehe nicht so ganz was du damit meinst :D

    Okay, werde ich beim nächstem Mal beachten.

  • Beispiel wäre etwa so:

    Die Hotkey rufen jeweils eine Funktion auf die eine Variable (z.B. $bBlue, $bRed etc) auf True setzen bzw <> 0

    [autoit]

    HotKeySet ("...", "...")

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

    Func ...
    $bBlue = 1
    EndFunc

    [/autoit]

    In der While Schleife würde dann immer in If Fragen geprüft werden ob die Variable True ist

    [autoit]

    While 1
    If $bBlue Then
    $BlueLadebalken +=1
    If $BlueLadebalken = 300 Then $bBlue = 0
    EndIf
    Wend

    [/autoit]

    Und das mit allen anderen Laden das müsste dann ganz einfach funktionieren.
    um die Sekunden dann noch zu zählen könntest du jeweils einen Timer anlegen (TimerInit()) oder Die While Schleife mit einem Sleep 1000 laufen lassen wobei das ungenauer wäre.

    [autoit]

    HotKeySet ("b", "_Blue")
    HotKeySet ("r", "_Red")

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

    Global $bBlue = False, $bRed = False ;; "Schalter"
    Global $nBlue = 0, $nRed = 0 ;; Counter

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

    $hWnd = GUICreate("")
    $nLabel_Blue = GUICtrlCreateLabel("0", 0, 0, 100)
    GUICtrlSetBkColor($nLabel_Blue, 0x0000FF)
    $nLabel_Red = GUICtrlCreateLabel("0", 0, 20, 100)
    GUICtrlSetBkColor($nLabel_Red, 0xFF0000)
    GUISetState()

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

    While GUIGetMsg() <> -3
    If $bBlue Then
    $nBlue += 1
    If $nBlue = 300 Then
    $bBlue = False
    $nBlue = 0
    EndIf
    GUICtrlSetData($nLabel_Blue, $nBlue)
    EndIf
    If $bRed Then
    $nRed += 1
    If $nRed = 300 Then
    $bRed = False
    $nRed = 0
    EndIf
    GUICtrlSetData($nLabel_Red, $nRed)
    EndIf
    WEnd

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

    Func _Blue()
    $bBlue = True
    EndFunc ;==>_Blue

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

    Func _Red()
    $bRed = True
    EndFunc ;==>_Red

    [/autoit]

    Ohne 1 Sek. dazwischen aber das ist das Grundprinziep

    Gruß

  • Vielen Dank.
    Ich versuche den Script dann man so zu schreiben und melde mich wieder falls es Probleme gibt.