• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Question - will commands on a specific line of a macro be completed before the next line is processed

timmy

Well-known member
Joined
Apr 1, 2014
RedCents
1,443¢
my subject is trash and nearly uncomprehensible even to me but i'll try and explain what i mean.

if i have these lines in my macro:

/nav wp alpha /echo we are at alpha

then am i correct to say that there is no possible way for the echo to happen until we reach the alpha waypoint? and if we never reach the waypoint, the echo will never happen?

what if we add an eq command that takes time to happen?

/nav wp alpha /echo we are at alpha /cast 1 /nav wp beta

if cast 1 take 3 seconds, will the second nav command not happen until that spell has been cast or do i need some sort a delay to be sure the spell fires before i move to the next nav command?

thx info.
 
you can do something like delaying while you are navigating. I would suggest moving this to a re-usable function that you can call so you don't duplicate the same code all over the place, but this is the basic idea

Code:
| we want to navigate to the waypoint "alpha"
/nav wp alpha

| this 1s delay just allows navigation to start up
/delay 1s

| we're going to delay 5s while navigation is active
/while (${Navigation.Active}) {
    /delay 5s
}

| we're going to echo that navigation has ended
/echo Navigation has ended

| we're going to echo our location
/echo I am at locxyz ${Me.X} ${Me.Y} ${Me.Z}

you can get fancy with some distance checks from your location to your destination location to ensure you have arrived within the margin you want etc, but the above is a simple idea to get you started
 
that helps. i looked at some /while w/ the navigation.active (that i obv found in other macros) but how you used it here makes perfect sense for what i want. thank you.
 
you can do something like delaying while you are navigating. I would suggest moving this to a re-usable function that you can call so you don't duplicate the same code all over the place, but this is the basic idea

Code:
| we want to navigate to the waypoint "alpha"
/nav wp alpha

| this 1s delay just allows navigation to start up
/delay 1s

| we're going to delay 5s while navigation is active
/while (${Navigation.Active}) {
    /delay 5s
}

| we're going to echo that navigation has ended
/echo Navigation has ended

| we're going to echo our location
/echo I am at locxyz ${Me.X} ${Me.Y} ${Me.Z}

you can get fancy with some distance checks from your location to your destination location to ensure you have arrived within the margin you want etc, but the above is a simple idea to get you started

The delay before doing the /while (${Navigation.Active}) is important I found out earlier this week writing a macro lol. Like Sic mentioned putting that code in a sub can save space.

I did mine as follows:

Code:
Sub NavMoving
    /echo Starting To Move
    /delay 2s
        /while (${Navigation.Active}) {
        /echo Moving           
        /delay 5s       
        }
    /echo Done Moving
    /delay 5s
/return

And code in my main routine is like the following:

Code:
    /nav wp camp17
    /call NavMoving
 
The nav active checks are good, but you probably want to do a stuck check at some point. Also, it’s interesting because not everyone needs the pause between initiating nav and checking nav active, but I certainly do.

Also, answering the original question: No, the first command will be issued before the second command is run, but it won’t necessarily be completed before the next command is run. This is mostly important for anything that runs something that takes time (particularly movement, but also things like casting a spell).
 
Last edited:
Question - will commands on a specific line of a macro be completed before the next line is processed

Users who are viewing this thread

Back
Top
Cart