(continuing on from my other character I posted on, Oled)
Just tested it right now, I don’t have any problems going from one form to another, however, powershifting does cause the problem regardless of what form you do it in, so a macro such as
/cast !Swift Flight Form
used while in Swift Flight Form
will cause GetShapeshiftFormID() to return nil on every UPDATE_SHAPESHIFT_FORM event. (3 of them occur now during a powershift)
If you shift from one form to another, you get 4 UPDATE_SHAPESHIFT_FORM events. The first 3 have nil form IDs, and the last one gives the correct form.
It would appear that powershifting any form is missing that 4th UPDATE_SHAPESHIFT_FORM event which actually triggers from the updated form ID.
This is also breaking regular shifting as well, because during the time GetShapeshiftFormID() returns nil, you are unable to shift from one form to another, and receive the error message “You are in shapeshift form”
The only way to get around it appears to be to “/cancelaura Cat Form” (not even /cancelform!) and then shift into a new form!
Using an event trigger within my addon:
function events:UPDATE_SHAPESHIFT_FORM()
print(GetTime(), 'UPDATE_SHAPESHIFT_FORM', GetShapeshiftFormID())
end
Results:
In Travel Form, /cast !Travel Form
[01:42] 1060952.226 UPDATE_SHAPESHIFT_FORM nil
[01:42] 1060952.368 UPDATE_SHAPESHIFT_FORM nil
[01:42] 1060952.368 UPDATE_SHAPESHIFT_FORM nil
In Travel Form, /cast !Cat Form
[01:43] 1061016.341 UPDATE_SHAPESHIFT_FORM nil
[01:43] 1061016.448 UPDATE_SHAPESHIFT_FORM nil
[01:43] 1061016.448 UPDATE_SHAPESHIFT_FORM nil
[01:43] 1061016.448 UPDATE_SHAPESHIFT_FORM 1 (1 is Cat Form's FormID which is correct)
I would also like to ask Blizzard, is there some reason we have more than 2 UPDATE_SHAPESHIFT_FORM event triggers per shift? I would expect it to be 1 event for form to form, and 2 events for a powershift, the first one being nil for GetShapeshiftFormID() (since you’re technically losing form for a short moment before going back into the previous form).
With that being said, is there a reason we even have to leave form for a split second during a powershift? Is it just like this to emulate original TBC? It would make more sense for a powershift to just refresh the form rather than drop it and reshift in the same global.