IsFlyableArea() broken in new zones

So [flyable] IsFlyableArea() are broken again in the new zones, returning true even when you don’t have flying unlocked. I used to have a macro that check the current continent so my mount macro would summon the correct ground mount instead of my flying mount, but the functions it used have been removed. Anyone know of an updated version of something like this?

/run local c,s=GetCurrentMapContinent() s=(IsShiftKeyDown()and"Azure Water Strider")or(IsControlKeyDown()and"Grand Expedition Yak")or(c>-1 and c<7 and IsFlyableArea()and"Jade Pandaren Kite")or("Argent Charger")CastSpellByName(s)SetMacroSpell("M",s)

2 Likes

IsFlyableArea() identifies the zone’s amenability to flight (except for the known places it’s broken), not your ability to fly.

This is akin to saying “The minimum posted speed on the freeway is 45 m. p. h. but I can’t run that fast.”

Actaully, no it doesn’t. Almost everywhere else in the world it correctly reports whether you are able to fly in the zone or not.

3 Likes

Sorry, but that’s not how it works or what the function is advertised to do.

My 20th level toon in Orgrimmar returns true for IsFlyableArea().

My 120th level toon in Orgrimmar returns true for IsFlyableArea().

IsFlyableArea() has always returned information about the AREA (see last four letters of function name), albeit somewhat inaccurately for certain areas, irrespective of the toon you’re on when it’s called.

1 Like

Either way it’s not working right, it returns false for old BfA areas and true for the new ones. One of those values is wrong.

2 Likes

Yes there is some weird stuff going on with IsFlyableArea() and the [flyable] conditional that there even is an old lib specifically for that
https://www.wowinterface.com/forums/showthread.php?t=55977
https://github.com/phanx-wow/LibFlyable

/cast [mod:shift] Azure Water Strider; [mod:ctrl] Grand Expedition Yak; [nofly] Argent Charger ; Jade Pandaren Kite

and if [fly] and [nofly] don’t work correctly anymore, color me totally unsurprised, because it seems like every major patch whittles away at the macro features a little.

1 Like

It’s not that they don’t work anymore, it’s that the game devs incorrectly flagged the zones as always flyable. Like they do every xpac with every new zone they add. Because they make the same mistakes over and over, and never seem to remember that they did it.

And Ehiztari is wrong, it is how it works. It’s working right now in BFA zones, it worked in Legion zones if you didn’t have flying, what would be the point of the macro condition if it didn’t work like that?

1 Like

I’m not wrong.

It’s a check of the AREA not you.

It’s always been that.

I’ve already tested this in multiple zones.

In the same zone (one where flying is allowed and is flagged correctly), a 20th level toon without flying ability returns TRUE as does a 120th level toon with flying ability.

Repeating your false understanding of this conditional is not going to make it true no matter how many times you do it.

[extra text at start removed, didn’t see it before posting]

Which old BFA zones? Or do you mean all but the two new zones?

You are wrong, because it knows in BFA areas where flying is allowed now in 8.2. It picks my ground mount.

I don’t know how to explain this any clearer.

From what I understand IsFlyableArea() is supposed to return true when the player can actually fly (after all other conditions are met)

if allOtherConditionsForMountingAreMet then
    if IsFlyableArea() then
        summonHugeDragonOrRocket()
    else
        summonMountThatDoesntLookStupidOnTheGround()
    end
end

The Wowpedia docs on it still need to be updated

But it doesn’t always work like intended per MapID. I don’t know if it considers the Pathfinder achievement but I’m guessing it doesn’t, just like [Cold Weather Flying]

That’s why libraries like LibFlyable were made to fix that functionality

Source: https://www.wowinterface.com/forums/showthread.php?t=55977&page=2#21

the library should only be answering the question “if you summoned a flight-capable mount here (whether or not that’s blocked for some other reason) and pressed the spacebar, would it fly into the air or fall back to the ground?”

That’s what the real IsFlyableArea() is supposed to do, but fails in certain areas.

I don’t have a level 120 toon with BFA Pathfinder so I can’t say for sure if it’s bugged or not

1 Like

I’m not suggesting that BfA zones aren’t misflagged.

There are any number of zones that are misflagged.

The issue that I’m disputing is a claim that it’s a measure of both the area’s flyability (if flagged correctly by the developers) AND the individual toon’s skill at flying.

That has NEVER been true.

Whatever return you get from IsFlyableArea(), you’ll get the same return from every toon.

Ketho, that’s simply not true and it has never been true.

Orgrimmar - starting Capital City for horde and the oldest capital city flight was available in - this has ALWAYS been a measure of the AREA’s flyability, not the toon’s flyability.

That condition applied 10 years ago and it applies now.


Beginning of Legion - I’d been away for, oh, a few years (about 3). I started a new toon (this one), ran him up to level 40. Ran off and bought a flying mount. Set up a macro using the [flyable] macro to swap between my wolf and my brand new flying mount. Ran to the edge of the cliff in Orgrimmar to make my first, triumphant flight on my brand new flying mount (I dislike vertical jumps when I can avoid them - they look funny to me). Ran right off the edge of the cliff and went splat at the bottom.

I’d bought the mount but had forgotten that I needed to buy the skill as well.

The IsFlyableArea() is what implements the [flyable] macro conditional and it is ONLY a flag for whether or not players are allowed flight in that area. Yes, the Wiki is poorly worded giving the impression (to some readers) that it measures both the player’s ability to fly and the area as a flyable area, but the function name itself should tell you all you need to know and the function name is Blizzard. The Wiki is not.

1 Like

Well the only reason to have the [flyable] condition is for mount macros, so it SHOULD work as an indication of whether your player can fly at that moment in that place. If it doesn’t, then blizzard should change / fix it.

They won’t. They deliberately keep any kind of reactive-smarts stuff out of their macro language. So checking for the existence of buffs or conditional abilities is kind of against their mind-set.

There’s really no point in even having the [flyable] test then… what other possible purpose could it ever be used for?

Blizzard, probably correctly, assumes that you already know if your toon can fly.

I’m guessing it comes under the no-automation process.

It’s similiar to you having to know if you can cast a particular spell or if a cooldown is complete.

No, they just regularly misconfigure it…

My suspicion is it defaults to true and whoever is supposed to maintain it just forgets to add new zones/areas.