Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 01:38

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

Advertisement



Timerdiff TimerInit Anwendungsproblem

Discussion on Timerdiff TimerInit Anwendungsproblem within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
ouka's Avatar
 
elite*gold: 226
Join Date: Apr 2008
Posts: 630
Received Thanks: 241
Timerdiff TimerInit Anwendungsproblem

Edit
ouka is offline  
Old 07/03/2011, 22:50   #2
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
wenn die sends jeweils nacheinander ausgeführt werden sollen, so wie bei dir aktuell, würde ich dir empfehlen dir einen zustand anzulegen, und einen neuen timer. die timervariable hält die jeweilige startzeit, der zustand hält das jeweils auszuführende send.

der übersicht halber würde ich dann eine funktion definieren, welche dann immer wieder nur aufgerufen werden muss, welche sendet, den timer neu startet und den zustand um eins erhöht.

das ganze könnte etwa so aussehen:
Code:
Global $sendTimer, $zustand=1

Func SendXtend($param, $sleep, $nr)
	If $zustand=$nr And TimerDiff($sendTimer)>=$sleep Then
		ControlSend($Fenstername,"","",$param) 
		$sendTimer = TimerInit()
		$zustand += 1
	EndIf
EndFunc
eingesetzt in deine endlosschleife in der funktion (was auf jedenfall noch geändert werden sollte, da es den rest vom script blockiert), würde das ganze dann etwa so aussehen:

Code:
[...]
	$zustand = 1
	SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 1)
	SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 2)
	SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 3)
	SendXtend("{Tab}", Random($Zeit1,$Zeit2), 4)
	If _getCurrentColor(652, 53) == $colorfeindbalken AND _getCurrentColor(515, 40) == $balken And _getCurrentColor(443, 33) <> $ignorieren Then
		SendXtend("{F1}", Random($Zeit1,$Zeit2), 5)
		SendXtend("{F2}", Random($Zeit1,$Zeit2), 6)
		SendXtend("{F3}", Random($Zeit1,$Zeit2), 7)
		SendXtend("{F4}", Random($Zeit1,$Zeit2), 8)
		SendXtend("{F6}", Random($Zeit1,$Zeit2), 9)
		SendXtend("{F7}", Random($Zeit1,$Zeit2), 10)
		SendXtend("{F8}", Random($Zeit1,$Zeit2), 11)
		SendXtend("{F9}", Random($Zeit1,$Zeit2), 12)
		SendXtend("{F10}", Random($Zeit1,$Zeit2), 13)
		SendXtend("{F11}", Random($Zeit1,$Zeit2), 14)
		SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 15)
		SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 16)
		SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 17)
	EndIf
[...]
lolkop is offline  
Thanks
1 User
Old 07/04/2011, 09:57   #3
 
ouka's Avatar
 
elite*gold: 226
Join Date: Apr 2008
Posts: 630
Received Thanks: 241
Kiss! Danke!

Hättest du noch eine idee wie ich die endlos schleife umgehen könnte damit ich trotzdem meine scripte ablaufen lassen kann? Der script sendet zudem derzeit leider noch nicht die tastenkombis, wie kann ich denn sicherstellen das er dies tut? Ich mein er verschluckt doch das senden der taste falls die zeit dafür noch nicht richtig war oder?
ouka is offline  
Old 07/04/2011, 15:40   #4
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
ich verstehe nicht was du mit verschlucken meinst...

für das umgehen der überflüssigen endlosschleife, gilt einfach immer nur eine endlosschleife nutzen.

Edit:
ich persöhnlich habe ja nicht dein script bzw das nötige programm, aber wenn ich die abfragen durch einen toogle schlater ersetze, und die controlsends durch consolewrites, würde ich etwa dieses script erhalten:

Code:
HotKeySet('{F1}', 'blubb')
Global $sendTimer, $zustand=1, $blubb, $killTimer
Global $Zeit1 = 1000, $Zeit2 = 1300, $zeit3 = 500

Func SendXtend($param, $sleep, $nr)
	If $zustand=$nr And TimerDiff($sendTimer)>=$sleep Then
		ConsoleWrite('ControlSend($Fenstername,"","","'&$param&'")'&@CRLF)
		$sendTimer = TimerInit()
		$zustand += 1
		If Not $blubb And $zustand > 4 Or $zustand > 18 Then $zustand = 1
	EndIf
EndFunc

Func KillCounterCheck($intervall)
	If TimerDiff($killTimer)>=$intervall Then
		ConsoleWrite('Kill Counter Check'&@CRLF)
		$killTimer = TimerInit()
	EndIf
EndFunc

Func blubb()
	$blubb = Not $blubb
EndFunc

While Sleep(50)
	KillCounterCheck(5000)
	SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 1)
	SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 2)
	SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 3)
	SendXtend("{Tab}", Random($Zeit1,$Zeit2), 4)
	If $blubb Then
		SendXtend("{F1}", Random($Zeit1,$Zeit2), 5)
		SendXtend("{F2}", Random($Zeit1,$Zeit2), 6)
		SendXtend("{F3}", Random($Zeit1,$Zeit2), 7)
		SendXtend("{F4}", Random($Zeit1,$Zeit2), 8)
		SendXtend("{F5}", Random($Zeit1,$Zeit2), 9)
		SendXtend("{F6}", Random($Zeit1,$Zeit2), 10)
		SendXtend("{F7}", Random($Zeit1,$Zeit2), 11)
		SendXtend("{F8}", Random($Zeit1,$Zeit2), 12)
		SendXtend("{F9}", Random($Zeit1,$Zeit2), 13)
		SendXtend("{F10}", Random($Zeit1,$Zeit2), 14)
		SendXtend("{F11}", Random($Zeit1,$Zeit2), 15)
		SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 16)
		SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 17)
		SendXtend("{F12}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 18)
	EndIf
WEnd
wie du siehst werden die keys in den gewünschten intervallen genutzt, und der killcountercheck alle 5 sekunden ausgeführt.

je nachdem, wieviele zustände du dir definierst, musst du selbstverständlich die sendxtend funktion immer anpassen.
lolkop is offline  
Thanks
1 User
Old 07/04/2011, 18:42   #5
 
ouka's Avatar
 
elite*gold: 226
Join Date: Apr 2008
Posts: 630
Received Thanks: 241
Wenn ich das zb so teste am editor dann schreibt er nix, gleiches gilt wenn ich es in meinen script ienbaue für das dazugehörige programm

Code:
HotKeySet("!s", "blubb")
HotKeySet("!x", "_exit")

Global $sendTimer, $zustand=1, $blubb, $killTimer
Global $Zeit1 = 1000, $Zeit2 = 1300, $zeit3 = 500
global $Fenstername = "Unbenannt - Editor"


Func SendXtend($param, $sleep, $nr)
	If $zustand=$nr And TimerDiff($sendTimer)>=$sleep Then
		ConsoleWrite('ControlSend($Fenstername,"","","'&$param&'")'&@CRLF)
		$sendTimer = TimerInit()
		$zustand += 1
		If Not $blubb And $zustand > 4 Or $zustand > 18 Then $zustand = 1
	EndIf
EndFunc

Func KillCounterCheck($intervall)
	If TimerDiff($killTimer)>=$intervall Then
		ConsoleWrite('Kill Counter Check'&@CRLF)
		$killTimer = TimerInit()
	EndIf
EndFunc

Func blubb()
	$blubb = Not $blubb
	Farm()
EndFunc

func _exit()
	Exit
EndFunc

While 1
	sleep(150)
WEnd

Func Farm()
While Sleep(50)
	KillCounterCheck(5000)
	SendXtend("1", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 1)
	SendXtend("2", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 2)
	SendXtend("3", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 3)
	SendXtend("4", Random($Zeit1,$Zeit2), 4)
;~ 	If $blubb Then
		SendXtend("5", Random($Zeit1,$Zeit2), 5)
		SendXtend("5", Random($Zeit1,$Zeit2), 6)
		SendXtend("6", Random($Zeit1,$Zeit2), 7)
		SendXtend("7", Random($Zeit1,$Zeit2), 8)
		SendXtend("8", Random($Zeit1,$Zeit2), 9)
		SendXtend("9", Random($Zeit1,$Zeit2), 10)
		SendXtend("10", Random($Zeit1,$Zeit2), 11)
		SendXtend("11", Random($Zeit1,$Zeit2), 12)
		SendXtend("12", Random($Zeit1,$Zeit2), 13)
		SendXtend("13", Random($Zeit1,$Zeit2), 14)
		SendXtend("14", Random($Zeit1,$Zeit2), 15)
		SendXtend("15", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 16)
		SendXtend("16}", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 17)
		SendXtend("17", Random($Zeit1-$zeit3,$Zeit2-$zeit3), 18)
;~ 	EndIf
WEnd
EndFunc
ouka is offline  
Old 07/04/2011, 18:46   #6
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Hatt er nicht etwas davon geschrieben du sollst sie anpassen die SendXtend befehle?
Ludder231 is offline  
Old 07/04/2011, 18:52   #7
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
ich habe die controlsend befehle doch asuskommentiert.

du startest das ganze im scite editor und er schreibt in der console was er jeweils ausführen sollte...

das ersetzen des consolewrites durch die jeweilige controlsend funktion solltest du schon selbst hinbekommen

Edit:
und mal davon abgesehen hast du schonwieder 2 endlosschleifen am laufen -.-
lolkop is offline  
Thanks
1 User
Old 07/04/2011, 18:57   #8
 
ouka's Avatar
 
elite*gold: 226
Join Date: Apr 2008
Posts: 630
Received Thanks: 241
Quote:
Originally Posted by lolkop View Post
ich habe die controlsend befehle doch asuskommentiert.

du startest das ganze im scite editor und er schreibt in der console was er jeweils ausführen sollte...

das ersetzen des consolewrites durch die jeweilige controlsend funktion solltest du schon selbst hinbekommen

Edit:
und mal davon abgesehen hast du schonwieder 2 endlosschleifen am laufen -.-
Okey das war jetzt net so das problem ^^ hab des ' net gesehen

PHP Code:
ConsoleWrite(ControlSend($Fenstername,"","",$param)&@CRLF
und die erste while schleife ist doch nur damit das prog sich net gleich wieder schließt?!
ouka is offline  
Old 07/04/2011, 19:03   #9
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
funktionen sollten generell nur für zustandsänderungen, oder sich ständig wiederholende vorgänge genutzt werden.

den rest lässt man immer in einer hauptschleife laufen =)
lolkop is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
TimerInit, TimerDiff
01/01/2010 - AutoIt - 7 Replies
Hallo ich brauchte mal ne kleine hilfe. Ich bin dabei einen Angelbot zu schreiben und würde gern eine Zeitbegrenzung in die Angelrauszieh Funktion machen. Ich verstehe aber das mit TimerDiff und TimerInit nicht wirklich, wäre toll wenn jemand mir meine Funktion so einstellen könnte, dass nach 15sec die Scheife verlassen wird und es mir erklähren könnte. Func _Angelraus() Do Sleep (50) $fischblase = PixelSearch(336, 52, 400, 95, 0xFcF8Fc, 5) Until Not @error Sleep (...



All times are GMT +1. The time now is 01:39.


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.