Jump to content
Sign in to follow this  
whatisgoingon

Cancelaura script without Supermacro?

Recommended Posts

What type of  /cancelaura (cancel buff) script does work in this current WoW version, not having to requiring the use of Supermacro?

What working script is there?

for mage's "Slow Fall for" example

What already inbuilt API function does Supermacro's /unbuff call?

Share this post


Link to post
Share on other sites

Not an API call, it makes as if you mouseover the buff and displays it's tooltip on another hidden tooltip then it reads the first line where it gets the buff name and it repeat that for every buffs until it find the correct one, or not.

You won't be able to fit that in the 255 char macro limit, you'll have to use SuperMacro and use /unbuff (same goes for your other thread with items).

If you really don't like SuperMacro you could browse the code, copy those functions and paste them in another addon (or in a custom one).

Share this post


Link to post
Share on other sites

Mage's slow fall would be: /script local i=0 g=GetPlayerBuff while not(g(i) == -1)do if(strfind(GetPlayerBuffTexture(g(i)), "Spell_Magic_FeatherFall"))then CancelPlayerBuff(g(i))end i=i+1 end

For actual buffs you need to remove the texture. To find the texture, target yourself with the buff and /script function m(s) DEFAULT_CHAT_FRAME:AddMessage(s); end for i=1,16 do s=UnitBuff("target", i); if(s) then m("B "..i..": "..s); end s=UnitDebuff("target", i); if(s) then m("D "..i..": "..s); end end

For other things, e.g. rogue's stealth, you can just use 'Stealth' instead.

Share this post


Link to post
Share on other sites
1 hour ago, Moiz said:

Mage's slow fall would be: /script local i=0 g=GetPlayerBuff while not(g(i) == -1)do if(strfind(GetPlayerBuffTexture(g(i)), "Spell_Magic_FeatherFall"))then CancelPlayerBuff(g(i))end i=i+1 end

For actual buffs you need to remove the texture. To find the texture, target yourself with the buff and /script function m(s) DEFAULT_CHAT_FRAME:AddMessage(s); end for i=1,16 do s=UnitBuff("target", i); if(s) then m("B "..i..": "..s); end s=UnitDebuff("target", i); if(s) then m("D "..i..": "..s); end end

For other things, e.g. rogue's stealth, you can just use 'Stealth' instead.

incredible that this takes so much writing. thanks to the both of you, i'll check it out

Edit and the first one works. How would this look like to put /cast slow fall into the macro then? one click applying, one click removing

Share this post


Link to post
Share on other sites

/script CastSpellByName("Slow Fall")
/script local i=0 g=GetPlayerBuff while not(g(i) == -1)do if(strfind(GetPlayerBuffTexture(g(i)), "Spell_Magic_FeatherFall"))then CancelPlayerBuff(g(i))end i=i+1 end

works, awesome!

anything unnecessary in it?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×