wenn die sends jeweils nacheinander ausgeführt werden sollen, so wie bei dir aktuell, würde ich dir empfehlen dir einen zustand anzulegen, und einen neuen timer. die timervariable hält die jeweilige startzeit, der zustand hält das jeweils auszuführende send.
der übersicht halber würde ich dann eine funktion definieren, welche dann immer wieder nur aufgerufen werden muss, welche sendet, den timer neu startet und den zustand um eins erhöht.
das ganze könnte etwa so aussehen:
Code:
Global $sendTimer, $zustand=1
Func SendXtend($param, $sleep, $nr)
If $zustand=$nr And TimerDiff($sendTimer)>=$sleep Then
ControlSend($Fenstername,"","",$param)
$sendTimer = TimerInit()
$zustand += 1
EndIf
EndFunc
eingesetzt in deine endlosschleife in der funktion (was auf jedenfall noch geändert werden sollte, da es den rest vom script blockiert), würde das ganze dann etwa so aussehen:
Hättest du noch eine idee wie ich die endlos schleife umgehen könnte damit ich trotzdem meine scripte ablaufen lassen kann? Der script sendet zudem derzeit leider noch nicht die tastenkombis, wie kann ich denn sicherstellen das er dies tut? Ich mein er verschluckt doch das senden der taste falls die zeit dafür noch nicht richtig war oder?
ich verstehe nicht was du mit verschlucken meinst...
für das umgehen der überflüssigen endlosschleife, gilt einfach immer nur eine endlosschleife nutzen.
Edit:
ich persöhnlich habe ja nicht dein script bzw das nötige programm, aber wenn ich die abfragen durch einen toogle schlater ersetze, und die controlsends durch consolewrites, würde ich etwa dieses script erhalten:
Code:
HotKeySet('{F1}', 'blubb')
Global $sendTimer, $zustand=1, $blubb, $killTimer
Global $Zeit1 = 1000, $Zeit2 = 1300, $zeit3 = 500
Func SendXtend($param, $sleep, $nr)
If $zustand=$nr And TimerDiff($sendTimer)>=$sleep Then
ConsoleWrite('ControlSend($Fenstername,"","","'&$param&'")'&@CRLF)
$sendTimer = TimerInit()
$zustand += 1
If Not $blubb And $zustand > 4 Or $zustand > 18 Then $zustand = 1
EndIf
EndFunc
Func KillCounterCheck($intervall)
If TimerDiff($killTimer)>=$intervall Then
ConsoleWrite('Kill Counter Check'&@CRLF)
$killTimer = TimerInit()
EndIf
EndFunc
Func blubb()
$blubb = Not $blubb
EndFunc
While Sleep(50)
KillCounterCheck(5000)
SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 1)
SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 2)
SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 3)
SendXtend("{Tab}", Random($Zeit1,$Zeit2), 4)
If $blubb Then
SendXtend("{F1}", Random($Zeit1,$Zeit2), 5)
SendXtend("{F2}", Random($Zeit1,$Zeit2), 6)
SendXtend("{F3}", Random($Zeit1,$Zeit2), 7)
SendXtend("{F4}", Random($Zeit1,$Zeit2), 8)
SendXtend("{F5}", Random($Zeit1,$Zeit2), 9)
SendXtend("{F6}", Random($Zeit1,$Zeit2), 10)
SendXtend("{F7}", Random($Zeit1,$Zeit2), 11)
SendXtend("{F8}", Random($Zeit1,$Zeit2), 12)
SendXtend("{F9}", Random($Zeit1,$Zeit2), 13)
SendXtend("{F10}", Random($Zeit1,$Zeit2), 14)
SendXtend("{F11}", Random($Zeit1,$Zeit2), 15)
SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 16)
SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 17)
SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 18)
EndIf
WEnd
wie du siehst werden die keys in den gewünschten intervallen genutzt, und der killcountercheck alle 5 sekunden ausgeführt.
je nachdem, wieviele zustände du dir definierst, musst du selbstverständlich die sendxtend funktion immer anpassen.
TimerInit, TimerDiff 01/01/2010 - AutoIt - 7 Replies Hallo ich brauchte mal ne kleine hilfe. Ich bin dabei einen Angelbot zu schreiben und würde gern eine Zeitbegrenzung in die Angelrauszieh Funktion machen. Ich verstehe aber das mit TimerDiff und TimerInit nicht wirklich, wäre toll wenn jemand mir meine Funktion so einstellen könnte, dass nach 15sec die Scheife verlassen wird und es mir erklähren könnte.
Func _Angelraus()
Do
Sleep (50)
$fischblase = PixelSearch(336, 52, 400, 95, 0xFcF8Fc, 5)
Until Not @error
Sleep (...