shocki3 Posted April 16, 2016 Share Posted April 16, 2016 So I have no knowledge of how to script in autoIT. Was wondering if anyone could point me in the right direction of creating a script based on the following. It needs to increment by 1 each time the key value iterates. The key presses should occur after the designated reference time(int), determined by the value of key presses(i) that have occurred. int=0.60 ;time between initial key presses for i in {1..100000} do keydown x sleep 0.05 keyup x if i==20 then int=0.455 ; time of iteration after 20 key presses ElseIf i==50 then int=0.392 ; time of iteration after 50 key presses ElseIf i==100 then int=0.350 ; time of iteration after 100 key presses ElseIf i==200 then int=0.3065 ; time of iteration after 200 key presses ElseIf i==300 then int=0.320 ; time of iteration after 300 key presses Else sleep $int done Link to comment Share on other sites More sharing options...
InunoTaishou Posted April 17, 2016 Share Posted April 17, 2016 For Loop Send Operators Sleep Link to comment Share on other sites More sharing options...
shocki3 Posted April 17, 2016 Author Share Posted April 17, 2016 Hi InunoTaishou, Thanks for the links! I made some adjustments to reflect the correct syntax, but am unsure of how they all fit together. Dim $int = 0.60 ;time between inital key presses Dim $i = 1 While $i <= 1001 Send("{x down}") Sleep 0.05 Send("{x up}") $i += 1 WEnd Func jump() If $i = 20 then $int = 0.455 ; time of key press after 20 key presses ElseIf $i = 50 then $int = 0.392 ; time of key press after 50 key presses ElseIf $i = 100 then $int = 0.350 ; time of key press after 100 key presses ElseIf $i = 200 then $int = 0.3065 ; time of key press after 200 key presses ElseIf $i = 300 then $int = 0.320 ; time of key press after 300 key presses ElseIf $i = 10001 EndIf EndFunc Link to comment Share on other sites More sharing options...
markyrocks Posted April 17, 2016 Share Posted April 17, 2016 (edited) Couple of thoughts. 1. Dim is bad, use local or global instead. 2. Any function such as sleep always has parentheses at the end of the name. "Sleep ($arg)" 3. You have no function call. Jump () will never run in your script. 4. It looks like your using math to determine time ? Use TimerInit () and TimerDiff () instead 5. Sleep (1)=1ms so a fraction of this is essentially nothing. 1ms is basically nothing. O and I like how you used $int for a floating point number. Not really a big deal but not the best of habits. Edited April 17, 2016 by markyrocks Spoiler "I Believe array math to be potentially fatal, I may be dying from array math poisoning" Link to comment Share on other sites More sharing options...
shocki3 Posted April 17, 2016 Author Share Posted April 17, 2016 Hi Marky, I am trying to count the number of times x is pressed and increment it by one. While applying a delay based off int variable. When the number of key presses of x reaches a certain number, the time between key presses changes based off int. Link to comment Share on other sites More sharing options...
InunoTaishou Posted April 17, 2016 Share Posted April 17, 2016 Local $int = 600 ; Time between initial key pressed For $i = 1 to 100000 Send("{x Down}") Sleep(500) Send("{x Up}") If ($i = ...) Then ElseIf ($i = ...) Then ... EndIf Sleep($int) Next Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now