Gui's + While's?

12/26/2011 02:31 Project_X#1
Huhu liebe user :)

Meine frage ist, wie ich es anstelle das wenn ich "Checkbox1" angeklickt habe eine schleife startet, & wenn ich Checkbox2 anklickte die schleife noch hinzu kommt.

Es soll also irgendwann mal ein Bot werden.

so sieht mein's momentan aus:

PHP Code:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Skill Checks"168199193125)
GUISetFont(88000"MS Sans Serif")
$Checkbox1 GUICtrlCreateCheckbox("1. Skill"088925)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Checkbox2 GUICtrlCreateCheckbox("2. Skill"04011317)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Checkbox3 GUICtrlCreateCheckbox("3. Skill"0728117)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Checkbox4 GUICtrlCreateCheckbox("4. Skill"01048917)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Checkbox5 GUICtrlCreateCheckbox("EXP- Samen"013613717)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Checkbox6 GUICtrlCreateCheckbox("EXP- Scrolls"016814525)
GUICtrlSetFont(-1148000"MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
            If 
GUICtrlRead ($checkbox1)  Then
            
While 2
            Send 
("{1}")
            
Sleep (2000)
            
WEnd

    
EndIf
    EndSwitch
WEnd 
Ps: wusste nicht wie man's einbettet oder sonstiges :(. & bin noch ein anfänger was autoit betrifft.
12/26/2011 03:29 BlackHybrid#2
Es kann immer nur eine While auf einmal laufen. Du könntest dann immer überprüfen, ob der Haken gesetzt wurde.
12/26/2011 10:46 amnesi#3
PHP Code:
$checkbox=True
$checkbox2
=True


while sleep(100)
if 
$checkbox=true then 
_Func 
()
while 
sleep(100)
if 
$checkbox2=true then 
_Func 
()
_Func2 ()
Else
ExitLoop
endif
wend
endif
wend

Func _Func 
()
ConsoleWrite("1")
EndFunc

Func _Func2 
()
ConsoleWrite("2")
EndFunc 

So in etwa^^
Habs nur eben kurz geschrieben keine Ahnung ob es funzt.
12/26/2011 11:27 Project_X#4
Quote:
Originally Posted by amnesi View Post
PHP Code:
$checkbox=True
$checkbox2
=True


while sleep(100)
if 
$checkbox=true then 
_Func 
()
while 
sleep(100)
if 
$checkbox2=true then 
_Func 
()
_Func2 ()
Else
ExitLoop
endif
wend
endif
wend

Func _Func 
()
ConsoleWrite("1")
EndFunc

Func _Func2 
()
ConsoleWrite("2")
EndFunc 

So in etwa^^
Habs nur eben kurz geschrieben keine Ahnung ob es funzt.
Ok wenn ich's einzelnd mache geht's also wenn ich statt: Consolewrite, send nehme, funktioniert es sobald ich's aber in meinem richtigen programm einfüge, also in den GUI Script, sagt er mir ständig Missng endif in zeile ...
ist aber ein end if drinne, ?!. verstehe nicht ganz wieso

Hoffe ich konnte mich einigermaßen richtig ausdrücken xd
12/26/2011 12:41 Imaginär#5
Du musst schauen ob du für jedes "if" auch ein "EndIf" drinne' hast.
12/26/2011 13:01 Project_X#6
ah danke :).

Allerdings tut sich gerade eine Neue frage auf.

Habe jetzt 2 programme geschrieben.
Das eine ist jetzt für die Skill's in einem Online-Spiel

Das andere soll für die Item's sein :).

Nur, wv Millisekunden muss ich eintragen für 10 Minuten und 1x Stunde?.

normal sollten doch 10 minuten 600.000 Millisekunden haben, oder?.

nur irgendwie, kommt's definitiv nicht nach 10 minuten. Das item wird c.a nach 1-2 Minuten ausgeführt.

Kann mir darauf einer, eine antwort geben :o?
12/26/2011 13:20 lolkop#7
eine sekunde hat 1000ms... eine minute 60sekunden daraus folgt wohl, das eine minute 1000*60 ms hat... genau so kannst du das auch in deinem script schreiben.

davon abgesehen wurden auch hier wiederbeispiele mit vielen schleifen gepostet. du solltest dich auf deine main schleife beschränken.
12/26/2011 21:27 Project_X#8
Quote:
Originally Posted by lolkop View Post
eine sekunde hat 1000ms... eine minute 60sekunden daraus folgt wohl, das eine minute 1000*60 ms hat... genau so kannst du das auch in deinem script schreiben.

davon abgesehen wurden auch hier wiederbeispiele mit vielen schleifen gepostet. du solltest dich auf deine main schleife beschränken.
Vielen dank :) hat gut geholfen. & hab's auch fertig bekommen :)

kann geclosed werden :)
12/26/2011 22:02 lolkop#9
ich hoffe mal du bist von den sleeps und multiplen while schleifen abgekommen...

da du es gelöst hast, hier nochmal ein beispiel wie man es schön lösen könnte:
Code:
Dim $task[6][3], $gui = GUICreate('spammer', 120, 20*UBound($task)+10, Default, Default, 0x10C80000, 8)
For $i=0 To UBound($task)-1
	$task[$i][1]=GUICtrlCreateCheckbox($i+1&'. Skill', 10, 5+$i*20, 50, 20)
	$task[$i][2]=GUICtrlCreateInput(1000, 65, 5+$i*20, 50, 20, 1)
Next

While GUIGetMsg()<>-3
	For $i=0 To UBound($task)-1
		If BitAND(GUICtrlRead($task[$i][1]),1) And TimerDiff($task[$i][0])>=GUICtrlRead($task[$i][2]) And Not WinActive($gui) Then
			Send($i+1)
			$task[$i][0]=TimerInit()
		EndIf
	Next
WEnd
kannst ja mal vergleichen ob deins da ähnlich aufgebaut ist =)
12/27/2011 03:23 iK3ksii#10
Schreib einfach davor :
Code:
 Case $Checkbox1
    If ...
12/27/2011 09:04 lolkop#11
Quote:
Originally Posted by iK3ksii View Post
Schreib einfach davor :
Code:
 Case $Checkbox1
    If ...
was soll denn dieser sinnlose code-fetzen bringen? o0

case macht allgemein nur sinn, wenn vorher switch verwendet wird, was in deinem beispiel nur sinn macht, wenn switch auf guigetmsg angewendet wird.

in diesem falle soll definitiv ständig gesendet werden, was eine abfrage, ob die checkbox gewählt wird, total sinnlos macht. die einzige halbwegs sinnvolle nutzung einer switch abfrage dieser art, wäre, wenn man zustände für jedes einzelne event über die checkboxabfrage definiert.

aber auch in diesem falle wäre ein if hinter den einzelnen case fällen absolut nutzlos....
12/27/2011 18:45 Project_X#12
Quote:
Originally Posted by lolkop View Post
was soll denn dieser sinnlose code-fetzen bringen? o0

case macht allgemein nur sinn, wenn vorher switch verwendet wird, was in deinem beispiel nur sinn macht, wenn switch auf guigetmsg angewendet wird.

in diesem falle soll definitiv ständig gesendet werden, was eine abfrage, ob die checkbox gewählt wird, total sinnlos macht. die einzige halbwegs sinnvolle nutzung einer switch abfrage dieser art, wäre, wenn man zustände für jedes einzelne event über die checkboxabfrage definiert.

aber auch in diesem falle wäre ein if hinter den einzelnen case fällen absolut nutzlos....
Jap ich hab's jetzt bisschen anders gemacht,

habe Ein Programm geschrieben, was die einzelnen programme starten lässt also kurzer einblick:

PHP Code:
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("****"259450193125)
$Button1 GUICtrlCreateButton("Skills F1-F&6"0824981)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Button2 GUICtrlCreateButton("Exp-Samen"09624981)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Button3 GUICtrlCreateButton("Exp-Scrolls"018424981)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Button4 GUICtrlCreateButton("Lilien"027224981)
GUICtrlSetFont(-1148000"MS Sans Serif")
$Button5 GUICtrlCreateButton("HP-Check's"036024981)
GUICtrlSetFont(-1148000"MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            Run 
("C:\*****\*****\Bypass-Ornder\Skillbot F1-F2.v1.exe")

        Case 
$Button2
            Run 
("C:\******\*****\Bypass-Ornder\Exp-Samen.exe")

        Case 
$Button3
            Run 
("C:\*****\*****\Bypass-Ornder\Exp-Scrolls")

        Case 
$Button4
            Run 
("C:\*****\******\Bypass-Ornder\Lilien")

    EndSwitch
WEnd 
Das ist zwar nicht die beste lösung gewesen, aber immerhin eine lösung..

Musste allerdings noch den Bypass dazu schreiben :).
Aber zum Glück gibt's in diesem Forum supper tipp's & so kann man sich alles zusammen suchen :).
12/27/2011 23:28 lolkop#13
sowas baut man doch in ein script.

ein seperates programm für jede operation starten, ist die denkbar schlechteste methode um das problem zu lösen :s
12/28/2011 00:25 Project_X#14
Quote:
Originally Posted by lolkop View Post
sowas baut man doch in ein script.

ein seperates programm für jede operation starten, ist die denkbar schlechteste methode um das problem zu lösen :s
Ja ich merk's xd

für das Spiel wozu ich's benutze, fliege ich sofort raus. xd

ok, hast du dann irgendeinen guten einfall noch? :(
weiß nicht mehr weiter :(
12/28/2011 00:52 lolkop#15
Du hast doch deine eine hauptschleife, in welcher du auf guiaktionen checkst. Dort baust du einfach über zustandsabfragen die jeweiligen Aktionen mit ein.