Radio frage/problem

06/12/2010 12:35 Zagaris123#1
Hi Leute,

Ich bin grade dabei einen Potterbot für Mu schreiben und hab eine frage wegen den Radios

Wenn ich Radio 1 anklicke geht es aber radio2 und radio3 sendet auch nur den bgefehl von radio1

am besten selbst versuchen:

Code:
HotKeySet ("{Numpad1}","langsam")
HotKeySet ("{Numpad2}","mittel")
HotKeySet ("{Numpad3}","schnell")


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("PotterBot 1.1 by CloudKill", 391, 402, 182, 115)
$Group1 = GUICtrlCreateGroup("Einstellungen1", 8, 0, 185, 137)
$Button1 = GUICtrlCreateButton("Langsam (Numpad1)", 16, 16, 171, 17, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Mittel (Numpad2)", 16, 40, 171, 17, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Schnell (Numpad3)", 16, 64, 171, 17, $WS_GROUP)
$Input1 = GUICtrlCreateInput("RotePotts", 16, 88, 81, 21)
$Input2 = GUICtrlCreateInput("BlauePotts", 104, 88, 81, 21)
$Input3 = GUICtrlCreateInput("Metin2 Fenstername", 16, 112, 169, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Einstellungen2", 200, 0, 185, 137)
$Radio1 = GUICtrlCreateRadio("'Nur Rot", 216, 24, 161, 17)
$Radio2 = GUICtrlCreateRadio("Nur Blau", 216, 48, 161, 17)
$Radio3 = GUICtrlCreateRadio("Beides", 216, 72, 161, 17)
$Button4 = GUICtrlCreateButton("Hilfe", 216, 104, 75, 25, $WS_GROUP)
$Button5 = GUICtrlCreateButton("Schließen", 304, 104, 75, 25, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Pic1 = GUICtrlCreatePic("D:\Bilder\AutoIT Bild.jpg", 8, 144, 377, 249, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			langsam ()
		Case $Button2
			mittel ()
		Case $Button3
			schnell ()
		Case $Button4
			hilfe ()
		Case $Button5
			Exit
			
	EndSwitch
WEnd

Func langsam ()
	$in1=GUICtrlRead($input1)
	$in2=GUICtrlRead($input2)
	$in3=GUICtrlRead($input3)
	$rad1=GUICtrlRead($radio1)
	$rad2=GUICtrlRead($radio2)
	$rad3=GUICtrlRead($radio3)
	
	WinActivate ($in3)
	while 1
		If $rad1 Then
			send ($in1)
			sleep (1000)
		EndIf
	WEnd
	
	while 1
		If $rad2 Then
			send ($in2)
			sleep (1000)
		EndIf
	WEnd
	
	while 1
		If $rad3 Then
			send ($in3)
			sleep (995)
			send ($in2)
			sleep (5)
		EndIf
	WEnd
EndFunc

Func mittel ()
	$in1=GUICtrlRead($input1)
	$in2=GUICtrlRead($input2)
	$in3=GUICtrlRead($input3)
	
	WinActivate ($in3)
	
	while 1
		send ($in1)
		sleep (595)
		send ($in2)
		sleep (5)
	WEnd
EndFunc

Func schnell ()
	$in1=GUICtrlRead($input1)
	$in2=GUICtrlRead($input2)
	$in3=GUICtrlRead($input3)
	
	WinActivate ($in3)
	
	while 1
		send ($in1)
		sleep (95)
		send ($in2)
		sleep (5)
	WEnd
EndFunc
Wenn mir jemand helfen kann und den script umschreiben kann BITTE hier posten ich brauche einen potterbot für mich und ich will das mit den radios lernen--> also ich werde den bot nie veröffentlichen
06/13/2010 15:50 bassbanane#2
Natürlich bleibt er in der 1. While Schleife von Radio1 hängen und macht nichts, weil er nicht in die IF schleife geht weil das Argument dafür nicht erfüllt ist.
Außerdem ist es besser radio checkboxes mit
PHP Code:
if $radio $GUI_CHECKED Then
             
do something...
       endif 
zu überprüen.

Du solltest die while schleifen erst innerhalb der verschiedenen if schleifen starten, damit es auch wirklich funktioniert.
06/13/2010 15:59 huberhans#3
Quote:
Originally Posted by bassbanane View Post
Natürlich bleibt er in der 1. While Schleife von Radio1 hängen und macht nichts, weil er nicht in die IF schleife geht weil das Argument dafür nicht erfüllt ist.
Außerdem ist es besser radio checkboxes mit
PHP Code:
if $radio $GUI_CHECKED Then
             
do something...
       endif 
zu überprüen.

Du solltest die while schleifen erst innerhalb der verschiedenen if schleifen starten, damit es auch wirklich funktioniert.
Mehr als eine While-Schleife führt selten zum gewünschten Ergebnis...
06/13/2010 18:26 bassbanane#4
Dafür gibt es ja auch immer wieder exitloop :D
Aber das stimmt schon.
Ich mache wenn dann nur Do.. Until Loops und wenn while dann einie, die den großteil des codes umschließt.