GSE: Sequences, Variables, Macros

GSE: Sequences, Variables, Macros

6M Downloads

Enhancement

woodgray opened this issue · 6 comments

commented

Most casts are:
Cast time + global cool down(gcd) + cool down (A type)
Normally cast time and gcd run the same on the A type
Cast time + global cool down ( B type)
Normally cast time and gcd run the same on the B type
Cast time no gcd + cool down (C type)
Cast time (instant or otherwise fractional second) (D type)
Exceptions (E type)
Ok, the question is can you:
Create a Sequence event with two windows one that will be priority casts the other sequential casts.
There are many casts I want to prioritize as soon as they come off various cool downs others I want sequential
So would be
Priority
/cast A
/cast C
/cast E
Sequential
/cast D-1
/cast D-2
/cast D-3

Looks Like This * reps casts
First 3 runs
Priority
/cast A *
/cast C *
/cast E *
Sequential
/cast D-1 * Run 1 Run 2 Run3
/cast D-2 Run 1 * Run 2 Run 3
/cast D-3 Run 1 Run 2 *Run 3

commented

Isn't that similar to
Priority
/cast A
/cast C
/cast E
/castsequence D-1,D-2,D-3

commented
commented

Making the assumption (above example ) (priority)
The first 3 casts are on cool down The next item would be 4 (no manipulation that I can see)
The problem is then 4-5 because control cant be passed?
What about on creation of script the items in the priority and sequential portions are counted. ie loop count Priority = 3 loop count Sequential =2 then use pointers?

commented

You're missing the fundamental thing. Its not about control its about choice. Blizzard blocks Macros making any choice in regards to state. Priority works not because it knows that something is off cooldown but because it mathematically cycles through the macro over and over and tries it available or not. It just follows the progression playing probability and increasing the chances of a priority item being selected over a non priority one.

The internal loop code executes PreMacro and PostMacro sequentially while the loop itself is priority. You could put the sequential part in PostMacro and set a loop limit of 1. That means that it goes 1 1 2 1 2 3 4 5 6 and repeats. All it is doing is changing the mathematical cycle its not evaluating either if you CAN cast something.

There is no way to evaluate if something has come off cooldown and to use it instead of doing something else. BLIZZARD EXPLICITLY BLOCKS THIS.

commented

That's exactly what I mean. I does not matter what happens with the cast(they are a binary action). Its the sequence math I am talking about. 1 1 2 1 2 3 4 5 6 is fine. The problem with the math is it is sequential even with priority.
If someone is mashing a button for a macro its an action separate from the sequence. It just starts the macro(step). The result is either the step casts or not which is controlled by the Blizzard time function mostly. The macro time function is controlled by the player.
So if the first 3 steps are 1 12 123 (loop) count (3)=x then the next action is 1 2 3 4 then 1 2 3 5 (4 5) loop count (2)=y
So
x=3
y=2
variable sp = step plus math
variable pp = step plus math
Its been years sense I did any programing. When I went to school we had to use punch cards for assignments. Sorry if I am missing the point.

commented

I can create teh GUI but the WOW Sandpit will reject the logic and stop with a "Interface action blocked" error. For a ton more information see:
https://wowlazymacros.com/forums/topic/fyi-attempt-at-a-proc-watching-macro-result-interface-action-blocked/