Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flying in Dalaran #185

Open
Stanzilla opened this issue Oct 18, 2022 · 13 comments
Open

Flying in Dalaran #185

Stanzilla opened this issue Oct 18, 2022 · 13 comments
Labels
type: bug A small patch

Comments

@Stanzilla
Copy link

WoW Version

WotLK (3.4.0)

Bestride Version

2.0.4

Steps to Reproduce

  1. Have a flying mount in your mount list
  2. Try to mount in dalaran

Observed Behavior

In Wrath Classic, flying is disabled in Dalaran itself minus the landing pad

Would be cool to make the addon check for that and use a ground mount instead

@Stanzilla Stanzilla added the type: bug A small patch label Oct 18, 2022
@chon379
Copy link

chon379 commented Oct 21, 2022

Mine works exactly like this. Try reinstalling addon maybe?

@yannlugrin
Copy link
Contributor

This addon work only if your client is in English, German, Korean, and Taiwan language. I made it work for WotLK in French in PR #187

@Stanzilla
Copy link
Author

My client is English

@Stanzilla
Copy link
Author

WowClassic_2022-10-22_20-09-58.mp4

Here's a video

@DanSheps
Copy link
Collaborator

DanSheps commented Oct 22, 2022

Do you have "always use flying mount" enabled? This is for mainline/retail and doesn't work in classic.

It is on the to-do list to disable in Wrath but I haven't gotten to it yet.

@Stanzilla
Copy link
Author

Do you have "always use flying mount" enabled? This is for mainline/retail and doesn't work in classic.

It is on the to-do list to disable in Wrath but I haven't gotten to it yet.

Doesn't look like it
image

@b-morgan
Copy link

With version 2.0.6 on Wrath version 3.4.0 BeStride mostly works in Dalaran with one exception, The Underbelly (but only on one side of the sewers). At 25.05, 42.73 I am in The Underbelly and my ground mount is chosen but at 61.20, 45.52 I am in The Underbelly but I get "You can't use that here." error message.

The macro I am using is:

/click [nomounted,nomod] BeStride_ABRegularMount; [nomounted,mod:shift] BeStride_ABGroundMount; [nomounted,mod:ctrl] BeStride_ABPassengerMount; [nomounted,mod:alt] BeStride_ABRepairMount;
/dismount [mounted]

@yannlugrin
Copy link
Contributor

I have the same issue but didn't take the time to check why yet.

@DanSheps
Copy link
Collaborator

DanSheps commented Nov 19, 2022 via email

@b-morgan
Copy link

@DanSheps, It's a Blizzard error because BeStride incorrectly choose to use a flying mount instead of a ground mount.

The macro below while in Dalaran proper chooses the "Swift Purple Wind Rider" because Dalaran is "flyable" and I get the same error. BeStride_ABRegularMount, however, correctly chooses a ground mount. I haven't analyzed the logic completely but how ever BeStride is determining that a ground mount should be used in Dalaran (and in one side of The Underbelly) should also work on the other side of The Underbelly.

If I need to capture more information, please let me know.

#showtooltip
/cast [nomounted,flyable,nomod] Swift Purple Wind Rider; [nomounted,mod:shift] [nomounted,noflyable,nomod] Dreadsteed; 
/use [nomounted,mod:ctrl] Felsteed;
/use [nomounted,mod:alt] Veridian Netherwing Drake;
/dismount [mounted]

@yannlugrin
Copy link
Contributor

In some place of the Underbelly, BeStride:GetMapUntil(mapID,3) in method BeStride:IsFlyable() return id 127 but IsFlyableArea() return true unless most area of the Underbelly.

@yannlugrin
Copy link
Contributor

More information :

  • C_Map.GetBestMapForUnit("player") return 126 in the Underbelly.
  • BeStride:GetMapUntil(mapID,3,true)with mapIDset to 126 return zone 127, it's the Crystalsong Forest.
126:Dalaran:4:127
127:Crystalsong Forest:3:113

According to this random source (don't know the value of this website, its a quick research), id 125 and 126 are both Dalaran, the second one is for the Underbelly. So we could block this zone too.

But the trade-off will be that we could not use the filing mount in the underbelly exit going out under Dalaran (where the flying mount works).

So as @DanSheps said, it's a bug in wow itself, the method IsFlyableArea() returning true in some non-flyable areas.

@yannlugrin
Copy link
Contributor

yannlugrin commented Nov 20, 2022

I do not like to write this kind of exception, but this works:

if zone.mapID == 127 then
	local posX, posY = C_Map.GetPlayerMapPosition(zone.mapID, "player"):GetXY()
	if posY <= 0.4 then
		return false
	end
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug A small patch
Projects
None yet
Development

No branches or pull requests

5 participants