Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 01:35

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

Advertisement



Timernutzung in AutoIt

Discussion on Timernutzung in AutoIt within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
mileseven's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 107
Received Thanks: 255
Smile Timernutzung in AutoIt

Hallo alle zusammen.

Da ich bis jetzt hier kein Tutorial über Timer in AutoIt gesehen habe,
werde euch zeigen wie man Timer benutzt.

Als Beispiel nehme ich eine Funktion für einen Bot, wo ein Skill nach einer bestimmte Zeit benutzt werden soll.

Als erstes müssen die Variablen deklarieren, die wir brauchen:


Global $TimerInit; Zeitinitialisierung
Global $Timer; Differenz der Zeit in milisekunden
Global $SkillTimer; Zeit für den Skill
Global $Delay = 5000; Delay für den Skill ( 5 Sekunden )


Die Initialisierung starten wir vor der Hauptschleife des Bots:


$TimerInit = TimerInit()


So nun brauchen wir natürlich die Differenz in Milisekunden. Diese sollte in der Schleife stehen:


Func MainLoop()

While 1

; SPEICHERE TIMERDIFFERENZ IN INTEGER ( ms )
$Timer = int(TimerDiff($TimerInit))

WEnd

EndFunc



So $Timer gibt nun die Zeit in Milisekunden wieder, die vom Start des Bots gezählt wird.

Jetzt kommen wir zu der Skill Funktion. Als erstes übeprüfen wir ob ein Skill benutzt werden soll.

Dafür benutzen wir diese Formel ( $SkillTimer zurzeit noch 0ms ):


$Timer - $SkillTimer >= $Delay


Als Beispiel bei einer Sekunde laufzeit:


1000ms - 0ms >= 5000ms ; FALSE


bei 5 Sekunden:


5000ms - 0ms >= 5000ms ; TRUE


Hoffe das versteht jeder.


Func ShallUseSkill()

if ($Timer - $SkillTimer) >= $Delay then
return true ; Skill bereit zum benutzen
EndIf

endfunc



Jetzt kommen wir zu der Funktion wo der Skill benutzt wird, auf jedenfall muss nach der Benutzung des Skill, der SkillTimer aktualsiert werden.


Func UseSkill()

ControlSend ( "TitelVomSpiel", "", "", "{F1}" )
$SkillTimer = $Timer ; Sehr wichtig!

EndFunc



$SkillTimer wurde gleich $Timer gesetzt, sodass die Prozedur von vorne staffinden kann. Beispiel:


3000ms - 0ms >= 5000ms ; FALSE




5000ms - 0ms >= 5000ms ; TRUE



Nun wird $SkillTimer gleich $Timer gesetzt.


5000ms - 5000ms >= 5000ms ; FALSE



6000ms - 5000ms >= 5000ms ; FALSE



10000ms - 5000ms >= 5000ms ; TRUE


Das wiederholt sich immer wieder.

Nun gut, das war alles. Man muss nur noch nur noch die Funktion in die Hauptschleife einbauen:


Func MainLoop()

While 1

; SPEICHERE TIMERDIFFERENZ IN INTEGER ( ms )
$Timer = int(TimerDiff($TimerInit))

if ShallUseSkill() = true then
UseSkill()
endif

WEnd

EndFunc



Man sollte Timer anstelle Sleep benutzten. Der Sleep Befehl pausiert das Programm, und das ist nicht toll .

Es gibt bestimmt andere, bessere Lösung. Ich hab eine von viele hier reingestellt.

Edit: Sry dass da keine Einrückungen sind, ich bekomms einfach nicht hin.
mileseven is offline  
Thanks
7 Users
Old 08/06/2008, 00:45   #2
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
nice tut glaube könnte mal nützlich sein :>, maaaaaaannnnnnnnnn kann mir wer erklären wie man bild richtig ändert? wenn ich bei edit picture neues mache geht das nich rein ich raste aus :S
meak1 is offline  
Old 02/23/2010, 02:35   #3
 
elite*gold: 0
Join Date: Aug 2006
Posts: 53
Received Thanks: 4
also ich habe das versucht aber ich kann das programm dann nicht mehr mit dem "X" beenden?
sh00ky is offline  
Old 02/23/2010, 03:02   #4


 
Fevii's Avatar
 
elite*gold: 36
Join Date: Oct 2008
Posts: 29,930
Received Thanks: 6,891
liegt vlt dran das es von 08 ist? und deshalb veraltet ist? schon mal dran gedacht?
Fevii is offline  
Old 02/23/2010, 15:56   #5
 
elite*gold: 15
Join Date: Feb 2009
Posts: 1,359
Received Thanks: 475
Nice Tutorial gehört aber hier rein

-->

Denke pand0r wird es für dich verschieben ^^

Mit freundlichen Grüßen

SynT@x

#upps '08 ôo
SynT@x is offline  
Old 02/23/2010, 16:09   #6
 
Pand0r's Avatar
 
elite*gold: 1438
Join Date: Jun 2007
Posts: 3,214
Received Thanks: 758
Quote:
Originally Posted by SynT@x View Post
Nice Tutorial gehört aber hier rein

-->

Denke pand0r wird es für dich verschieben ^^

Mit freundlichen Grüßen

SynT@x
#moved
Pand0r is offline  
Reply




All times are GMT +2. The time now is 01:35.


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.