Ozzi said:

    In Dragonflight zones its best to use a macro.

    /stopmacro [indoors]
    /cast [advflyable]
    Renewed Proto-Drake
    /cast [flyable] Sunwarmed Furline; [noflyable] Gilded Ravasaur
    /cast [swimming] Subdued Seahorse
    /dismount [mounted]

    Just replace the Renewed Proto-Drake with any of these if you’d like a different Dragonflight mount.
    Renewed Proto-Drake = Unlocked in The Waking Shores
    Windborne Velocidrake = Unlocked in Ohn’ahran Plains
    Highland Drake = Unlocked in The Azure Span
    Cliffside Wylderdrake = Unlocked in Thaldraszus
    Winding Slitherdrake = Unlocked in Zaralek Cavern

    Note: [advflyable] (IsAdvancedFlyableArea()) condition was added in 10.0.7. You may notice while in Dragonflight zones you will mount up on your chosen Dragonriding mount and if pressed macro keybind again after mounting up you will dismount and mount on your flyable mount, that’s because they both are flyable technically and Dragonflight zones can still ride flyable mounts but ground bound.

    Note 2: You can replace /cast with /use, it doesn’t really matter which one is used.

    Note 3: You can change [advflyable] to [advflyable, nomounted] do the same for the rest including [swimming] and then add /dismount [noflying, mounted], this will now stop dismounting while flying, saves those accidental deaths. However, the macro icon will break and will need to have #showtooltip and the mount you want the tooltip to be. eg., #showtooltip Tyrael’s Charger and tooltip will show the info for that mount.

    Macro Breakdown:
    #showtooltip <- this affects the tooltip and icon to be shown
    /stopmacro [indoors] <- this will trigger only if the conditional ‘[indoors]’ is met, it will not do anything while indoors and shows no errors. This can be removed
    /cast [advflyable] mount name <- if in Dragon Isles it will cast the mount you chose.
    /cast [flyable] mount name <- if anywhere that allows flight it will cast the mount you chose.
    /cast [noflyable] mount name <- if flight is not allowed it will cast the mount you chose.
    /cast [swimming] mount name <- if swimming it will cast the mount you chose.
    /dismount [mounted] <- this will trigger if mounted or flying.
    /dismount [mounted, noflying] <- this will trigger if you are mounted and on the ground, it will not trigger while flying.

    You can modify the macro to how you like it, that’s close to what you want. Maybe Dugi can look at this and perhaps incorporate this in the auto mount feature of his addon.

    Another version:

    /stopmacro [indoors]
    /cast [advflyable]
    Renewed Proto-Drake; [flyable] Sunwarmed Furline; [noflyable] Gilded Ravasaur; [swimming] Subdued Seahorse
    /dismount [mounted]

    This macro does the exact same thing as the earlier one except it’s utilizing the one /cast or /use command. This new macro has 184 characters where as the earlier macro is using 194 characters. If you did want the non dismount while flying this new version would work better.

    Non Dismount While Flying:

    #showtooltip Renewed Proto-Drake
    /stopmacro [indoors]
    /cast [advflyable, nomounted]
    Renewed Proto-Drake; [flyable, nomounted] Sunwarmed Furline; [noflyable, nomounted] Gilded Ravasaur; [swimming, nomounted] Subdued Seahorse
    /dismount [mounted, noflying]

    This non dismount macro is using 235 characters and falls short of the max 255 character limit. If you were to add /dismount [indoors] it would just fit in sparing 1 character to reach max. 👍😉

    I hope these macros help.

    Thank you so much! This will help a lot! You are awesome! =)

    A hope Dugi can add this to addon with automount future.