|
You last visited: Today at 14:37
Advertisement
Wie Skript warten lassen?
Discussion on Wie Skript warten lassen? within the AutoIt forum part of the Coders Den category.
11/01/2010, 11:40
|
#1
|
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=)
|
|
|
11/01/2010, 12:31
|
#2
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
einfach erstmal eine timervariable initialisieren (autoit setzt sie automatisch 1).
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
|
|
|
11/01/2010, 12:44
|
#3
|
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=)
|
|
|
11/01/2010, 12:55
|
#4
|
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.
|
|
|
11/01/2010, 13:18
|
#5
|
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
|
|
|
11/01/2010, 13:19
|
#6
|
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.
|
|
|
11/01/2010, 13:27
|
#7
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by FizzeBu
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.
|
|
|
11/01/2010, 13:32
|
#8
|
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
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.
|
|
|
11/01/2010, 15:51
|
#9
|
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
|
Quote:
Originally Posted by Shadow992
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
-.- du fragst einfach alles in deiner hauptschleife ab...
|
GUI...
|
|
|
11/01/2010, 16:30
|
#10
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by lolkop
-.- 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
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
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.
|
|
|
11/01/2010, 16:35
|
#11
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by FizzeBu
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
|
|
|
11/01/2010, 16:47
|
#12
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Shadow992
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
|
|
|
11/01/2010, 19:44
|
#13
|
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
|
Quote:
Originally Posted by Shadow992
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
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=)
|
|
|
11/01/2010, 20:29
|
#14
|
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
|
|
|
11/01/2010, 20:40
|
#15
|
elite*gold: 6
Join Date: Mar 2010
Posts: 12,388
Received Thanks: 2,115
|
Quote:
Originally Posted by omer36
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=)
|
|
|
 |
|
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.
|
|