Cooldown einsetzen

01/19/2012 01:31 baboon667#1
Huhu leutz:)

ich wollte Mit autoit ein Bot schreiben für ein MMorpg nur hab ich eben jetzt ein problem und zwar mit Cooldowns von zaubern...

Und zwar hab ich eine Schleife in dem er die Tasten alle duchdrückt
PHP Code:
Send("{1}")
Sleep(50)
Send("{2}")
Sleep(50)
Send("{3}")
u.s.
nur soll er wenn er z.b. die 1 drückt das nächste mal die Taste "auslassen" da ja duch die benutzung der Taste der Zauber im spiel einen Cooldown von 6sec hat.

Weis leider nicht wie ich das Realisieren soll und währe deswegen sehr dankbar wenn ihr mir in diesem Fall helfen könntet...

Gruß Baboon667
01/19/2012 07:09 Buffmebuffyou#2
Das geht am einfachsten mit Timern. Guck dir mal die Funktion TimerInit() in der Hilfedatei an. ;)
01/19/2012 11:45 butter123#3
Du musst mit TimerDiff() in einer If-Schleife fragen, ob seit dem letzten Drücken (wo du mit TimerInit() einen Timer gesetzt hast) schon 6 Sekunden vergangen sind. Wenn ja drücken, wenn nein, dann auslassen.
01/19/2012 23:38 baboon667#4
So hab jetzt mal mit dem TimerDiff / TimerInit

PHP Code:
Global $CD TimerInit()

Func Angriff()
   
Send("{1}")
   
Sleep(500)
      If 
TimerDiff($CD) >= 20000 Then Send("{2}"
      
Sleep(10)
      If 
TimerDiff($CD) >= 6000 Then Send("{3}"
      
Sleep(10)
      If 
TimerDiff($CD) >= 8000 Then Send("{4}"
      
Sleep(10)
      If 
TimerDiff($CD) >= 16000 Then Send("{5}"
      
Sleep(10)
      If 
TimerDiff($CD) >= 12000 Then Send("{6}"
      
Sleep(10)
EndFunc 
und bin bis jetzt zufrieden damit :)

Danke euch beiden dafür :)
01/19/2012 23:59 lolkop#5
Quote:
Originally Posted by baboon667 View Post
So hab jetzt mal mit dem TimerDiff / TimerInit

PHP Code:
Global $CD TimerInit()

Func Angriff()
   
Send("{1}")
   
Sleep(500)
      If 
TimerDiff($CD) >= 20000 Then Send("{2}"
      
Sleep(10)
      If 
TimerDiff($CD) >= 6000 Then Send("{3}"
      
Sleep(10)
      If 
TimerDiff($CD) >= 8000 Then Send("{4}"
      
Sleep(10)
      If 
TimerDiff($CD) >= 16000 Then Send("{5}"
      
Sleep(10)
      If 
TimerDiff($CD) >= 12000 Then Send("{6}"
      
Sleep(10)
EndFunc 
und bin bis jetzt zufrieden damit :)

Danke euch beiden dafür :)
das ganze kann so nicht funktionieren, da erstens jeder skill seinen eigenen timer braucht, und zweitens du den timer nicht neu initialisierst nachdem er aubgelaufen ist^^

hier mal ein einfaches beispiel für deine 6 timer mit ihren 6 verschiedenen cooldowns:
Code:
HotKeySet('{F1}', 'end')
Dim $timer[6], $times[6]=[500,20000,6000,8000,16000,12000]
While Sleep(5)
	For $i=0 To 5
		If TimerDiff($timer[$i])>=$times[$i] Then
			Send($i+1)
			$timer[$i]=TimerInit()
		EndIf
	Next
WEnd
Func end()
	Exit
EndFunc
01/20/2012 00:52 baboon667#6
habs eben gemerkt das es noch nicht ganz so hinhaut hab vorhin nur mal kurz getestet und war zufrieden nur nach längerem testen ist mir erst aufgefallen das doch noch des öfteren fehler dabei sind....

Werde morgen mit deinem arbeiten aber jetzt ist erstmal bett angesagt:)

Gebe dann morgen meine Danke raus:)

Gruß Baboon667

@lolkop So hab jetzt deines Hergenommen und funktioniert gut muss ich sagen hab zwar imer paar kleine probleme aber das liegt daran weil es in diesem fall nahkampfcasts sind und er auf die tasten den cd legt aber ingame noch nicht verwendet werden konnte (out of Range) aber ist besser als keine timer der mir nur fehlermeldungen ingame raushaut:)

Mal schauen ob ich mich darum auch noch kümmerer aber vorerst lass ich es mal so^^


Also ich danke dir für deine Hilfe

Gruß Baboon667
01/21/2012 01:11 MoepMeep#7
Quote:
Originally Posted by butter123 View Post
Du musst mit TimerDiff() in einer If-Schleife fragen, ob seit dem letzten Drücken (wo du mit TimerInit() einen Timer gesetzt hast) schon 6 Sekunden vergangen sind. Wenn ja drücken, wenn nein, dann auslassen.
[Only registered and activated users can see links. Click Here To Register...]

Ein weiterer nicht ernstzunehmender 'Programmierer', danke sehr.
01/21/2012 14:39 butter123#8
Quote:
Originally Posted by MoepMeep View Post
[Only registered and activated users can see links. Click Here To Register...]
AHHHHH WELTUNTERGANG!!!!