Please advise on how to use a conditional or something better for warrior Victory Rush

I am starting small with a simple macro for Warriors that Casts Victory Rush (1 attack after you just killed a mob) and devastate.

Right now I have 2 blocks

Block 1 -
/cast Victory Rush

Block 2 =
/cast Devastate

I am trying to make it only cast victory rush 1 time, when presumably you are fighting a new mob after killing one. My thoughts were somehow if after either block it detected the mob was dead it would reset the macro. Is this possible? Is there a more efficient way?

Thanks in advance, I am trying to learn and starting small. appreciate your thoughts.

Hey @Spacecelt

I’m assuming your macro will look something like this

Assuming this is the case, it will simply cast Victory Rush, and then Devastate. If Victory Rush can’t be cast it will simply skip to Devastate. You can choose to reset the macro on exiting combat. Simply tick the Reset on Combat box at the bottom of the macro as shown here.

I hope this helps,

Bam™

Just to expand a little bit more, ill try to explain as best as I can to my understanding of how GSE3 works - I’m not a programmer or coder :stuck_out_tongue:

You can use the variables in GSE3, to attempt to cast Victory Rush on cooldown. I’ve just made a quick macro to try and show what I mean. So, my warrior is only level 33, so spells will vary, but this one is working ok on target dummies.

So, the first picture here shows that the first two steps of the sequence are going to be Avatar and Thunderclap (Highlighted in red). The ~KeyPress~ and ~KeyRelease~ are variables which I’ll get to later. So basically each block is trying three actions, it will first try to do whatever the ~KeyPress~ Variable, which is shown as in the image below. My macro will attempt to target an enemy and start attack. The second action in the block is /cast to cast whatever spell so Avatar I’ve used and finally it will attempt the ~KeyRelease~ variable.

After this, it will start the loop block (highlighted in green). Again, i’ve included the ~KeyPress~ and ~KeyRelease~ variables, because i want the macro to make sure I always have a target, and the ~keyRelease~ is where i have ignore pain, because as a tank, i want to keep this up as much as possible, so the macro will try to pess this every time, if its on cooldown it will skip to the next part of the sequence.

The second image here shows the loop - within the main loop, so again, I’m using this but notice how the step function here is set to priority list, rather than sequential. This is because i want to case Shield Block, before i cast Shield slam (highlighted in yellow). This is again followed by an action block outside of the loop (highlighted again in red).

There is a useful funcition in GSE3, Compile Template button, which will show you exactly what steps the macro will attempt to take.

Notice how on every step, the first action is /targetenemy[noharm][dead], followed by /startattack, then the block /cast and finally it will attempt to /cast ignore pain, victory rush, and bersetker rage. This is due to the variables i have called KeyPress and KeyRelease, you can name this anything.

I’m sorry, i’m not the best teacher, but I hope this has been helpful.

Bam™

Thank you for taking the time! I will be studying what you shared.

The one thing I perhaps didnt explain well enough is for my use, I may not be exiting combat. So lets say you pull 2 mobs, you kill the first. to be more efficient (and less button mashing) I didnt want to just alternate between victory rush and devastate (2 button pushes to cue up next devastate since victory rush can only be used once after each kill)

So you may not be exiting combat. Its why is was kinda asking if there was a conditional you could set, like target is dead, to then start the macro over since you will get to Victory rush.

I may not be making myself clear and apologize :slight_smile: I really appreciate you efforts and time!

I don’t believe so, I think there are now if statements you can use within the variables. However, I don think this would be possible. Or I can’t think of a way around it. Maybe someone else might have a suggestion?

Bam™

I do have one question, How do you set up the keypress and key release variables. Are those built in all ready to go?

You add them by whatever name you wish in the Variables section at the bottom of the macro.

1 Like

yes, but how? Do you have to do anything? Whats the syntax? Im trying to read up on how but not sure where the documentation is.

@Spacecelt

If you look at the bottom (highlighted in yellow) in the picture, you’ll see a button to “add variable” click that, and just set the name to whatever you want. I keep KeyPress and KeyRelease as the name, because thats how I use them. (before and after an action).

But does key release happen only when you let go of the key (actually on the release), or does it happen even if you are keeping the key down?

Sorry all the questions, but its not clear if its literally a “key Release” command.

KeyPress and KeyRelease were just names that pretended to be on press and release in GSE2. They weren’t. They were just added a bunch of stuff before and after a command. They were a variable but weren’t called a variable. In Bam’s case they have kept the name KeyPress and KeyRelease for convenience and familiarity with the past. In GSE3 the names of these has no significance. The only significance comes from where they are placed in the action blocks.

All those lines for the action are compiled into a stack. And each click the stack for that action is sent to WoW. WoW processes from the top down. KeyPress and KeyRelease in this context are header and footer to this action. If you hit Compile Template it will show you the stacks as it will send WoW when your macro executes. WoW will only process One GCD action from that stack and will ignore the GCd actions after that. So you can’t have two [Mod:alt] lines for example - the second will get blocked by the first. WoW has the rule one hardware action = one GCD ability.

GSE doesn’t run your macro - all it does is compile it so that when you press the button WoW executes the next stack.

1 Like