Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 10:47

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

Advertisement



Frage Autoit 2 While&WEnd Schleifen paralel laufen lassen

Discussion on Frage Autoit 2 While&WEnd Schleifen paralel laufen lassen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Klickboy's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
Frage Autoit 2 While&WEnd Schleifen paralel laufen lassen

Hallo,
Ich lerne im moment autoit(Bot´s machen) und wolte fragen wie ich 2 while&WEnd schleifen in einer func paralel zueinander laufen lassen kann.
Also beide gleichzeitig
Sinn:
die erste schleife drückt die ganze zeit also so jede skunde
und die 2te so alle 30 minuten

so ungefär(soll heisen bei mir sieht´s ordentlicher aus) sieht es im mom bei mir aus:
$var1 = Inputbox ("" "" "" "")
$var2 = Inputbox ("" "" "" "")
bot()

func bot()
while
üwelche send ($var1)befehle sleep ect........(so jede sekunde)
wEnd
while
sleep (300000)
send ($var2)
wEnd
funcend

Pls help!!!!!!!
Klickboy is offline  
Old 04/29/2009, 15:33   #2
 
elite*gold: 0
Join Date: Aug 2006
Posts: 505
Received Thanks: 89
Eine Schleife, eine Zählvariable.

Die eine Schleife drückt jede Sekunde, also jeden Schleifendurchgang den Zähler um 1 erhöhen.
Dann am Anfang der Schleife gucken ob die Zählvariable == 1800 (30 Minuten) ist, wenn ja das ausführen was alle 30 Minuten passieren soll und Zählvariable wieder auf 0.

Falls du es noch genauer haben willst, kannst du auch mit Timestamps arbeiten.
kennyo is offline  
Old 04/29/2009, 19:20   #3
 
felixli93's Avatar
 
elite*gold: 0
Join Date: Aug 2008
Posts: 820
Received Thanks: 909
Quote:
Originally Posted by kennyo View Post
Eine Schleife, eine Zählvariable.

Die eine Schleife drückt jede Sekunde, also jeden Schleifendurchgang den Zähler um 1 erhöhen.
Dann am Anfang der Schleife gucken ob die Zählvariable == 1800 (30 Minuten) ist, wenn ja das ausführen was alle 30 Minuten passieren soll und Zählvariable wieder auf 0.

Falls du es noch genauer haben willst, kannst du auch mit Timestamps arbeiten.
Code:
While 1
$timer = TimerInit ()
While 1
If TimerDiff ($timer) > 30000 Then
Send (...)
ExitLoop
EndIf
Send (...)
WEnd
WEnd
müsste normal so klappen (vllt ist auch ein denkfehler drin, hab das ganze nicht getestet)

oder evtl. mit AdlibEnable:

Code:
AdlibEnable (_funktion2)

While 1
Send (...)
Wend

Func _funktion2 ()
Sleep (30000)
Send (...)
EndFunc
sollte auch gehen
felixli93 is offline  
Thanks
1 User
Old 04/30/2009, 14:55   #4
 
Klickboy's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
Vielen Liebn dank felixli93
Code:
While 1
$timer = TimerInit ()
While 1
If TimerDiff ($timer) > 30000 Then
Send (...)
ExitLoop
EndIf
Send (...)
WEnd
WEnd
funktioniert supa danke schön
Klickboy is offline  
Old 05/01/2009, 10:57   #5
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Es ist möglich das mehr oder weniger paralel laufen zulassen :

Man nehme 2 verschiedene AutoIT projekte schreibt in den einen das Zählen rein und in
den anderen den normalen Text rein . So jetzt können die 2 Projekte ja nicht aufeinander zugreifen und vondaher sind alle variablen sinnlos ......

Aber auch dafür gibt es eine Lösung man nehme eine Ini Datei zur hilfe :

Projekt mit sourcecode ist im Anhang (schau es dir an du wirst verstehen wie ich das meine ;-) )

Das programm zählt jede sec 1 auf die Variable drauf ( und nebenbei könnte man natürlich irgendetwas anderes zum machen rein tun ) ich denke , du wirst verstehen wie ich das meine ;-)
Auch wenn das Programm jetzt nicht wirklich 2 sachen ausführt ;-)
Attached Files
File Type: rar Paralel laufen.rar (537.3 KB, 48 views)
Shadow992 is offline  
Old 05/01/2009, 20:44   #6
 
felixli93's Avatar
 
elite*gold: 0
Join Date: Aug 2008
Posts: 820
Received Thanks: 909
Quote:
Originally Posted by Klickboy View Post
hab doch nochma ein problem
Code:
 
[COLOR="Blue"]If[/COLOR] [COLOR="Navy"]TimerDiff[/COLOR] [COLOR="Red"]([COLOR="DarkRed"]$timer[/COLOR])[/COLOR] [COLOR="Red"]>[/COLOR] [COLOR="Red"]([COLOR="DarkRed"]$var13[/COLOR])[/COLOR] [COLOR="Blue"]Then[/COLOR]
[COLOR="Blue"]Send[/COLOR] [COLOR="Red"]([COLOR="DarkRed"]$var12[/COLOR])[/COLOR]
fuktioniert nich
es fehlt ein EndIf
sonst musst du das "Send (...)" direkt hinter Then (also in eine zeile) schreiben, dann brauchst du kein EndIf

wenn es daran nicht liegt, liegt es vllt daran, dass $var13 eine falsche zahl ist

um daten aus einer inputbox auszulesen brauchst du GuiCtrlRead ($var13)
GuiCtrlRead gibt dann den wert zurück, der in der inputbox $var13 steht
$var13 allein gibt nur eine GUI Id zurück, mit der du nichts anfangen kannst
felixli93 is offline  
Old 05/01/2009, 23:41   #7
 
Atheuz's Avatar
 
elite*gold: 81
Join Date: Jul 2005
Posts: 1,921
Received Thanks: 2,239
Atheuz is offline  
Old 01/23/2011, 23:45   #8
 
Klickboy's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 180
Received Thanks: 39
heaij

Hallo Zusammen ;D,
Ich habe nochmal das gleiche Problem wie vorher.
Das letze mal habe ich das problem geloest indem ich 2 scripts hab laufen lassen.

dieses Mal ist dies Leider nicht Moeglich.
Zu euren Bisherigen Loesungsvorschlaegen:
Soetwas wie AdlibEnable giebt es anscheinend nicht.(in der Hilfe Datei fand ich nichts ähnliches und Autoit Erkennt den Befehl auch nicht an)
Den Timer kann ich auch nicht benutzen da in diesem Script Nicht gewartet werden soll
(okey doch aber nur 0,75 sekunden in denen wirklich nichts geschehen SOLL)

Ich versuche im moment ein Pacman aehnliches Spiel zu Kreieren.
In der Einen Schleife Bewegt sich ein Gegner
In der Anderen Ein Andere
Die Schritte der beiden gegner sollen gleichzeitig ausgefürt werden.
Es waere kein problem wenn die beiden gegner gleich viele schritte machen wuedern.Dies ist aber leider nicht der fall.

Ich zeig euch mal die beiden schleifen die paralel zueinander laufen sollen.

Ich denke das ich mich in mindestens einer sache Irre, ich komm nur nich drauf was^^.

Code:
func enemy1()
while 1
sleep(750)
guictrlsetimage($enemy1,"texturen/links_enemy.bmp")
$var6=$var6-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var6=$var6-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var6=$var6-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

guictrlsetimage($enemy1,"texturen/runter_enemy.bmp")
$var8=$var8+50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

guictrlsetimage($enemy1,"texturen/links_enemy.bmp")
$var6=$var6-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var6=$var6-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

guictrlsetimage($enemy1,"texturen/hoch_enemy.bmp")
$var8=$var8-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var8=$var8-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var8=$var8-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

guictrlsetimage($enemy1,"texturen/runter_enemy.bmp")
$var8=$var8+50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var8=$var8+50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var8=$var8+50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

guictrlsetimage($enemy1,"texturen/rechts_enemy.bmp")
$var6=$var6+50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var6=$var6+50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

guictrlsetimage($enemy1,"texturen/hoch_enemy.bmp")
$var8=$var8-50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

guictrlsetimage($enemy1,"texturen/rechts_enemy.bmp")
$var6=$var6+50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var6=$var6+50
guictrlsetpos($enemy1,$var6,$var8)
sleep(750)

$var6=$var6+50
guictrlsetpos($enemy1,$var6,$var8)

wend
EndFunc
Code:
func enemy2()
while 1
sleep(750)
guictrlsetimage($enemy2,"texturen/links_enemy.bmp")
$var9=$var9-50
guictrlsetpos($enemy2,$var9,$var10)
sleep(750)

$var9=$var9-50
guictrlsetpos($enemy2,$var9,$var10)
sleep(750)

guictrlsetimage($enemy2,"texturen/runter_enemy.bmp")
$var10=$var10+50
guictrlsetpos($enemy2,$var9,$var10)
sleep(750)

$var10=$var10+50
guictrlsetpos($enemy2,$var9,$var10)
sleep(750)

guictrlsetimage($enemy2,"texturen/rechts_enemy.bmp")
$var9=$var9+50
guictrlsetpos($enemy2,$var9,$var10)
sleep(750)

$var9=$var9+50
guictrlsetpos($enemy2,$var9,$var10)
sleep(750)

guictrlsetimage($enemy2,"texturen/hoch_enemy.bmp")
$var10=$var10-50
guictrlsetpos($enemy2,$var9,$var10)
sleep(750)

$var10=$var10-50
guictrlsetpos($enemy2,$var9,$var10)
wend
EndFunc
EDIT: Mir is grade was eingefallen.
In der einen schleife wird die position 18 mal verändert bis das bild wieder an der ausgangsposition ist und die schleife erneut beginnt.
In der anderen 8 mal.
Ich koennete versuchen die beiden schleifen zu verbinden ,aber die beiden oefter in eine schleife stecken.
Das heist: Der komplette weg wird oefter abgelaufen bis die Schleife erneut beginnt.
Im Prinzip so wie frueher in der Grundschule mit den Bruechen auf einen gemeinsamen Nenner Bringen.

ALso koennte ich die 18ner schleife 4x da rein packen.(18x4=72)
und die 8ter schleife 9 mal.(8x9=72)
Dann lass ich die Befehle Abwechselnt Erfolgen und die Schleife endet punkt gleich.

1.Problem Das waere ein Riesenaufwand.
2.Problem Es wird wesentlich komplizierter wenn ich noch einen Dritten oder 4ten gegner dazupacke.
Klickboy is offline  
Reply


Similar Threads Similar Threads
[AutoIt]MyFreeFarm bot hidden laufen lassen?!
11/15/2010 - AutoIt - 18 Replies
Hey! Ein kumpel von mir spielt aus "leidenschafft" MyFreeFarm ... da er aber kein bock hat immer sein Feld anzupflanzen etc sollte ich einen bot für ihn schreiben... So weit so gut :) Login etc klappt alles... Jedoch ist es ein MouseClick("left","","&qu ot;)... bot... :o und sleep() bot =D Er soll wenn möglich hidden laufen also minimiert, und wenn möglich auch mit mehreren fenstern gehen also zB dass er 2 - 3 mal MyFreeFarm offen haben kann und in allen fenstern den bot laufen lassen...
[Frage]NPC Weit Laufen lassen ?
05/23/2010 - Metin2 Private Server - 2 Replies
Hallo habe mal eine Frage möchte einer meiner NPC´s weit laufen lassen so das man auch mal suchen kann habe sowas schonmal bei NewWold2 gesehen und schaffe es einfach nicht meine npc´s laufen immer nur ein paar meter hat da jemand einen tipp ?
AutoIt - Frage/Problem bei den Schleifen!!
04/05/2010 - AutoIt - 6 Replies
Nabend, ich hätte da mal eine kleine Frage zum unterbrechen von Endlosschleifen. Und nein, damit meine ich nicht einfach den Befehl "Exitloop"! Also, ich werde mal anhand eines kleinen Test-Scripts versuchen, meine Frage zu erklären: #include <GUIConstants.au3> #Region ### START Koda GUI section ### Form=
[Frage]Metin2 Pserver via Root laufen lassen?
03/07/2010 - Metin2 Private Server - 8 Replies
Hallo Leute Also ich mach es kurtz. Wie lasse ich den Pserver auf den root laufen, folglich sollte ich kein Hamachi brauchen, und dann überral wo die Hamachi IP hin "müsste" die root IP reingeschrieben, doch es geht leider nicht. Was muss man dort nochmachenm,
Schleifen Paralel Laufen lassen (AutoIt)
06/06/2009 - AutoIt - 8 Replies
hi wollte mal fragen ob man mit Autoit 2 oder mher schleifen paralel laufen lassen kann wenn aj wie???



All times are GMT +1. The time now is 10:50.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.