Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 04:05

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Funktion an und aus schalten

Discussion on Funktion an und aus schalten within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2009
Posts: 16
Received Thanks: 1
Funktion an und aus schalten

Nabend

Ich habe ein kleines Problem mit dem abschalten meiner Autolootfunktion.
Nach 3 Stunden des Googelns und nahezu allen Arten von Schleifen muss ich mich leider geschlagen geben

Hier mal der Code für die eigentlich Funktion:
PHP Code:
;-VARIABLEN FESTLEGEN
Global $autoloot 0

;-FUNKTIONEN FESTLEGEN
;----Autoloot an----
Func autolootan()
MsgBox (48"An""Autoloot ist eingeschaltet!"1)
$autoloot 1
While $autoloot 1
    Send 
("{^}")
WEnd
EndFunc 
Und hier der Teil in dem ich beabsichtige das ganze durch zwei Buttons (An und Aus) aktivieren bzw. deaktivieren zu können :
PHP Code:
While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
        
Exit

        ;- 
Autolootfunktion Anfang
        
Case $an
        autolootan
()


        Case 
$aus
        $autoloot 
0
        MsgBox 
(48"Aus""Autoloot ist ausgeschaltet!"1)
    ;- 
Autolootfunktion Ende

EndSwitch
WEnd 
Solange ich die Autolootfunktion nicht einschalte macht der $aus-button was er soll, ebenso das x zum schließen des Fensters.
Aber sobald die Lootfunktion läuft scheint sie alles andere zu blockieren

Wäre echt Klasse wenn mir jemand zumindest einen Denkanstoß geben könnte.
Vielen Dank im vorraus!
amselalex is offline  
Old 07/18/2009, 22:46   #2
 
felixli93's Avatar
 
elite*gold: 0
Join Date: Aug 2008
Posts: 820
Received Thanks: 909
das liegt daran, dass das script dann in der while-schleife in der funktion "autolootan" die ganze zeit läuft und somit nicht mehr überprüft wird, ob der button gedrückt wirt.

ich weiß zwar, wie man es machen könnte, aber da du nur einen denkanstoß willst und es besser ist, wenn du es selber lernst... probier selber ein bisschen rum!
felixli93 is offline  
Thanks
1 User
Old 07/18/2009, 23:25   #3
 
elite*gold: 0
Join Date: Feb 2009
Posts: 16
Received Thanks: 1
Ich zweifel keineswegs an der richtigkeit deiner Aussage aber es erscheint mir einfach unlogisch.
Wie kann die Schleife immer weiterlaufen wenn doch durch den &autolootaus-button die Vorraussetzung zum starten genommen wird o.o

Das die ganze Funktion durch eine While-Schleife gesteuert wird ist aber schon korrekt, oder?
Hab´s einfach mal mit einer Do..Until-Schleife versucht aber die ändert auch nichts.

Naja, ich Spiel noch ein bisschen rum
amselalex is offline  
Old 07/18/2009, 23:28   #4
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
bitte

Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 260, 115, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 30, 32, 75, 25, 0)
$Button2 = GUICtrlCreateButton("Button2", 130, 32, 75, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

go()

func go()
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
        Exit
;- Autolootfunktion Anfang
        Case $Button1
        autolootan()
    ;- Autolootfunktion Ende
EndSwitch
WEnd  
EndFunc

Func autolootan()
MsgBox (48, "An", "Autoloot ist eingeschaltet!", 1)
While 1
	$nMsg = GUIGetMsg()
	if $nMsg = $Button2 then 
		MsgBox (48, "Aus", "Autoloot ist ausgeschaltet!", 1)
		go()
	ElseIf $nMsg = $GUI_EVENT_CLOSE Then
		exit
	EndIf
    Send ("{^}")
WEnd
EndFunc
kknb is offline  
Thanks
1 User
Old 07/18/2009, 23:43   #5
 
elite*gold: 0
Join Date: Feb 2009
Posts: 16
Received Thanks: 1
Quote:
While 1
$nMsg = GUIGetMsg()
if $nMsg = $Button2 then
MsgBox (48, "Aus", "Autoloot ist ausgeschaltet!", 1)
go()
EndIf
Ich wär niemals auf die Idee gekommen das per $nMsg zu machen
Danke vielmals.

Also bietet mir die $nMsg alles was ich brauche...es ist garnicht nötig irgendwas mit 0 und 1 zu fabrizieren

Das werd ich wohl nie wieder vergessen xD

Thx
amselalex is offline  
Old 07/18/2009, 23:45   #6
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
^joa hab noch das "x" oben eingefügt.

wenns die geholfen hat einfach thx button drücken
kknb is offline  
Old 07/19/2009, 10:05   #7
 
felixli93's Avatar
 
elite*gold: 0
Join Date: Aug 2008
Posts: 820
Received Thanks: 909
Quote:
Originally Posted by amselalex View Post
Ich zweifel keineswegs an der richtigkeit deiner Aussage aber es erscheint mir einfach unlogisch.
Wie kann die Schleife immer weiterlaufen wenn doch durch den &autolootaus-button die Vorraussetzung zum starten genommen wird o.o

Das die ganze Funktion durch eine While-Schleife gesteuert wird ist aber schon korrekt, oder?
Hab´s einfach mal mit einer Do..Until-Schleife versucht aber die ändert auch nichts.

Naja, ich Spiel noch ein bisschen rum
du kannst niemals 2 while-schleifen gleichzeitig laufen lassen...

damit überprüft wird, ob ein button im gui gedrückt wird, muss der bot gerade in der schleife hängen, wo $nMsg überprüft wird.
klickst du jetzt aber den button für die "einschalt-funktion", dann ist der bot absofort in der schleife innerhalt der funktion verfangen und überprüft somit nicht mehr, ob irgendein button im gui gedrückt wird.
das war dein problem.
felixli93 is offline  
Old 07/19/2009, 10:53   #8
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Viele Programmiersprachen arbeiten sich von "rechts oben" Zeile für Zeile nach "links unten" durch den Code. Mit Anweisungen (If...Then) oder Schleifen (Do...Until) kannst du "den Weg" beeinflussen. Ich stell mir das immer wie ein Strom der fließt vor oder wie ein Bit das sich da durcharbeitet...

Wenn du also ne While schleife hast deren bedingung immer erfüllt ist (1) dann wird das Programm auch niemals diese schleife verlassen.
| Moep | is offline  
Reply


Similar Threads Similar Threads
[How to]Den Port 3306 Richtig Frei schalten
03/29/2011 - Metin2 PServer Guides & Strategies - 20 Replies
Hallo, hier zeig ich euch wie ihr den Port 3306 Richtig Frei schaltet und andere auf eure db zugreifen lassen könnt. Als erstes braucht ihr Portmap is klar :) Dann klickt ihr das : http://img685.imageshack.us/img685/3865/das1.png dann öffnet sich das hier http://img208.imageshack.us/img208/4548/das2.png Ihr macht das so : http://img686.imageshack.us/img686/7686/das3.png
Proxy Aus schalten
08/04/2010 - Metin2 Private Server - 10 Replies
Hallo Ich wollte euch fragen wie ich über Putty den Proxy aus schalten kann mit welchem Code Proxy dafür das die GM´s und EM´s rechte haben Brauche nur den Code wie ich den aus mache
Hamachi Pots frei schalten
10/22/2009 - Metin2 PServer Guides & Strategies - 6 Replies
hi also ich probiere die ganze zeit vergeblich meine freundin auf meinem sever spielen zu lassen bekomme es aber nicht hin ...der acc wo ichgemact habe auf der db ist freigeschaltet und ich kann mich einloggen mit diesem account nur klappt es nicht bei meiner freunden nun wollte ic fragen ob mir jemand über TV vll weiterhelfen kann und mir zeigt wie mann die ports frei schaltet
Wie alle maps frei Schalten mit PortMap
10/05/2009 - Metin2 Private Server - 11 Replies
Hi ich habe echt nx gefunden wollte aus lw ma dt runs machen etc aber nur auf map1 und map2 rum gammeln is auf dauer ja auch nicht toll spiele das imo nur alleine kann mir einer sagen wie das geht PortMap hab ich
Mit GUI Bot AN/AUS schalten
07/01/2009 - AutoIt - 12 Replies
Hallo, ich hab folgendes Proplem: Ich möchte gerne für ein Metin ein Aufhebbot schreiben. Hab versucht mit Hilfe von einem GUI das Senden der Taste "y" AN/AUS bzw auf Pause zu schalten, damit man noch ganz normal chatten kann. Ist wohl schiefgegangen. Er schaltet es nicht an und aus. Bitte um Hilfe. #include <GUIConstantsEx.au3> GUICreate("AufhebBot", 400, 100) GUICtrlCreateLabel("Wilkommen im Aufhebbot", 30, 10) $AnButton = GUICtrlCreateButton("AN", 70, 50, 60) $PauseButton =...



All times are GMT +2. The time now is 04:05.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.