- Code: Select all
function GetForm()
a,b,c,d = GetShapeshiftFormInfo(1); -- bear
if ( c ) then
return 1;
elseif ( d ) then
return 0; -- caster
end
a,b,c = GetShapeshiftFormInfo(3); -- cat
if ( c ) then
return 3;
end
a,b,c = GetShapeshiftFormInfo(4); -- travel
if ( c ) then
return 4;
end
a,b,c = GetShapeshiftFormInfo(2); -- aquatic
if ( c ) then
return 2;
end
return 0;
end
What this does is return an integer that shows my current form. For bear form, I'm using this macro:
- Code: Select all
/script f=GetForm(); if f==0 then cast("Bear Form") elseif f==1 then cast("Feral Charge") elseif f ~= 1 then RunMacro(2) end
This gets my current form. If I'm in caster form, it switches to bear form. If I'm in bear form, it casts feral charge. If I'm in any form other than bear, it runs macro 2. Here's macro 2:
- Code: Select all
/unbuff Bear Form
/unbuff Dire Bear Form
/unbuff Cat Form
/unbuff Travel Form
/unbuff Aquatic Form
So this is a macro I can spam in any form, and it will put me in bear and cast feral charge. I used macros like this when I played vanilla live, though the ones I used back then were simpler.
This macro works great. But I made a similar one for cat:
- Code: Select all
/script f=GetForm(); if f==0 then cast("Cat Form") elseif (f==3 and not buffed("Prowl")) then cast("Prowl") elseif f ~= 3 then RunMacro(2) end
This puts me in cat form without a problem. However, when I'm in cat form and I use it again, it prints "Must be in cat form" and then switches back to caster form. It's like the game isn't aware I'm in caster form.
Any ideas?