[Python] Timer im Hintergund laufen lassen?
Wie kann ich bei der aus kommentierten Zeile, einen Timer machen, mit einer individuellen Zeit (dic "cooldown" in Sekunden), sodass mein Code normal weiter läuft, nachdem der Timer abgelaufen ist soll "access" wieder auf True.
Ich hoffe ihr versteht.
import time, pyautogui
dungeons = [
{"name":"Dungeon_1","cooldown":30, "access":True, "enter_command":"/send_dungeon_request 1"},
{"name":"Dungeon_2","cooldown":40, "access":True,"enter_command":"/send_dungeon_request 2"},
{"name":"Dungeon_3","cooldown":5, "access":True, "enter_command":"/send_dungeon_request 3"}]
def enter_dungeon(dungeon):
pyautogui.press("Enter")
time.sleep(0.2)
pyautogui.write(dungeon["enter_command"])
pyautogui.press("Enter")
dungeon["access"] = False
# threading timer für jedes dungeon mit anderen cooldowns??? nach timer set access wieder auf True
time.sleep(0.5)
while 1:
time.sleep(1)
for dungeon in dungeons:
if dungeon["access"] == False:
print(dungeon["name"] + " is still on cooldown")
else:
enter_dungeon(dungeon)
2 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Python
Timer gibt es in Python schon:
Timer(dungeon["cooldown"], lambda: dungeon["access"]=True).start()
Das kannst Du mit einem neuen Thread erreichen.
Woher ich das weiß:Studium / Ausbildung – Informatik Studium.