Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 14:37

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

Advertisement



Wie Skript warten lassen?

Discussion on Wie Skript warten lassen? within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Wie Skript warten lassen?

So, hab ein kleines Problem. Ich bin wieder mal dabei einen Bot zu schreiben, der soll jetzt aber professioneller werden als die letzten. Ich will, dass der Bot die Tasten sendet und dazwischen wartet. Sleep pausiert das ganze Skript und Timer werden mit If abgechecked. Ich sehe keine Möglichkeit zu warten ohne das ganze Skript zu pausieren... ich hoffe es findet sich eine Möglichkeit=)
FizzeBu is offline  
Thanks
1 User
Old 11/01/2010, 12:31   #2
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
einfach erstmal eine timervariable initialisieren (autoit setzt sie automatisch 1).
Code:
Dim $timer
dann in deiner hauptschleife einfach immer abfragen, ob die timerlaufzeit größer als x ist. wenn ja dann führe deine aktion aus, und setzte die $timer variable auf die aktuelle pc laufzeit.
Code:
While 1
    [...]
    If TimerDiff($timer) > x Then
        ; aktionen
        $timer = TimerInit()
    Endif
WEnd
lolkop is offline  
Thanks
1 User
Old 11/01/2010, 12:44   #3
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Neinneinnein, du hast mich falsch verstanden, ich weiß wie Timer funktionieren, ich will aber keinen benutzen, weil man sie mit If abfragen muss, und If pausiert auch das ganze Skript. Aber danke für die schnelle Antwort=)
FizzeBu is offline  
Old 11/01/2010, 12:55   #4
 
V8II's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 475
Received Thanks: 130
Hm!?
Meinst du das ein teil des scripts mit dem timer abgefragt werden soll und ein anderer Teil normal weiter lauft auch wenn der timer noch nicht ausgelaufen ist !? Sorry ich verstehe nicht was du meinst.
V8II is offline  
Old 11/01/2010, 13:18   #5
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
if blockiert garnichts. nur sleep, wait und schleifen befehle können das script blockieren
lolkop is offline  
Old 11/01/2010, 13:19   #6
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Das Skript soll eine Aktion ausführen, ohne andere Aktionen des Skripts zu behindern, darum will ich eine Möglichkeit zu eine Zeit zu warten, ohne das ganze Skript zu pausieren.

If blockiert nicht die ganze Zeit wie Sleep, aber If blockiert solange bis es geguckt hat ob die Bedingung erfüllt ist. Wenn ich jetzt mit einer Whileschleife abfrafe, ob die Bedingung erfüllt wurde, blockiert es das SKript auch.
FizzeBu is offline  
Old 11/01/2010, 13:27   #7
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by FizzeBu View Post
Das Skript soll eine Aktion ausführen, ohne andere Aktionen des Skripts zu behindern, darum will ich eine Möglichkeit zu eine Zeit zu warten, ohne das ganze Skript zu pausieren.

If blockiert nicht die ganze Zeit wie Sleep, aber If blockiert solange bis es geguckt hat ob die Bedingung erfüllt ist. Wenn ich jetzt mit einer Whileschleife abfrafe, ob die Bedingung erfüllt wurde, blockiert es das SKript auch.
Das was du meinst nennt sich Multithreading und das ist atm in AutoIt nicht möglich. Dafür müsstest du schon eine andere Sprache lernen.

Btw. Send-Bots sind nie professionel.
Shadow992 is offline  
Old 11/01/2010, 13:32   #8
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
-.- du fragst einfach alles in deiner hauptschleife ab...

wenn du eine extra schleife für die abfrage machst, ist das das selbe wie sleep...

Edit:
Quote:
Originally Posted by Shadow992 View Post
Das was du meinst nennt sich Multithreading und das ist atm in AutoIt nicht möglich. Dafür müsstest du schon eine andere Sprache lernen.

Btw. Send-Bots sind nie professionel.
sry aber das ist nun wirklich blödsinn...

Edit2:

hier vielleicht mal ein kleines sehr einfaches beispiel:
Code:
Dim $timer[5] ; 5 timer initialisieren
Dim $wait_time[5] = [1000,2000,5000,10000,20000] ; 5 Intervallzeiten Definieren
;funktion1 -> 1s, funktion2 -> 2s, funktion3 -> 5s, funktion4 -> 10s, funktion5 -> 20s

;schleife laufen lassen, in der alle funktionen parallel getimt laufen
While 1
	For $i=0 To 4
		If TimerDiff($timer[$i]) > $wait_time[$i] Then
			ConsoleWrite("funktion"&$i+1&" wird nun aufgerufen"&@CRLF)
			$timer[$i] = TimerInit()
		EndIf
	Next
	Sleep(5) ; dem cpu eine rastzeit von 5ms gönnen :P
WEnd
hier werden wie man leicht sieht, 5 funktionen in 5 verschiedenen intervallen aufgerufen...
keine funktion blockiert hierbei eine andere.
lolkop is offline  
Old 11/01/2010, 15:51   #9
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Quote:
Originally Posted by Shadow992 View Post
Btw. Send-Bots sind nie professionel.
Hmm, welche Bots sind den professionell? Pixelbots oder was? Ich versuche es so gut wie möglich zu machen, inklusive Pointer, was ir total auf den SAck geht, weil ich noch nicht richtig eingearbeitet bin-.-

Quote:
Originally Posted by lolkop View Post
-.- du fragst einfach alles in deiner hauptschleife ab...
GUI...
FizzeBu is offline  
Old 11/01/2010, 16:30   #10
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by lolkop View Post
-.- du fragst einfach alles in deiner hauptschleife ab...
[...]
hier werden wie man leicht sieht, 5 funktionen in 5 verschiedenen intervallen aufgerufen...
keine funktion blockiert hierbei eine andere.
Quote:
Originally Posted by FizzeBu View Post
Neinneinnein, du hast mich falsch verstanden, ich weiß wie Timer funktionieren, ich will aber keinen benutzen, weil man sie mit If abfragen muss, und If pausiert auch das ganze Skript. Aber danke für die schnelle Antwort=)
Muss ich noch dazu schreiben, dass er keine Timer benutzen will?
Außerdem was ist wenn die 2 Funktionen durchgehend aufgerufen werden müssen, ohne die anderen dabei zu "blockieren"?
Vielleicht ist die eine Funktion eine komplexe und große Berechnung, die 2. beinhaltet auch ein paar Berechnungen und die letzte Funktion ist dann ein GuiGetMessage(...).
Wie bitte willst du das mit Timern lösen, ohne dass sich die 3 Funktionen gegenseitig "blockieren"?

Ich lasse mich natürlich gerne berichtigen, aber Aussagen von Leuten als totaler Blödsinn darzustellen, obwohl diese zumindest unter bestimmten Bedingungen wahr/möglich sind, ist echt nicht die feine englische Art.

Quote:
Originally Posted by FizzeBu View Post
Hmm, welche Bots sind den professionell? Pixelbots oder was? Ich versuche es so gut wie möglich zu machen, inklusive Pointer, was ir total auf den SAck geht, weil ich noch nicht richtig eingearbeitet bin-.-
Packetbots und Memorybased Bots sind professioneller, du solltest aber unbedingt, falls möglich, anstatt mit Send mit ControlSend arbeiten.
Das sollte jetzt aber keine Diskussion darüber werden was professionel is und was nicht, ich fand die Aussage nur etwas komisch.
Shadow992 is offline  
Old 11/01/2010, 16:35   #11
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by FizzeBu View Post
GUI...
öhm was ändert bitte ein gui an der sache? -.-
setz dir halt noch ein gui mit ins script wennde das unbedingt brauchst...

bsp:
Code:
Dim $timer[5] ; 5 timer initialisieren
Dim $wait_time[5] = [1000,2000,5000,10000,20000] ; 5 Intervallzeiten Definieren
;funktion1 -> 1s, funktion2 -> 2s, funktion3 -> 5s, funktion4 -> 10s, funktion5 -> 20s
Dim $checkbox[5] ; 5 Checkboxen Vorbereiten

GUICreate('Gui', 400, 60, -1, -1, 0x114A0000)
For $i=0 To 4
	$checkbox[$i] = GUICtrlCreateCheckbox('funktion'&$i+1, 8+$i*80, 10)
Next


;schleife laufen lassen, in der alle funktionen parallel getimt laufen
While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case Else
			For $i=0 To 4
				If GUICtrlRead($checkbox[$i])=1 And TimerDiff($timer[$i]) > $wait_time[$i] Then
					ConsoleWrite("funktion"&$i+1&" wird nun aufgerufen"&@CRLF)
					$timer[$i] = TimerInit()
				EndIf
		 	Next
	EndSwitch
WEnd
lolkop is offline  
Old 11/01/2010, 16:47   #12
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by Shadow992 View Post
Muss ich noch dazu schreiben, dass er keine Timer benutzen will?
Außerdem was ist wenn die 2 Funktionen durchgehend aufgerufen werden müssen, ohne die anderen dabei zu "blockieren"?
Vielleicht ist die eine Funktion eine komplexe und große Berechnung, die 2. beinhaltet auch ein paar Berechnungen und die letzte Funktion ist dann ein GuiGetMessage(...).
Wie bitte willst du das mit Timern lösen, ohne dass sich die 3 Funktionen gegenseitig "blockieren"?

Ich lasse mich natürlich gerne berichtigen, aber Aussagen von Leuten als totaler Blödsinn darzustellen, obwohl diese zumindest unter bestimmten Bedingungen wahr/möglich sind, ist echt nicht die feine englische Art.
also ich wage mal stark zu bezweifeln, das er in seinem einfachen send/click bot irgendwelche großen berechnungen tätigen muss.

desweiteren habe ich bisher noch keine rechnung gefunden die so komplex ist, das sie mein script für mehr als 500ms blockieren könnte. (ich rede hier nicht von irgendwelchen primzahl berechnungs algorythmen, die niemand in autoit umsetzen sollte, oder irgendwelchen auf primitivstem wege gescripteten rekusiv geschriebenen fibonacci folgen berechnungen.)

selbst wenn man einen mit hoher warscheinlichkeit nicht innerhalb der lebenszeit der erde endenen algorythmus ins script setzt (zb bruteforcer), was in autoit sowieso schwachsinn wäre, kann man auch den so ins script setzen, dass das script von ihm nicht behindert wird.

natürlich lassen sich sachen durch mehrere threads schön gesondert behandeln (priorisierung etc), das heist aber nicht, dass es probleme gibt die man nicht ohne threads lösen kann.

Edit:
Sry für den doppelpost, aber wollte nicht den obigen ontopic post mit offtopic gelaber versehen
lolkop is offline  
Old 11/01/2010, 19:44   #13
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Quote:
Originally Posted by Shadow992 View Post
Packetbots und Memorybased Bots sind professioneller, du solltest aber unbedingt, falls möglich, anstatt mit Send mit ControlSend arbeiten.
Das sollte jetzt aber keine Diskussion darüber werden was professionel is und was nicht, ich fand die Aussage nur etwas komisch.
Mach ich ja, und natürlich arbeite ich mit ControlSend oO, ich dachte das müsste ich nicht erwähnen.

Quote:
Originally Posted by lolkop View Post
also ich wage mal stark zu bezweifeln, das er in seinem einfachen send/click bot irgendwelche großen berechnungen tätigen muss.
Danke, dass du mich als Noob hinstellst und über mich redest als wäre ich gebannt oder so(@Shadow,too)-.-

Lieutz ich will doch nur wissen ob es eine Möglichkeit gibt, eine Aktion zu verzögern ohne Timer und Sleep=)
FizzeBu is offline  
Old 11/01/2010, 20:29   #14
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
es würde vllt mehr helfen, wenn du mal beschreibst, was genau du eig. vor hast...
das einzige, was dein programm blockt ist sleep(soweit ich weiß) mit timer sollte es eig. gehen...


Quote:
eine Aktion zu verzögern ohne Timer und Sleep=)
if "dies und das" = "irgentwas" then ....

so verzögerste auch was...
kommt halt drauf an, was du überhaupt vor hast
omer36 is offline  
Old 11/01/2010, 20:40   #15
 
FizzeBu's Avatar
 
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
Quote:
Originally Posted by omer36 View Post
es würde vllt mehr helfen, wenn du mal beschreibst, was genau du eig. vor hast...
das einzige, was dein programm blockt ist sleep(soweit ich weiß) mit timer sollte es eig. gehen...



if "dies und das" = "irgentwas" then ....


so verzögerste auch was...
kommt halt drauf an, was du überhaupt vor hast
Davon rede ich ja auch die ganze Zeit=)

Ich mache einen Bot, mit ner Whileschleife, in der Whileschleife sendet er x dann wartet er ne zufällige zeit(time-zufall, schon gemacht=) dann sendet er y und das Ganze ohne Sleep und If TimerDif=)
FizzeBu is offline  
Reply


Similar Threads Similar Threads
HP Skript+Regi Skript+Geiles Design
09/04/2010 - Metin2 Private Server - 18 Replies
Hey,Leutz! Wollte ein neues HP Skript Publik machen das über Xampp läuft. Es hat ein cooles Design und es ist ein Regi-Skript beigefügt! Screen: http://s10.directupload.net/images/100425/temp/zr m5nykf.png Natürlich kann alles geändert werden,auch Hintergrund und Logo! Ihr benötigt Xampp! Xampp Download:http://www.chip.de/downloads/c1_downloads _hs_getfile_v1_22023282.html?t=1272220567&v=36 00& So wenn ihr das installiert habt,ladet ihr euch meine Website runter!Ist im Anhang.
kpq 1 tag warten???
07/13/2009 - Metin2 - 8 Replies
hi, is schon lange her das ich dass letzte mal kpq gemacht hab, deswegen hier meine frage. mein pferd wird morgen lvl 10 kann ich dan gleich danach die kpq machen, oder muss ich 1 tag warten?
Warten auf Nef
12/16/2006 - World of Warcraft - 12 Replies
Wollte es euch nicht vorenthalten, und gebe euch den Link (jaja.... wieviel lachen man kann, während man auf etwas wartet...). http://www.megaupload.com/?d=BZPVN1QU Ich fand den Typen so geil... musste mich ewig totlachen xD Was macht ihr so, wenn ihr mal wartet, oder über was unterhaltet ihr euch? Mfg 1q2w3e



All times are GMT +1. The time now is 14:37.


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.