Travelling like a player: gryphons, hippogryphs and portals
Anticipation: around level 10, everyone will have to leave their starting zone, and some are islands (Teldrassil, Azuremyst Isle). Autonomous players can now discover flight points by talking to flight masters, take a multi-hop flight to a known flight point, and use a portal when the destination cannot be reached on foot.
- Commit
- 71c6e29
- Build
- Build success (2 min) · Target worldserver
Why now
With 100 players between levels 4 and 8, the first departures from starting zones are near. Night elves are on Teldrassil (a tree on an island), draenei on islands, blood elves far from the Eastern Kingdoms. On foot, there is no way out.
How
- Discovery: when passing within 150 m of a flight master whose flight point is unknown, the character talks to it (
CMSG_TAXIQUERYAVAILABLENODES), which learns the flight point as for a client. - Flight: for a destination more than 1,200 m away, look for the known flight point nearest to the destination, then a route by breadth-first search over the DBC links, using only known flight points. If the air route is clearly shorter, the character walks to the flight master and activates the flight (
CMSG_ACTIVATETAXIEXPRESS), paid as for everyone. - Portals: when the destination cannot be reached on foot, look for a teleport trigger on the same map that brings it closer (e.g. Darnassus ↔ Rut'theran), then
CMSG_AREATRIGGERon entering it. - Both combine: if the flight master itself cannot be reached on foot, a portal first.
Races born on an island know an exit flight point from the start (night elves know Rut'theran and Auberdine).
Fix
A ghost that had to go to the spirit healer only looked within 80 m; it now walks to the nearest known graveyard.