Endlosschleife stoppen?

03/10/2011 21:04 Toasty-man#1
Hallo Leute Ich wollte mal für ein spiel so einen klick bot machen natürlich mit autoit ;) Also wenn man auf den einen button klickt soll die endlosschleife losgehen nach 5000 milisekunden wird space gedrückt dann wenn man auf einen andern button klickt soll die endlos schleife stoppen nur ich weiß nicht wie ich das hinbekommen soll ... Dann gibts da noch 2 andere button aber die sind unwichtig die hab ich hinbekommen
Könntet ihr mir da helfen?? :confused: wäre voll nett :D
Danke Im Voraus!
Lg Toasty-man
Und hier das Script damit ihr mir besser helfen könnt :

PHP Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("..."46596189123)
$Button1 GUICtrlCreateButton("Angreifen"8811581$WS_GROUP)
$Button2 GUICtrlCreateButton("Aufhören Anzugreifen"120811581$WS_GROUP)
$Button3 GUICtrlCreateButton("Hinsetzen/Aufstehen"232811581$WS_GROUP)
$Button4 GUICtrlCreateButton("Sachen Aufheben"344811581$WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            
While 1
                Send
("{Space}")
                
Sleep(5000)
            
WEnd
            
Exit
        Case 
$Button2
                                       
Hier soll dann die func oder was weiß ich stehen um die endlosschleife zu stoppen
                    
Case $Button3
            Send
("{C}")
        Case 
$Button4
            Send
("{X}")

    EndSwitch
WEnd 
03/10/2011 21:15 SCORNI#2
Mit deinem weg hab ich auf die schnelle keine Lösung gefunden. Jedoch habe ich eine Lösung mit Adlibregister und Adlibunregister gefunden. Wenn Button1 Gedrückt wird, wird alle 5000ms der Befehl space ausgeführt. Bei druck auf Button2 wird mit adlibunregister das ständige wiederholen abgebrochen.


PHP Code:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("..."46596189123)
$Button1 GUICtrlCreateButton("Angreifen"8811581$WS_GROUP)
$Button2 GUICtrlCreateButton("Aufhören Anzugreifen"120811581$WS_GROUP)
$Button3 GUICtrlCreateButton("Hinsetzen/Aufstehen"232811581$WS_GROUP)
$Button4 GUICtrlCreateButton("Sachen Aufheben"344811581$WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
        
        AdlibRegister 
("space","5000")
               
    
        Case 
$Button2
                                       AdlibUnRegister 
("space")
                    Case 
$Button3
            Send
("{C}")
        Case 
$Button4
            Send
("{X}")

    EndSwitch
WEnd  

func space
()
    
Send("{space}")
EndFunc 
03/10/2011 21:28 Toasty-man#3
hm ich bin soo froh das es solche wie dich gibt die so schnell eine antwort parat haben O.o aufjedenfall wrd ich es testen aber nicht jetzt pc is besetz werde es morgen testen ! aber auch editieren obs klappt oder nicht sieht aber viel versprechend aus :D edit : es klappt !! ich musste es einfach heut ausprobiern und es klappt danke danke danke :D
03/11/2011 17:46 derpo#4
Habe ich zufälligerweise beim Eingeben von Exit gefunden : ExitLoop
03/11/2011 21:52 SCORNI#5
Quote:
Originally Posted by derpo View Post
Habe ich zufälligerweise beim Eingeben von Exit gefunden : ExitLoop
und weiter? Das exitloop ist nicht so einfach einzubauen wie die adlibregister und unregister
03/11/2011 22:06 derpo#6
Kein Wunder, Toasty-Man meint das auch anders -.-
Eine Alternative währe TimerInit und TimerDiff, ist aber umständlicher.
Hier mal ein Beispiel :
PHP Code:
$timer TimerInit()
While 
1
    
If TimerDiff($timer) >= 5000 Then
        
;Tu das
        $timer 
TimerInit()
    EndIf
WEnd 
03/12/2011 00:56 PenGuin :O#7
Bitte Forensuche benutzen, diese Frage hab ich schon öfters beantwortet, sogar mit fertigen Sources.
Ich benutze WM_COMMAND ;)