john36 Posted April 2, 2021 Share Posted April 2, 2021 global $timer While True $timer = TimerInit() Do ; Until TimerDiff($timer) > 3000 Execute function here? WEnd Hey guys, quite, quite new to Autoit (and coding and general, to be honest). I've dabbled before and edited some scripts here and there, but that's about it. I've been trying to figure out how to do something like the code above; trying to make a function happen if a timer goes above a certain number of seconds. I've messed around with If statements, Do and While, but I can't seem to figure out how to merge them, or if there is another argument out there that'd do the trick. Points for simplicity, once again I'm quite new. Thanks for your time! Link to comment Share on other sites More sharing options...
john36 Posted April 2, 2021 Author Share Posted April 2, 2021 As an addendum, I don't think the timer needs to run on a loop, I just need a timer to run during certain different sequences to kill them/go back the the beginning if it gets stuck. Link to comment Share on other sites More sharing options...
Factfinder Posted April 2, 2021 Share Posted April 2, 2021 Hi, You may take a look at _Timer_SetTimer function. The third argument is the function that will be executed after the time-out value is reached. Link to comment Share on other sites More sharing options...
john36 Posted April 2, 2021 Author Share Posted April 2, 2021 Could I possibly get a simple example? Those examples on that page are a lot more than I can chew, especially with the GUI stuff. Link to comment Share on other sites More sharing options...
Factfinder Posted April 2, 2021 Share Posted April 2, 2021 $hWnd = "" ; assuming you have no GUI, otherwise this will be the handle to your GUI _Timer_SetTimer($hWnd, 3000, doit) $i = 1 While 1 $i+= 1 WEnd Func doit($hWnd, $iMsg, $iIDTimer, $iTime) #forceref $hWnd, $iMsg, $iIDTimer, $iTime MsgBox(0, "", "Done",1) Exit EndFunc Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted April 2, 2021 Moderators Share Posted April 2, 2021 john36, As a beginner, I would strongly advise that you do NOT use the Timer UDF library and stick to the native TimerInit/Diff functions - the UDF functions can rapidly get very complicated and are usually not necessary. Quote I just need a timer to run during certain different sequences to kill them/go back the the beginning if it gets stuck That is rather more than your initial statement: Quote trying to make a function happen if a timer goes above a certain number of seconds Can you give a concrete example of what it is that you actually trying to do? That way we can see how we might best structure the code to get you on the right path. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
john36 Posted April 2, 2021 Author Share Posted April 2, 2021 Alright, so I've automated going to a lever, using it, go through the open gate, then move to Zone 3. Here's what I got so far, it works great. ; Zone 1 CheckStuck_MoveTo(-12232,-14221) CheckStuck_MoveTo(-12953,-12465) CheckStuck_MoveTo(-13666,-11333) CheckStuck_MoveTo(-13015,-9810) RndSleep(1000) CheckAndUseStone() sleep(500) LeverOpenDoor() sleep(500) CheckStuck_MoveTo(-13015,-9810) sleep(500) WaitMapLoading(150) sleep(5000) ; Zone 2 CheckStuck_MoveTo(-12504,-8509) CheckAndUseStone() sleep(500) CheckStuck_MoveTo(-12504,-8509) sleep(500) WaitMapLoading(150) sleep(5000) ;arrived Most these functions I (unfortunately) didn't write and make calls to an external API, but were easy enough for me to read and stitch together to make this. What I'm trying to do is to implement a timer that would run independently for each zone and would set: GoBackToCheckpoint($ZoneCheckPoint) If a timer gets to, say, 5 minutes without having reached WaitMapLoading() for the current zone. GoBackToCheckpoint() resets the position and the script runs from the start. I've used that too, also works great. Hope this makes better sense, thanks a lot for your time and patience. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted April 2, 2021 Moderators Share Posted April 2, 2021 Welcome to the AutoIt forum. Unfortunately you appear to have missed the Forum rules on your way in. Please read them now - particularly the bit about not discussing game automation - and then you will understand why you will get no help and this thread will now be locked. See you soon with a legitimate question I hope. The Moderation team Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Recommended Posts