shame there isn’t an easy way to use travel form in conjunction with this. Well…there is…but it requires dealing with the error messages that will arise from it. Which…also doable I think, but…just wish there was an easier way.
So currently it’s two buttons, one for dragonriding mount, other for my travel form outside, kitty form inside macro.
Don’t know why they didn’t at least add a conditional for dragonriding for macros.
This is my druid mount macro: #showtooltip
/cast [mod:shift] Mechanized Lumber Extractor
/cast [mod:alt] Highland Drake
/cast [mod:ctrl] Grand Expedition Yak
/cast Travel Form(Shapeshift)
It will throw an error if you press it with the alt modifier when not in the Dragon Isles then cast travel form anyway.
Im using that now, but in the past its been really wonky acting which is why i switched to macros
IF it can behave itself, yeah, its the easiest way to do it.
My biggest issue with [dragonridable] is it’s a valid condition in all locations. Cant use your dragonmount in Storm Wind but the macro will still try to use you dragonmount.
The only way the macro will work as expected is to do multiply lines:
/cast dragonmount
/cast [flyable] flying mount
/cast [noflyable] groundmount
you still see a warning message when using it in non-dragonmount flying areas but it works.
My version of the macro #showtooltip
/cast [nomounted, dragonridable] Highland Drake
/cast [nomounted, flyable] Headless Horseman’s Mount
/cast [nomounted, noflyable] Headless Horseman’s Mount
/dismount [mod:shift;mounted]
/cast Master Riding
I use /dismount [mod:shift;mounted] so I dont accidentally dismount.
I use /cast Master Riding so I dont have a ? when mounted for the macro icon.
I tried the conditional on its own, and it seems to do nothing, whether seperate lines or not. It also still tries to summon the dragon for me in old zones, rather than my flying mount. Are you sure it’s a real conditional? I’m not running that many addons, and none should be interferring.
I made some minor changes but it does what you need.
/dismount [mounted]
/run local z,l,m=C_Map.GetBestMapForUnit("player"),{2022,2023,2024,2025,2026,2085,2093,2112,2134,2135},82;for i=1,#l do if z==l[i] then m=1563 end end;if m==82 and IsFlyableArea() then m=363 end;C_MountJournal.SummonByID(m)
OH! I found that before, but I was looking at the “Display ID” column and thinking the numbers didn’t make sense with what you had posted before. Then I finally realized just now that it’s the far left column where it says ID!
Thanks for all of your help! I really appreciate it!
Hey, thank you so much for this! Is there any chance you could explain where the mount IDs for DR, flying, and ground go? I think I’ve identified them all, but I just want to be sure I’m not breaking the code.
Additionally, is there a way to add a modifier (shift) to get the transmog yak?
In the script:
82 is the ground mount ID (it’s in two places - change both to match)
363 is the flying mount ID (Invincible)
1563 is the dragonriding mount ID (Highland Drake)
The script as given is already 243/255 characters used - I haven’t really looked into it, but I suspect that adding a check for modifier keys would make it too long.
I also use shift for the Yak, individual mounts per character, and I’m trying to avoid add-ons as much as possible. I do enjoy playing with macro conditionals though, so this is what I’ve come up with so far (Paladin version - all mounts/spells can be replaced with class-specific alternates, including Travel Form):
It does try to call the dragon by default in all no-fly zones, but I decided that I can live with having to press alt for the ground mount when I’m in Oribos, etc.
I added a line so that if you are swimming you will summon your swimming mount (or in Nazjatar) but if you hit the macro again you will switch to the other mount
/run CastSpellByName((GetRealZoneText()==“Nazjatar” or IsSubmerged()) and “Subdued Seahorse”)
/cast [nomounted,flyable] dark phoenix;
/cast [nomounted] cliffside wylderdrake;
/cast [nomounted,noflyable] smoky charger;
/dismount [mounted];