? step function in BM HP macro

The BM 'HP_RBMAoE’and ‘HP_RBMmain’ m,acros use the StepFunction = GSStaticPriority, command
and then their body has repeated casts - that is Beastial Wrath and Kill command are repeated twice . . .

“/cast [nochanneling] Bestial Wrath”,
“/cast [nochanneling] !Kill Command”,
“/cast [nochanneling] Dire Frenzy”,
“/cast [nochanneling] Multi-Shot”,
“/cast [nochanneling] Titan’s Thunder”,
“/cast [nochanneling] !Kill Command”,
“/cast [nochanneling] Bestial Wrath”,

I don’t understand this. My understanding of the staticpriority step function is that it is a priority list - try 1, try 1 and then 2, try 1 and then 2 and then 3 . . . if I understand that correctly why would you repeat casts in the body?

To quote TimothyLuke’s explanation on how GS-E works, in the thread that I originally post those macros:

[quote]The Way GS-E works is that when you press the button it cycles through the /cast lines but it does it like this:

Click or Button Press 1: Do all the PreMacro lines, “/cast [nochanneling] Bestial Wrath”, Do all the PostMacro Stuff

Click or Button Press 2: Do all the PreMacro lines, “/cast [nochanneling] !Kill Command”, Do all the PostMacro Stuff

Click or Button Press 3: Do all the PreMacro lines, “/cast [nochanneling] Intimidation”, Do all the PostMacro Stuff

Click or Button Press 4: Do all the PreMacro lines, “/cast [nochanneling] Dire Frenzy”, Do all the PostMacro Stuff

Click or Button Press 5: Do all the PreMacro lines, “/cast Barrage”, Do all the PostMacro Stuff

Click or Button Press 6: Do all the PreMacro lines, “/cast [nochanneling] Titan’s Thunder”, Do all the PostMacro Stuff

Click or Button Press 7: Do all the PreMacro lines, “/cast [nochanneling] !Kill Command”, Do all the PostMacro Stuff

Click or Button Press 8: Do all the PreMacro lines, “/cast [nochanneling] Bestial Wrath”, Do all the PostMacro Stuff[/quote]

^^ Thanks . . . . but while Yes I agree that is the default behavior of GS-E to step thru the body like that . . . if you use the StepFunction = GSStaticPriority command then the default behavior is modified to a ‘Priority list’ rather than a pure step sequence. Or at least this is what it very clearly says at Home · TimothyLuke/GSE-Advanced-Macro-Compiler Wiki · GitHub.

“GSStaticPriority - This is a special predefined StepFuntion that is used for Priority lists. For example you have 4 abilities with the first being the highest priority and the last being the lowest priority. in a sequence this overides the sequential behaviour that is standard in GS-E. Without a (static priority) step function it will cycle Cast 1, Cast 2, Cast 3 and then back to Cast 1. If something is on cooldown it will just skip to the next spell. With that step function it will try Cast 1 first. Then It will try Cast 1 and if that is on cooldown go to Cast 2. Next it will Try Cast 1 and if it is on cooldown, Cast 2 and if that is on cooldown cast 3.”

As a priority list you don’t need to repeat casts in the body. . . .and you need to make sure it is actually listed in priority order rather than sequence order.

Right?

Here is my old orignal beta GS macro that my GS-E macro is based on.

Sequences['RBMmain'] = {
StepFunction = [[
order = newtable(1, 2, 3, 4, 5, 3, 1)
newstep = (newstep and (newstep % #order + 1)) or 2
step = order[newstep]
    ]],
PreMacro = [[
/cast [@pet,dead]Heart of the Phoenix
/targetenemy [noharm][dead]
/petautocastoff [group] Growl
/petautocaston [nogroup] growl
/cast [@focus,help][help][@pet,exists] Misdirection
]],
PostMacro = [[
/startattack
/use [combat]11
/use [combat]13
/use [combat]14
/script UIErrorsFrame:Clear()
/console Sound_EnableSFX 1
]],
 
-- Macro1
[[
/cast [nochanneling] Bestial Wrath
]],
-- Macro2
[[
/cast [nochanneling] !kill command
]],
-- Macro3
[[
/cast [nochanneling] Dire Frenzy
]],
-- Macro4
[[
/cast [nochanneling] Concussive Shot
]],
-- Macro5
[[
/cast [nochanneling] Cobra Shot
]],
}

Cast sequence order was 1, 2, 3, 4, 5, 3, 1. Now I might have made an error in adding the GSStaticPriority line. But I had issues getting the macro to work or MyMacros to even load at the time. It was one of the many changes I made to get them to work. Latter today I will test them without the GSStaticPriority line, and get back to you about it. I have been up all night testing out other macros.

^^ Thanks . . . . I think you are quite close . . . . From Azor’s guide . . . .

"The single target rotation for a Beast Mastery Hunter is based on the following priority system.

  • Cast Titan’s Thunder on cooldown and when Dire Beast is active.
  • Use Dire Beast, or Dire Frenzy if you have taken this talent.
  • Cast Kill Command.
  • Cast Cobra Shot Icon Cobra Shot when you have over 90 Focus."

So, my understanding is that the BM rotation is in fact a near pure priority system (unlike MM) and that your list order is in fact in the correct priority order . . . . except for the repeated items at the bottom, and I am not sure where/how concussive shot should be placed.

Concussive shot is actually a meaningful issue for me because one of my hunters got Sephuz’s Secret, which procs off cc’s - it is a terrible legionary for PvE but I need to figure out the best way to utilize it.

Anyway . . thanks for the good work

Concussive Shot is in because it does more damage then Auto Shot, and uses very little focus; Making it an OK substitute for our old Arcane shot

^^ ah, interesting, thanks, I did not realize that concussive did any damage at all. But just looked at in a log and it does - so learned something new :slight_smile:

I actually discovered just after I wrote that above that it does in fact NOT proc my legionary ring - seemingly only only Wyvern Sting and binding shot do.

[quote quote=33230]^^ Thanks . . . . but while Yes I agree that is the default behavior of GS-E to step thru the body like that . . . if you use the StepFunction = GSStaticPriority command then the default behavior is modified to a ‘Priority list’ rather than a pure step sequence. Or at least this is what it very clearly says at https://github.com/TimothyLuke/GnomeSequenced-Enhanced/wiki/Creating-Sequences.
“GSStaticPriority – This is a special predefined StepFuntion that is used for Priority lists. For example you have 4 abilities with the first being the highest priority and the last being the lowest priority. in a sequence this overides the sequential behaviour that is standard in GS-E. Without a (static priority) step function it will cycle Cast 1, Cast 2, Cast 3 and then back to Cast 1. If something is on cooldown it will just skip to the next spell. With that step function it will try Cast 1 first. Then It will try Cast 1 and if that is on cooldown go to Cast 2. Next it will Try Cast 1 and if it is on cooldown, Cast 2 and if that is on cooldown cast 3.”
As a priority list you don’t need to repeat casts in the body. . . .and you need to make sure it is actually listed in priority order rather than sequence order.
Right?
[/quote]

This is right on paper.

The fun part though is that there are exceptions that prove the rule. There are cases where repeating even with a priority step funciton will achieve the result you are after in that though it may be on cool down first check it may be back second check and by repeating it you in effect are stacking the deck.

GS-E is a black art that takes a bunch of exposed Blizzard API’s and puts them together in a way that was not originally intended. This is both GS-E’s strength and its weakness. You can have two people, same level but one has mastery and the other haste and the results of the same macro can be completely different. Different Lag timings can change the outcome of two completely similar players. You cant predict every outcome so need to take into account an unknown element.

I have a question, im sure its dumb. on some GS-E macros the double quote is used " and on some the single is used ’ does it matter which one you you use to enclose commands. I guess what I mean is will both of these work using GS-E

“/cast [nochanneling] !Kill Command”,

‘/cast [nochanneling] !Kill Command’,

Just trying to understand why i see ’ or " in different posts.

thanks

Answered in your other thread.

Tim, Thanks . . . . yea it is a bit of a black art :slight_smile: but BM is a pretty simple rotation and I at least am getting great dps with a ‘no repeat’ priority macro here.

MM is a different story. I still have not got anywhere near an ‘optimized’ macro for it yet. I have given up trying to build one or two (ST/AOE) simple macros and am working on multiple macros for the several proc stages from opener to marking target to vulnerable (with and without barrage). But still have not got it quite right - as some of those stages are a mix of priority and sequence rotation , which seems hard to build.

Ok I have tested it out and I am getting better DPS without the GSStaticPriority line.

I presume that taking the staticpriority out and leaving the repeats in and concussive shot in that cobra gets cast less often and the focus stays higher?

With the staticpriority I found my focus drops lower than I like, and it is casting cobra (too often) when it should not (ideally only when you have high focus). Taking static priority out and keeping the duplicate lines and the concussive shot should ‘dilute’ the cobra usage a bit.

slightly off topic question - regarding /targetenemy . . . . if I use [exists] it will only target and start attacking a new enemy if one has been aggro-ed already? Is that what [exists] does? I know there is a check box in GS-E now for this but am interested learning for general macro purposes.

Due to changes Blizzard made in the pets(for the lack of a better term) AI, I have removed all attack portions of my macros. I have made the following non-GS-E targeting macro, that I have hot keyed it to a key I can easily hit with my thumb, and use as needed.

/cleartarget [dead]
/assist [@focus,exists][@pet,exists]
/targetenemy [noharm][noexists]
/petassist

[quote quote=33518]I presume that taking the staticpriority out and leaving the repeats in and concussive shot in that cobra gets cast less often and the focus stays higher?

With the staticpriority I found my focus drops lower than I like, and it is casting cobra (too often) when it should not (ideally only when you have high focus). Taking static priority out and keeping the duplicate lines and the concussive shot should ‘dilute’ the cobra usage a bit.

slightly off topic question – regarding /targetenemy . . . . if I use [exists] it will only target and start attacking a new enemy if one has been aggro-ed already? Is that what [exists] does? I know there is a check box in GS-E now for this but am interested learning for general macro purposes.[/quote]

I tried testing this some, seems clunky and Kill command was not being cast when it was off CD and had sufficient focus. also Dire Beast/Frenzy was also not being cast as often. I dont think this is 100% fix, or at least when I tested it on some mobs doing World Quests grinding, it seemed leaving the statpriority in may have you be a bit starved for focus beacuse CS is used to much, but i have KillCommand on diff button that if its off CD and i have focus, i stop the macro and fire off KC. i dont like it but that seems to let me cast KC more often. not as lazy as i would have guessed. maybe some more tweeking or adjusting , but we need something that only will cast CS or anyother shot only when u have over x focus so when kill command comes off cool down it gets fired off. its the most important command …

[quote quote=33587]

I presume that taking the staticpriority out and leaving the repeats in and concussive shot in that cobra gets cast less often and the focus stays higher?
With the staticpriority I found my focus drops lower than I like, and it is casting cobra (too often) when it should not (ideally only when you have high focus). Taking static priority out and keeping the duplicate lines and the concussive shot should ‘dilute’ the cobra usage a bit.
slightly off topic question – regarding /targetenemy . . . . if I use [exists] it will only target and start attacking a new enemy if one has been aggro-ed already? Is that what [exists] does? I know there is a check box in GS-E now for this but am interested learning for general macro purposes.

I tried testing this some, seems clunky and Kill command was not being cast when it was off CD and had sufficient focus. also Dire Beast/Frenzy was also not being cast as often. I dont think this is 100% fix, or at least when I tested it on some mobs doing World Quests grinding, it seemed leaving the statpriority in may have you be a bit starved for focus beacuse CS is used to much, but i have KillCommand on diff button that if its off CD and i have focus, i stop the macro and fire off KC. i dont like it but that seems to let me cast KC more often. not as lazy as i would have guessed. maybe some more tweeking or adjusting , but we need something that only will cast CS or anyother shot only when u have over x focus so when kill command comes off cool down it gets fired off. its the most important command .. [/quote]

Remove the exclamation marks(!) in front of kill command, in fact double check all of your macros and remove them.

I have been playing around with these macro, trying to improve them. Part of the problem has been hold over commands from GS and other previous, macro/addon systems. Placing an exclamation mark(!) as part of an action cast in macros, use to give that action priority over any other. However not it appears as far GS-E macros are concerned it has the opposite affect.

In the next few days I will make a new thread with all of the corrections I have made in my GS-E macros.

[quote quote=33606]Remove the exclamation marks(!) in front of kill command, in fact double check all of your macros and remove them.

I have been playing around with these macro, trying to improve them. Part of the problem has been hold over commands from GS and other previous, macro/addon systems. Placing an exclamation mark(!) as part of an action cast in macros, use to give that action priority over any other. However not it appears as far GS-E macros are concerned it has the opposite affect.

In the next few days I will make a new thread with all of the corrections I have made in my GS-E macros.[/quote]

Thanks, I will do that when i get home from work and test on a targetDummy see if KC goes off more often.

Also keep in mind that sometimes an action’s cool down, does not all ways line up with that action’s turn in a macros rotation lineup. So you still need to kep an eye on them and act accordingly.