Thread Tools Display Modes
04-10-23, 08:52 PM   #1
fullmoon_sulfuras
A Fallenroot Satyr
Join Date: Dec 2019
Posts: 21
Macro to swap the talent set and the equipment set

Hi! I'm trying to come up with a macro to swap to a equipment set and the talents.

I play a enh shaman, and sometimes I go OS for healing. So I'd like a macro that:

1. Switches to the secondary talent set
2. Switches to a specific equipment set from the equipment manager

Switching to resto:

Code:
#showtooltip Healing Wave
/script C_EquipmentSet.UseEquipmentSet(0)
/script SetActiveTalentGroup(2)
The problem is that the switch to Enh macro:

Code:
#showtooltip Stormstrike
/script C_EquipmentSet.UseEquipmentSet(1)
/script SetActiveTalentGroup(1)
I get a "You cannot dual-wield" error, which makes sense, I need to first switch the talents. So:

Code:
#showtooltip Stormstrike
/script SetActiveTalentGroup(1)
/script C_EquipmentSet.UseEquipmentSet(1)
But now I get a "You can't do that right now"; the talent set gets swapped, but not the gear. So I tried a function:

Code:
#showtooltip Stormstrike
/script function enh() SetActiveTalentGroup(1) C_EquipmentSet.UseEquipmentSet(1) end enh()
That also gives me a "You can't do that right now" error.

It seems that the WoW client is trying to run the function calls simultaneously.

Is there any way to run one and then the other? Maybe an if-end block with an and?

Thanks!
  Reply With Quote
04-12-23, 04:21 PM   #2
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 2,313
An addon can do it since apparently, even though equipping individual items is protected, triggering set swaps through the equipment manager isn't. It would be easier if neither set required a talent to equip. I have a DK macro for example that swaps between tank and DPS sets and talents by swapping the set first, then spec.

As you've run into already, this doesn't work for your setup as your enhancement set required the dual wield talent. Some addons provide a delay command or you can use C_Timer.After() to delay a Lua function call, but this also causes some issues on its own as the timer inherently cannot be canceled. This also doesn't account for any lag you may experience or canceling the talent swap.



If you wish to continue this route, here's an example macro.
Code:
/run SetActiveTalentGroup(1) C_Timer.After(3,function() C_EquipmentSet.UseEquipmentSet(1) end)
This should swap your equipment set 3 seconds after triggering a spec change. I don't remember how long it takes to apply a spec, so this delay may need to be adjusted.
__________________
WoWInterface AddOns
"All I want is a pretty girl, a decent meal, and the right to shoot lightning at fools."
-Anders (Dragon Age: Origins - Awakening)

Last edited by SDPhantom : 04-12-23 at 04:30 PM.
  Reply With Quote
04-12-23, 06:13 PM   #3
fullmoon_sulfuras
A Fallenroot Satyr
Join Date: Dec 2019
Posts: 21
Thanks! Swapping the talents takes 5 seconds, so this works perfectly:

Code:
#showtoolip Bloodlust
/run SetActiveTalentGroup(1) C_Timer.After(6,function() C_EquipmentSet.UseEquipmentSet(1) end)
  Reply With Quote
04-13-23, 09:53 PM   #4
Tim
A Rage Talon Dragon Guard
 
Tim's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2008
Posts: 308
There is also this handy addon: https://www.wowinterface.com/downloa...WLoadouts.html
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » Macro Help » Macro to swap the talent set and the equipment set

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off