Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 16:43

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

Advertisement



Zeitsteuerung

Discussion on Zeitsteuerung within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2009
Posts: 44
Received Thanks: 1
Zeitsteuerung

Hallo zusammen.

Ich versuche derzeit eine Art zeitgesteuertes Script mit AutoIt zu erstellen.

Die Kurzbeschreibung, was das Script machen soll
  • Dauerhaft diverse Tastendrücke ausführen
  • Jede Stunde die Taste 5 betätigen
  • Alle 15 Minuten die Taste 4 betätigen und 2 Mausklicks auf statische Koordinaten
  • Alle 5 Minuten die Taste 6 betätigen

Nun mein derzeitiger vorhandener Code:

Code:
While 1
$timer = TimerInit ()
While 1
	If TimerDiff ($timer) > 900000 Then
		sleep(1000)
		Send("4")
		MouseClick("left", 802, 562, 2)
		Sleep(1000)
		MouseClick("left", 859, 605, 2)
		sleep(13000)
		ExitLoop
	EndIf
While 1
	If TimerDiff ($timer) > 3600000 Then
		Send("5")
		ExitLoop
	EndIf
While 1
	If TimerDiff ($timer) > 30000 Then
		Send("6")
		ExitLoop
	EndIf
Sleep(500)
############################################################
# //--> Die eigentliche Funktion die dauerhaft läuft <--\\ #
############################################################
Sleep(500
WEnd
WEnd
WEnd
WEnd
Seid gnädig mit mir, ist mein erstes Script in AutoIt ^^

Nun die Frage: Gibt es da eine bessere bzw. elegantere Lösung, oder macht das Script das, was es wie o.g. soll. Denn eine Stunde warten ob auch alle Funktionen wirklich ihren Dienst erledigen wollte Ich dann doch nicht.

Gruss Madingo
Madingo is offline  
Old 12/17/2009, 22:52   #2
 
elite*gold: 0
Join Date: Dec 2008
Posts: 12,369
Received Thanks: 2,168
Quote:
Originally Posted by Madingo View Post
Denn eine Stunde warten ob auch alle Funktionen wirklich ihren Dienst erledigen wollte Ich dann doch nicht.

Gruss Madingo
Dann setz die Timer was runter, sodass du nur eine Minute o.ä. warten musst...
TheOwnWay is offline  
Old 12/17/2009, 22:54   #3
 
elite*gold: 0
Join Date: Nov 2009
Posts: 44
Received Thanks: 1
Quote:
Originally Posted by Cr0nicl3 View Post
Dann setz die Timer was runter, sodass du nur eine Minute o.ä. warten musst...
Würde mich das nicht unmengen von Ingame-Material kosten würde Ich das tun
Madingo is offline  
Old 12/18/2009, 00:35   #4
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
dann setz statt dem mouseclick ne msgbox

Thema eleganter: schau dir mal die Makros @MIN und @HOUR bzw. die Funktion TimerDiff() und TimerInit()
| Moep | is offline  
Old 12/18/2009, 12:21   #5
 
elite*gold: 0
Join Date: Nov 2009
Posts: 44
Received Thanks: 1
Quote:
Originally Posted by | Moep | View Post
dann setz statt dem mouseclick ne msgbox

Thema eleganter: schau dir mal die Makros @MIN und @HOUR bzw. die Funktion TimerDiff() und TimerInit()
Nochmal für AotuIt Newbies bitte ^^

Und zum Script:

Ich habe das jetzt vorerst mal mit Tränken und niedriger Zeitangabe probiert.

Allerdings ist es so, daß sobald die Zeit abgelaufen ist, die Tasten immerwieder gedrückt werden, und der Rest vom Script nicht mehr weiterläuft. Ich möchte aber, daß im Beispiel oben, die Taste 6 alle 5 Minuten betätigt wird, und danach das Script weiterläuft.

Kann mir da mal jemand ein Beispiel geben oder mir helfen bitte ? =/
Madingo is offline  
Old 12/18/2009, 13:02   #6
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438

Damit kann man gut debuggen


mit @MIN und @HOUR kannst du die derzeitige Stunden und Minuten auslesen.
| Moep | is offline  
Old 12/18/2009, 13:07   #7
 
elite*gold: 0
Join Date: Nov 2009
Posts: 44
Received Thanks: 1
Quote:
Originally Posted by | Moep | View Post

Damit kann man gut debuggen


mit @MIN und @HOUR kannst du die derzeitige Stunden und Minuten auslesen.
Das behebt natürlich das Problem, daß die Tasten dauerhaft gedrückt werden. Danke -_-

Das mit MIN und HOUR habe Ich mittlerweile raus, aber keine Lösung auf das "Dauerdrücken".

Das Script macht das was es soll, eben mit dem kleinen Fehler, daß sobald die 5 Minuten beispielsweise abgelaufen sind, die Taste 6 immerwieder gedrückt wird, statt einmal.

Und jetzt nochmal: Wie muss Ich das im oben gezeigtem Code ändern, daß die Taste nur 1 mal alle 5 Minuten gedrückt wird ?
Madingo is offline  
Old 12/18/2009, 13:35   #8
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Code:
$Timer1 = TimerInit()
$Timer2 = TimerInit()
$Timer3 = TimerInit()

While 1
	If TimerDiff($Timer1)>= 5000 Then
		$Timer1 = TimerInit()
	ElseIf TimerDiff($Timer2) >= 15000 Then
		$Timer2 = TimerInit()
	ElseIf TimerDiff($Timer3) >= 60000 Then
		$Timer3 = TimerInit()
	EndIf
	
	ToolTip("Timer1 = "&int(TimerDiff($Timer1)/1000)& @CRLF & _
			"Timer2 = "&int(TimerDiff($Timer2)/1000)& @CRLF & _
			"Timer3 = "&int(TimerDiff($Timer3)/1000))
WEnd
Jetzt bin ich aber mal gespannt ob du weißt was da passiert
| Moep | is offline  
Old 12/18/2009, 14:00   #9
 
Xereon's Avatar
 
elite*gold: 0
Join Date: Apr 2009
Posts: 793
Received Thanks: 366
Quote:
Originally Posted by | Moep | View Post

Damit kann man gut debuggen
Ich bevorzuge ConsoleWrite(); Pausiert das Script nicht
Xereon is offline  
Old 12/18/2009, 17:29   #10
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Ja ok, kann man auch nehmen. Aber manchmal ist es auch ganz hilfreich das Script pausieren zu lassen.
| Moep | is offline  
Old 12/19/2009, 19:59   #11
 
elite*gold: 0
Join Date: Nov 2009
Posts: 44
Received Thanks: 1
Ich hab´s hinbekommen.

//-> Ironie

Danke für die Hilfe..

Ironie <-\\
Madingo is offline  
Old 12/20/2009, 13:23   #12
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Wieso Ironie? Also willst du dich nicht bei uns bedanken? pfff...
| Moep | is offline  
Old 12/23/2009, 20:08   #13
 
elite*gold: 0
Join Date: Nov 2009
Posts: 44
Received Thanks: 1
Quote:
Originally Posted by | Moep | View Post
Wieso Ironie? Also willst du dich nicht bei uns bedanken? pfff...
Bedanken ? Für genau was ?

Würdest Du dich bei nem Huchschuldozenten bedanken, wenn der dir erklärt das 1+1 = 2 ist ? Dir also Dinge erklärt die Du bereits weisst, aber nicht zur Lösung deines Problems führen ? Ja ? Respekt ^^
Madingo is offline  
Old 12/24/2009, 09:51   #14
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Wenn dir jemand erklärt wie du 1+1 zusammenrechnest, muss er dir dann auch noch erklären wie du 10+10 rechnest oder wie du 1+1-2 rechnest? Nein! Er hat die das Werkzeug gegeben mit den du deine Probleme in Zukuft selber lösen kannst. Wenn du nämlich nicht verstehst wie du 1+1 rechnest, sondern dir nur merkst dass 1+1=2 ist, dann wirst du ihn bei jeder Aufgabe die ihr noch nicht zusammengerechnet habt wieder fragen müssen ob dein Ergebnis das richtige ist...


So, und nun um dir zu zeigen dass du mit mit ein bisschen Eigeninitiative mit meinem Ansatz zum Ziel gekommen wärst.

Dein Request:
Quote:
Originally Posted by Madingo View Post
  • Dauerhaft diverse Tastendrücke ausführen
  • Jede Stunde die Taste 5 betätigen
  • Alle 15 Minuten die Taste 4 betätigen und 2 Mausklicks auf statische Koordinaten
  • Alle 5 Minuten die Taste 6 betätigen
Mein Lösungsansatz:

Quote:
Originally Posted by | Moep | View Post
Code:
$Timer1 = TimerInit()
$Timer2 = TimerInit()
$Timer3 = TimerInit()

While 1
	If TimerDiff($Timer1)>= 5000 Then
		$Timer1 = TimerInit()
	ElseIf TimerDiff($Timer2) >= 15000 Then
		$Timer2 = TimerInit()
	ElseIf TimerDiff($Timer3) >= 60000 Then
		$Timer3 = TimerInit()
	EndIf
	
	ToolTip("Timer1 = "&int(TimerDiff($Timer1)/1000)& @CRLF & _
			"Timer2 = "&int(TimerDiff($Timer2)/1000)& @CRLF & _
			"Timer3 = "&int(TimerDiff($Timer3)/1000))
WEnd

Dein Request + Mein Lösungsansatz oder anders gesagt 1+1:

Code:
$Timer1 = TimerInit()
$Timer2 = TimerInit()
$Timer3 = TimerInit()

While 1
	If TimerDiff($Timer1)>= 5*60000 Then
		Send("6")
		$Timer1 = TimerInit()
	ElseIf TimerDiff($Timer2) >= 15*60000 Then
		Send("4")
		MouseClick("left",100,100)
		MouseClick("left",200,200)
		$Timer2 = TimerInit()
	ElseIf TimerDiff($Timer3) >= 60*60000 Then
		Send("5")
		$Timer3 = TimerInit()
	Else
		Send("Diverse Tastendrücke")
	EndIf
	
	ToolTip("Timer1 = "&int(TimerDiff($Timer1)/1000)& @CRLF & _
			"Timer2 = "&int(TimerDiff($Timer2)/1000)& @CRLF & _
			"Timer3 = "&int(TimerDiff($Timer3)/1000))
WEnd
Frohe Weinachten.
| Moep | is offline  
Old 12/24/2009, 19:12   #15
 
elite*gold: 0
Join Date: Nov 2009
Posts: 44
Received Thanks: 1
Quote:
Originally Posted by | Moep | View Post
Wenn dir jemand erklärt wie du 1+1 zusammenrechnest, muss er dir dann auch noch erklären wie du 10+10 rechnest oder wie du 1+1-2 rechnest? Nein! Er hat die das Werkzeug gegeben mit den du deine Probleme in Zukuft selber lösen kannst. Wenn du nämlich nicht verstehst wie du 1+1 rechnest, sondern dir nur merkst dass 1+1=2 ist, dann wirst du ihn bei jeder Aufgabe die ihr noch nicht zusammengerechnet habt wieder fragen müssen ob dein Ergebnis das richtige ist...
Oder man bringt sich einfach alles selbst bei, weil jeder anders rechnet, und den anderen unter die Nase reiben will, daß er mit dem Löffel der Weisheit im Schnabel geboren wurde :

Code:
#include <Timers.au3>

HotKeySet("!e", "_end")

$timer_1h = TimerInit()
$timer_15m = TimerInit()
$timer_5m = TimerInit()
While 1
    If Int(TimerDiff($timer_1h )/ 1000) >= 3600 Then
		Send("5")
        $timer_1h = TimerInit()
    EndIf

    If Int(TimerDiff($timer_15m)/ 1000) >= 900 Then
		sleep(1000)
		Send("4")
		MouseClick("left", 553, 760,2 )
		Sleep(1000)
		MouseClick("left", 618, 803, 2)
		sleep(13000)
        $timer_15m = TimerInit()
    EndIf

    If Int(TimerDiff($timer_5m)/ 1000) >= 300 Then
        Send("6")
        $timer_5m = TimerInit()
    EndIf
[....]
WEnd

Func _end()
    Exit
EndFunc   ;==>_end
Madingo is offline  
Reply




All times are GMT +1. The time now is 16:43.


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.