diff --git a/doc/clientless/SESSION-RESUME.md b/doc/clientless/SESSION-RESUME.md new file mode 100644 index 0000000000..f3999b96af --- /dev/null +++ b/doc/clientless/SESSION-RESUME.md @@ -0,0 +1,259 @@ +# Gesicherter Arbeitsstand – hier fortsetzen + +Stand: 27.10.2026. Der Nutzer hat die Implementierung ausdrücklich für einen +Codex-Sitzungswechsel unterbrechen lassen. Diese Notiz ist die maßgebliche +Übergabe. Nicht bei null beginnen und keine vorhandenen Änderungen verwerfen. + +## Sofort beim Wiederaufnehmen + +1. `AGENTS.md` und diese Datei lesen; Branch und Working Tree prüfen. +2. Ausschließlich `feature/clientless-player-core`, niemals `master`, kein Push. +3. Der unten beschriebene Berufs-Ausbau ist **unfertig und NICHT installiert**. +4. Der laufende Build wurde zur Sicherung geordnet mit SIGINT unterbrochen. + Vor erneutem Bauen trotzdem nach verbleibendem CMake/Ninja-Prozess sehen. + Keine zwei Builds gleichzeitig. Immer **`-j10`**, niemals `-j4`. +5. Neueste Compiler-/Teststände prüfen und die untenstehenden offenen Arbeiten + fortsetzen. Kein Installieren eines nur teilweise gebauten Standes. + +## Aktueller Auftrag und verbindliche Nutzerentscheidungen + +Wir arbeiten am Intent **Beruf (`profession`)**, nach Geselligkeit, Ruhe, +Freizeit, Wirtschaften und dem Abenteuer-Erkundungsausbau. Danach folgen +Instanzbesuche. Kampf kommt GANZ AM ENDE, gemeinsam mit reaktiver Selbstwehr +(z. B. bei Angriff während einer Reise). + +- Alle Berufsaktionen bleiben **dauerhaft rein performativ**. Es wird NICHT + tatsächlich abgebaut, gesammelt, gekürschnert, produziert, gefangen oder + geheilt. Keine Beute, Quellenerschöpfung, Inventar-/Materialänderung, + Fertigkeitserhöhung oder tatsächliches Erlernen. Nicht „zunächst“ schreiben. +- Hauptberufe dürfen NUR ausgeführt werden, wenn sie im Lua-Charakterprofil + ausdrücklich eingetragen sind. Nebenberufe brauchen diese Freigabe nicht; + Vorlieben werden später weiter über gewichteten Zufall ausgestaltet. +- Der Nutzer hat die Rückfrage ausdrücklich beantwortet: **Arthoran hat + Bergbau und Schmiedekunst**. In seinem Profil stehen deshalb dauerhaft + `professions = { primary = { "mining", "blacksmithing" } }`. + KEIN Kräutersammeln bei ihm erlauben, auch nicht vor vorhandenen Pflanzen. + Das generische Profil enthält eine leere Hauptberufsliste. +- Ort und Gebiet sind gleichberechtigte Ziele. Ein Bot soll z. B. das Gebiet + Elwynn anreisen und dort lokal selbst nach passenden Ressourcen suchen. +- **Hierarchie:** Tagesplan wählt Intent, dann passender importierter Ort, + dann lokal mögliche Mikroaktion. Der Ortsbestand darf die Intentauswahl + nicht vetoieren. Die Location-/Intent-Katalogzuordnung legt die Eignung fest. +- Eine für `profession` geeignete Location (auch ein ganzes Gebiet) schaltet + NICHT alle Berufsaktionen frei. Schmieden braucht einen echten nahen Amboss, + Schmelzen eine Esse, Kräutersammeln eine tatsächliche Pflanze UND Profilrecht. +- Gebietsanreise ist bereits vorhanden: `AdventureBehaviorMgr::AreaNode` + sucht einen ERREICHBAREN Graphknoten im Zielgebiet, `Begin` reist über + `travel_to_node`; die Ankunft wird gegen das Gebiet geprüft. +- Abenteuer soll regulär draußen in passenden Weltgebieten stattfinden. + Sturmwind ist nur Testgebiet; keine zusätzlichen Stadt-Sonderregeln bauen, + sondern passende gespeicherte Locations/Intent-Gewichte verwenden. +- Ausritte, Freizeit-Rundflüge und Schlafdarstellung sind auf Nutzerwunsch + weiterhin für spätere visuelle Tests zurückgestellt. Jetzt nicht testen. + +## Umgebung und Betriebszustand beim Sichern + +- Source: `/home/wow_admin/wow_cata_server/source/TrinityCore`. +- Build: `/home/wow_admin/wow_cata_server/build/debug`, Ninja, Debug. +- Install: `/home/wow_admin/wow_cata_server/server/debug`. +- Testserver: tmux `vcore-worldserver`, cwd `server/debug/bin`, `./worldserver`. +- Vor dem Sichern lief **PID 19058**, letzter installierter Abenteuer-Ausbau. + Diesen nicht blind wiederverwenden: Prozesszustand beim Fortsetzen prüfen. +- Arthoran: Charakter GUID **26**, Account 6, aktuell Abenteuer am importierten + Sturmwind-Ort `poi_tele_954`. Allitester GUID 21 kann als Zuschauer online sein. +- Der BERUFS-Ausbau wurde noch nicht installiert; SQL-Migration `_05` wurde + noch NICHT eingespielt. Der laufende Server ist daher der vorherige Stand. +- Arthorans normale Startvorgabe im gespeicherten Lua-Profil ist wieder + `social` / `goldshire_tavern`. Es gibt aktuell KEIN temporäres Login-Profil. +- Der letzte Build wurde mit j10 unterbrochen, bei 749/751 Schritten (libgame.a gelinkt; letzte Linkschritte noch offen). Die nächste + inkrementelle Ausführung kann normal weiterbauen; Objektdateien erhalten. +- Erster Build hatte nur den Fehler `Creature::GetDeathState` statt + `getDeathState`. Das wurde bereits korrigiert. Der daraufhin neu gestartete + Build hatte bis zur Unterbrechung keine weiteren gemeldeten Compilerfehler. +- CMake wurde mit den bestehenden Einstellungen neu ausgeführt, um die neue + `AdventureProfessionTargets.cpp` einzusammeln (CollectSourceFiles ohne + CONFIGURE_DEPENDS). Das löste einen größeren Build aus. Nicht grundlos + erneut konfigurieren, nur mit j10 weiterbauen. + +## Bereits geschriebene, noch unfertige Berufs-Implementierung + +### Profil und Regeln + +- `AdventureProfessionPolicy.h`: reine Regeln/Task-Spezifikationen, elf + Hauptberufe, kanonische englische Bezeichner, Nebenberufe ohne Primärfreigabe. + Hauptberufsrecht stammt aus dem Profil, NICHT aus `Player::HasSkill`. +- `ClientlessAdventureProfile::PrimaryProfessions` und Lua-Parser für + `professions.primary` als Array. Unbekannte Namen warnen und gewähren nichts. +- `arthoran.lua`: mining + blacksmithing. `generic.lua`: leeres Array. +- `Trainer.h`: nur neuer generischer, read-only Zugriff `GetSpells() const`. + Kein Lernen/Trainer-Handler wird aufgerufen. + +### Echte Ressourcen und Arbeitsplätze + +- Neu: `AdventureProfessionTargets.{h,cpp}`. +- Erz/Pflanzen: echte aktive CHΕST-GOs, native Lock-/Skill-Anforderungen aus + `sLockStore` / `SkillByLockType`, nicht bloß Namen oder Locationkategorie. + Nur sichtbare, phasenrichtige, bereite und erreichbare Ziele. +- Kürschnerei: vorhandener toter BEAST-Kadaver im Zustand CORPSE mit nativem + SKINNABLE-Flag. Kein Erzeugen/Töten eines Tiers. Kampf/Jagd später. +- Arbeitsplätze: neuer editierbarer Katalog `vcore_adventure_workstation` + mit GO-Templateentry, semantischer Rolle und enabled. Keine Bot-/Ort-ID-Liste. + Native Fokuskennungen geprüft: 1 Amboss, 3 Esse, 4 Kochfeuer, 663 Alchemielabor, + 1589 Lexikon. 623/543 sind besondere Amboss-/Essenfokusse. +- Native unsichtbare SPELL_FOCUS-Marker repräsentieren reale Kartenarbeitsplätze + und dürfen dafür genutzt werden. Keine Aktivierung/Objektbenutzung. +- Rollen ohne reale erkennbare Arbeitsplätze bleiben nicht verfügbar; keine + beliebige Werkstatt-Location als Amboss behandeln. +- Trainer: native Tradeskill-Trainer, deren native Spell-/SkillLine-Daten zu + einem erlaubten Haupt- oder einem Nebenberuf passen. Reines Gespräch. + +### Szenen und bestehende Legacy-Aktionen + +- Wiederverwendete `AdventureSocialActions` mit `Cue::Work`, professionellen + Zielprüfungen, nativen Emote-Zuständen, Abschlussbetrachtung und kurzem + Wegtreten. Keine Harvest-/Craft-/Loot-/Teach-/Heal-Aufrufe. +- Profil und Ziel werden auch während der Szene erneut geprüft. +- Alte `mining_show` / `smithing_show` (Kind `work`, Requirement ore/forge) + werden in `ResolvedAction` auf dieselben neuen gesperrten Szenen umgelegt. + Es darf KEIN Legacy-Bypass der Profil- oder Arbeitsplatzprüfung verbleiben. +- Nach vollständiger Sammeldarstellung wird `work:` in der bestehenden + Zielhistorie gespeichert. Kürzlich bearbeitete Ressourcen werden gemieden, + damit die unverändert stehen bleibende Quelle nicht endlos wiederholt wird. + Nur Erzbetrachtung (`ore_inspect`) setzt diese Bearbeitungssperre nicht. + +### Gebietssuche / gemeinsame Erkundungssteuerung + +- Neue Suche `profession_search`, Requirement `work_search`, Kind `outing`. +- Wiederverwendete MMAP-Routensteuerung: progressive Hinwege, an erreichten + Kontrollpunkten erneut mögliche Berufsarbeit prüfen und Suche dann beenden. +- Bei Gebietsaufträgen wird der lokale Anker nach bestätigtem Suchfortschritt + verschoben. Weiteres Durchsuchen bleibt über jeden MMAP-Punkt im Zielgebiet. +- Gebiets-Abenteuerwege sind jetzt ebenfalls progressiv; normale Freizeitwege + bleiben bestätigte Hin-/Rückwege. Keine Stadt-Sonderregel. +- Zusätzliche native Uferprüfung für performatives Berufsangeln im Gebiet, + ohne zwingenden speziellen Fishing-Location-Key. Ausgerüstete Angel bleibt + nötig. Kein wirklicher Angelzauber/Fang. Noch nicht live getestet. + +### Neue Migration + +`sql/custom/world/2026_10_27_05_adventure_profession.sql` (noch NICHT angewendet): +Arbeitsplatzrollen, neue Arbeits-/Such-/Nebenberufs-/Gesprächsaktionen, +Berufsgewichtung für Gebiet/Wildnis/Siedlung, neue Texte. Native Fokusdaten +haben Vorrang; Namen ergänzen nur erkennbare geeignete Props. Geänderte +Gewichte/disabled-Rollen sollen bei Wiederholung erhalten bleiben. + +## Offene Arbeiten – konkret hier weiter + +1. Aktuellen C++-Diff kritisch prüfen; dies ist ein WIP, keine fertige Abnahme. + Insbesondere Berufsszenen, Legacy-Auflösung, progressive Ankeraktualisierung, + Ressourcen-Wiederholungsdämpfung und Uferprüfung gegen Nutzerregeln prüfen. +2. `cmake --build /home/wow_admin/wow_cata_server/build/debug -j10` fortsetzen. + Vorher prüfen, dass kein alter Build mehr läuft. Weitere Fehler beheben. +3. Vollständige Tests erneut laufen lassen. Vor dem Berufs-Ausbau waren + **32 Tests grün**. Seitdem gab es 7 Mock-/Harness-Anpassungsfehler, deren + Fixes bereits TEILWEISE geschrieben sind. Alte Fehlerdateien sind historisch! + - Economy/Exploration/Social-fire: neues Policy-Include und Profilfelder, + Targets-Stub für zusätzlich mitkompilierte Zweige. + - Social: Map-/Position-/Origin-Stubs und native Work-Emotes ergänzt; + zuletzt nach INVALID_HEIGHT-Fix wieder grün. + - Exploration und Leisure: nach Anpassungen zuletzt wieder grün. + - Intent-state: neue Scene-Felder Progressive/Route/Step ergänzt; + letzter Fehler fehlende Player::GetExactDist(Position const&). Der + Überladungs-Fix ist bereits geschrieben, aber noch nicht erneut geprüft. + - Rest-fire: PrimaryProfessions in Mock-Profil/-Kontext ergänzt; + aktuellen Zustand durch erneuten Lauf prüfen. +4. Neue aussagekräftige Berufs-Tests fehlen noch! Geplant: + - tatsächlichen neuen Lua-Parser mit realem Lua 5.4 ausführen, inklusive + Arthoran mining/blacksmithing, leeres/ungültiges Profil sperrt Hauptberufe; + - Mining+Smithing darf vorhandene Kräuter NICHT bearbeiten, umgekehrt darf + Herbalism+Alchemy keine Erz-/Schmiedearbeit; sekundäre Aktionen ohne Liste; + - produktive native Zielklassifikation: Lock-Skills statt Namen, Amboss + versus Esse versus bloße Workshop-/Gebietszuordnung, falsche Phase, + despawnte/gelootete Quelle, Kadaverprüfung und passende Trainer; + - native Arbeitsgeste erst NACH tatsächlicher Ankunft, Profilentzug während + laufender Szene, keine Objektbenutzung/Casts/Inventaränderung, Abschluss; + - Migration auf Schemafixtures ausführen, Idempotenz und bearbeitete + Gewichte/Arbeitsplatzfreigaben erhalten; + - Gebiets-Anreise über erreichbaren Graphnode und lokale progressive Suche + innerhalb des Gebiets, Stopp bei gefundenem zulässigem Arbeitsplatz. +5. Erst dann neue Migration auf TEST-DB anwenden. Noch kein profession_apply- + Modus im gesicherten DB-Helfer! Ergänzen oder engen eigenen Helfer schreiben. +6. Erfolgreichen Build nach sauberem Serverstopp installieren, neu starten und + frische Ready-Meldung + Prozess + Port 8085 prüfen. AGENTS-Recovery beachten. +7. Live prüfen: tatsächlicher Amboss in Sturmwind (z. B. importierter + `poi_guard_541`, Schmiedebereich), dann Gebietsziel `poi_tele_338` = Elwynn, + Gebiet 12, echtes travel_to_node und lokale Ressourcen-/Arbeitsplatzsuche. + Kräuter muss Arthoran verweigern. Inventar/Geld und Ressourcen unverändert + nachweisen. Keine gefälschten Ressourcen, Spawns oder Teleports. +8. Berufs-Dokumentation schreiben, Katalog-/Standdokumente aktualisieren und + offen gebliebene Live-/visuelle Prüfungen ehrlich benennen. + +## Wichtige vorherige Ergebnisse – nicht neu implementieren + +- Reisegraph: optionale virtuelle Exits regelmäßig (6 s) während Weiterbewegung + prüfen, kein Abbruch nach fünf Versuchen, Kante nicht mitten darin umkehren. + Free-flight-Fallback getrennt von künstlichen Normalreise-Auswahlregeln. +- Ruhe/Feuer: gemeinsames natives Kochfeuer 818, neue Feuer nie in Gebäuden/ + Städten. Schlafdarstellung weiterhin vertagt. +- Freizeit: Katze (Spell 10673, Creature 7385), Leine (Item 37460, Spell 48722), + echte native Begleiter-/Itemverwendung. Kanal beim Gehen erhalten. Owned-only + Cleanup, keine Veränderung fremder Begleiter. Nutzer hat sichtbare Katze, + Leine, zusammenhängende Routen und flüssige Bewegung ausdrücklich abgenommen. +- Native Follow-Fix: aktive Player-Splinegeschwindigkeit statt Run-Flag wählen; + SetWalk setzt die Gait-Auswahl, nicht MOVEMENTFLAG_WALKING. Das beseitigte + die ständigen Zwei-Meter-Pausen. Nicht wieder entfernen. +- Native Spline-Kurzsegment-Fix: 0,11 Yards Mindestabstand beim Splitten. +- Wirtschaften rein performativ; Händler/Bank/AH und Vergleich mit zwei GUIDs + technisch live geprüft, Geld/Inventar danach bytegleich. +- Importfehler behoben: SMALLINT maps über GetUInt16 statt GetUInt32, das in + Debug Null ergab. Gezielte, idempotente `clientless adventure repairimport` + reparierte 2.159 unveränderte abgeleitete Orte, ergänzte 217. Jetzt **2.864** + aktive semantische Locations / 3.857 Worldpoints. 16 manuelle Orte unverändert. + Vier Horde-Hauptstädte korrekt auf Karte/Fraktion zugeordnet. Nicht die + originalen world-DB-Quellen ändern. Snapshots liegen bei dieser Übergabe. +- Location-Zuordnung: kein versteckter Wirtschaften-Fallback mehr im Code; + `_04` materialisiert ausdrückliche Kategorie-/Intent-Gewichte, inklusive + begrenzter Freizeitgewichtung für Tavernen. Tagesplan-Intent unabhängig davon. +- Abenteuer `_04`: native Objektuntersuchung ohne Use, Scout/Equipment, + zusammenhängende Bodenwege. Zehn neue Aktionen, 32 Tests bestanden, technisch + live in Sturmwind: Pestle's Apothecary 197117, Weller's Arsenal 197121, + 80-Yards-Erkundungsweg mit zehn bestätigten Hin-/Rückwegpunkten. Visuelle + Abnahme und gefährliche offene Welt weiterhin separat. + +## Werkzeuge, Logs und reproduzierbarer Betrieb + +Dauerhafte Kopien für diese Übergabe: +`doc/clientless/checkpoints/2026-10-27-profession/`. +Darin Build-/Configurelogs, historische fehlgeschlagene Testausgaben, +Ortskatalog-Snapshots und die bisherigen schmalen DB-Helfer. Diese Helfer lesen +Verbindungsdaten aus der lokalen Testserverkonfiguration; keine Passwörter +im Chat/Logs ausgeben. Sie enthalten keine fest codierten Zugangsdaten. +Die Helfer bei Bedarf wieder nach `/tmp` kopieren; Pfade gelten für diesen Host. + +Wichtige Live-Logs (normal und ohne vorsorgliche Elevation lesen): +`/home/wow_admin/wow_cata_server/server/debug/bin/Server.log`, +`adventurebot-navigation.log`, `DBErrors.log`. Server.log wird beim Start neu +begonnen, Navigations-/DBErrorslogs können ältere Fehler enthalten. Bekannte +alte Script-/Spell-Warnungen nicht mit neuem Startup-Versagen verwechseln. + +Buildbefehle: `cmake --build .../build/debug -j10`, bestehende Installation +mit `cmake --install .../build/debug`. Tool-Sandbox für Build/Install/tmux/DB +beachten, aber normale Logs nicht vorsorglich eskalieren. Keine laufende +Executable überschreiben. Kein Push. + +Für gezielte Tests nach Restart wurde bisher nur beim Login die Startvorgabe +in arthoran.lua temporär geändert, vorher byteweise gesichert, nach +`[AdventureBot][Profile] loaded guid=26` exakt zurückgesetzt. Die jetzt dauerhaft +vereinbarten Hauptberufe dabei unbedingt erhalten. Keine temporären Profile +liegenlassen. Alternativ normalen Login abwarten und per Console Intent setzen; +auf unerwünschte automatische Goldshire-Anreise achten. + +Console-Beispiele ohne führenden Punkt: +`clientless login 26`, `clientless adventure status 26`, +`clientless adventure intent 26 profession poi_guard_541 3600`, +`clientless adventure intent 26 profession poi_tele_338 3600`, +`clientless adventure micro 26 `, `saveall`. + +Der Nutzer möchte vor allem konkrete, überprüfte Ergebnisse und wenig +Bestätigungsfragen. Die Hauptberufs-Rückfrage ist bereits BEANTWORTET; nicht +noch einmal stellen. Testservermanagement und lokale Commits sind autorisiert. diff --git a/doc/clientless/adventure-intent.md b/doc/clientless/adventure-intent.md new file mode 100644 index 0000000000..426291c0f1 --- /dev/null +++ b/doc/clientless/adventure-intent.md @@ -0,0 +1,109 @@ +# Abenteuer: Erkundung und Untersuchung + +Technischer Intent: `adventure`. Diese Ausbaustufe ergänzt den bisherigen +Aufenthalt durch zusammenhängende Erkundungswege und beobachtende Szenen. +Echte Monsterjagd, Flucht und Todesbewältigung bleiben spätere Ausbaustufen. +Vorhaben, Ortsauswahl und tatsächliche Mikroaktion bleiben getrennt: Die +Location-/Intent-Zuordnung entscheidet, ob ein Ort zum Abenteuer passt; +Umgebung und Erreichbarkeit bestimmen die dort möglichen Aktionen. + +Migration: `sql/custom/world/2026_10_27_04_adventure_exploration.sql`. + +## Aktionen + +| Schlüssel | Darstellung | +|---|---| +| `adventure_explore` | Einen zusammenhängenden nativen MMAP-Weg erkunden und zurückkehren. | +| `adventure_patrol` | Einen kürzeren Wegabschnitt abschreiten; dieselbe geprüfte Routenfähigkeit. | +| `adventure_view` | Im Außenbereich die Umgebung von der aktuellen Position aus betrachten. | +| `adventure_inspect` | Ein tatsächlich vorhandenes erreichbares Objekt aufsuchen und betrachten. | +| `adventure_inspect_detail` | Nach der Ankunft genauer betrachten, eine Fragegeste zeigen und auf das Objekt weisen. | +| `adventure_point` | Zu einem passenden Objekt gehen und darauf zeigen. | +| `adventure_scout` | Innehalten, nach links und rechts Ausschau halten. | +| `adventure_equipment` | Eine kurze Ausrüstungsprüfung mit nativer Benutzungs-/Vorbereitungsgeste darstellen. Keine Inventaränderung. | +| `adventure_entrance` | Am gewählten Ruinen-, Höhlen-/Minen- oder Dungeon-Ort umsehen und Vorbereitung darstellen. Kein Instanzeintritt. | +| `adventure_comment` | Selten einem tatsächlich anwesenden freundlichen Gegenüber eine Entdeckung kommentieren. | + +Bestehende Fähigkeiten liefern Gespräche mit freundlichen NPCs, native +Sitzplätze, Essen, Trinken und Feuerrast. Nach einem Erkundungsweg erhalten +verfügbare Rastaktionen bei der folgenden Auswahl mehr Gewicht. Die +bestehenden Verbote für neue Feuer in Gebäuden und Städten gelten weiter. + +## Ausführung und Grenzen + +Die Fußwege verwenden den bereits für Spaziergänge geprüften lokalen +Routenplaner und Bewegungsexecutor: genau einen vollständigen MMAP-Korridor +wählen, Kontrollpunkte folgen, am Wendepunkt pausieren und dieselben Punkte +zurückverfolgen. Es gibt keine zufälligen einzelnen Nahziele und keine neuen +Reit-/Flugtests. Der Standard der alten winzigen Zufallsbewegung `explore` +wird nur für Abenteuer deaktiviert; angepasste Gewichte und ihre Verwendungen +bei anderen Intents bleiben erhalten. + +Wegpunkte bleiben innerhalb des Aufenthaltsgebiets beziehungsweise der Zone. +Es gelten native vollständige Pfade, plausible Bodenhöhen und der begrenzte +Aufenthaltsradius. Zeitende veranlasst einen Rückweg entlang bereits erreichter +Punkte. Fehlgeschlagene Ankünfte werden niemals als Erfolg ausgegeben. + +Objekte werden im tatsächlich geladenen Umfeld gesucht (60 Yards), nicht aus +festen Objekt-IDs oder durch erzeugte Test-Spawns. Sichtbare generische Props, +Schilder, Bücher und Goober-Objekte sind zulässig. Kisten/Ressourcen, Fallen, +Türen, Knöpfe, Transportmittel und Möbel werden hierfür nicht gewählt. +Spawnzustand, Phase, Sichtbarkeit, Sichtlinie und erreichbarer Gesprächs-/ +Betrachtungspunkt werden geprüft. Ein nicht erreichbares Objekt wird durch +einen weiteren echten Kandidaten ersetzt; gibt es keinen, startet die Szene +nicht. Verschwundene oder nicht mehr sichtbare Ziele beenden den Ablauf. + +Diese Fähigkeit ruft **keine Objektbenutzung, keine Beuteerzeugung und keine +Quest-/Gegenstandsinteraktion** auf. Die verwendeten Gesten erzeugen weder +Objekte noch Zauberwirkungen. Ausrüstungsprüfung ist eine Darstellung. + +Umsehen verwendet zwei feste Blickrichtungen relativ zur Startausrichtung, +statt den Bot bei jedem Planungsschritt weiterzudrehen. Vorbereitung wird +über die vorhandene Kategorie des Aufenthaltsorts freigegeben; eine genaue +geometrische Erkennung einzelner Höhleneingänge ist nicht enthalten. +Aussichtsszenen garantieren keine besondere Landschaftsqualität. Objekte, +die nur Teil von WMO-/Karten-Geometrie sind, haben keine separate GO-GUID; +sie werden durch ortsbezogenes Umsehen statt Objektinteraktion dargestellt. +Kampf unterbricht die Tätigkeit über die bestehende Sicherheitsbehandlung. + +## Location-Zuordnung + +Die editierbaren `vcore_adventure_location_intent`-Einträge sind maßgeblich. +Der bisherige Wirtschaften-Fallback im Code wird in ausdrückliche bestehende +Kategorie-Zuordnungen überführt. Bearbeitete Gewichte einschließlich Null +werden erhalten. Neue Kategorien benötigen ihre eigene Zuordnung. Tavernen +erhalten eine geringe Freizeitgewichtung; Sitzaktionen sind weiterhin nur +bei einer tatsächlich geeigneten erreichbaren Sitzgelegenheit verfügbar. +Der Tagesplan wählt Intents weiterhin unabhängig vom vorhandenen Ortskatalog. + +## Prüfung + +Automatisierte Tests führen produktive Objektfilter, Verfügbarkeitsprüfungen +und Gestensequenzen aus: Ankunft vor Gesten, verschwundene/unsichtbare Ziele, +keine Objektbenutzung, zwei feste Blickrichtungen sowie korrekte Wiederverwendung +der Bodenrouten. Der SQL-Test prüft Referenzen, ausdrückliche Kategoriezuordnung, +Default-Upgrade und Erhalt bearbeiteter Gewichte bei Wiederholung. +Eine erfolgreiche Kompilierung ersetzt die visuelle Ingame-Abnahme nicht. + +## Technische Live-Prüfung am 27.10.2026 + +Build mit `-j10`, Installation und frischer Testserver-Neustart mit Ready- +Meldung und Port 8085 erfolgreich. Alle 32 Clientless-Testskripte bestanden. +Die temporäre Login-Vorgabe wurde nach dem Laden exakt zurückgesetzt. + +Am gewöhnlichen importierten Sturmwind-Ort `poi_tele_954` wurden geprüft: + +- Automatisch ausgewählte Untersuchung des tatsächlichen Apothekenschilds + `Pestle's Apothecary` (GO 197117), native Ankunft und alle Betrachtungsgesten. +- Detaillierte Untersuchung des Schilds `Weller's Arsenal` (GO 197121), + native Ankunft sowie Blick-, Frage-, Zeige- und Wartephase. Ein anfangs + manuell unterbrochener Durchlauf zählt nicht als Abschluss; der danach + neu gestartete Durchlauf endete nach sämtlichen Gesten regulär. +- Zusammenhängender Erkundungsweg: Ursprung `(-8802.90, 628.57, 94.46)`, + Wendepunkt `(-8843.31, 559.53, 95.62)`, Abstand 80,01 Yards. Alle zehn + Hin-/Rückwegankünfte und die tatsächliche Rückkehr wurden bestätigt. +- Danach automatisch ausgewählte Trinkpause und Ausschauhalten. + +Das ist eine technische Live-Prüfung in Sturmwind. Eine visuelle Abnahme +durch den Nutzer, Erkundung in gefährlichen offenen Gebieten und die +Vorbereitung an einem tatsächlichen Höhlen-/Dungeonort stehen noch aus. diff --git a/doc/clientless/autonomous-behavior.md b/doc/clientless/autonomous-behavior.md index 14422766a0..92b3116faa 100644 --- a/doc/clientless/autonomous-behavior.md +++ b/doc/clientless/autonomous-behavior.md @@ -1,5 +1,14 @@ # Autonomes Verhalten: Implementierungsplan und Vertrag +Konzeptfortschreibung vom 27.10.2026: Der vereinbarte Umfang umfasst +[sieben Grundintents](intent-katalog.md). Die folgende Implementierungsbeschreibung +beschreibt vorwiegend die ursprünglichen drei technischen Intents; der neue +[Ruhe-Intent `rest`](rest-intent.md), der [Freizeit-Intent `leisure`](leisure-intent.md) +der [Wirtschaften-Intent `economy`](economy-intent.md) und der +[Abenteuer-Ausbau](adventure-intent.md) sind separat dokumentiert. Die zuvor +ausstehende visuelle Prüfung der Stuhlsitzposition hat der Nutzer inzwischen +erfolgreich abgeschlossen. + Dieser Stand ersetzt die Lua-Tagesroutinen-Annahme aus `mikroaction.md`. Lua beschreibt Profile; der C++-Planer erzeugt daraus einen Tagesplan. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/AGENTS.saved.md b/doc/clientless/checkpoints/2026-10-27-profession/AGENTS.saved.md new file mode 100644 index 0000000000..2aebcdb3c0 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/AGENTS.saved.md @@ -0,0 +1,339 @@ +# Vcore Development Environment + +## Project + +Vcore is a custom World of Warcraft Cataclysm 4.3.4 server based on TrinityCore. + +This environment is a dedicated development and test server. + +The current development focus is the Clientless Player Core and AdventureBot infrastructure. + +## Repository and Git Rules + +Repository: + +`/home/wow_admin/wow_cata_server/source/TrinityCore` + +Authorized development branch: + +`feature/clientless-player-core` + +Rules: + +- Work exclusively on the authorized development branch. +- Never switch to, modify, reset, rebase, or merge `master`. +- Never push to `master`. +- Never push any branch without explicit user approval. +- Local commits are permitted. +- Never discard existing changes without approval. +- Never force-push. +- Check the current branch and working tree before making changes. +- Stop and request clarification if the working tree contains unexpected changes. + +## Development Permissions + +Codex is authorized to: + +- Read and modify Vcore source code. +- Implement new features and fix bugs. +- Run CMake and compile Vcore. +- Investigate and resolve compilation errors. +- Install compiled binaries into the testserver installation. +- Start, stop, and restart the test worldserver. +- Inspect logs and server output. +- Modify test databases when required for an authorized task. +- Execute local tests and create local commits. + +Codex must never: + +- Modify the production server. +- Deploy changes to production. +- Push changes without explicit approval. +- Modify or merge the protected `master` branch. +- Discard user changes without approval. + +## Read-only Diagnostics + +- Reading the development/test server logs and project files is already authorized. +- Use direct read-only commands such as `rg`, `tail`, `sed`, `cat`, and `stat` inside the sandbox for ordinary file inspection. Do not request elevated execution preemptively for these reads. +- Keep file inspection separate from tmux access, database queries, writes, and lifecycle actions so those actions do not unnecessarily escalate log reading. +- Do not request blanket approval for Python, other interpreters, or shell execution to read logs. +- If a read actually fails because of a technical sandbox restriction, follow the execution environment's escalation rules and request only the narrow access needed. Project authorization does not override the sandbox. + +## Directory Structure + +Source: + +`/home/wow_admin/wow_cata_server/source/TrinityCore` + +Build directory: + +`/home/wow_admin/wow_cata_server/build/debug` + +Server installation: + +`/home/wow_admin/wow_cata_server/server/debug` + +Worldserver executable: + +`/home/wow_admin/wow_cata_server/server/debug/bin/worldserver` + +## Build and Installation + +Use the existing CMake build configuration. + +Inspect the build configuration before changing it. + +Build directory: + +`/home/wow_admin/wow_cata_server/build/debug` + +Install directory: + +`/home/wow_admin/wow_cata_server/server/debug` + +After successful compilation, install the resulting binaries using the existing CMake installation configuration. + +Do not overwrite running executables. + +Stop the test worldserver cleanly before installing updated binaries. + +Do not delete existing server configuration, logs, databases, or data files. + +## Worldserver Management + +The test worldserver runs inside a dedicated tmux session. + +Session name: + +`vcore-worldserver` + +Working directory: + +`/home/wow_admin/wow_cata_server/server/debug/bin` + +Executable: + +`./worldserver` + +Codex is authorized to start, stop, restart, and recover the test worldserver autonomously. + +### Starting the Worldserver + +Before starting: + +1. Check whether a worldserver instance is already running. +2. Check whether the `vcore-worldserver` tmux session already exists. +3. Never start a second worldserver instance while another instance is active. +4. Remove stale tmux sessions only after verifying their state. + +Start command: + +```bash +tmux new-session -d -s vcore-worldserver \ + -c /home/wow_admin/wow_cata_server/server/debug/bin \ + './worldserver' +``` + +### Startup Verification + +A successfully created tmux session does not indicate successful worldserver startup. + +The Vcore worldserver reports successful initialization with a final console message similar to: + +```text +World initialized in 0 minutes 10 seconds +TrinityCore rev. (...) (worldserver-daemon) ready... +``` + +The authoritative startup indicator is: + +`(worldserver-daemon) ready...` + +The revision, branch, build configuration, and initialization time may vary. + +After starting the worldserver: + +1. Monitor the worldserver process and console output. +2. Wait for the `(worldserver-daemon) ready...` message. +3. Verify that the worldserver process remains running. +4. Check for critical startup errors. +5. Verify that the configured worldserver port is listening. + +Only report successful startup when these checks pass. + +Capture console output from the beginning of the current startup attempt to avoid mistaking messages from an earlier run for current startup success. + +If the worldserver exits, hangs, or fails to reach the ready state within a reasonable timeout, follow the startup failure recovery procedure. + + +### Startup Failure Recovery + +The test worldserver may occasionally fail to start because the remote authentication database on the VPS is temporarily unreachable. + +When startup fails: + +1. Capture relevant console output and logs. +2. Determine whether the worldserver process is still running. +3. Check whether the tmux session is still active. +4. If the TrinityCore console is responsive, attempt a graceful shutdown. +5. If the console is unavailable or unresponsive, terminate the failed worldserver process and its dedicated tmux session. +6. Verify that the previous worldserver process has terminated. +7. Ensure that no stale process remains before restarting. +8. Wait briefly before retrying. +9. Create a fresh tmux session and start the worldserver again. +10. Repeat startup verification. + +For startup recovery, Codex may terminate the dedicated test worldserver process and tmux session when graceful shutdown is impossible. + +Do not terminate unrelated processes or tmux sessions. + +### Retry Policy + +Use a maximum of three startup attempts per restart operation. + +Wait approximately 10 seconds between attempts. + +If startup fails repeatedly: + +- Stop retrying. +- Preserve the relevant logs. +- Report the observed errors. +- Explain whether the failure appears related to database connectivity, configuration, compilation, or another cause. +- Do not claim that the testserver is operational. + +Do not attempt to repair the remote VPS authentication database or production infrastructure. + +### TrinityCore Console Commands + +Codex may execute TrinityCore console commands through tmux. + +Example: + +```bash +tmux send-keys -t vcore-worldserver '.server shutdown 10' Enter +``` + +Read console output: + +```bash +tmux capture-pane -p -t vcore-worldserver -S -100 +``` + +### Graceful Shutdown + +For a normally running worldserver, use: + +`.server shutdown 10` + +Send the command through tmux: + +```bash +tmux send-keys -t vcore-worldserver '.server shutdown 10' Enter +``` + +After issuing the command: + +1. Wait for the worldserver to terminate. +2. Verify that the process has stopped. +3. Verify that the tmux session has ended. +4. Only then install new binaries or start another worldserver instance. + +If the console is unresponsive, Codex may terminate the dedicated test worldserver process. + +Prefer SIGTERM before SIGKILL. + +Use SIGKILL only when the process cannot be stopped normally. + +### Restart Procedure + +1. Verify the current worldserver state. +2. If running normally, initiate graceful shutdown. +3. If the console is unavailable, use the recovery shutdown procedure. +4. Wait for complete process termination. +5. Install successfully compiled binaries if required. +6. Start a fresh tmux session. +7. Verify successful worldserver initialization. +8. If startup fails, follow the startup recovery procedure. +9. Report the final server state. + +### Safety + +This is a dedicated development and test environment. + +Codex is authorized to manage the test worldserver autonomously, including recovery from failed startup attempts. + +Never terminate unrelated services or processes. + +Never execute worldserver management commands on production infrastructure. + +## AdventureBot Architecture + +Preserve the existing Clientless Player Core architecture. + +Important components include: + +- ClientlessTravelMgr +- ClientlessTravelGraphMgr +- ClientlessActionExecutorMgr +- Lua-based bot control +- MMAP navigation +- TravelGraph routing + +Architecture principles: + +- Clientless Player Core provides generic clientless player functionality. +- AdventureBots are built on top of this infrastructure. +- TravelGraph handles long-distance travel. +- MMAP navigation handles local movement. +- DungeonBots remain independent from AdventureBots. +- AdventureBots must not become infrastructure dependencies for unrelated game systems. + +Prefer extending the existing implementation over replacing it. + +## Development Workflow + +For each development task: + +1. Verify the current Git branch and working tree. +2. Inspect the relevant existing implementation. +3. Plan nontrivial changes before implementation. +4. Implement the requested functionality. +5. Compile the affected components. +6. Resolve compilation errors. +7. Install the new build when appropriate. +8. Restart the test worldserver when necessary. +9. Inspect logs and available test results. +10. Report what changed, what was tested, and what remains unverified. +11. Wait for user feedback before pushing changes. + +Do not claim that gameplay functionality is verified solely because compilation succeeded. + +The user performs final in-game acceptance testing. + +## Rollback + +When requested, restore the previous implementation without modifying `master`. + +Prefer targeted reversions of the relevant development changes. + +Never use destructive Git commands without checking whether unrelated work would be lost. + +Database rollbacks must be limited to the changes associated with the development task. + +## General Principles + +- Preserve existing Vcore functionality. +- Avoid unnecessary architectural rewrites. +- Prefer targeted, maintainable changes. +- Investigate root causes instead of masking symptoms. +- Keep the test environment reproducible. +- Clearly distinguish successful builds, automated tests, and verified gameplay behavior. + + +## Saved session / Wiederaufnahme + +Before starting new work, read `doc/clientless/SESSION-RESUME.md`. It records the +user-requested checkpoint, unfinished profession intent, agreed Lua professions, +build/test state and exact next steps. Preserve the saved WIP; do not restart or +revert it. All development/server/branch rules above remain in force. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-economy-db.py b/doc/clientless/checkpoints/2026-10-27-profession/vcore-economy-db.py new file mode 100644 index 0000000000..fee14233ea --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-economy-db.py @@ -0,0 +1,44 @@ +from pathlib import Path +import os,re,subprocess,sys +config=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text() +h,port,u,password,db=re.search(r'^WorldDatabaseInfo\s*=\s*"([^"]+)"',config,re.M).group(1).split(';') +args=['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+db,'--batch','--default-character-set=utf8mb4','--connect-timeout=10'] +env=os.environ.copy();env['MYSQL_PWD']=password +op=sys.argv[1] if len(sys.argv)>1 else '' +if op=='state': + h,port,u,password,db=re.search(r'^CharacterDatabaseInfo\s*=\s*"([^"]+)"',config,re.M).group(1).split(';') + args=['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+db,'--batch','--default-character-set=utf8mb4','--connect-timeout=10'] + env['MYSQL_PWD']=password +if op=='state': + query="SELECT guid,money FROM characters WHERE guid=26; SELECT item,bag,slot FROM character_inventory WHERE guid=26 ORDER BY bag,slot,item; SELECT guid,itemEntry,count FROM item_instance WHERE owner_guid=26 ORDER BY guid;" +elif op=='workstation_inspect': + query="""SELECT data0 AS focus_id,COUNT(*) AS n,LEFT(GROUP_CONCAT(DISTINCT name ORDER BY name SEPARATOR ', '),600) AS examples FROM gameobject_template WHERE type=8 GROUP BY data0 ORDER BY data0; SELECT entry,name,type,data0 FROM gameobject_template WHERE name REGEXP 'Alchemy|Alchemist|Workbench|Loom|Tanning|Sewing|Enchanter|Runeforge|Cooking Fire|Campfire' AND type IN (5,8,10) ORDER BY entry LIMIT 65; SHOW CREATE TABLE npc_trainer; SHOW CREATE TABLE trainer; SHOW CREATE TABLE creature_trainer;""" +elif op=='profession_inspect': + query="""SELECT t.entry,t.name,t.type,t.data0,t.data1 FROM gameobject_template t WHERE (t.type=8 AND (t.name REGEXP 'Anvil|Forge|Alchemy|Loom|Workbench|Enchant|Tanning|Cooking')) OR (t.type=3 AND t.name IN ('Copper Vein','Silverleaf','Peacebloom')) ORDER BY t.type,t.data0,t.entry LIMIT 90; SELECT w.point_key,a.display_name,w.category,w.map,w.position_x,w.position_y,w.position_z,a.is_area,a.area_id,a.zone_id FROM vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) WHERE w.enabled=1 AND (a.is_area=1 AND a.zone_id=12 OR w.category='workshop' AND a.zone_id=1519) ORDER BY w.point_key LIMIT 25;""" +elif op=='exploration_inspect': + query="""SELECT g.guid,g.id,t.name,t.type,g.position_x,g.position_y,g.position_z FROM gameobject g JOIN gameobject_template t ON t.entry=g.id WHERE g.map=0 AND g.position_x BETWEEN -9000 AND -8750 AND g.position_y BETWEEN 500 AND 750 AND t.type IN (5,9,10) ORDER BY g.id; SELECT w.point_key,a.display_name,w.category,w.map,w.position_x,w.position_y,w.position_z FROM vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) WHERE w.enabled=1 AND w.map=0 AND (a.display_name LIKE '%Northshire%' OR a.display_name LIKE '%Goldshire%' OR a.display_name LIKE '%Stonecairn%') ORDER BY a.display_name;""" +elif op=='exploration_apply': + query='START TRANSACTION;\n'+Path('/home/wow_admin/wow_cata_server/source/TrinityCore/sql/custom/world/2026_10_27_04_adventure_exploration.sql').read_text()+"\nSELECT a.action_key,a.kind,a.requirement,i.weight FROM vcore_adventure_action a JOIN vcore_adventure_action_intent i USING(action_key) WHERE a.action_key LIKE 'adventure_%' OR (a.action_key='explore' AND i.intent='adventure'); COMMIT;" +elif op=='catalog': + query="""SELECT w.point_key,w.category,w.map,w.position_x,w.position_y,w.position_z,w.orientation,w.enabled,COALESCE(w.comment,''),a.display_name,a.source_type,a.source_id,a.area_id,a.zone_id,a.region_key,a.is_area,a.faction FROM vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) ORDER BY w.point_key;""" +elif op=='source_audit': + query="""SELECT id,name,map,position_x,position_y,position_z FROM game_tele WHERE name IN ('Orgrimmar','ThunderBluff','Thunder Bluff','Undercity','SilvermoonCity','Darnassus','TheExodar','Ironforge','Stormwind'); SHOW COLUMNS FROM game_tele; SHOW COLUMNS FROM creature; SELECT c.id,t.name,c.map,c.position_x,c.position_y,c.position_z,COALESCE(NULLIF(c.npcflag,0),t.npcflag) AS flags,t.faction FROM creature c JOIN creature_template t ON t.entry=c.id WHERE t.name IN ('Innkeeper Gryshka','Innkeeper Pala','Innkeeper Allison','Auctioneer Thathung','Auctioneer Chilton') ORDER BY c.map,c.id;""" +elif op=='audit': + query="""SELECT COUNT(*) AS active_locations FROM vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) WHERE w.enabled=1 AND w.category NOT LIKE 'travel%'; SELECT a.source_type,w.category,a.faction,COUNT(*) AS n FROM vcore_adventure_location a JOIN vcore_clientless_world_point w USING(point_key) WHERE w.enabled=1 GROUP BY a.source_type,w.category,a.faction ORDER BY n DESC; SELECT w.point_key,a.display_name,w.category,a.region_key,a.area_id,a.zone_id,a.is_area,a.faction,w.map,w.position_x,w.position_y,w.position_z FROM vcore_adventure_location a JOIN vcore_clientless_world_point w USING(point_key) WHERE w.enabled=1 AND (a.display_name REGEXP 'Orgrimmar|Thunder Bluff|Undercity|Silvermoon|Darnassus|Exodar|Ironforge|Stormwind' OR (a.is_area=1 AND a.zone_id IN (1519,1637,1638,1497,1537,1657,3430,3487,3557))) ORDER BY a.is_area DESC,a.zone_id,w.point_key;""" +elif op=='inspect': + query="""SELECT c.guid,c.id,t.name,t.npcflag,c.position_x,c.position_y,c.position_z,c.orientation FROM creature c JOIN creature_template t ON t.entry=c.id WHERE c.map=0 AND c.position_x BETWEEN -9000 AND -8750 AND c.position_y BETWEEN 450 AND 850 AND (t.npcflag & (128|131072|2097152))<>0 ORDER BY c.id,c.guid; SHOW CREATE TABLE vcore_adventure_location; SHOW CREATE TABLE vcore_clientless_world_point; SELECT category,intent,weight FROM vcore_adventure_location_intent ORDER BY category,intent;""" +elif op=='apply': + query='START TRANSACTION;\n'+Path('/home/wow_admin/wow_cata_server/source/TrinityCore/sql/custom/world/2026_10_27_03_adventure_economy.sql').read_text()+"\nSELECT w.point_key,w.category,w.position_x,w.position_y,w.position_z FROM vcore_clientless_world_point w WHERE w.point_key LIKE 'stormwind_economy_%'; SELECT a.action_key,a.requirement,i.weight FROM vcore_adventure_action a JOIN vcore_adventure_action_intent i USING(action_key) WHERE i.intent='economy'; COMMIT;" +else:raise SystemExit('inspect or apply only') +r=subprocess.run(args,input=query,text=True,capture_output=True,env=env) +if op=='catalog' and not r.returncode: + import hashlib + Path('/tmp/vcore-import-catalog-current.tsv').write_text(r.stdout) + print('Catalog snapshot:',len(r.stdout.splitlines())-1,'records; SHA256',hashlib.sha256(r.stdout.encode()).hexdigest()) +elif op=='state' and not r.returncode: + import hashlib + snapshot=Path('/tmp/vcore-economy-state-current.txt');snapshot.write_text(r.stdout) + print('Arthoran persisted money/inventory SHA256:',hashlib.sha256(r.stdout.encode()).hexdigest()) +else:print(r.stdout,end='') +if r.stderr:print(r.stderr.replace(password,'[redacted]'),file=sys.stderr,end='') +raise SystemExit(r.returncode) diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-follow-velocity-live-navigation.txt b/doc/clientless/checkpoints/2026-10-27-profession/vcore-follow-velocity-live-navigation.txt new file mode 100644 index 0000000000..613ae52abb --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-follow-velocity-live-navigation.txt @@ -0,0 +1,97 @@ +2026-10-27_14:10:11 INFO [server.adventurebot.navigation] NAV_PLAN seq=4 guid=26 name='Arthoran' map=0 segment=0 start=(-8848.844 607.931 92.673) target=(-8864.850 595.939 92.645) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.00 path=20.00 maxSegment=4.00 maxZDelta=0.08 finalDistance=0.00 repaths=0 reason='ok' +2026-10-27_14:10:11 INFO [server.adventurebot.navigation] NAV_EXEC seq=4 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.00 segmentEnd=(-8864.850 595.939 92.645) target=(-8864.850 595.939 92.645) walk=1 +2026-10-27_14:10:11 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8864.850 595.939 92.645) remaining=18.50 state=Moving +2026-10-27_14:10:12 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8850.817 606.453 92.631) remaining=16.03 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:13 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8852.901 604.891 92.583) remaining=13.43 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:14 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8854.906 603.389 92.532) remaining=10.93 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:15 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8856.899 601.895 92.520) remaining=8.43 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:16 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8858.903 600.394 92.525) remaining=5.93 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:17 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8860.908 598.892 92.562) remaining=3.43 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:18 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8862.903 597.398 92.603) remaining=0.93 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:19 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=4 guid=26 segment=1 pos=(-8864.850 595.939 92.645) remaining=0.00 deviation=0.00 splineActive=0 repaths=0 +2026-10-27_14:10:19 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=4 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00 +2026-10-27_14:10:19 INFO [server.adventurebot.navigation] NAV_PLAN seq=5 guid=26 name='Arthoran' map=0 segment=0 start=(-8864.850 595.939 92.645) target=(-8880.855 583.947 93.233) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.01 path=20.01 maxSegment=4.00 maxZDelta=0.16 finalDistance=0.00 repaths=0 reason='ok' +2026-10-27_14:10:19 INFO [server.adventurebot.navigation] NAV_EXEC seq=5 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.01 segmentEnd=(-8880.855 583.947 93.233) target=(-8880.855 583.947 93.233) walk=1 +2026-10-27_14:10:19 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8880.855 583.947 93.233) remaining=18.51 state=Moving +2026-10-27_14:10:20 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8866.855 594.436 92.748) remaining=16.00 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:21 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8868.860 592.934 92.850) remaining=13.49 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:22 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8870.868 591.430 92.949) remaining=10.98 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:23 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8872.858 589.939 93.033) remaining=8.49 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:24 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8874.869 588.432 93.109) remaining=5.98 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:25 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8876.986 586.846 93.171) remaining=3.34 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:26 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8879.001 585.337 93.208) remaining=0.82 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:27 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=5 guid=26 segment=1 pos=(-8880.855 583.947 93.233) remaining=0.00 deviation=0.00 splineActive=0 repaths=0 +2026-10-27_14:10:27 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=5 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00 +2026-10-27_14:10:27 INFO [server.adventurebot.navigation] NAV_PLAN seq=6 guid=26 name='Arthoran' map=0 segment=0 start=(-8880.855 583.947 93.233) target=(-8896.861 571.956 93.007) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.00 path=20.01 maxSegment=4.01 maxZDelta=0.24 finalDistance=0.00 repaths=0 reason='ok' +2026-10-27_14:10:27 INFO [server.adventurebot.navigation] NAV_EXEC seq=6 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.01 segmentEnd=(-8896.861 571.956 93.007) target=(-8896.861 571.956 93.007) walk=1 +2026-10-27_14:10:27 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8896.861 571.956 93.007) remaining=18.50 state=Moving +2026-10-27_14:10:28 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8882.869 582.439 93.283) remaining=15.99 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:29 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8884.861 580.946 93.305) remaining=13.50 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:30 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8886.878 579.435 93.286) remaining=10.98 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:31 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8888.862 577.948 93.161) remaining=8.50 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:32 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8890.875 576.440 93.029) remaining=5.98 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:33 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8892.880 574.939 92.978) remaining=3.47 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:34 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8894.883 573.438 92.976) remaining=0.97 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:35 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=6 guid=26 segment=1 pos=(-8896.861 571.956 93.007) remaining=0.00 deviation=0.00 splineActive=0 repaths=0 +2026-10-27_14:10:35 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=6 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00 +2026-10-27_14:10:35 INFO [server.adventurebot.navigation] NAV_PLAN seq=7 guid=26 name='Arthoran' map=0 segment=0 start=(-8896.861 571.956 93.007) target=(-8912.868 559.964 94.237) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.04 path=20.04 maxSegment=4.02 maxZDelta=0.35 finalDistance=0.00 repaths=0 reason='ok' +2026-10-27_14:10:35 INFO [server.adventurebot.navigation] NAV_EXEC seq=7 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.04 segmentEnd=(-8912.868 559.964 94.237) target=(-8912.868 559.964 94.237) walk=1 +2026-10-27_14:10:35 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8912.868 559.964 94.237) remaining=18.54 state=Moving +2026-10-27_14:10:36 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8898.871 570.450 93.132) remaining=16.02 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:37 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8900.871 568.951 93.277) remaining=13.52 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:38 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8902.853 567.467 93.451) remaining=11.04 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:39 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8904.854 565.968 93.614) remaining=8.53 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:40 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8906.861 564.464 93.785) remaining=6.02 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:41 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8908.854 562.970 94.006) remaining=3.52 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:42 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8910.836 561.486 94.147) remaining=1.04 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:43 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8912.854 559.974 94.236) remaining=0.00 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:44 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=7 guid=26 segment=1 pos=(-8912.868 559.964 94.237) remaining=0.00 deviation=0.00 splineActive=0 repaths=0 +2026-10-27_14:10:44 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=7 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00 +2026-10-27_14:10:48 INFO [server.adventurebot.navigation] NAV_PLAN seq=8 guid=26 name='Arthoran' map=0 segment=0 start=(-8912.868 559.964 94.237) target=(-8896.861 571.956 93.007) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.04 path=20.04 maxSegment=4.02 maxZDelta=0.35 finalDistance=0.00 repaths=0 reason='ok' +2026-10-27_14:10:48 INFO [server.adventurebot.navigation] NAV_EXEC seq=8 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.04 segmentEnd=(-8896.861 571.956 93.007) target=(-8896.861 571.956 93.007) walk=1 +2026-10-27_14:10:48 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8896.861 571.956 93.007) remaining=18.54 state=Moving +2026-10-27_14:10:49 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8910.871 561.460 94.149) remaining=16.04 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:50 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8908.852 562.973 94.006) remaining=13.52 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:51 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8906.845 564.476 93.783) remaining=11.00 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:52 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8904.964 565.885 93.622) remaining=8.64 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:53 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8902.808 567.501 93.447) remaining=5.94 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:54 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8900.805 569.002 93.271) remaining=3.43 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:55 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8898.807 570.499 93.128) remaining=0.93 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:56 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=8 guid=26 segment=1 pos=(-8896.861 571.956 93.007) remaining=0.00 deviation=0.00 splineActive=0 repaths=0 +2026-10-27_14:10:56 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=8 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00 +2026-10-27_14:10:56 INFO [server.adventurebot.navigation] NAV_PLAN seq=9 guid=26 name='Arthoran' map=0 segment=0 start=(-8896.861 571.956 93.007) target=(-8880.855 583.947 93.233) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.00 path=20.01 maxSegment=4.01 maxZDelta=0.24 finalDistance=0.00 repaths=0 reason='ok' +2026-10-27_14:10:56 INFO [server.adventurebot.navigation] NAV_EXEC seq=9 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.01 segmentEnd=(-8880.855 583.947 93.233) target=(-8880.855 583.947 93.233) walk=1 +2026-10-27_14:10:56 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8880.855 583.947 93.233) remaining=18.50 state=Moving +2026-10-27_14:10:57 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8894.864 573.452 92.976) remaining=16.01 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:58 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8892.857 574.955 92.978) remaining=13.50 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:10:59 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8890.867 576.447 93.030) remaining=11.01 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:00 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8888.864 577.947 93.161) remaining=8.51 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:01 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8886.867 579.443 93.286) remaining=6.01 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:02 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8884.851 580.954 93.305) remaining=3.49 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:03 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8882.849 582.454 93.283) remaining=0.99 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:04 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=9 guid=26 segment=1 pos=(-8880.855 583.947 93.233) remaining=0.00 deviation=0.00 splineActive=0 repaths=0 +2026-10-27_14:11:04 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=9 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00 +2026-10-27_14:11:04 INFO [server.adventurebot.navigation] NAV_PLAN seq=10 guid=26 name='Arthoran' map=0 segment=0 start=(-8880.855 583.947 93.233) target=(-8864.850 595.939 92.645) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.01 path=20.01 maxSegment=4.00 maxZDelta=0.16 finalDistance=0.00 repaths=0 reason='ok' +2026-10-27_14:11:04 INFO [server.adventurebot.navigation] NAV_EXEC seq=10 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.01 segmentEnd=(-8864.850 595.939 92.645) target=(-8864.850 595.939 92.645) walk=1 +2026-10-27_14:11:04 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8864.850 595.939 92.645) remaining=18.51 state=Moving +2026-10-27_14:11:05 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8878.854 585.447 93.206) remaining=16.01 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:06 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8876.860 586.941 93.167) remaining=13.52 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:07 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8874.861 588.438 93.109) remaining=11.02 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:08 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8872.847 589.948 93.033) remaining=8.50 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:09 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8870.844 591.448 92.948) remaining=6.00 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:10 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8868.862 592.933 92.850) remaining=3.52 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:11 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8866.839 594.449 92.748) remaining=0.99 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:12 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=10 guid=26 segment=1 pos=(-8864.850 595.939 92.645) remaining=0.00 deviation=0.00 splineActive=0 repaths=0 +2026-10-27_14:11:12 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=10 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00 +2026-10-27_14:11:12 INFO [server.adventurebot.navigation] NAV_PLAN seq=11 guid=26 name='Arthoran' map=0 segment=0 start=(-8864.850 595.939 92.645) target=(-8848.844 607.931 92.673) type=0x1 calculated=1 complete=1 suspicious=0 points=6 direct=20.00 path=20.00 maxSegment=4.00 maxZDelta=0.08 finalDistance=0.03 repaths=0 reason='ok' +2026-10-27_14:11:12 INFO [server.adventurebot.navigation] NAV_EXEC seq=11 guid=26 name='Arthoran' segment=1 splinePoints=6 splineLength=20.00 segmentEnd=(-8848.844 607.931 92.642) target=(-8848.844 607.931 92.673) walk=1 +2026-10-27_14:11:12 INFO [server.adventurebot.navigation] NAV_START guid=26 name='Arthoran' map=0 target=(-8848.844 607.931 92.673) remaining=18.50 state=Moving +2026-10-27_14:11:13 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8862.856 597.433 92.602) remaining=16.01 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:14 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8860.846 598.939 92.561) remaining=13.50 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:15 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8858.829 600.450 92.524) remaining=10.98 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:16 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8856.846 601.936 92.520) remaining=8.50 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:17 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8854.824 603.451 92.534) remaining=5.97 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:18 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8852.815 604.956 92.585) remaining=3.46 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:19 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8850.809 606.459 92.619) remaining=0.96 deviation=0.00 splineActive=1 repaths=0 +2026-10-27_14:11:20 DEBUG [server.adventurebot.navigation] NAV_SAMPLE seq=11 guid=26 segment=1 pos=(-8848.844 607.931 92.642) remaining=0.00 deviation=0.00 splineActive=0 repaths=0 +2026-10-27_14:11:20 INFO [server.adventurebot.navigation] NAV_COMPLETE seq=11 guid=26 name='Arthoran' remaining=0.00 repaths=0 segments=1 maxDeviation=0.00 diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-follow-velocity-live-scene.txt b/doc/clientless/checkpoints/2026-10-27-profession/vcore-follow-velocity-live-scene.txt new file mode 100644 index 0000000000..b91227d290 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-follow-velocity-live-scene.txt @@ -0,0 +1,34 @@ +LEISURE_WALK_PLAN guid=26 kind='pet_walk' span=80.02 outbound=4 origin=(-8848.84 607.93 92.67) goal=(-8912.87 559.96 94.24) +COMPANION_START guid=26 spell=10673 summoned=1 +LEISURE_START guid=26 kind='pet_walk' waypoints=8 +COMPANION_CONFIRMED guid=26 pet='GUID Full: 0xf1301cd900000961 Type: Creature Entry: 7385 Low: 2401' entry=7385 +COMPANION_LEASH_REQUEST guid=26 item=37460 spell=48722 +CreatureAI::EngagementOver called even though creature is not currently engaged. +COMPANION_LEASH_CONFIRMED guid=26 spell=48722 +COMPANION_WALK_SAMPLE guid=26 owner=(-8864.85 595.94 92.65) pet=(-8862.91 597.40 92.59) distance=2.43 leashed=1 +LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=1/8 +CreatureAI::EngagementOver called even though creature is not currently engaged. +COMPANION_WALK_SAMPLE guid=26 owner=(-8880.86 583.95 93.23) pet=(-8879.00 585.34 93.21) distance=2.32 leashed=1 +LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=2/8 +CreatureAI::EngagementOver called even though creature is not currently engaged. +COMPANION_WALK_SAMPLE guid=26 owner=(-8896.86 571.96 93.01) pet=(-8894.87 573.45 92.98) distance=2.48 leashed=1 +LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=3/8 +CreatureAI::EngagementOver called even though creature is not currently engaged. +COMPANION_WALK_SAMPLE guid=26 owner=(-8912.87 559.96 94.24) pet=(-8910.87 561.46 94.17) distance=2.50 leashed=1 +LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=4/8 +CreatureAI::EngagementOver called even though creature is not currently engaged. +COMPANION_WALK_SAMPLE guid=26 owner=(-8896.86 571.96 93.01) pet=(-8898.80 570.51 93.12) distance=2.42 leashed=1 +LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=5/8 +CreatureAI::EngagementOver called even though creature is not currently engaged. +COMPANION_WALK_SAMPLE guid=26 owner=(-8880.86 583.95 93.23) pet=(-8882.85 582.46 93.26) distance=2.49 leashed=1 +LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=6/8 +Player::_LoadSkills: Player 'Allitester' (GUID Full: 0x0000000000000015 Type: Player Low: 21, Race: 1, Class: 1) has forbidden skill 118 for his race/class combination +CreatureAI::EngagementOver called even though creature is not currently engaged. +COMPANION_WALK_SAMPLE guid=26 owner=(-8864.85 595.94 92.65) pet=(-8866.87 594.43 92.75) distance=2.52 leashed=1 +LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=7/8 +COMPANION_WALK_SAMPLE guid=26 owner=(-8848.84 607.93 92.64) pet=(-8850.84 606.44 92.59) distance=2.49 leashed=1 +LEISURE_WAYPOINT guid=26 kind='pet_walk' reached=8/8 +LEISURE_COMPLETE guid=26 kind='pet_walk' legs=8 +COMPANION_END guid=26 +MICRO_START guid=26 intent='leisure' location='stormwind_leisure_trade' action='leisure_view' durationMs=36000 +Received not handled opcode [CMSG_USED_FOLLOW 0x7912 (30994)] from [Player: Allitester GUID Full: 0x0000000000000015 Type: Player Low: 21, Account: 1] diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-import-catalog-after.tsv b/doc/clientless/checkpoints/2026-10-27-profession/vcore-import-catalog-after.tsv new file mode 100644 index 0000000000..b0733a10fa --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-import-catalog-after.tsv @@ -0,0 +1,2865 @@ +point_key category map position_x position_y position_z orientation enabled COALESCE(w.comment,'') display_name source_type source_id area_id zone_id region_key is_area faction +big_anvil workshop 0 -4801.83 -1107.5 499.606 5.35259 1 big_anvil manual 0 5342 1537 ironforge 0 0 +gilded_rose_sleep_upstairs rest_sleep 0 -8863.8 685.8 104.932 3.74 1 Designated upstairs Gilded Rose floor sleeping spot; visual acceptance pending Gilded Rose: Ruheplatz im Obergeschoss manual 0 0 1519 stormwind 0 1 +goldshire_sleep_upstairs rest_sleep 0 -9457.2 32.8 63.9322 1.45 1 Designated upstairs tavern floor resting spot; native sleep pose after MMAP arrival Goldhain: Ruheplatz im Obergeschoss manual 0 0 12 elwynn 0 1 +goldshire_tavern tavern 0 -9467.41 24.8997 56.3405 1.56994 1 Lion's Pride Inn interior, Goldshire goldshire_tavern manual 0 5637 12 elwynn 0 0 +ironforge_bank bank 0 -4892.75 -988.721 503.941 1.14443 1 ironforge_bank manual 0 5719 1537 ironforge 0 0 +ironforge_brewfest festival 0 -5157.27 -600.83 398.2 1.49471 1 ironforge_brewfest manual 0 1 1 dun_morogh 0 0 +kharanos_tavern tavern 0 -5590.97 -525.915 399.652 3.29327 1 kharanos_tavern manual 0 2102 1 dun_morogh 0 0 +lakeshire_tavern tavern 0 -9226.34 -2155.01 63.7312 0.021528 1 lakeshire_tavern manual 0 69 44 redridgemountains 0 0 +poi_guard_1 tavern 0 -9459.35 42.0805 64.2846 0 1 Lion's Pride Inn Lion's Pride Inn guard_poi_inferred 1 87 12 elwynn 0 1 +poi_guard_10 landmark 0 -9467 -3.16732 56.9496 0 1 Tomas Tomas guard_poi_inferred 10 5637 12 elwynn 0 1 +poi_guard_100 landmark 1 10122 2599.13 1315.26 0 1 Darnassus Rogue Trainer Darnassus Rogue Trainer guard_poi_inferred 100 1657 1657 darnassus 0 1 +poi_guard_101 landmark 1 9951 2280.39 1341.39 0 1 Warrior's Terrace Warrior's Terrace guard_poi_inferred 101 1657 1657 darnassus 0 1 +poi_guard_102 landmark 1 10075.9 2356.76 1321.58 0 1 Darnassus Alchemy Darnassus Alchemy guard_poi_inferred 102 1657 1657 darnassus 0 1 +poi_guard_103 landmark 1 10088.6 2419.22 1321.68 0 1 Darnassus Cooking Darnassus Cooking guard_poi_inferred 103 1657 1657 darnassus 0 1 +poi_guard_104 landmark 1 10146.1 2313.43 1333 0 1 Darnassus Enchanting Darnassus Enchanting guard_poi_inferred 104 1657 1657 darnassus 0 1 +poi_guard_105 landmark 1 10150.1 2390.44 1323.43 0 1 Darnassus First Aid Darnassus First Aid guard_poi_inferred 105 1657 1657 darnassus 0 1 +poi_guard_106 landmark 1 9836.21 2432.18 1315.78 0 1 Darnassus Fishing Darnassus Fishing guard_poi_inferred 106 1662 1657 darnassus 0 1 +poi_guard_107 landmark 1 10131 2323.74 1343.31 0 1 Darnassus Inscription Darnassus Inscription guard_poi_inferred 107 1657 1657 darnassus 0 1 +poi_guard_108 landmark 1 10086.6 2255.77 1343.31 0 1 Darnassus Leatherworking Darnassus Leatherworking guard_poi_inferred 108 1657 1657 darnassus 0 1 +poi_guard_109 tavern 1 10081.4 2257.19 1343.31 0 1 Darnassus Skinning Darnassus Skinning guard_poi_inferred 109 1657 1657 darnassus 0 1 +poi_guard_11 landmark 0 -9456 30.4947 63.8204 0 1 Michelle Belle Michelle Belle guard_poi_inferred 11 5637 12 elwynn 0 1 +poi_guard_110 landmark 1 10079.7 2268.2 1333 0 1 Darnassus Tailoring Darnassus Tailoring guard_poi_inferred 110 1657 1657 darnassus 0 1 +poi_guard_111 tavern 1 9821.49 960.138 1308.8 0 1 Dolanaar Inn Dolanaar Inn guard_poi_inferred 111 186 141 teldrassil 0 1 +poi_guard_112 landmark 1 9808.37 931.106 1307.68 0 1 Seriadne Seriadne guard_poi_inferred 112 186 141 teldrassil 0 1 +poi_guard_113 landmark 1 9741.58 963.705 1293.64 0 1 Kal Kal guard_poi_inferred 113 186 141 teldrassil 0 1 +poi_guard_114 landmark 1 9815 926.283 1307.94 0 1 Dazalar Dazalar guard_poi_inferred 114 186 141 teldrassil 0 1 +poi_guard_115 landmark 1 9906 986.636 1313.83 0 1 Laurna Morninglight Laurna Morninglight guard_poi_inferred 115 186 141 teldrassil 0 1 +poi_guard_116 landmark 1 9789 942.865 1308.78 0 1 Jannok Breezesong Jannok Breezesong guard_poi_inferred 116 186 141 teldrassil 0 1 +poi_guard_117 landmark 1 9821 950.616 1308.77 0 1 Kyra Windblade Kyra Windblade guard_poi_inferred 117 186 141 teldrassil 0 1 +poi_guard_118 landmark 1 9767 878.817 1297.7 0 1 Cyndra Kindwhisper Cyndra Kindwhisper guard_poi_inferred 118 186 141 teldrassil 0 1 +poi_guard_119 landmark 1 9751 906.132 1295.52 0 1 Zarrin Zarrin guard_poi_inferred 119 186 141 teldrassil 0 1 +poi_guard_12 landmark 0 -9386 -118.731 58.8536 0 1 Lee Brown Lee Brown guard_poi_inferred 12 18 12 elwynn 0 1 +poi_guard_120 landmark 1 10677 1946.56 1336.19 0 1 Alanna Raveneye Alanna Raveneye guard_poi_inferred 120 264 141 teldrassil 0 1 +poi_guard_121 landmark 1 9903 999.095 1313.83 0 1 Byancie Byancie guard_poi_inferred 121 186 141 teldrassil 0 1 +poi_guard_122 landmark 1 9773 875.884 1297.7 0 1 Malorne Bladeleaf Malorne Bladeleaf guard_poi_inferred 122 186 141 teldrassil 0 1 +poi_guard_123 landmark 1 10152 1681.47 1326.01 0 1 Nadyia Maneweaver Nadyia Maneweaver guard_poi_inferred 123 4718 141 teldrassil 0 1 +poi_guard_124 landmark 1 10135 1673.18 1324.96 0 1 Radnaal Maneweaver Radnaal Maneweaver guard_poi_inferred 124 4718 141 teldrassil 0 1 +poi_guard_125 landmark 1 10152 1681.47 1326.01 0 1 Nadyia Maneweaver Nadyia Maneweaver guard_poi_inferred 125 4718 141 teldrassil 0 1 +poi_guard_126 landmark 571 5802 552.28 649.576 0 1 Dalaran Eastern Sewer Entrance Dalaran Eastern Sewer Entrance guard_poi_inferred 126 4613 4395 dalaran 0 0 +poi_guard_127 landmark 571 5816 760.085 640.51 0 1 Dalaran Western Sewer Entrance Dalaran Western Sewer Entrance guard_poi_inferred 127 4395 4395 dalaran 0 0 +poi_guard_128 landmark 571 5879 652.782 645.401 0 1 Dalaran Well Dalaran Well guard_poi_inferred 128 4613 4395 dalaran 0 0 +poi_guard_129 landmark 571 5758 715.641 618.568 0 1 Dalaran Silver Enclave Dalaran Silver Enclave guard_poi_inferred 129 4560 4395 dalaran 0 0 +poi_guard_13 landmark 0 -8850.78 856.596 99.6098 0 1 Stormwind Inscription Stormwind Inscription guard_poi_inferred 13 5154 1519 stormwind 0 1 +poi_guard_130 landmark 571 5857 595.421 635.46 0 1 Dalaran Sunreaver's Sanctuary Dalaran Sunreaver's Sanctuary guard_poi_inferred 130 4395 4395 dalaran 0 0 +poi_guard_131 bank 1 5966 613.917 -0.205452 0 1 Dalaran Northern Bank Dalaran Northern Bank guard_poi_inferred 131 453 148 darkshore 0 1 +poi_guard_132 bank 1 5640 687.532 -11.079 0 1 Dalaran Southern Bank Dalaran Southern Bank guard_poi_inferred 132 2078 148 darkshore 0 1 +poi_guard_133 landmark 571 5889 622.227 649.382 0 1 Dalaran Barber Dalaran Barber guard_poi_inferred 133 4395 4395 dalaran 0 0 +poi_guard_134 landmark 571 5813 449.107 184.653 0 1 Dalaran Flight Master Dalaran Flight Master guard_poi_inferred 134 4553 2817 crystalsongforest 0 0 +poi_guard_135 landmark 571 5756.87 620.785 650.092 0 1 Dalaran Visitor Center Dalaran Visitor Center guard_poi_inferred 135 4395 4395 dalaran 0 0 +poi_guard_136 tavern 571 5848 636.675 647.512 0 1 Dalaran Inn Dalaran Inn guard_poi_inferred 136 4395 4395 dalaran 0 0 +poi_guard_137 tavern 571 5731 678.199 646.154 0 1 Dalaran Alliance Inn Dalaran Alliance Inn guard_poi_inferred 137 4613 4395 dalaran 0 0 +poi_guard_139 workshop 1 5934 575.626 -1.14346 0 1 Dalaran Locksmith Dalaran Locksmith guard_poi_inferred 139 453 148 darkshore 0 1 +poi_guard_14 landmark 0 -9376 -75.2306 64.4374 0 1 Adele Fielder Adele Fielder guard_poi_inferred 14 87 12 elwynn 0 1 +poi_guard_140 landmark 1 5831 508.617 3.54979 0 1 Dalaran Krasus' Landing Dalaran Krasus' Landing guard_poi_inferred 140 2078 148 darkshore 0 1 +poi_guard_141 landmark 571 5797 794.906 144.091 0 1 Dalaran Violet Citadel Dalaran Violet Citadel guard_poi_inferred 141 4551 2817 crystalsongforest 0 0 +poi_guard_142 landmark 571 5691 500.56 652.679 0 1 Dalaran Violet Hold Dalaran Violet Hold guard_poi_inferred 142 4567 4395 dalaran 0 0 +poi_guard_143 landmark 571 5899 728.851 639.684 0 1 Dalaran Trade District Dalaran Trade District guard_poi_inferred 143 4620 4395 dalaran 0 0 +poi_guard_144 landmark 1 5952 674.611 -7.1943 0 1 Dalaran Antonidas Memorial Dalaran Antonidas Memorial guard_poi_inferred 144 453 148 darkshore 0 1 +poi_guard_145 landmark 571 5804 639.554 647.767 0 1 Dalaran Runeweaver Square Dalaran Runeweaver Square guard_poi_inferred 145 4739 4395 dalaran 0 0 +poi_guard_146 landmark 1 5710 645.397 -7.87828 0 1 Dalaran Eventide Dalaran Eventide guard_poi_inferred 146 2078 148 darkshore 0 1 +poi_guard_147 landmark 571 5851 766.287 641.032 0 1 Dalaran Cemetary Dalaran Cemetary guard_poi_inferred 147 4395 4395 dalaran 0 0 +poi_guard_148 landmark 571 5860 702.517 643.301 0 1 Dalaran Inscription Trainer Dalaran Inscription Trainer guard_poi_inferred 148 4395 4395 dalaran 0 0 +poi_guard_149 landmark 1 5859 557.745 1.13444 0 1 Dalaran Stable Master Dalaran Stable Master guard_poi_inferred 149 2078 148 darkshore 0 1 +poi_guard_15 landmark 0 -9381 -70.1127 64.4374 0 1 Helene Peltskinner Helene Peltskinner guard_poi_inferred 15 87 12 elwynn 0 1 +poi_guard_150 landmark 571 5808 581.308 640.402 0 1 Dalaran Mage Trainer Dalaran Mage Trainer guard_poi_inferred 150 4395 4395 dalaran 0 0 +poi_guard_151 landmark 571 5890 704.071 643.237 0 1 Dalaran Alchemy Trainer Dalaran Alchemy Trainer guard_poi_inferred 151 4395 4395 dalaran 0 0 +poi_guard_152 workshop 571 5904 680.889 643.496 0 1 Dalaran Blacksmithing Trainer Dalaran Blacksmithing Trainer guard_poi_inferred 152 4395 4395 dalaran 0 0 +poi_guard_153 landmark 571 5837 722.8 641.997 0 1 Dalaran Enchanting Trainer Dalaran Enchanting Trainer guard_poi_inferred 153 4395 4395 dalaran 0 0 +poi_guard_154 landmark 571 5920 728.168 642.135 0 1 Dalaran Engineering Trainer Dalaran Engineering Trainer guard_poi_inferred 154 4395 4395 dalaran 0 0 +poi_guard_155 landmark 571 5862 743.351 640.562 0 1 Dalaran First Aid Trainer Dalaran First Aid Trainer guard_poi_inferred 155 4395 4395 dalaran 0 0 +poi_guard_156 landmark 1 5704 613.969 3.64218 0 1 Dalaran Fishing Fountain Dalaran Fishing Fountain guard_poi_inferred 156 2078 148 darkshore 0 1 +poi_guard_157 landmark 571 5875 691.28 644.798 0 1 Dalaran Herbalism Trainer Dalaran Herbalism Trainer guard_poi_inferred 157 4620 4395 dalaran 0 0 +poi_guard_158 landmark 571 5873 721.729 643.087 0 1 Dalaran Jewelcrafting Trainer Dalaran Jewelcrafting Trainer guard_poi_inferred 158 4395 4395 dalaran 0 0 +poi_guard_159 landmark 571 5903 750.206 652.648 0 1 Dalaran Leatherworking Trainer Dalaran Leatherworking Trainer guard_poi_inferred 159 4395 4395 dalaran 0 0 +poi_guard_16 landmark 0 -9536 -1212.76 48.1517 0 1 Eldrin Eldrin guard_poi_inferred 16 88 12 elwynn 0 1 +poi_guard_160 mine 571 5919 709.664 642.515 0 1 Dalaran Mining Trainer Dalaran Mining Trainer guard_poi_inferred 160 4395 4395 dalaran 0 0 +poi_guard_161 tavern 571 5903 750.314 652.651 0 1 Dalaran Skinning Trainer Dalaran Skinning Trainer guard_poi_inferred 161 4395 4395 dalaran 0 0 +poi_guard_162 landmark 571 5882 745.847 640.371 0 1 Dalaran Tailoring Trainer Dalaran Tailoring Trainer guard_poi_inferred 162 4395 4395 dalaran 0 0 +poi_guard_163 landmark 571 5790.16 689.124 618.598 0 1 Dalaran Cloth Armor & Clothing Dalaran Cloth Armor & Clothing guard_poi_inferred 163 4560 4395 dalaran 0 0 +poi_guard_164 landmark 571 5773 576.271 650.434 0 1 Dalaran Flowers Dalaran Flowers guard_poi_inferred 164 4613 4395 dalaran 0 0 +poi_guard_165 landmark 571 5750 695.409 618.539 0 1 Dalaran Fruit Vendor Dalaran Fruit Vendor guard_poi_inferred 165 4560 4395 dalaran 0 0 +poi_guard_167 landmark 571 5847 567.15 652.656 0 1 Dalaran Pet Store Dalaran Pet Store guard_poi_inferred 167 4395 4395 dalaran 0 0 +poi_guard_168 landmark 571 5906 628.194 173.641 0 1 Dalaran Pie, Pastry & Cake Dalaran Pie, Pastry & Cake guard_poi_inferred 168 4553 2817 crystalsongforest 0 0 +poi_guard_169 landmark 571 5765 734.329 618.741 0 1 Dalaran Reagents Dalaran Reagents guard_poi_inferred 169 4560 4395 dalaran 0 0 +poi_guard_17 landmark 0 -9466.62 45.8709 56.776 0 1 Erma Erma guard_poi_inferred 17 87 12 elwynn 0 1 +poi_guard_170 landmark 571 5814 690.78 627.818 0 1 Dalaran Toy Store Dalaran Toy Store guard_poi_inferred 170 4570 4395 dalaran 0 0 +poi_guard_171 landmark 571 5752 645.427 629.449 0 1 Dalaran Trinkets Dalaran Trinkets guard_poi_inferred 171 4560 4395 dalaran 0 0 +poi_guard_172 landmark 1 5727 603.694 2.16357 0 1 Dalaran Melee Weapons Dalaran Melee Weapons guard_poi_inferred 172 2078 148 darkshore 0 1 +poi_guard_173 landmark 1 5780 558.349 1.11124 0 1 Dalaran Ranged Weapons Dalaran Ranged Weapons guard_poi_inferred 173 2078 148 darkshore 0 1 +poi_guard_174 landmark 1 5667 645.391 -10.1845 0 1 Dalaran Staves & Wands Dalaran Staves & Wands guard_poi_inferred 174 2078 148 darkshore 0 1 +poi_guard_175 landmark 571 5884 608.281 650.294 0 1 Dalaran Wine & Cheese Dalaran Wine & Cheese guard_poi_inferred 175 4395 4395 dalaran 0 0 +poi_guard_176 bank 1 1631 -4375.33 23.6624 0 1 Bank of Orgrimmar Bank of Orgrimmar guard_poi_inferred 176 5356 1637 orgrimmar 0 2 +poi_guard_177 landmark 1 1676 -4332.72 28.7718 0 1 The Sky Tower The Sky Tower guard_poi_inferred 177 5356 1637 orgrimmar 0 2 +poi_guard_178 landmark 1 1611.97 -4345.16 21.1212 0 1 Horde Embassy Horde Embassy guard_poi_inferred 178 5170 1637 orgrimmar 0 2 +poi_guard_179 tavern 1 1572.3 -4436.33 16.0551 0 1 Orgrimmar Inn Orgrimmar Inn guard_poi_inferred 179 5170 1637 orgrimmar 0 2 +poi_guard_18 landmark 0 -8832.65 652.766 96.0673 0 1 Stormwind Auction House Stormwind Auction House guard_poi_inferred 18 5148 1519 stormwind 0 1 +poi_guard_180 landmark 0 1622 -4388.8 113.312 0 1 Orgrimmar Mailbox Orgrimmar Mailbox guard_poi_inferred 180 2621 139 easternplaguelands 0 0 +poi_guard_181 landmark 1 1617.56 -4425.31 15.7852 0 1 Orgrimmar Auction House Orgrimmar Auction House guard_poi_inferred 181 5170 1637 orgrimmar 0 2 +poi_guard_182 landmark 1 1843.63 -4394.62 4.87963 0 1 Orgrimmar Eastern Zeppelin Tower Orgrimmar Eastern Zeppelin Tower guard_poi_inferred 182 5166 1637 orgrimmar 0 2 +poi_guard_183 landmark 1 1738.83 -4280.79 18.0238 0 1 Orgrimmar Western Zeppelin Tower Orgrimmar Western Zeppelin Tower guard_poi_inferred 183 5166 1637 orgrimmar 0 2 +poi_guard_184 landmark 1 2092 -4823.95 27.9543 0 1 Sayoc & Hanashi Sayoc & Hanashi guard_poi_inferred 184 5168 1637 orgrimmar 0 2 +poi_guard_185 landmark 1 2133 -4663.93 52.9114 0 1 Xon'cha Xon'cha guard_poi_inferred 185 5168 1637 orgrimmar 0 2 +poi_guard_186 landmark 0 1633 -4249.37 142.203 0 1 Hall of Legends Hall of Legends guard_poi_inferred 186 139 139 easternplaguelands 0 0 +poi_guard_187 landmark 1 1989 -4796.6 57.814 0 1 Battlemasters Orgrimmar Battlemasters Orgrimmar guard_poi_inferred 187 5168 1637 orgrimmar 0 2 +poi_guard_188 landmark 1 1782.49 -4212.75 40.37 0 1 Orgrimmar Barber Orgrimmar Barber guard_poi_inferred 188 1637 1637 orgrimmar 0 2 +poi_guard_189 landmark 1 1842.33 -4477.9 47.8027 0 1 Orgrimmar Inscription Orgrimmar Inscription guard_poi_inferred 189 5167 1637 orgrimmar 0 2 +poi_guard_19 bank 0 -8900.59 632.021 99.6035 0 1 Stormwind Bank Stormwind Bank guard_poi_inferred 19 5148 1519 stormwind 0 1 +poi_guard_190 landmark 530 -4020.99 -11733.5 -151.832 0 1 Exodar, Auctioneer Exodar, Auctioneer guard_poi_inferred 190 3557 3557 theexodar 0 1 +poi_guard_191 bank 530 -3918 -11550.1 -150.148 0 1 Exodar, bank Exodar, bank guard_poi_inferred 191 3557 3557 theexodar 0 1 +poi_guard_194 tavern 530 -3761.47 -11696.2 -106.066 0 1 Exodar, Inn Exodar, Inn guard_poi_inferred 194 3557 3557 theexodar 0 1 +poi_guard_195 landmark 530 -3913 -11607.6 -138.34 0 1 Exodar, Mailbox Exodar, Mailbox guard_poi_inferred 195 3557 3557 theexodar 0 1 +poi_guard_196 landmark 530 -3792 -11703.7 -105.28 0 1 Exodar, Stable Master Exodar, Stable Master guard_poi_inferred 196 3557 3557 theexodar 0 1 +poi_guard_197 landmark 530 -4214 -11630 -98.898 0 1 Exodar, Weapon Master Exodar, Weapon Master guard_poi_inferred 197 3557 3557 theexodar 0 1 +poi_guard_199 landmark 530 -4239.43 -11558.2 -97.1145 0 1 Exodar, Hunter Trainers Exodar, Hunter Trainers guard_poi_inferred 199 3557 3557 theexodar 0 1 +poi_guard_2 landmark 0 -9471.12 33.4441 63.8204 0 1 Zaldimar Wefhellt Zaldimar Wefhellt guard_poi_inferred 2 5637 12 elwynn 0 1 +poi_guard_20 landmark 0 -8573.47 990.095 96.3078 0 1 Stormwind Harbor Stormwind Harbor guard_poi_inferred 20 1519 1519 stormwind 0 1 +poi_guard_200 landmark 530 -4048 -11559.9 -138.46 0 1 Exodar, Mage Trainers Exodar, Mage Trainers guard_poi_inferred 200 3557 3557 theexodar 0 1 +poi_guard_202 landmark 530 -3975 -11486.1 -135.324 0 1 Exodar, Priest Trainers Exodar, Priest Trainers guard_poi_inferred 202 3557 3557 theexodar 0 1 +poi_guard_204 landmark 530 -4194.44 -11649.1 -99.7065 0 1 Exodar, Warrior Trainers Exodar, Warrior Trainers guard_poi_inferred 204 3557 3557 theexodar 0 1 +poi_guard_205 landmark 530 -4043 -11364.8 -138.919 0 1 Exodar, Alchemist Trainers Exodar, Alchemist Trainers guard_poi_inferred 205 3557 3557 theexodar 0 1 +poi_guard_206 workshop 530 -4241 -11713.5 -144.125 0 1 Exodar, Blacksmithing Trainers Exodar, Blacksmithing Trainers guard_poi_inferred 206 3557 3557 theexodar 0 1 +poi_guard_207 landmark 530 -3887 -11493.7 -136.177 0 1 Exodar, Enchanters Exodar, Enchanters guard_poi_inferred 207 3557 3557 theexodar 0 1 +poi_guard_208 landmark 530 -4259.47 -11643.8 -142.091 0 1 Exodar, Engineering Exodar, Engineering guard_poi_inferred 208 3557 3557 theexodar 0 1 +poi_guard_209 landmark 530 -3766 -11477.7 -134.322 0 1 Exodar, First Aid Trainer Exodar, First Aid Trainer guard_poi_inferred 209 3557 3557 theexodar 0 1 +poi_guard_21 landmark 0 -8387 565.012 91.9693 0 1 The Deeprun Tram The Deeprun Tram guard_poi_inferred 21 5150 1519 stormwind 0 1 +poi_guard_210 landmark 530 -3726 -11387.1 -133.497 0 1 Exodar, Fishing Trainer Exodar, Fishing Trainer guard_poi_inferred 210 3557 3557 theexodar 0 1 +poi_guard_211 landmark 530 -4050 -11360 -138.983 0 1 Exodar, Herbalist Trainer Exodar, Herbalist Trainer guard_poi_inferred 211 3557 3557 theexodar 0 1 +poi_guard_212 landmark 530 -3887 -11485 -136.15 0 1 Exodar Inscription Exodar Inscription guard_poi_inferred 212 3557 3557 theexodar 0 1 +poi_guard_213 landmark 530 -3785 -11544 -134.794 0 1 Exodar, Jewelcrafters Exodar, Jewelcrafters guard_poi_inferred 213 3557 3557 theexodar 0 1 +poi_guard_214 landmark 530 -4138 -11768.5 -136.88 0 1 Exodar, Leatherworking Exodar, Leatherworking guard_poi_inferred 214 3557 3557 theexodar 0 1 +poi_guard_215 mine 530 -4223 -11694.7 -143.478 0 1 Exodar, Mining Trainers Exodar, Mining Trainers guard_poi_inferred 215 3557 3557 theexodar 0 1 +poi_guard_216 tavern 530 -4137 -11761.8 -136.821 0 1 Exodar, Skinning Trainer Exodar, Skinning Trainer guard_poi_inferred 216 3557 3557 theexodar 0 1 +poi_guard_217 landmark 530 -4092 -11743.8 -139.598 0 1 Exodar, Tailors Exodar, Tailors guard_poi_inferred 217 3557 3557 theexodar 0 1 +poi_guard_218 landmark 530 -3798 -11654.5 -106.142 0 1 Exodar, Cook Exodar, Cook guard_poi_inferred 218 3557 3557 theexodar 0 1 +poi_guard_219 tavern 530 -4127 -12467.4 44.0849 0 1 Azure Watch, Innkeeper Azure Watch, Innkeeper guard_poi_inferred 219 3576 3524 azuremystisle 0 1 +poi_guard_22 tavern 0 -8867 673.634 97.9031 0 1 The Gilded Rose The Gilded Rose guard_poi_inferred 22 5148 1519 stormwind 0 1 +poi_guard_220 landmark 530 -4146 -12492.7 44.5181 0 1 Azure Watch, Stable Master Azure Watch, Stable Master guard_poi_inferred 220 3576 3524 azuremystisle 0 1 +poi_guard_221 landmark 530 -4203 -12526.5 45.3651 0 1 Azure Watch, Hunter Trainer Azure Watch, Hunter Trainer guard_poi_inferred 221 3576 3524 azuremystisle 0 1 +poi_guard_222 landmark 530 -4149 -12530 45.099 0 1 Azure Watch, Mage Trainer Azure Watch, Mage Trainer guard_poi_inferred 222 3576 3524 azuremystisle 0 1 +poi_guard_223 landmark 530 -4138 -12468.5 44.578 0 1 Azure Watch, Paladin Trainer Azure Watch, Paladin Trainer guard_poi_inferred 223 3576 3524 azuremystisle 0 1 +poi_guard_224 landmark 530 -4131 -12478.7 44.5742 0 1 Azure Watch, Priest Trainer Azure Watch, Priest Trainer guard_poi_inferred 224 3576 3524 azuremystisle 0 1 +poi_guard_225 landmark 530 -4162 -12456 44.2499 0 1 Azure Watch, Shaman Trainer Azure Watch, Shaman Trainer guard_poi_inferred 225 3576 3524 azuremystisle 0 1 +poi_guard_226 landmark 530 -4165 -12536.4 44.8313 0 1 Azure Watch, Warrior Trainer Azure Watch, Warrior Trainer guard_poi_inferred 226 3576 3524 azuremystisle 0 1 +poi_guard_227 landmark 530 -4191 -12469.6 45.5494 0 1 Azure Watch, Alchemist Azure Watch, Alchemist guard_poi_inferred 227 3576 3524 azuremystisle 0 1 +poi_guard_228 workshop 530 -4726 -12386.9 11.0929 0 1 Odesyus' Landing, Blacksmith Odesyus' Landing, Blacksmith guard_poi_inferred 228 3573 3524 azuremystisle 0 1 +poi_guard_229 landmark 530 -4708 -12400.1 11.8659 0 1 Odesyus' Landing, Cook Odesyus' Landing, Cook guard_poi_inferred 229 3573 3524 azuremystisle 0 1 +poi_guard_23 landmark 0 -8839.34 487.552 98.2598 0 1 Stormwind Flight Master Stormwind Flight Master guard_poi_inferred 23 1519 1519 stormwind 0 1 +poi_guard_230 landmark 530 -4157 -12470.4 44.9426 0 1 Azure Watch, Engineering Trainer Azure Watch, Engineering Trainer guard_poi_inferred 230 3576 3524 azuremystisle 0 1 +poi_guard_231 landmark 530 -4199 -12469.9 45.6268 0 1 Azure Watch, First Aid Trainer Azure Watch, First Aid Trainer guard_poi_inferred 231 3576 3524 azuremystisle 0 1 +poi_guard_232 landmark 530 -4266 -12985.4 2.25082 0 1 Ammen Ford, Fisherwoman Ammen Ford, Fisherwoman guard_poi_inferred 232 3857 3524 azuremystisle 0 1 +poi_guard_233 landmark 530 -4189 -12459.5 45.3452 0 1 Azure Watch, Herbalist Azure Watch, Herbalist guard_poi_inferred 233 3576 3524 azuremystisle 0 1 +poi_guard_234 landmark 530 -3442 -12322.4 14.0443 0 1 Stillpine Hold, Leatherworker Stillpine Hold, Leatherworker guard_poi_inferred 234 3572 3524 azuremystisle 0 1 +poi_guard_235 mine 530 -4179 -12493.1 44.3613 0 1 Azure Watch, Mining Trainer Azure Watch, Mining Trainer guard_poi_inferred 235 3576 3524 azuremystisle 0 1 +poi_guard_236 landmark 530 -3431 -12316.5 14.1971 0 1 Stillpine Hold, Skinner Stillpine Hold, Skinner guard_poi_inferred 236 3572 3524 azuremystisle 0 1 +poi_guard_237 landmark 530 -4711 -12386.7 11.861 0 1 Odesyus' Landing, Tailor Odesyus' Landing, Tailor guard_poi_inferred 237 3573 3524 azuremystisle 0 1 +poi_guard_238 landmark 1 5671.76 629.458 -6.55795 0 1 Dalaran Leather & Mail Armor Dalaran Leather & Mail Armor guard_poi_inferred 238 2078 148 darkshore 0 1 +poi_guard_239 landmark 571 5912.78 665.419 643.496 0 1 Dalaran Plate Armor & Shields Dalaran Plate Armor & Shields guard_poi_inferred 239 4395 4395 dalaran 0 0 +poi_guard_24 landmark 0 -8886 595.38 94.149 0 1 Stormwind Visitor's Center Stormwind Visitor's Center guard_poi_inferred 24 5148 1519 stormwind 0 1 +poi_guard_240 landmark 530 -1758.28 5162.92 -37.2049 0 1 Shattrath Cantina Shattrath Cantina guard_poi_inferred 240 3703 3703 shattrathcity 0 0 +poi_guard_242 tavern 530 -2183.82 5402.48 51.8825 0 1 Shattrath Inn Scryer Shattrath Inn Scryer guard_poi_inferred 242 3898 3703 shattrathcity 0 0 +poi_guard_243 landmark 530 -1833.51 5300.31 -12.4282 0 1 Shattrath Taxi Shattrath Taxi guard_poi_inferred 243 3703 3703 shattrathcity 0 0 +poi_guard_244 landmark 530 -1890.23 5759.71 129.55 0 1 Shattrath Stable Aldor Shattrath Stable Aldor guard_poi_inferred 244 3703 3703 shattrathcity 0 0 +poi_guard_245 landmark 530 -2170.07 5403.83 50.2279 0 1 Shattrath Stable Scryer Shattrath Stable Scryer guard_poi_inferred 245 3703 3703 shattrathcity 0 0 +poi_guard_246 landmark 530 -1770.71 5259.79 -38.8263 0 1 Shattrath Battlemasters Alliance Shattrath Battlemasters Alliance guard_poi_inferred 246 3703 3703 shattrathcity 0 0 +poi_guard_247 landmark 530 -1964.78 5264.26 -38.8272 0 1 Shattrath Battlemasters Horde Shattrath Battlemasters Horde guard_poi_inferred 247 3703 3703 shattrathcity 0 0 +poi_guard_248 landmark 530 -1657.63 5537.62 -5.09391 0 1 Shattrath Alchemist Shattrath Alchemist guard_poi_inferred 248 3703 3703 shattrathcity 0 0 +poi_guard_249 landmark 530 -1847.52 5221.92 -38.0454 0 1 Shattrath Armor/Weapon Crafter Shattrath Armor/Weapon Crafter guard_poi_inferred 249 3703 3703 shattrathcity 0 0 +poi_guard_25 workshop 0 -8425.37 627.621 95.7196 0 1 Stormwind Locksmith Stormwind Locksmith guard_poi_inferred 25 5150 1519 stormwind 0 1 +poi_guard_250 landmark 530 -2067.64 5316.79 -37.3236 0 1 Shattrath Cook Shattrath Cook guard_poi_inferred 250 3703 3703 shattrathcity 0 0 +poi_guard_251 landmark 530 -2254.67 5560.77 67.0174 0 1 Shattrath Enchanters Shattrath Enchanters guard_poi_inferred 251 3703 3703 shattrathcity 0 0 +poi_guard_252 landmark 530 -1590.89 5263.1 -13.9915 0 1 Shattrath First Aid Shattrath First Aid guard_poi_inferred 252 3703 3703 shattrathcity 0 0 +poi_guard_253 landmark 530 -1653.91 5665.03 132.691 0 1 Shattrath Jewelcrafter Shattrath Jewelcrafter guard_poi_inferred 253 3896 3703 shattrathcity 0 0 +poi_guard_254 landmark 530 -2061.01 5256.46 -38.4652 0 1 Shattrath Leatherworker Shattrath Leatherworker guard_poi_inferred 254 3703 3703 shattrathcity 0 0 +poi_guard_255 landmark 530 -2047.96 5299.78 -38.5922 0 1 Shattrath Skinner Shattrath Skinner guard_poi_inferred 255 3703 3703 shattrathcity 0 0 +poi_guard_256 landmark 530 -2074.01 5265.15 -37.3236 0 1 Shattrath Mana Loom Shattrath Mana Loom guard_poi_inferred 256 3703 3703 shattrathcity 0 0 +poi_guard_257 landmark 530 -1644.85 5566.95 -4.90907 0 1 Shattrath Alchemy Lab Shattrath Alchemy Lab guard_poi_inferred 257 3703 3703 shattrathcity 0 0 +poi_guard_258 landmark 530 -2194.36 5422.41 50.2279 0 1 Scryer Gem Vendor Scryer Gem Vendor guard_poi_inferred 258 3703 3703 shattrathcity 0 0 +poi_guard_259 landmark 530 -1643.77 5669.46 132.679 0 1 Aldor Gem Vendor Aldor Gem Vendor guard_poi_inferred 259 3896 3703 shattrathcity 0 0 +poi_guard_26 landmark 0 -8432 555.121 95.1333 0 1 Jenova Stoneshield Jenova Stoneshield guard_poi_inferred 26 5150 1519 stormwind 0 1 +poi_guard_260 bank 530 -1725.93 5498.33 -9.79946 0 1 Shattrath Bank Aldor Shattrath Bank Aldor guard_poi_inferred 260 3703 3703 shattrathcity 0 0 +poi_guard_261 tavern 530 -1900.6 5769.12 131.212 0 1 Shattrath Inn Aldor Shattrath Inn Aldor guard_poi_inferred 261 3703 3703 shattrathcity 0 0 +poi_guard_262 landmark 530 -1961.79 5175.17 -37.8599 0 1 Shattrath Arena Battlemasters Shattrath Arena Battlemasters guard_poi_inferred 262 3703 3703 shattrathcity 0 0 +poi_guard_264 landmark 530 -3725.4 -11688.4 -105.615 0 1 Arena Battlemaster Exodar Arena Battlemaster Exodar guard_poi_inferred 264 3557 3557 theexodar 0 1 +poi_guard_265 landmark 1 9638.62 2607.96 1324.62 0 1 Darnassus Mage Trainer Darnassus Mage Trainer guard_poi_inferred 265 1661 1657 darnassus 0 1 +poi_guard_266 landmark 1 9657.61 2513.12 1331.64 0 1 Darnassus Paladin Trainer Darnassus Paladin Trainer guard_poi_inferred 266 1657 1657 darnassus 0 1 +poi_guard_267 landmark 1 9659.13 2524.89 1331.64 0 1 Temple of the Moon Temple of the Moon guard_poi_inferred 267 1657 1657 darnassus 0 1 +poi_guard_268 landmark 1 9757.18 2430.17 1333.9 0 1 Darnassus Herbalism Darnassus Herbalism guard_poi_inferred 268 1657 1657 darnassus 0 1 +poi_guard_269 landmark 0 -9060.71 149.236 115.034 0 1 Herbalist Pomeroy Herbalist Pomeroy guard_poi_inferred 269 12 12 elwynn 0 1 +poi_guard_27 landmark 0 -8796 613.098 96.7731 0 1 Woo Ping Woo Ping guard_poi_inferred 27 5148 1519 stormwind 0 1 +poi_guard_270 landmark 571 5777.99 607.481 649.96 0 1 Dalaran Sewer Arena Dalaran Sewer Arena guard_poi_inferred 270 4613 4395 dalaran 0 0 +poi_guard_271 bank 571 5765.75 731.147 618.59 0 1 Dalaran Sewer Bank Dalaran Sewer Bank guard_poi_inferred 271 4560 4395 dalaran 0 0 +poi_guard_272 tavern 571 5761.09 714.637 618.546 0 1 Dalaran Sewer Inn Dalaran Sewer Inn guard_poi_inferred 272 4560 4395 dalaran 0 0 +poi_guard_273 landmark 571 5777.54 743.632 620.464 0 1 Dalaran Sewer Tunnel Dalaran Sewer Tunnel guard_poi_inferred 273 4560 4395 dalaran 0 0 +poi_guard_274 landmark 1 5924.84 565.286 -1.6767 0 1 Dalaran Sewer Vendors Dalaran Sewer Vendors guard_poi_inferred 274 453 148 darkshore 0 1 +poi_guard_275 bank 1 -1257.8 24.1431 128.187 0 1 Thunder Bluff Bank Thunder Bluff Bank guard_poi_inferred 275 5345 1638 thunderbluff 0 2 +poi_guard_276 landmark 1 -1196.44 28.2654 132.139 0 1 Wind Rider Roost Wind Rider Roost guard_poi_inferred 276 5345 1638 thunderbluff 0 2 +poi_guard_277 landmark 1 -1296.5 127.579 131.459 0 1 Thunder Bluff Civic Information Thunder Bluff Civic Information guard_poi_inferred 277 5345 1638 thunderbluff 0 2 +poi_guard_278 tavern 1 -1296.07 39.7075 129.209 0 1 Thunder Bluff Inn Thunder Bluff Inn guard_poi_inferred 278 5345 1638 thunderbluff 0 2 +poi_guard_279 landmark 1 -1263.6 44.3601 127.753 0 1 Thunder Bluff Mailbox Thunder Bluff Mailbox guard_poi_inferred 279 5345 1638 thunderbluff 0 2 +poi_guard_28 landmark 0 -8762 401.972 97.8496 0 1 Champions' Hall Champions' Hall guard_poi_inferred 28 5149 1519 stormwind 0 1 +poi_guard_280 landmark 0 -1198.32 102.054 -6.77838 0 1 Thunder Bluff Auction house Thunder Bluff Auction house guard_poi_inferred 280 295 267 hillsbradfoothills 0 0 +poi_guard_281 landmark 1 -1282.31 89.563 129.127 0 1 Ansekhwa Ansekhwa guard_poi_inferred 281 5345 1638 thunderbluff 0 2 +poi_guard_282 landmark 1 -1270.2 48.8459 128.638 0 1 Bulrug Bulrug guard_poi_inferred 282 5345 1638 thunderbluff 0 2 +poi_guard_283 landmark 1 -1385.74 -85.4147 159.369 0 1 Battlemasters Thunder Bluff Battlemasters Thunder Bluff guard_poi_inferred 283 1641 1638 thunderbluff 0 2 +poi_guard_284 landmark 0 -1027.62 322.681 -8.74415 0 1 Thunder Bluff Zeppelin Thunder Bluff Zeppelin guard_poi_inferred 284 295 267 hillsbradfoothills 0 0 +poi_guard_285 landmark 1 -1057.35 -261.014 159.03 0 1 Hall of Elders Hall of Elders guard_poi_inferred 285 1639 1638 thunderbluff 0 2 +poi_guard_286 landmark 1 -1416.33 -114.285 160.637 0 1 Hunter's Hall Hunter's Hall guard_poi_inferred 286 1641 1638 thunderbluff 0 2 +poi_guard_287 landmark 1 -1061.21 195.505 107.613 0 1 Pools of Vision Pools of Vision guard_poi_inferred 287 1640 1638 thunderbluff 0 2 +poi_guard_288 landmark 1 -989.541 278.253 137.59 0 1 Hall of Spirits Hall of Spirits guard_poi_inferred 288 1640 1638 thunderbluff 0 2 +poi_guard_289 landmark 1 -1085.57 27.2931 140.827 0 1 Bena's Alchemy Bena's Alchemy guard_poi_inferred 289 5345 1638 thunderbluff 0 2 +poi_guard_29 landmark 0 -8392 272.087 154.006 0 1 Battlemasters Stormwind Battlemasters Stormwind guard_poi_inferred 29 1519 1519 stormwind 0 1 +poi_guard_290 workshop 1 -1239.75 104.888 129.097 0 1 Karn's Smithy Karn's Smithy guard_poi_inferred 290 5345 1638 thunderbluff 0 2 +poi_guard_291 landmark 1 -1214.5 -21.2327 165.371 0 1 Aska's Kitchen Aska's Kitchen guard_poi_inferred 291 5345 1638 thunderbluff 0 2 +poi_guard_292 landmark 1 -1116.56 -45.6337 141.84 0 1 Dawnstrider Enchanters Dawnstrider Enchanters guard_poi_inferred 292 5345 1638 thunderbluff 0 2 +poi_guard_293 landmark 1 -996.586 200.504 136.535 0 1 Spiritual Healing Spiritual Healing guard_poi_inferred 293 1640 1638 thunderbluff 0 2 +poi_guard_294 landmark 1 -1169.36 -68.878 162.186 0 1 Mountaintop Bait & Tackle Mountaintop Bait & Tackle guard_poi_inferred 294 5345 1638 thunderbluff 0 2 +poi_guard_295 landmark 1 -1137.71 -1.51698 143.437 0 1 Holistic Herbalism Holistic Herbalism guard_poi_inferred 295 5345 1638 thunderbluff 0 2 +poi_guard_296 landmark 1 -999.381 213.664 105.954 0 1 Thunder Bluff Inscription Thunder Bluff Inscription guard_poi_inferred 296 2197 1638 thunderbluff 0 2 +poi_guard_297 landmark 1 -1156.23 66.8664 145.817 0 1 Thunder Bluff Armorers Thunder Bluff Armorers guard_poi_inferred 297 5345 1638 thunderbluff 0 2 +poi_guard_298 landmark 1 -1249.17 155.028 133.549 0 1 Stonehoof Geology Stonehoof Geology guard_poi_inferred 298 5345 1638 thunderbluff 0 2 +poi_guard_299 landmark 1 -1148.57 51.1842 144.792 0 1 Mooranta Mooranta guard_poi_inferred 299 5345 1638 thunderbluff 0 2 +poi_guard_3 landmark 0 -9469 108.053 57.4087 0 1 Brother Wilhelm Brother Wilhelm guard_poi_inferred 3 87 12 elwynn 0 1 +poi_guard_30 landmark 0 -8755.01 657.7 100.864 0 1 Stormwind Barber Stormwind Barber guard_poi_inferred 30 5148 1519 stormwind 0 1 +poi_guard_300 landmark 1 2114.84 -4625.32 49.24 0 1 Orgrimmar Hunter's Hall Orgrimmar Hunter's Hall guard_poi_inferred 300 5168 1637 orgrimmar 0 2 +poi_guard_301 landmark 0 1451.26 -4223.33 296.333 0 1 Darkbriar Lodge Darkbriar Lodge guard_poi_inferred 301 139 139 easternplaguelands 0 0 +poi_guard_302 landmark 0 1442.22 -4183.24 288.428 0 1 Spirit Lodge Spirit Lodge guard_poi_inferred 302 139 139 easternplaguelands 0 0 +poi_guard_303 landmark 1 1925.35 -4181.89 37.8837 0 1 Thrall's Fortress Thrall's Fortress guard_poi_inferred 303 1637 1637 orgrimmar 0 2 +poi_guard_304 landmark 1 1773.39 -4278.97 8.02823 0 1 Shadowswift Brotherhood Shadowswift Brotherhood guard_poi_inferred 304 5166 1637 orgrimmar 0 2 +poi_guard_305 landmark 1 1849.58 -4359.69 -14.7558 0 1 Darkfire Enclave Darkfire Enclave guard_poi_inferred 305 5166 1637 orgrimmar 0 2 +poi_guard_306 landmark 1 1983.92 -4794.21 57.814 0 1 Hall of the Brave Hall of the Brave guard_poi_inferred 306 5168 1637 orgrimmar 0 2 +poi_guard_307 landmark 1 1955.17 -4475.8 25.9546 0 1 Yelmak's Alchemy and Potions Yelmak's Alchemy and Potions guard_poi_inferred 307 5167 1637 orgrimmar 0 2 +poi_guard_308 workshop 1 2077.39 -4807.91 27.4415 0 1 The Burning Anvil The Burning Anvil guard_poi_inferred 308 5168 1637 orgrimmar 0 2 +poi_guard_309 landmark 1 1780.97 -4481.31 21.6384 0 1 Borstan's Firepit Borstan's Firepit guard_poi_inferred 309 1637 1637 orgrimmar 0 2 +poi_guard_31 landmark 0 -8851 856.599 99.6098 0 1 Stormwind Inscription Stormwind Inscription guard_poi_inferred 31 5154 1519 stormwind 0 1 +poi_guard_310 landmark 1 1917.5 -4434.95 24.7673 0 1 Godan's Runeworks Godan's Runeworks guard_poi_inferred 310 5167 1637 orgrimmar 0 2 +poi_guard_311 landmark 1 2038.46 -4744.76 26.0202 0 1 Nogg's Machine Shop Nogg's Machine Shop guard_poi_inferred 311 5168 1637 orgrimmar 0 2 +poi_guard_312 landmark 1 1472.91 -4148.62 52.6173 0 1 Survival of the Fittest Survival of the Fittest guard_poi_inferred 312 5332 1637 orgrimmar 0 2 +poi_guard_313 landmark 1 1994.15 -4655.7 19.6761 0 1 Lumak's Fishing Lumak's Fishing guard_poi_inferred 313 5168 1637 orgrimmar 0 2 +poi_guard_314 landmark 1 1898.62 -4454.94 53.4296 0 1 Jandi's Arboretum Jandi's Arboretum guard_poi_inferred 314 5167 1637 orgrimmar 0 2 +poi_guard_315 mine 1 2029.79 -4704.08 28.2529 0 1 Red Canyon Mining Red Canyon Mining guard_poi_inferred 315 5168 1637 orgrimmar 0 2 +poi_guard_316 landmark 1 1852.83 -4562.32 24.9808 0 1 Kodohide Leatherworkers Kodohide Leatherworkers guard_poi_inferred 316 5167 1637 orgrimmar 0 2 +poi_guard_317 landmark 0 1802.66 -4560.66 71.1339 0 1 Magar's Cloth Goods Magar's Cloth Goods guard_poi_inferred 317 2621 139 easternplaguelands 0 0 +poi_guard_318 landmark 0 1650.31 240.191 -43.0732 0 1 Undercity Auction House Undercity Auction House guard_poi_inferred 318 1497 1497 undercity 0 2 +poi_guard_319 bank 0 1595.64 232.456 -52.1491 0 1 Undercity Bank Undercity Bank guard_poi_inferred 319 1497 1497 undercity 0 2 +poi_guard_32 landmark 0 -8749 1075.78 8.3584 0 1 The Park The Park guard_poi_inferred 32 5409 1519 stormwind 0 1 +poi_guard_320 landmark 0 1576.99 195.566 -43.1023 0 1 Undercity Barber Undercity Barber guard_poi_inferred 320 1497 1497 undercity 0 2 +poi_guard_321 landmark 0 1565.9 271.435 -52.8356 0 1 Undercity Bat Handler Undercity Bat Handler guard_poi_inferred 321 1497 1497 undercity 0 2 +poi_guard_322 landmark 0 1299.13 347.983 -65.0275 0 1 Battlemasters Undercity Battlemasters Undercity guard_poi_inferred 322 1497 1497 undercity 0 2 +poi_guard_323 landmark 0 1594.17 205.572 -55.343 0 1 Undercity Guild Master Undercity Guild Master guard_poi_inferred 323 1497 1497 undercity 0 2 +poi_guard_324 tavern 0 1639.43 220.998 -43.1032 0 1 Undercity Inn Undercity Inn guard_poi_inferred 324 1497 1497 undercity 0 2 +poi_guard_325 workshop 0 1499.75 53.1442 -62.4036 0 1 Undercity Locksmith Undercity Locksmith guard_poi_inferred 325 1497 1497 undercity 0 2 +poi_guard_326 landmark 0 1632.69 219.403 -43.103 0 1 Undercity Mailbox Undercity Mailbox guard_poi_inferred 326 1497 1497 undercity 0 2 +poi_guard_327 landmark 0 1634.18 226.768 -43.1027 0 1 Anya Maulray Anya Maulray guard_poi_inferred 327 1497 1497 undercity 0 2 +poi_guard_328 landmark 0 1670.31 324.666 -62.157 0 1 Archibald Archibald guard_poi_inferred 328 1497 1497 undercity 0 2 +poi_guard_329 landmark 0 2059.04 274.869 95.1542 0 1 Undercity Zeppelin Undercity Zeppelin guard_poi_inferred 329 85 85 tirisfalglades 0 2 +poi_guard_33 landmark 0 -8430 559.87 94.6678 0 1 Hunter Lodge Hunter Lodge guard_poi_inferred 33 5150 1519 stormwind 0 1 +poi_guard_330 landmark 0 1299.26 316.787 -5.17768 0 1 Champion Cyssa Dawnrose Champion Cyssa Dawnrose guard_poi_inferred 330 1338 130 silverpineforest 0 0 +poi_guard_331 landmark 0 1781.09 53.0096 -61.4893 0 1 Undercity Mage Trainers Undercity Mage Trainers guard_poi_inferred 331 1497 1497 undercity 0 2 +poi_guard_332 landmark 0 1758.34 401.507 -58.2308 0 1 Undercity Priest Trainers Undercity Priest Trainers guard_poi_inferred 332 1497 1497 undercity 0 2 +poi_guard_333 landmark 0 1418.56 65.0243 -62.2788 0 1 Undercity Rogue Trainers Undercity Rogue Trainers guard_poi_inferred 333 1497 1497 undercity 0 2 +poi_guard_334 landmark 0 1780.92 53.1697 -61.4893 0 1 Undercity Warlock Trainers Undercity Warlock Trainers guard_poi_inferred 334 1497 1497 undercity 0 2 +poi_guard_335 landmark 0 1775.6 418.193 -58.031 0 1 Undercity Warrior Trainers Undercity Warrior Trainers guard_poi_inferred 335 1497 1497 undercity 0 2 +poi_guard_336 landmark 0 1419.83 417.197 -84.9655 0 1 The Apothecarium The Apothecarium guard_poi_inferred 336 1497 1497 undercity 0 2 +poi_guard_337 workshop 0 1696 285.042 -62.1476 0 1 Undercity Blacksmithing Trainer Undercity Blacksmithing Trainer guard_poi_inferred 337 1497 1497 undercity 0 2 +poi_guard_338 landmark 0 1596.35 274.684 -55.343 0 1 Undercity Cooking Trainer Undercity Cooking Trainer guard_poi_inferred 338 1497 1497 undercity 0 2 +poi_guard_339 landmark 0 1488.54 280.194 -62.1582 0 1 Undercity Enchanting Trainer Undercity Enchanting Trainer guard_poi_inferred 339 1497 1497 undercity 0 2 +poi_guard_34 landmark 0 -9008 857.193 150.021 0 1 Wizard's Sanctum Wizard's Sanctum guard_poi_inferred 34 5154 1519 stormwind 0 1 +poi_guard_340 landmark 0 1408.59 143.431 61.5895 0 1 Undercity Engineering Trainer Undercity Engineering Trainer guard_poi_inferred 340 153 85 tirisfalglades 0 0 +poi_guard_341 landmark 0 1519.65 167.199 -62.1327 0 1 Undercity First Aid Trainer Undercity First Aid Trainer guard_poi_inferred 341 1497 1497 undercity 0 2 +poi_guard_342 landmark 0 1679.9 89.0227 -62.1986 0 1 Undercity Fishing Trainer Undercity Fishing Trainer guard_poi_inferred 342 1497 1497 undercity 0 2 +poi_guard_343 landmark 0 1558.09 349.37 -62.1599 0 1 Undercity Herbalism Trainer Undercity Herbalism Trainer guard_poi_inferred 343 1497 1497 undercity 0 2 +poi_guard_344 landmark 0 1502.57 285.859 -62.1717 0 1 Undercity Inscription Undercity Inscription guard_poi_inferred 344 1497 1497 undercity 0 2 +poi_guard_345 landmark 0 1498.76 196.433 -62.1379 0 1 Undercity Leatherworking Trainer Undercity Leatherworking Trainer guard_poi_inferred 345 1497 1497 undercity 0 2 +poi_guard_346 tavern 0 1498.61 196.466 -62.1377 0 1 Undercity Skinning Trainer Undercity Skinning Trainer guard_poi_inferred 346 1497 1497 undercity 0 2 +poi_guard_347 mine 0 1642.88 335.588 -62.1747 0 1 Undercity Mining Trainer Undercity Mining Trainer guard_poi_inferred 347 1497 1497 undercity 0 2 +poi_guard_348 landmark 0 1689.55 193.023 -62.1752 0 1 Undercity Tailoring Trainer Undercity Tailoring Trainer guard_poi_inferred 348 1497 1497 undercity 0 2 +poi_guard_349 landmark 530 9648.04 -7135.57 16.7781 0 1 Silvermoon City, Auction House Silvermoon City, Auction House guard_poi_inferred 349 3487 3487 silvermooncity 0 2 +poi_guard_35 landmark 0 -8621 777.189 96.7328 0 1 Cathedral Of Light Cathedral Of Light guard_poi_inferred 35 5151 1519 stormwind 0 1 +poi_guard_350 landmark 530 9683.17 -7518.94 15.7345 0 1 Silvermoon City, Auction House Silvermoon City, Auction House guard_poi_inferred 350 3487 3487 silvermooncity 0 2 +poi_guard_351 bank 530 9525.04 -7215.4 16.1345 0 1 Silvermoon City, Bank Silvermoon City, Bank guard_poi_inferred 351 3487 3487 silvermooncity 0 2 +poi_guard_352 bank 530 9792.68 -7488.06 13.5486 0 1 Silvermoon City, Bank Silvermoon City, Bank guard_poi_inferred 352 3487 3487 silvermooncity 0 2 +poi_guard_353 landmark 530 9379.46 -7166 8.93838 0 1 Silvermoon City, Flight Master Silvermoon City, Flight Master guard_poi_inferred 353 3430 3430 eversongwoods 0 2 +poi_guard_354 landmark 530 9484.73 -7345.1 16.0909 0 1 Silvermoon City, Guild House Silvermoon City, Guild House guard_poi_inferred 354 3487 3487 silvermooncity 0 2 +poi_guard_355 tavern 530 9673.15 -7370.3 11.9337 0 1 Silvermoon City, Inn Silvermoon City, Inn guard_poi_inferred 355 3487 3487 silvermooncity 0 2 +poi_guard_356 tavern 530 9561.12 -7216.6 16.2122 0 1 Silvermoon City, Inn Silvermoon City, Inn guard_poi_inferred 356 3487 3487 silvermooncity 0 2 +poi_guard_357 landmark 530 9743.59 -7466.39 13.5744 0 1 Silvermoon City, Mailbox Silvermoon City, Mailbox guard_poi_inferred 357 3487 3487 silvermooncity 0 2 +poi_guard_358 landmark 530 9903.8 -7404.16 13.6284 0 1 Silvermoon City, Stable Master Silvermoon City, Stable Master guard_poi_inferred 358 3487 3487 silvermooncity 0 2 +poi_guard_36 landmark 0 -8782 353.099 105.293 0 1 Stormwind - Rogue House Stormwind - Rogue House guard_poi_inferred 36 1519 1519 stormwind 0 0 +poi_guard_361 landmark 530 9704.17 -7265.84 16.125 0 1 Silvermoon City, Druid Trainer Silvermoon City, Druid Trainer guard_poi_inferred 361 3487 3487 silvermooncity 0 2 +poi_guard_362 landmark 530 9934.22 -7411.71 12.3581 0 1 Silvermoon City, Hunter Trainer Silvermoon City, Hunter Trainer guard_poi_inferred 362 3487 3487 silvermooncity 0 2 +poi_guard_363 landmark 530 9998.34 -7106.58 47.7049 0 1 Silvermoon City, Mage Trainer Silvermoon City, Mage Trainer guard_poi_inferred 363 3487 3487 silvermooncity 0 2 +poi_guard_364 landmark 530 9850.89 -7512.63 17.5446 0 1 Silvermoon City, Paladin Trainer Silvermoon City, Paladin Trainer guard_poi_inferred 364 3487 3487 silvermooncity 0 2 +poi_guard_365 landmark 530 9936.98 -7058.41 47.7153 0 1 Silvermoon City, Priest Trainer Silvermoon City, Priest Trainer guard_poi_inferred 365 3487 3487 silvermooncity 0 2 +poi_guard_367 landmark 530 9801.76 -7322.78 14.6861 0 1 Silvermoon City, Warlock Trainer Silvermoon City, Warlock Trainer guard_poi_inferred 367 3487 3487 silvermooncity 0 2 +poi_guard_368 landmark 530 10007.6 -7213.23 32.0765 0 1 Silvermoon City, Alchemy Silvermoon City, Alchemy guard_poi_inferred 368 3487 3487 silvermooncity 0 2 +poi_guard_369 workshop 530 9841.22 -7367.58 18.602 0 1 Silvermoon City, Blacksmithing Silvermoon City, Blacksmithing guard_poi_inferred 369 3487 3487 silvermooncity 0 2 +poi_guard_37 landmark 0 -9031 549.835 73.0835 0 1 Farseer Umbrua Farseer Umbrua guard_poi_inferred 37 1617 1519 stormwind 0 1 +poi_guard_370 landmark 530 9577.93 -7240.72 27.0311 0 1 Silvermoon City, Cooking Silvermoon City, Cooking guard_poi_inferred 370 3487 3487 silvermooncity 0 2 +poi_guard_371 landmark 530 9956.17 -7244.75 32.0765 0 1 Silvermoon City, Enchanting Silvermoon City, Enchanting guard_poi_inferred 371 3487 3487 silvermooncity 0 2 +poi_guard_372 landmark 530 9826.92 -7323.3 26.2815 0 1 Silvermoon City, Engineering Silvermoon City, Engineering guard_poi_inferred 372 3487 3487 silvermooncity 0 2 +poi_guard_373 landmark 530 9592.15 -7343.07 14.0204 0 1 Silvermoon City, First Aid Silvermoon City, First Aid guard_poi_inferred 373 3487 3487 silvermooncity 0 2 +poi_guard_374 landmark 530 9605 -7328.44 14.443 0 1 Silvermoon City, Fishing Silvermoon City, Fishing guard_poi_inferred 374 3487 3487 silvermooncity 0 2 +poi_guard_375 landmark 530 10000.4 -7209.03 32.0764 0 1 Silvermoon City, Herbalism Silvermoon City, Herbalism guard_poi_inferred 375 3487 3487 silvermooncity 0 2 +poi_guard_376 landmark 530 9956.29 -7238.35 32.0765 0 1 Silvermoon City Inscription Silvermoon City Inscription guard_poi_inferred 376 3487 3487 silvermooncity 0 2 +poi_guard_377 landmark 530 9553.46 -7501.89 17.4006 0 1 Silvermoon City, Jewelcrafting Silvermoon City, Jewelcrafting guard_poi_inferred 377 3487 3487 silvermooncity 0 2 +poi_guard_378 landmark 530 9489.78 -7430.7 14.1813 0 1 Silvermoon City, Leatherworking Silvermoon City, Leatherworking guard_poi_inferred 378 3487 3487 silvermooncity 0 2 +poi_guard_379 mine 530 9810 -7358.41 20.6934 0 1 Silvermoon City, Mining Silvermoon City, Mining guard_poi_inferred 379 3487 3487 silvermooncity 0 2 +poi_guard_38 landmark 0 -8938 986.894 121.695 0 1 The Slaughtered Lamb The Slaughtered Lamb guard_poi_inferred 38 5154 1519 stormwind 0 0 +poi_guard_380 tavern 530 9512.51 -7425.99 14.1783 0 1 Silvermoon City, Skinning Silvermoon City, Skinning guard_poi_inferred 380 3487 3487 silvermooncity 0 2 +poi_guard_381 landmark 530 9732.46 -7086.61 13.4606 0 1 Silvermoon City, Tailoring Silvermoon City, Tailoring guard_poi_inferred 381 3487 3487 silvermooncity 0 2 +poi_guard_383 tavern 530 9476.83 -6859.16 17.3443 0 1 Falconwing Square, Innkeeper Falconwing Square, Innkeeper guard_poi_inferred 383 5728 3430 eversongwoods 0 2 +poi_guard_384 landmark 530 9487.66 -6830.49 16.4946 0 1 Falconwing Square, Stable Master Falconwing Square, Stable Master guard_poi_inferred 384 3665 3430 eversongwoods 0 2 +poi_guard_385 landmark 530 9529.19 -6864.51 18.7484 0 1 Falconwing Square, Hunter Trainer Falconwing Square, Hunter Trainer guard_poi_inferred 385 3665 3430 eversongwoods 0 2 +poi_guard_386 landmark 530 9462.34 -6853.61 17.44 0 1 Falconwing Square, Mage Trainer Falconwing Square, Mage Trainer guard_poi_inferred 386 5728 3430 eversongwoods 0 2 +poi_guard_387 landmark 530 9516 -6871.03 31.3427 0 1 Falconwing Square, Paladin Trainer Falconwing Square, Paladin Trainer guard_poi_inferred 387 3665 3430 eversongwoods 0 2 +poi_guard_388 landmark 530 9466.73 -6844.34 17.44 0 1 Falconwing Square, Priest Trainer Falconwing Square, Priest Trainer guard_poi_inferred 388 5728 3430 eversongwoods 0 2 +poi_guard_389 landmark 530 9534.22 -6876.03 26.1488 0 1 Falconwing Square, Rogue Trainer Falconwing Square, Rogue Trainer guard_poi_inferred 389 3665 3430 eversongwoods 0 2 +poi_guard_39 landmark 0 -8714 342.761 114.047 0 1 Stormwind Barracks Stormwind Barracks guard_poi_inferred 39 1519 1519 stormwind 0 0 +poi_guard_390 landmark 530 9467.62 -6862.82 18.7739 0 1 Falconwing Square, Warlock Trainer Falconwing Square, Warlock Trainer guard_poi_inferred 390 5728 3430 eversongwoods 0 2 +poi_guard_391 landmark 530 8661.25 -6367.09 53.5391 0 1 Saltheril's Haven, Alchemist Saltheril's Haven, Alchemist guard_poi_inferred 391 3468 3430 eversongwoods 0 2 +poi_guard_392 workshop 530 8986.45 -7418.87 89.4022 0 1 Farstrider Retreat, Blacksmith Farstrider Retreat, Blacksmith guard_poi_inferred 392 3464 3430 eversongwoods 0 2 +poi_guard_393 landmark 530 9494.83 -6879.43 28.3472 0 1 Falconwing Square, Cook Falconwing Square, Cook guard_poi_inferred 393 5728 3430 eversongwoods 0 2 +poi_guard_394 landmark 530 8657.49 -6366.78 53.5014 0 1 Saltheril's Haven, Enchanter Saltheril's Haven, Enchanter guard_poi_inferred 394 3468 3430 eversongwoods 0 2 +poi_guard_395 landmark 530 9479.51 -6880.07 28.3431 0 1 Falconwing Square, First Aid Trainer Falconwing Square, First Aid Trainer guard_poi_inferred 395 5728 3430 eversongwoods 0 2 +poi_guard_396 landmark 530 8678.66 -6329.33 55.9429 0 1 Saltheril's Haven, Herbalist Saltheril's Haven, Herbalist guard_poi_inferred 396 3468 3430 eversongwoods 0 2 +poi_guard_397 landmark 530 9484.8 -6876.82 17.4202 0 1 Falconwing Square, Jewelcrafter Falconwing Square, Jewelcrafter guard_poi_inferred 397 5728 3430 eversongwoods 0 2 +poi_guard_398 wilderness 530 9363.7 -7130.73 8.60629 0 1 Eversong Woods, Leatherworker Eversong Woods, Leatherworker guard_poi_inferred 398 3430 3430 eversongwoods 0 2 +poi_guard_399 wilderness 530 9362.82 -7134.61 8.58814 0 1 Eversong Woods, Skinner Eversong Woods, Skinner guard_poi_inferred 399 3430 3430 eversongwoods 0 2 +poi_guard_4 landmark 0 -9461.07 32.996 63.8204 0 1 Priestess Josetta Priestess Josetta guard_poi_inferred 4 5637 12 elwynn 0 1 +poi_guard_40 landmark 0 -8975 778.865 96.7801 0 1 Alchemy Needs Alchemy Needs guard_poi_inferred 40 5154 1519 stormwind 0 1 +poi_guard_400 landmark 530 8680.7 -6327.05 55.9492 0 1 Saltheril's Haven, Tailor Saltheril's Haven, Tailor guard_poi_inferred 400 3468 3430 eversongwoods 0 2 +poi_guard_401 landmark 0 -4799.56 -1250.24 502.003 0 1 Springspindle's Gadgets Springspindle's Gadgets guard_poi_inferred 401 1537 1537 ironforge 0 1 +poi_guard_402 landmark 0 -5529.12 -660.912 393.329 0 1 Yarr Hammerstone Yarr Hammerstone guard_poi_inferred 402 189 1 dun_morogh 0 1 +poi_guard_403 tavern 1 338.709 -4688.87 16.4892 0 1 Razor Hill Inn Razor Hill Inn guard_poi_inferred 403 362 14 durotar 0 2 +poi_guard_404 landmark 1 330.313 -4710.67 14.6339 0 1 Shoja'my Shoja'my guard_poi_inferred 404 362 14 durotar 0 2 +poi_guard_405 landmark 1 276.067 -4706.73 17.7672 0 1 Thotar Thotar guard_poi_inferred 405 362 14 durotar 0 2 +poi_guard_406 landmark 1 -839.33 -4935.61 20.9854 0 1 Un'Thuwa Un'Thuwa guard_poi_inferred 406 367 14 durotar 0 2 +poi_guard_407 landmark 1 296.225 -4828.11 10.5233 0 1 Tai'jin Tai'jin guard_poi_inferred 407 2337 14 durotar 0 2 +poi_guard_408 landmark 1 265.765 -4709.01 17.7672 0 1 Kaplak Kaplak guard_poi_inferred 408 362 14 durotar 0 2 +poi_guard_409 landmark 1 307.797 -4836.97 10.524 0 1 Swart Swart guard_poi_inferred 409 2337 14 durotar 0 2 +poi_guard_41 workshop 0 -8433 610.413 95.1353 0 1 Therum Deepforge Therum Deepforge guard_poi_inferred 41 5150 1519 stormwind 0 1 +poi_guard_410 landmark 1 355.88 -4836.46 10.9807 0 1 Dhugru Gorelust Dhugru Gorelust guard_poi_inferred 410 362 14 durotar 0 2 +poi_guard_411 landmark 1 312.308 -4824.66 9.5796 0 1 Tarshaw Jaggedscar Tarshaw Jaggedscar guard_poi_inferred 411 2337 14 durotar 0 2 +poi_guard_412 landmark 1 -800.253 -4894.34 22.8102 0 1 Miao'zan Miao'zan guard_poi_inferred 412 367 14 durotar 0 2 +poi_guard_413 landmark 1 373.248 -4716.45 15.6792 0 1 Dwukk Dwukk guard_poi_inferred 413 362 14 durotar 0 2 +poi_guard_414 landmark 1 368.96 -4723.96 12.6907 0 1 Mukdrak Mukdrak guard_poi_inferred 414 362 14 durotar 0 2 +poi_guard_415 landmark 1 327.175 -4825.62 10.5242 0 1 Rawrk Rawrk guard_poi_inferred 415 2337 14 durotar 0 2 +poi_guard_416 landmark 0 -1065.49 -4777.43 -299.364 0 1 Lau'Tiki Lau'Tiki guard_poi_inferred 416 2400 47 thehinterlands 0 0 +poi_guard_417 landmark 1 -836.254 -4896.9 23.0628 0 1 Mishiki Mishiki guard_poi_inferred 417 367 14 durotar 0 2 +poi_guard_418 landmark 1 366.941 -4705.09 16.2425 0 1 Krunn Krunn guard_poi_inferred 418 362 14 durotar 0 2 +poi_guard_419 tavern 1 -2361.39 -349.193 -8.95699 0 1 Bloodhoof Village Inn Bloodhoof Village Inn guard_poi_inferred 419 222 215 mulgore 0 2 +poi_guard_42 tavern 0 -8641 423.502 101.968 0 1 Pig and Whistle Tavern Pig and Whistle Tavern guard_poi_inferred 42 5149 1519 stormwind 0 1 +poi_guard_420 landmark 1 -2338.86 -357.564 -8.71674 0 1 Seikwa Seikwa guard_poi_inferred 420 222 215 mulgore 0 2 +poi_guard_421 landmark 1 -2312.16 -443.693 -7.02664 0 1 Gennia Runetotem Gennia Runetotem guard_poi_inferred 421 222 215 mulgore 0 2 +poi_guard_422 landmark 0 -2178.15 -406.144 -515.189 0 1 Yaw Sharpmane Yaw Sharpmane guard_poi_inferred 422 2365 11 wetlands 0 0 +poi_guard_423 landmark 1 -2301.5 -439.871 -8.25404 0 1 Narm Skychaser Narm Skychaser guard_poi_inferred 423 222 215 mulgore 0 2 +poi_guard_424 landmark 1 -2345.44 -494.114 -8.89961 0 1 Krang Stonehoof Krang Stonehoof guard_poi_inferred 424 222 215 mulgore 0 2 +poi_guard_425 landmark 1 -2263.34 -287.91 -9.42455 0 1 Pyall Silentstride Pyall Silentstride guard_poi_inferred 425 222 215 mulgore 0 2 +poi_guard_426 landmark 1 -2353.52 -355.821 -8.95699 0 1 Vira Younghoof Vira Younghoof guard_poi_inferred 426 222 215 mulgore 0 2 +poi_guard_427 landmark 1 -2349.22 -241.376 -7.93859 0 1 Uthan Stillwater Uthan Stillwater guard_poi_inferred 427 223 215 mulgore 0 2 +poi_guard_428 landmark 1 -2257.12 -288.633 -9.42455 0 1 Chaw Stronghide Chaw Stronghide guard_poi_inferred 428 222 215 mulgore 0 2 +poi_guard_429 landmark 1 -2252.95 -291.324 -9.42455 0 1 Yonn Deepcut Yonn Deepcut guard_poi_inferred 429 222 215 mulgore 0 2 +poi_guard_43 landmark 0 -8838 782.35 96.2838 0 1 Lucan Cordell Lucan Cordell guard_poi_inferred 43 5390 1519 stormwind 0 1 +poi_guard_433 landmark 0 2235.25 317.696 34.2327 0 1 Cain Firesong Cain Firesong guard_poi_inferred 433 159 85 tirisfalglades 0 2 +poi_guard_434 landmark 0 2264.43 248.158 33.3918 0 1 Dark Cleric Beryl Dark Cleric Beryl guard_poi_inferred 434 159 85 tirisfalglades 0 2 +poi_guard_435 landmark 0 2267.61 243.924 33.461 0 1 Marion Call Marion Call guard_poi_inferred 435 159 85 tirisfalglades 0 2 +poi_guard_436 landmark 0 2257.46 247.402 33.6407 0 1 Rupert Boch Rupert Boch guard_poi_inferred 436 159 85 tirisfalglades 0 2 +poi_guard_437 landmark 0 2257.99 240.487 33.6904 0 1 Austil de Mon Austil de Mon guard_poi_inferred 437 159 85 tirisfalglades 0 2 +poi_guard_438 landmark 0 2264.81 344.257 33.5738 0 1 Carolai Anise Carolai Anise guard_poi_inferred 438 159 85 tirisfalglades 0 2 +poi_guard_439 landmark 0 2280.69 244.714 33.6906 0 1 Vance Undergloom Vance Undergloom guard_poi_inferred 439 159 85 tirisfalglades 0 2 +poi_guard_44 landmark 0 -8348 640.412 95.3282 0 1 Lilliam Sparkspindle Lilliam Sparkspindle guard_poi_inferred 44 5150 1519 stormwind 0 1 +poi_guard_440 landmark 0 2247.01 242.789 35.0541 0 1 Nurse Neela Nurse Neela guard_poi_inferred 440 159 85 tirisfalglades 0 2 +poi_guard_441 landmark 0 2299.92 1.16547 23.8804 0 1 Clyde Kellen Clyde Kellen guard_poi_inferred 441 85 85 tirisfalglades 0 0 +poi_guard_442 landmark 0 2270.57 329.97 33.5735 0 1 Faruza Faruza guard_poi_inferred 442 159 85 tirisfalglades 0 2 +poi_guard_443 landmark 0 2027.81 80.1105 34.9131 0 1 Shelene Rhobart Shelene Rhobart guard_poi_inferred 443 4919 85 tirisfalglades 0 2 +poi_guard_444 landmark 0 2031.33 71.8599 34.0871 0 1 Rand Rhobart Rand Rhobart guard_poi_inferred 444 4919 85 tirisfalglades 0 2 +poi_guard_445 landmark 0 2161.7 658.172 34.5448 0 1 Bowen Brisboise Bowen Brisboise guard_poi_inferred 445 166 85 tirisfalglades 0 2 +poi_guard_446 tavern 0 2281.68 283.71 33.2423 0 1 Gallows' End Tavern Gallows' End Tavern guard_poi_inferred 446 159 85 tirisfalglades 0 2 +poi_guard_447 landmark 0 2265.61 240.149 33.6906 0 1 Morganus Morganus guard_poi_inferred 447 159 85 tirisfalglades 0 2 +poi_guard_448 landmark 0 -5176.78 -623.99 397.175 0 1 Brewfest Souvenirs Brewfest Souvenirs guard_poi_inferred 448 1 1 dun_morogh 0 1 +poi_guard_449 landmark 0 -5200.93 -484.682 388.806 0 1 Brewfest Ram Racing Brewfest Ram Racing guard_poi_inferred 449 1 1 dun_morogh 0 1 +poi_guard_45 landmark 0 -8515 804.505 106.519 0 1 Shaina Fuller Shaina Fuller guard_poi_inferred 45 5704 1519 stormwind 0 1 +poi_guard_450 workshop 0 -4847.83 -862.606 501.914 0 1 Brew of the Month Club, Ironforge Brew of the Month Club, Ironforge guard_poi_inferred 450 5719 1537 ironforge 0 1 +poi_guard_451 landmark 0 1174.56 -4292.92 220.509 0 1 Goblin Brewfest Souvenirs Goblin Brewfest Souvenirs guard_poi_inferred 451 356 47 thehinterlands 0 0 +poi_guard_452 landmark 0 1282.99 -4410.59 334.243 0 1 Goblin Brewfest Ram Racing Goblin Brewfest Ram Racing guard_poi_inferred 452 47 47 thehinterlands 0 0 +poi_guard_453 landmark 0 1473.56 -4211.43 261.619 0 1 Brew of the Month Club, Orgrimmar Brew of the Month Club, Orgrimmar guard_poi_inferred 453 139 139 easternplaguelands 0 0 +poi_guard_454 landmark 571 5855.21 650.977 647.512 0 1 Dalaran Archaeology Trainer Dalaran Archaeology Trainer guard_poi_inferred 454 4395 4395 dalaran 0 0 +poi_guard_455 workshop 0 -5081.34 -780.465 495.187 0 1 Ironforge Druid Trainer Ironforge Druid Trainer guard_poi_inferred 455 809 1 dun_morogh 0 1 +poi_guard_456 workshop 0 -4627.94 -1311.17 501.993 0 1 Ironforge Archaeology Ironforge Archaeology guard_poi_inferred 456 5341 1537 ironforge 0 1 +poi_guard_457 landmark 0 -8282.65 716.852 84.2969 0 1 Stormwind Druid Trainer Stormwind Druid Trainer guard_poi_inferred 457 1519 1519 stormwind 0 0 +poi_guard_458 landmark 0 1731.28 -4510.06 56.2901 0 1 Orgrimmar Ethereals Orgrimmar Ethereals guard_poi_inferred 458 2621 139 easternplaguelands 0 0 +poi_guard_459 landmark 1 1961.85 -4801.29 58.7301 0 1 Orgrimmar Battlemasters Orgrimmar Battlemasters guard_poi_inferred 459 5168 1637 orgrimmar 0 2 +poi_guard_46 landmark 0 -8793 741.886 98.762 0 1 Arnold Leland Arnold Leland guard_poi_inferred 46 5390 1519 stormwind 0 1 +poi_guard_460 landmark 0 -4088.89 6359.15 -1630.13 0 1 Darkmoon Game Tokens Darkmoon Game Tokens guard_poi_inferred 460 5146 5146 vashjir 0 0 +poi_guard_461 landmark 0 2231.17 241.611 33.5735 0 1 Dedlow Wormwood Dedlow Wormwood guard_poi_inferred 461 159 85 tirisfalglades 0 0 +poi_guard_462 workshop 1 9924.49 2311.77 1330.78 0 1 Darnassus Blacksmithing Darnassus Blacksmithing guard_poi_inferred 462 1657 1657 darnassus 0 1 +poi_guard_463 landmark 0 -4128.34 6324.93 -1630.13 0 1 AAA Tonk Arena AAA Tonk Arena guard_poi_inferred 463 5146 5146 vashjir 0 0 +poi_guard_464 landmark 0 -4018.02 6292.56 -1630.13 0 1 AAA Cannon AAA Cannon guard_poi_inferred 464 5146 5146 vashjir 0 0 +poi_guard_465 landmark 0 -3998.5 6280.14 -1630.13 0 1 AAA Whack-a-Gnoll AAA Whack-a-Gnoll guard_poi_inferred 465 5146 5146 vashjir 0 0 +poi_guard_466 landmark 0 -4290.16 6308.55 -1630.13 0 1 AAA Ring Toss AAA Ring Toss guard_poi_inferred 466 5146 5146 vashjir 0 0 +poi_guard_467 landmark 0 -4076.42 6351.4 -1630.13 0 1 AAA Shooting Gallery AAA Shooting Gallery guard_poi_inferred 467 5146 5146 vashjir 0 0 +poi_guard_468 landmark 0 -4263.25 6281.23 -1630.13 0 1 AAA Fortune Teller AAA Fortune Teller guard_poi_inferred 468 5146 5146 vashjir 0 0 +poi_guard_469 bank 1 -3721.33 -4538.39 10.3325 0 1 Theramore Banker Theramore Banker guard_poi_inferred 469 513 15 dustwallowmarsh 0 0 +poi_guard_47 landmark 0 -8707 462.037 96.642 0 1 The Protective Hide The Protective Hide guard_poi_inferred 47 5149 1519 stormwind 0 1 +poi_guard_470 landmark 1 -3779.58 -4542.24 11.3859 0 1 Theramore Hunter Theramore Hunter guard_poi_inferred 470 513 15 dustwallowmarsh 0 0 +poi_guard_471 landmark 1 -3760.57 -4458.26 65.0053 0 1 Theramore Mage Theramore Mage guard_poi_inferred 471 513 15 dustwallowmarsh 0 0 +poi_guard_472 landmark 1 -3692.57 -4513.23 11.7075 0 1 Theramore Paladin Theramore Paladin guard_poi_inferred 472 513 15 dustwallowmarsh 0 0 +poi_guard_473 landmark 1 -3651.75 -4501.25 9.47548 0 1 Theramore Priest Theramore Priest guard_poi_inferred 473 513 15 dustwallowmarsh 0 0 +poi_guard_474 landmark 1 -3819.24 -4563.96 8.93583 0 1 Theramore Rogue Theramore Rogue guard_poi_inferred 474 513 15 dustwallowmarsh 0 0 +poi_guard_475 landmark 1 -3616.1 -4471.28 14.2444 0 1 Theramore Shaman Theramore Shaman guard_poi_inferred 475 513 15 dustwallowmarsh 0 0 +poi_guard_476 landmark 1 -3744.52 -4435.25 64.9225 0 1 Theramore Warlock Theramore Warlock guard_poi_inferred 476 513 15 dustwallowmarsh 0 0 +poi_guard_477 landmark 1 -3727.55 -4538.48 11.897 0 1 Theramore Warrior Theramore Warrior guard_poi_inferred 477 514 15 dustwallowmarsh 0 0 +poi_guard_478 landmark 1 -3700.83 -4331.73 11.417 0 1 Theramore Alchemy Theramore Alchemy guard_poi_inferred 478 513 15 dustwallowmarsh 0 0 +poi_guard_479 landmark 1 -3618.91 -4454.21 21.1023 0 1 Theramore Archaeology Theramore Archaeology guard_poi_inferred 479 513 15 dustwallowmarsh 0 0 +poi_guard_48 landmark 0 -8416 672.791 95.0327 0 1 Gelman Stonehand Gelman Stonehand guard_poi_inferred 48 5150 1519 stormwind 0 1 +poi_guard_480 workshop 1 -3785.93 -4366.83 16.7928 0 1 Theramore Blacksmithing Theramore Blacksmithing guard_poi_inferred 480 513 15 dustwallowmarsh 0 0 +poi_guard_481 landmark 1 -3617.13 -4486.98 14.2314 0 1 Theramore Cooking Theramore Cooking guard_poi_inferred 481 513 15 dustwallowmarsh 0 0 +poi_guard_482 landmark 1 -3772.04 -4441.66 65.0248 0 1 Theramore Enchanting Theramore Enchanting guard_poi_inferred 482 513 15 dustwallowmarsh 0 0 +poi_guard_483 landmark 1 -3798.24 -4374.75 16.7904 0 1 Theramore Engineering Theramore Engineering guard_poi_inferred 483 513 15 dustwallowmarsh 0 0 +poi_guard_484 landmark 1 -3747.08 -4532.17 11.8969 0 1 Theramore First Aid Theramore First Aid guard_poi_inferred 484 514 15 dustwallowmarsh 0 0 +poi_guard_485 landmark 1 -3849.29 -4610.17 8.67608 0 1 Theramore Fishing Theramore Fishing guard_poi_inferred 485 513 15 dustwallowmarsh 0 0 +poi_guard_486 landmark 1 -3697.02 -4335.25 11.4181 0 1 Theramore Herbalism Theramore Herbalism guard_poi_inferred 486 513 15 dustwallowmarsh 0 0 +poi_guard_487 landmark 1 -3774.65 -4448.43 65.0248 0 1 Theramore Inscription Theramore Inscription guard_poi_inferred 487 513 15 dustwallowmarsh 0 0 +poi_guard_488 landmark 1 -3612.54 -4456.31 21.1023 0 1 Theramore Jewelcrafting Theramore Jewelcrafting guard_poi_inferred 488 513 15 dustwallowmarsh 0 0 +poi_guard_489 landmark 1 -3613.03 -4461.91 13.6212 0 1 Theramore Leatherworking Theramore Leatherworking guard_poi_inferred 489 513 15 dustwallowmarsh 0 0 +poi_guard_49 landmark 0 -8940 771.346 89.7395 0 1 Duncan's Textiles Duncan's Textiles guard_poi_inferred 49 5154 1519 stormwind 0 1 +poi_guard_490 mine 1 -3777.12 -4366.25 14.93 0 1 Theramore Mining Theramore Mining guard_poi_inferred 490 513 15 dustwallowmarsh 0 0 +poi_guard_491 landmark 1 -3843.38 -4405.83 18.3504 0 1 Theramore Riding Theramore Riding guard_poi_inferred 491 513 15 dustwallowmarsh 0 0 +poi_guard_492 tavern 1 -3612.49 -4458.98 13.6212 0 1 Theramore Skinning Theramore Skinning guard_poi_inferred 492 513 15 dustwallowmarsh 0 0 +poi_guard_493 landmark 1 -3846.47 -4449.22 17.2565 0 1 Theramore Tailoring Theramore Tailoring guard_poi_inferred 493 513 15 dustwallowmarsh 0 0 +poi_guard_495 landmark 530 9638.31 -7392.76 15.725 0 1 Silvermoon City, Archaeology Silvermoon City, Archaeology guard_poi_inferred 495 3487 3487 silvermooncity 0 2 +poi_guard_496 landmark 530 9503.18 -6897.72 28.3472 0 1 Falconwing Square, Profession Trainer Falconwing Square, Profession Trainer guard_poi_inferred 496 5728 3430 eversongwoods 0 2 +poi_guard_497 landmark 530 9523.22 -6865.83 18.7493 0 1 Falconwing Square, Warrior Trainer Falconwing Square, Warrior Trainer guard_poi_inferred 497 3665 3430 eversongwoods 0 2 +poi_guard_498 landmark 530 9703.7 -7269.97 16.1913 0 1 Silvermoon City, Shaman Trainer Silvermoon City, Shaman Trainer guard_poi_inferred 498 3487 3487 silvermooncity 0 2 +poi_guard_5 landmark 0 -9465.14 13.2936 56.9626 0 1 Keryn Sylvius Keryn Sylvius guard_poi_inferred 5 5637 12 elwynn 0 1 +poi_guard_50 workshop 0 -4957.39 -911.604 503.836 0 1 Ironforge Auction House Ironforge Auction House guard_poi_inferred 50 5719 1537 ironforge 0 1 +poi_guard_500 landmark 1 -1404.26 -130.934 160.095 0 1 Sunwalker Lodge Sunwalker Lodge guard_poi_inferred 500 1641 1638 thunderbluff 0 2 +poi_guard_501 landmark 1 -1045.52 -266.559 159.03 0 1 Thunder Bluff Archaeology Thunder Bluff Archaeology guard_poi_inferred 501 1639 1638 thunderbluff 0 2 +poi_guard_502 landmark 1 -1266.26 139.432 132.505 0 1 Thunder Bluff Engineering Thunder Bluff Engineering guard_poi_inferred 502 5345 1638 thunderbluff 0 2 +poi_guard_503 landmark 1 -1224.13 150.967 133.155 0 1 Thunder Bluff Jewelcrafting Thunder Bluff Jewelcrafting guard_poi_inferred 503 5345 1638 thunderbluff 0 2 +poi_guard_504 landmark 1 2041.32 -4674.58 31.2804 0 1 Orgrimmar Auction House Orgrimmar Auction House guard_poi_inferred 504 5168 1637 orgrimmar 0 2 +poi_guard_505 bank 1 1537.41 -4364.21 17.541 0 1 Orgrimmar Bank Orgrimmar Bank guard_poi_inferred 505 5170 1637 orgrimmar 0 2 +poi_guard_506 bank 0 1898.15 -4683.27 92.3498 0 1 Orgrimmar Bank Orgrimmar Bank guard_poi_inferred 506 139 139 easternplaguelands 0 0 +poi_guard_507 landmark 1 1800.22 -4369.74 -17.1307 0 1 Orgrimmar Flight Master Orgrimmar Flight Master guard_poi_inferred 507 5166 1637 orgrimmar 0 2 +poi_guard_508 tavern 1 1918.09 -4730.69 38.9352 0 1 Orgrimmar Inn Orgrimmar Inn guard_poi_inferred 508 5168 1637 orgrimmar 0 2 +poi_guard_509 landmark 0 1650.37 -4225.17 159.569 0 1 Orgrimmar Hall of Legends Orgrimmar Hall of Legends guard_poi_inferred 509 139 139 easternplaguelands 0 0 +poi_guard_51 landmark 0 -4891.91 -991.48 503.94 0 1 The Vault The Vault guard_poi_inferred 51 5719 1537 ironforge 0 1 +poi_guard_510 landmark 0 2047.94 -4377.4 73.9541 0 1 Orgrimmar Portals Orgrimmar Portals guard_poi_inferred 510 2623 139 easternplaguelands 0 0 +poi_guard_511 landmark 0 2077.64 -4587.13 74.85 0 1 Orgrimmar Stable Master Orgrimmar Stable Master guard_poi_inferred 511 2264 139 easternplaguelands 0 0 +poi_guard_512 landmark 1 2109.26 -4630.1 49.2333 0 1 Orgrimmar Hunter Trainer Orgrimmar Hunter Trainer guard_poi_inferred 512 5168 1637 orgrimmar 0 2 +poi_guard_513 landmark 1 1767.12 -4343.18 -25.4439 0 1 Orgrimmar Mage Trainer Orgrimmar Mage Trainer guard_poi_inferred 513 1637 1637 orgrimmar 0 2 +poi_guard_514 landmark 1 1863.97 -4292.82 23.7745 0 1 Orgrimmar Paladin Trainer Orgrimmar Paladin Trainer guard_poi_inferred 514 1637 1637 orgrimmar 0 2 +poi_guard_515 landmark 1 1664.37 -4361.8 26.7369 0 1 Orgrimmar Priest Trainer Orgrimmar Priest Trainer guard_poi_inferred 515 5356 1637 orgrimmar 0 2 +poi_guard_516 wilderness 1 1884.11 -4282.45 23.5875 0 1 Orgrimmar Shaman Trainer Orgrimmar Shaman Trainer guard_poi_inferred 516 5171 1637 orgrimmar 0 2 +poi_guard_517 landmark 1 1962.52 -4766.58 59.2975 0 1 Orgrimmar Warrior Trainer Orgrimmar Warrior Trainer guard_poi_inferred 517 5168 1637 orgrimmar 0 2 +poi_guard_518 landmark 1 1888.89 -4285.24 23.5558 0 1 Orgrimmar Druid Trainer Orgrimmar Druid Trainer guard_poi_inferred 518 5171 1637 orgrimmar 0 2 +poi_guard_519 landmark 1 1946.59 -4472.42 26.1356 0 1 Orgrimmar Alchemy Orgrimmar Alchemy guard_poi_inferred 519 5167 1637 orgrimmar 0 2 +poi_guard_52 landmark 0 -4835.28 -1294.7 501.868 0 1 Deeprun Tram Deeprun Tram guard_poi_inferred 52 1537 1537 ironforge 0 1 +poi_guard_520 landmark 1 1668.48 -4359.67 26.7751 0 1 Orgrimmar Archaeology Orgrimmar Archaeology guard_poi_inferred 520 5356 1637 orgrimmar 0 2 +poi_guard_521 landmark 1 1773.28 -4493.09 45.697 0 1 Orgrimmar Cooking Orgrimmar Cooking guard_poi_inferred 521 1637 1637 orgrimmar 0 2 +poi_guard_522 landmark 1 1926.54 -4430.92 24.9329 0 1 Orgrimmar Enchanting Orgrimmar Enchanting guard_poi_inferred 522 5167 1637 orgrimmar 0 2 +poi_guard_523 landmark 1 1833.67 -4497.54 23.6165 0 1 Orgrimmar Engineering Orgrimmar Engineering guard_poi_inferred 523 5167 1637 orgrimmar 0 2 +poi_guard_524 landmark 1 2000.15 -4664.54 28.4917 0 1 Orgrimmar Fishing Orgrimmar Fishing guard_poi_inferred 524 5168 1637 orgrimmar 0 2 +poi_guard_525 landmark 1 1799.54 -4357.02 -25.4468 0 1 Orgrimmar Flying Trainer Orgrimmar Flying Trainer guard_poi_inferred 525 1637 1637 orgrimmar 0 2 +poi_guard_526 landmark 1 1896.35 -4450.83 53.5049 0 1 Orgrimmar Herbalism Orgrimmar Herbalism guard_poi_inferred 526 5167 1637 orgrimmar 0 2 +poi_guard_527 landmark 1 1842.33 -4477.9 47.8027 0 1 Orgrimmar Inscription Orgrimmar Inscription guard_poi_inferred 527 5167 1637 orgrimmar 0 2 +poi_guard_528 landmark 1 2088.82 -4767.18 27.9288 0 1 Orgrimmar Jewelcrafting Orgrimmar Jewelcrafting guard_poi_inferred 528 5168 1637 orgrimmar 0 2 +poi_guard_529 landmark 1 1848 -4555.32 24.9808 0 1 Orgrimmar Leatherworking Orgrimmar Leatherworking guard_poi_inferred 529 5167 1637 orgrimmar 0 2 +poi_guard_53 workshop 0 -4821.52 -1152.3 502.211 0 1 Ironforge Gryphon Master Ironforge Gryphon Master guard_poi_inferred 53 5342 1537 ironforge 0 1 +poi_guard_530 mine 1 2081.97 -4764.09 27.9254 0 1 Orgrimmar Mining Orgrimmar Mining guard_poi_inferred 530 5168 1637 orgrimmar 0 2 +poi_guard_531 landmark 0 2085.34 -4572.83 74.885 0 1 Orgrimmar Riding Trainer Orgrimmar Riding Trainer guard_poi_inferred 531 2264 139 easternplaguelands 0 0 +poi_guard_532 landmark 0 1803.03 -4547.34 67.6863 0 1 Orgrimmar Tailoring Orgrimmar Tailoring guard_poi_inferred 532 2621 139 easternplaguelands 0 0 +poi_guard_533 landmark 0 -9010.27 852.878 149.489 0 1 Stormwind Mage Trainer Stormwind Mage Trainer guard_poi_inferred 533 5154 1519 stormwind 0 1 +poi_guard_534 landmark 0 -8582.43 806.635 106.519 0 1 Stormwind Cathedral Stormwind Cathedral guard_poi_inferred 534 5704 1519 stormwind 0 1 +poi_guard_535 landmark 0 -8716.23 328.47 100.257 0 1 Stormwind Rogue Trainer Stormwind Rogue Trainer guard_poi_inferred 535 1519 1519 stormwind 0 1 +poi_guard_536 landmark 0 -8356.92 574.814 95.1198 0 1 Stormwind Shaman Trainer Stormwind Shaman Trainer guard_poi_inferred 536 1519 1519 stormwind 0 1 +poi_guard_537 landmark 0 -8945.1 991.033 148.383 0 1 Stormwind Warlock Trainer Stormwind Warlock Trainer guard_poi_inferred 537 5154 1519 stormwind 0 0 +poi_guard_538 landmark 0 -8788.16 344.498 128.828 0 1 Stormwind Warrior & Hunter Trainer Stormwind Warrior & Hunter Trainer guard_poi_inferred 538 1519 1519 stormwind 0 0 +poi_guard_539 landmark 0 -8979.49 763.873 98.3312 0 1 Stormwind Alchemy & Herbalism Stormwind Alchemy & Herbalism guard_poi_inferred 539 5154 1519 stormwind 0 1 +poi_guard_54 workshop 0 -5021.06 -996.453 695.672 0 1 Ironforge Visitor's Center Ironforge Visitor's Center guard_poi_inferred 54 1 1 dun_morogh 0 0 +poi_guard_540 landmark 0 -8294.95 233.033 155.347 0 1 Stormwind Archaeology Stormwind Archaeology guard_poi_inferred 540 1519 1519 stormwind 0 1 +poi_guard_541 workshop 0 -8424.52 616.797 95.4824 0 1 Stormwind Blacksmithing Stormwind Blacksmithing guard_poi_inferred 541 5150 1519 stormwind 0 1 +poi_guard_542 tavern 0 -8634.73 415.613 103.702 0 1 Stormwind Inn Stormwind Inn guard_poi_inferred 542 5149 1519 stormwind 0 1 +poi_guard_543 landmark 0 -8854.98 800.08 96.3342 0 1 Stormwind Enchanting Stormwind Enchanting guard_poi_inferred 543 5154 1519 stormwind 0 1 +poi_guard_544 landmark 0 -8365.68 631.149 95.1439 0 1 Stormwind Engineering Stormwind Engineering guard_poi_inferred 544 5150 1519 stormwind 0 1 +poi_guard_545 landmark 0 -8521.81 816.241 106.519 0 1 Stormwind First Aid Stormwind First Aid guard_poi_inferred 545 5704 1519 stormwind 0 1 +poi_guard_546 landmark 0 -8801.98 770.842 96.338 0 1 Stormwind Fishing Stormwind Fishing guard_poi_inferred 546 5390 1519 stormwind 0 1 +poi_guard_547 landmark 0 -8709.56 621.618 100.929 0 1 Stormwind Jewelcrafting Stormwind Jewelcrafting guard_poi_inferred 547 5148 1519 stormwind 0 1 +poi_guard_548 tavern 0 -8717.89 464.542 98.6131 0 1 Stormwind Leatherworking & Skinning Stormwind Leatherworking & Skinning guard_poi_inferred 548 5149 1519 stormwind 0 1 +poi_guard_549 mine 0 -8431.96 687.125 96.3178 0 1 Stormwind Mining Stormwind Mining guard_poi_inferred 549 5150 1519 stormwind 0 1 +poi_guard_55 tavern 0 -4850.48 -872.571 501.914 0 1 Stonefire Tavern Stonefire Tavern guard_poi_inferred 55 5719 1537 ironforge 0 1 +poi_guard_550 landmark 0 -8780.08 378.651 100.816 0 1 Stormwind Riding Trainer & Mounts Stormwind Riding Trainer & Mounts guard_poi_inferred 550 1519 1519 stormwind 0 1 +poi_guard_551 landmark 0 -8941.56 783.764 90.9418 0 1 Stormwind Tailoring Stormwind Tailoring guard_poi_inferred 551 5154 1519 stormwind 0 1 +poi_guard_552 landmark 0 -8697.18 847.646 98.6852 0 1 The Three Winds The Three Winds guard_poi_inferred 552 5704 1519 stormwind 0 1 +poi_guard_553 landmark 0 -8887.54 602.309 95.2576 0 1 Stormwind Guild Master Stormwind Guild Master guard_poi_inferred 553 5148 1519 stormwind 0 1 +poi_guard_554 landmark 0 -8209.47 428.528 118.066 0 1 Stormwind Portals Stormwind Portals guard_poi_inferred 554 5428 1519 stormwind 0 1 +poi_guard_555 landmark 0 -8363.9 658.161 97.1547 0 1 Stormwind Auction House Stormwind Auction House guard_poi_inferred 555 5150 1519 stormwind 0 1 +poi_guard_556 bank 0 -8327.83 598.797 99.6922 0 1 Stormwind Bank Stormwind Bank guard_poi_inferred 556 5150 1519 stormwind 0 1 +poi_guard_557 tavern 0 -8862.7 665.363 97.9031 0 1 Stormwind Inn Stormwind Inn guard_poi_inferred 557 5148 1519 stormwind 0 1 +poi_guard_558 tavern 0 -8371.78 604.283 97.7777 0 1 Stormwind Inn Stormwind Inn guard_poi_inferred 558 5150 1519 stormwind 0 1 +poi_guard_559 landmark 0 -8764.14 404.2 97.8883 0 1 Stormwind Champions' Hall Stormwind Champions' Hall guard_poi_inferred 559 5149 1519 stormwind 0 1 +poi_guard_56 workshop 0 -4845.7 -880.552 501.659 0 1 Ironforge Mailbox Ironforge Mailbox guard_poi_inferred 56 5719 1537 ironforge 0 1 +poi_guard_560 landmark 0 -8394.28 560.927 91.7969 0 1 Stormwind Tram Stormwind Tram guard_poi_inferred 560 5150 1519 stormwind 0 1 +poi_guard_561 landmark 0 -8766.67 1033.05 -3.94332 0 1 Lion's Rest Lion's Rest guard_poi_inferred 561 5409 1519 stormwind 0 1 +poi_guard_562 landmark 0 -8789.09 827.214 97.6439 0 1 Stormwind Stockade Stormwind Stockade guard_poi_inferred 562 5390 1519 stormwind 0 1 +poi_guard_563 landmark 0 -8432.65 319.663 157.505 0 1 Stormwind Keep Stormwind Keep guard_poi_inferred 563 1519 1519 stormwind 0 1 +poi_guard_564 landmark 0 -8775.39 371.104 100.843 0 1 Stormwind Stable Master Stormwind Stable Master guard_poi_inferred 564 1519 1519 stormwind 0 0 +poi_guard_565 landmark 0 -8432.87 555.121 95.1839 0 1 Stormwind Stable Master Stormwind Stable Master guard_poi_inferred 565 5150 1519 stormwind 0 1 +poi_guard_566 landmark 0 -8849.51 500.269 138.93 0 1 Stormwind Flying Trainer & Mounts Stormwind Flying Trainer & Mounts guard_poi_inferred 566 1519 1519 stormwind 0 0 +poi_guard_567 landmark 0 -8804.8 348.023 99.3793 0 1 Stormwind Heroism & Valor Quartermasters Stormwind Heroism & Valor Quartermasters guard_poi_inferred 567 1519 1519 stormwind 0 1 +poi_guard_568 landmark 0 -8767.48 408.564 97.8484 0 1 Stormwind Honor & Conquest Quartermasters Stormwind Honor & Conquest Quartermasters guard_poi_inferred 568 1519 1519 stormwind 0 1 +poi_guard_569 landmark 0 -8780.08 378.651 100.816 0 1 Stormwind Riding Trainer & Mounts Stormwind Riding Trainer & Mounts guard_poi_inferred 569 1519 1519 stormwind 0 1 +poi_guard_57 landmark 0 -5010.21 -1262.03 666.119 0 1 Ulbrek Firehand Ulbrek Firehand guard_poi_inferred 57 1 1 dun_morogh 0 0 +poi_guard_570 landmark 0 -8424.14 551.444 95.4484 0 1 Stormwind Hunter Trainer Stormwind Hunter Trainer guard_poi_inferred 570 5150 1519 stormwind 0 1 +poi_guard_571 landmark 1 9982.61 2319.79 1330.78 0 1 Darnassus Battlemasters Darnassus Battlemasters guard_poi_inferred 571 1657 1657 darnassus 0 1 +poi_guard_572 landmark 1 9608.43 2531.16 1331.67 0 1 Darnassus Archaeology Darnassus Archaeology guard_poi_inferred 572 1657 1657 darnassus 0 1 +poi_guard_573 landmark 1 10128 2422.82 1331.95 0 1 Darnassus Engineering Darnassus Engineering guard_poi_inferred 573 1657 1657 darnassus 0 1 +poi_guard_574 landmark 1 10147.7 2353.58 1331.97 0 1 Darnassus Jewelcrafting Darnassus Jewelcrafting guard_poi_inferred 574 1657 1657 darnassus 0 1 +poi_guard_575 mine 1 10124.7 2415.28 1321.64 0 1 Darnassus Mining Darnassus Mining guard_poi_inferred 575 1657 1657 darnassus 0 1 +poi_guard_576 landmark 1 9654.39 2510.8 1331.6 0 1 Darnassus Shaman Trainer Darnassus Shaman Trainer guard_poi_inferred 576 1657 1657 darnassus 0 1 +poi_guard_577 landmark 1 10300.7 2418.64 1330.19 0 1 Darnassus Warlock Trainer Darnassus Warlock Trainer guard_poi_inferred 577 5687 1657 darnassus 0 1 +poi_guard_578 landmark 1 9803.2 945.722 1308.77 0 1 Iranis Shadebloom Iranis Shadebloom guard_poi_inferred 578 186 141 teldrassil 0 1 +poi_guard_579 landmark 1 9835.05 956.363 1308.77 0 1 Irriende Irriende guard_poi_inferred 579 186 141 teldrassil 0 1 +poi_guard_580 landmark 0 -5637.17 -497.804 396.67 0 1 Wembil Taskwidget Wembil Taskwidget guard_poi_inferred 580 131 1 dun_morogh 0 1 +poi_guard_581 landmark 0 -5581.79 -535.559 394.926 0 1 Halbin Frosthammer Halbin Frosthammer guard_poi_inferred 581 2102 1 dun_morogh 0 1 +poi_guard_582 landmark 0 -9494 79.2847 56.2036 0 1 Lien Farner Lien Farner guard_poi_inferred 582 87 12 elwynn 0 1 +poi_guard_583 landmark 0 -9465.14 117.868 57.9777 0 1 Benjamin Foxworthy Benjamin Foxworthy guard_poi_inferred 583 87 12 elwynn 0 1 +poi_guard_584 landmark 0 2248.02 229.082 62.1719 0 1 Dark Cleric Beryl Dark Cleric Beryl guard_poi_inferred 584 159 85 tirisfalglades 0 0 +poi_guard_585 workshop 530 -4241.27 -11713.5 -144.139 0 1 Exodar, Blacksmithing Exodar, Blacksmithing guard_poi_inferred 585 3557 3557 theexodar 0 1 +poi_guard_586 landmark 530 -4138.99 -12468.5 44.5799 0 1 Azure Watch, Paladin Trainer Azure Watch, Paladin Trainer guard_poi_inferred 586 3576 3524 azuremystisle 0 1 +poi_guard_587 bank 530 -3918.91 -11550.1 -150.159 0 1 Exodar, Bank Exodar, Bank guard_poi_inferred 587 3557 3557 theexodar 0 1 +poi_guard_588 landmark 1 -2309.59 -452.521 -7.46812 0 1 Sunwalker Iopi Sunwalker Iopi guard_poi_inferred 588 222 215 mulgore 0 2 +poi_guard_589 landmark 1 -2301.43 -451.816 -8.44383 0 1 Seer Alsoomse Seer Alsoomse guard_poi_inferred 589 222 215 mulgore 0 2 +poi_guard_59 workshop 0 -5042.66 -1269.78 503.363 0 1 Battlemasters Ironforge Battlemasters Ironforge guard_poi_inferred 59 1537 1537 ironforge 0 1 +poi_guard_590 landmark 530 -3885.77 -11492.4 -136.159 0 1 Exodar, Enchanting Exodar, Enchanting guard_poi_inferred 590 3557 3557 theexodar 0 1 +poi_guard_591 bank 0 1733.24 -4089.69 103.545 0 1 Darkspear Auction House & Bank Darkspear Auction House & Bank guard_poi_inferred 591 139 139 easternplaguelands 0 0 +poi_guard_592 landmark 0 1726.39 -4085.98 108.113 0 1 Darkspear General & Trade Goods Darkspear General & Trade Goods guard_poi_inferred 592 139 139 easternplaguelands 0 0 +poi_guard_593 landmark 0 1753.65 -4112.32 96.8036 0 1 Darkspear Poisons & Reagents Darkspear Poisons & Reagents guard_poi_inferred 593 139 139 easternplaguelands 0 0 +poi_guard_594 landmark 1 1696.89 -4096.98 48.6873 0 1 The Valley of Spirits The Valley of Spirits guard_poi_inferred 594 5169 1637 orgrimmar 0 2 +poi_guard_595 tavern 0 1733.42 -4074.05 106.647 0 1 Darkspear Inn Darkspear Inn guard_poi_inferred 595 139 139 easternplaguelands 0 0 +poi_guard_596 landmark 1 1679.31 -4067.36 51.4305 0 1 Darkspear Cooking Darkspear Cooking guard_poi_inferred 596 5169 1637 orgrimmar 0 2 +poi_guard_597 landmark 0 1757.87 -4112.13 96.8838 0 1 Darkspear Herbalism Darkspear Herbalism guard_poi_inferred 597 139 139 easternplaguelands 0 0 +poi_guard_598 landmark 1 1684.94 -4134.64 66.3396 0 1 Darkspear Inscription Darkspear Inscription guard_poi_inferred 598 5169 1637 orgrimmar 0 2 +poi_guard_599 landmark 1 1705.78 -4118.1 48.2734 0 1 Darkspear Fishing Darkspear Fishing guard_poi_inferred 599 5169 1637 orgrimmar 0 2 +poi_guard_6 landmark 0 -9473.22 -4.08464 56.4744 0 1 Maximillian Crowe Maximillian Crowe guard_poi_inferred 6 87 12 elwynn 0 1 +poi_guard_60 workshop 0 -4839.48 -917.295 502.216 0 1 Ironforge Barber Ironforge Barber guard_poi_inferred 60 5719 1537 ironforge 0 1 +poi_guard_600 landmark 1 1700.05 -4115.41 48.7948 0 1 Darkspear Druid Trainer Darkspear Druid Trainer guard_poi_inferred 600 5169 1637 orgrimmar 0 2 +poi_guard_601 landmark 1 1621.03 -4106.84 47.92 0 1 Darkspear Hunter & Warrior Trainer Darkspear Hunter & Warrior Trainer guard_poi_inferred 601 5169 1637 orgrimmar 0 2 +poi_guard_602 landmark 1 1688.41 -4125.67 66.3398 0 1 Darkspear Mage & Portal Trainers Darkspear Mage & Portal Trainers guard_poi_inferred 602 5169 1637 orgrimmar 0 2 +poi_guard_603 landmark 1 1685.26 -4125.07 66.3423 0 1 Darkspear Priest Trainer Darkspear Priest Trainer guard_poi_inferred 603 5169 1637 orgrimmar 0 2 +poi_guard_604 landmark 0 1758.06 -4069.06 107.304 0 1 Darkspear Rogue Trainer Darkspear Rogue Trainer guard_poi_inferred 604 139 139 easternplaguelands 0 0 +poi_guard_605 landmark 1 1674.01 -4132.76 65.7193 0 1 Darkspear Warlock Trainer Darkspear Warlock Trainer guard_poi_inferred 605 5169 1637 orgrimmar 0 2 +poi_guard_606 landmark 530 -1863.64 5430.01 -9.70549 0 1 Shattrath City Center Shattrath City Center guard_poi_inferred 606 3703 3703 shattrathcity 0 0 +poi_guard_607 landmark 1 1926.54 -4430.92 24.9329 0 1 Orgrimmar Reforging Orgrimmar Reforging guard_poi_inferred 607 5167 1637 orgrimmar 0 2 +poi_guard_608 landmark 0 -8399.8 225.806 155.347 0 1 Stormwind Battlemasters Stormwind Battlemasters guard_poi_inferred 608 1519 1519 stormwind 0 1 +poi_guard_609 landmark 0 -8766.67 1033.05 -3.94332 0 1 Stormwind Park Stormwind Park guard_poi_inferred 609 5409 1519 stormwind 0 1 +poi_guard_61 landmark 0 -5023.08 -1253.68 662.423 0 1 Hall of Arms Hall of Arms guard_poi_inferred 61 1 1 dun_morogh 0 0 +poi_guard_610 landmark 0 -8854.98 800.08 96.3342 0 1 Stormwind Reforging Stormwind Reforging guard_poi_inferred 610 5154 1519 stormwind 0 1 +poi_guard_611 landmark 530 9850.67 -7565.29 2.49988 0 1 Silvermoon City, Battlemasters Silvermoon City, Battlemasters guard_poi_inferred 611 3487 3487 silvermooncity 0 2 +poi_guard_62 landmark 0 -4627.02 -926.459 502.767 0 1 Hall of Mysteries Hall of Mysteries guard_poi_inferred 62 5341 1537 ironforge 0 1 +poi_guard_63 workshop 0 -4647.83 -1124 502.184 0 1 Ironforge Rogue Trainer Ironforge Rogue Trainer guard_poi_inferred 63 4679 1537 ironforge 0 1 +poi_guard_64 workshop 0 -4605.03 -1110.46 504.939 0 1 Ironforge Warlock Trainer Ironforge Warlock Trainer guard_poi_inferred 64 4679 1537 ironforge 0 1 +poi_guard_65 workshop 0 -4722.59 -1151.39 502.448 0 1 Ironforge Shaman Trainer Ironforge Shaman Trainer guard_poi_inferred 65 5342 1537 ironforge 0 1 +poi_guard_66 landmark 0 -4858.5 -1241.84 501.724 0 1 Berryfizz's Potions and Mixed Drinks Berryfizz's Potions and Mixed Drinks guard_poi_inferred 66 1537 1537 ironforge 0 1 +poi_guard_67 workshop 0 -4796.98 -1110.17 498.807 0 1 The Great Forge The Great Forge guard_poi_inferred 67 5342 1537 ironforge 0 1 +poi_guard_68 landmark 0 -4767.83 -1184.6 509.394 0 1 The Bronze Kettle The Bronze Kettle guard_poi_inferred 68 5342 1537 ironforge 0 1 +poi_guard_69 landmark 0 -4803.72 -1196.53 505.814 0 1 Thistlefuzz Arcanery Thistlefuzz Arcanery guard_poi_inferred 69 5342 1537 ironforge 0 1 +poi_guard_7 landmark 0 -9461.82 109.505 57.7044 0 1 Lyria Du Lac Lyria Du Lac guard_poi_inferred 7 87 12 elwynn 0 1 +poi_guard_70 workshop 0 -4881.6 -1153.13 505.77 0 1 Ironforge Physician Ironforge Physician guard_poi_inferred 70 5342 1537 ironforge 0 1 +poi_guard_71 landmark 0 -4597.91 -1091.93 504.98 0 1 Traveling Fisherman Traveling Fisherman guard_poi_inferred 71 4679 1537 ironforge 0 1 +poi_guard_72 workshop 0 -4801.79 -1189.09 512.482 0 1 Ironforge Inscription Ironforge Inscription guard_poi_inferred 72 5342 1537 ironforge 0 1 +poi_guard_73 landmark 0 -4745.01 -1027.58 504.431 0 1 Finespindle's Leather Goods Finespindle's Leather Goods guard_poi_inferred 73 5342 1537 ironforge 0 1 +poi_guard_74 mine 0 -4705.06 -1116.43 504.447 0 1 Deepmountain Mining & Jewelcrafting Deepmountain Mining & Jewelcrafting guard_poi_inferred 74 5342 1537 ironforge 0 1 +poi_guard_75 landmark 0 -4719.61 -1056.97 504.196 0 1 Stonebrow's Clothier Stonebrow's Clothier guard_poi_inferred 75 5342 1537 ironforge 0 1 +poi_guard_76 landmark 0 -5584.11 -510.862 401.559 0 1 Thunderbrew Distillery Thunderbrew Distillery guard_poi_inferred 76 131 1 dun_morogh 0 1 +poi_guard_77 landmark 0 -5606.17 -513.008 402.204 0 1 Shelby Stoneflint Shelby Stoneflint guard_poi_inferred 77 131 1 dun_morogh 0 1 +poi_guard_78 landmark 0 -5618.73 -453.72 407.612 0 1 Grif Wildheart Grif Wildheart guard_poi_inferred 78 131 1 dun_morogh 0 0 +poi_guard_79 landmark 0 -5587.37 -539.037 423.781 0 1 Magis Sparkmantle Magis Sparkmantle guard_poi_inferred 79 2102 1 dun_morogh 0 0 +poi_guard_8 landmark 0 -9057 153.637 115.031 0 1 Alchemist Mallory Alchemist Mallory guard_poi_inferred 8 12 12 elwynn 0 1 +poi_guard_80 landmark 0 -5584.69 -542.492 394.926 0 1 Azar Stronghammer Azar Stronghammer guard_poi_inferred 80 2102 1 dun_morogh 0 1 +poi_guard_81 landmark 0 -5589.19 -530.288 399.652 0 1 Maxan Anvol Maxan Anvol guard_poi_inferred 81 2102 1 dun_morogh 0 1 +poi_guard_82 landmark 0 -5604.48 -540.089 399.097 0 1 Hogral Bakkan Hogral Bakkan guard_poi_inferred 82 2102 1 dun_morogh 0 1 +poi_guard_83 landmark 0 -5639.5 -528.501 404.237 0 1 Gimrizz Shadowcog Gimrizz Shadowcog guard_poi_inferred 83 131 1 dun_morogh 0 0 +poi_guard_84 landmark 0 -5605.01 -530.145 399.656 0 1 Granis Swiftaxe Granis Swiftaxe guard_poi_inferred 84 2102 1 dun_morogh 0 1 +poi_guard_85 landmark 0 -5582.17 -430.441 397.326 0 1 Tognus Flintfire Tognus Flintfire guard_poi_inferred 85 131 1 dun_morogh 0 1 +poi_guard_86 landmark 0 -5594.46 -544.573 398.767 0 1 Gremlock Pilsnor Gremlock Pilsnor guard_poi_inferred 86 2102 1 dun_morogh 0 1 +poi_guard_87 landmark 0 -5604.89 -521.037 399.657 0 1 Thamner Pol Thamner Pol guard_poi_inferred 87 2102 1 dun_morogh 0 1 +poi_guard_88 landmark 0 -5198.56 53.3649 385.497 0 1 Paxton Ganter Paxton Ganter guard_poi_inferred 88 211 1 dun_morogh 0 1 +poi_guard_89 landmark 1 9862 2339.19 1331.9 0 1 Darnassus Auction House Darnassus Auction House guard_poi_inferred 89 1657 1657 darnassus 0 1 +poi_guard_9 workshop 0 -9456 87.9022 58.3437 0 1 Smith Argus Smith Argus guard_poi_inferred 9 87 12 elwynn 0 1 +poi_guard_90 bank 1 9938 2512.35 1317.79 0 1 Darnassus Bank Darnassus Bank guard_poi_inferred 90 1657 1657 darnassus 0 1 +poi_guard_91 landmark 1 9972.82 2623.86 1316.57 0 1 Darnassus Hippogryph Master Darnassus Hippogryph Master guard_poi_inferred 91 1657 1657 darnassus 0 1 +poi_guard_92 landmark 1 10076.4 2199.59 1327.46 0 1 Darnassus Guild Master Darnassus Guild Master guard_poi_inferred 92 1659 1657 darnassus 0 1 +poi_guard_93 tavern 1 10133.3 2222.52 1329.98 0 1 Darnassus Inn Darnassus Inn guard_poi_inferred 93 1657 1657 darnassus 0 1 +poi_guard_94 landmark 1 9942 2495.49 1317.65 0 1 Darnassus Mailbox Darnassus Mailbox guard_poi_inferred 94 1657 1657 darnassus 0 1 +poi_guard_96 landmark 1 9907 2329.71 1330.78 0 1 Ilyenia Moonfire Ilyenia Moonfire guard_poi_inferred 96 1657 1657 darnassus 0 1 +poi_guard_97 landmark 1 9982 2319.79 1330.78 0 1 Battlemasters Darnassus Battlemasters Darnassus guard_poi_inferred 97 1657 1657 darnassus 0 1 +poi_npc_100699 tavern 571 3003.71 4052.13 26.4516 1.16937 1 Caregiver Poallu Innkeeper Caregiver Poallu Innkeeper service_npc 100699 4113 3537 boreantundra 0 0 +poi_npc_100776 tavern 571 7114.15 -1633.32 820.568 3.28122 1 Lodge-Matron Embla Innkeeper Lodge-Matron Embla Innkeeper service_npc 100776 4422 67 thestormpeaks 0 0 +poi_npc_100936 tavern 571 3875.46 -4544.99 209.406 3.00197 1 Aiyan Coldwind Innkeeper Aiyan Coldwind Innkeeper service_npc 100936 4211 394 grizzlyhills 0 0 +poi_npc_102048 service 571 5907.09 675.225 643.496 2.23402 1 Imindril Spearsong Blacksmithing Trainer Imindril Spearsong Blacksmithing Trainer service_npc 102048 4395 4395 dalaran 0 0 +poi_npc_102071 service 571 5910.86 683.046 643.496 2.46859 1 Orland Schaeffer Blacksmithing Trainer Orland Schaeffer Blacksmithing Trainer service_npc 102071 4395 4395 dalaran 0 0 +poi_npc_102128 service 571 5904.79 771.715 649.083 4.59022 1 Manfred Staller Leatherworking Trainer Manfred Staller Leatherworking Trainer service_npc 102128 4395 4395 dalaran 0 0 +poi_npc_102256 service 571 5918.03 767.902 649.084 3.82227 1 Andellion Leatherworking Trainer Andellion Leatherworking Trainer service_npc 102256 4395 4395 dalaran 0 0 +poi_npc_102323 tavern 571 5888.69 507.898 641.653 1.8675 1 Uda the Beast Innkeeper Uda the Beast Innkeeper service_npc 102323 4395 4395 dalaran 0 0 +poi_npc_102354 service 571 5899.16 753.091 652.777 5.8294 1 Namha Moonwater Leatherworking Trainer Namha Moonwater Leatherworking Trainer service_npc 102354 4395 4395 dalaran 0 0 +poi_npc_102399 service 571 5707.31 612.214 646.791 1.69297 1 Marcia Chase Fishing Trainer & Supplies Marcia Chase Fishing Trainer & Supplies service_npc 102399 4568 4395 dalaran 0 0 +poi_npc_102435 service 571 1966.66 -6159.23 25.2098 1.18682 1 Wilhelmina Renel Alchemy Trainer Wilhelmina Renel Alchemy Trainer service_npc 102435 4000 495 howlingfjord 0 0 +poi_npc_102499 service 571 1948.67 -6191.36 24.0498 1.97222 1 Kristen Smythe Blacksmithing Trainer Kristen Smythe Blacksmithing Trainer service_npc 102499 4000 495 howlingfjord 0 0 +poi_npc_102523 service 571 1927.98 -6150.21 23.0406 5.07891 1 Thomas Kolichio Cooking Trainer Thomas Kolichio Cooking Trainer service_npc 102523 4000 495 howlingfjord 0 0 +poi_npc_102530 service 571 5927.85 723.428 642.218 0.663225 1 Didi the Wrench Goblin Engineering Trainer Didi the Wrench Goblin Engineering Trainer service_npc 102530 4395 4395 dalaran 0 0 +poi_npc_102605 service 571 1975.58 -6155.45 25.2098 2.61799 1 Emil Autumn Enchanting Trainer Emil Autumn Enchanting Trainer service_npc 102605 4000 495 howlingfjord 0 0 +poi_npc_102606 service 571 5929.62 724.728 642.212 3.735 1 Findle Whistlesteam Gnomish Engineering Trainer Findle Whistlesteam Gnomish Engineering Trainer service_npc 102606 4395 4395 dalaran 0 0 +poi_npc_102621 service 571 1904.8 -6137.54 18.1402 5.65487 1 Jamesina Watterly Engineering Trainer Jamesina Watterly Engineering Trainer service_npc 102621 4000 495 howlingfjord 0 0 +poi_npc_102681 service 571 1933.84 -6199.65 32.1595 3.40339 1 Sally Tompkins First Aid Trainer Sally Tompkins First Aid Trainer service_npc 102681 4000 495 howlingfjord 0 0 +poi_npc_102702 service 571 2024.24 -6207.31 7.98215 3.21141 1 Angelina Soren Fishing Trainer Angelina Soren Fishing Trainer service_npc 102702 4000 495 howlingfjord 0 0 +poi_npc_102747 service 571 1973.49 -6143.51 25.2098 3.92699 1 Marjory Kains Herbalism Trainer Marjory Kains Herbalism Trainer service_npc 102747 4000 495 howlingfjord 0 0 +poi_npc_102850 service 571 1936.11 -6197.33 24.8572 1.8326 1 Booker Kells Inscription Trainer Booker Kells Inscription Trainer service_npc 102850 4000 495 howlingfjord 0 0 +poi_npc_103040 service 571 1955.86 -6196.06 24.0925 2.28638 1 Carter Tiffens Jewelcrafting Trainer Carter Tiffens Jewelcrafting Trainer service_npc 103040 4000 495 howlingfjord 0 0 +poi_npc_103242 service 571 1982.36 -6131.68 24.4877 3.03687 1 Gunter Hansen Leatherworking Trainer Gunter Hansen Leatherworking Trainer service_npc 103242 4000 495 howlingfjord 0 0 +poi_npc_103263 service 571 1945.71 -6194.1 23.9348 1.16937 1 Jonathan Lewis Mining Trainer Jonathan Lewis Mining Trainer service_npc 103263 4000 495 howlingfjord 0 0 +poi_npc_103297 service 571 1983.1 -6129.26 24.4877 2.9147 1 Roberta Jacks Skinning Trainer Roberta Jacks Skinning Trainer service_npc 103297 4000 495 howlingfjord 0 0 +poi_npc_103364 service 571 1875.43 -6198.47 23.8265 0.226893 1 Alexandra McQueen Tailoring Trainer Alexandra McQueen Tailoring Trainer service_npc 103364 4532 495 howlingfjord 0 0 +poi_npc_103484 tavern 571 3468.64 4175.04 17.2764 4.20624 1 Pahu Frosthoof Innkeeper Pahu Frosthoof Innkeeper service_npc 103484 4037 3537 boreantundra 0 0 +poi_npc_103487 tavern 571 439.533 -4550.71 245.709 4.34587 1 Basil Osgood Innkeeper Basil Osgood Innkeeper service_npc 103487 3991 495 howlingfjord 0 0 +poi_npc_104225 tavern 571 5759.18 716.138 618.635 5.58505 1 Ajay Green Innkeeper Ajay Green Innkeeper service_npc 104225 4560 4395 dalaran 0 0 +poi_npc_10497 service 530 -773.806 2751.21 146.535 0.595788 1 Michael Schwan Inscription Trainer Michael Schwan Inscription Trainer service_npc 10497 3538 3483 hellfirepeninsula 0 0 +poi_npc_105361 tavern 571 3830.37 1485.49 92.0606 0.837758 1 Barracks Master Harga Innkeeper Barracks Master Harga Innkeeper service_npc 105361 4165 65 dragonblight 0 0 +poi_npc_105483 service 571 3455.75 4178.84 17.2764 4.59022 1 Tiponi Stormwhisper Skinning Trainer Tiponi Stormwhisper Skinning Trainer service_npc 105483 4037 3537 boreantundra 0 0 +poi_npc_105533 service 571 2132.07 5238.43 19.5292 0.802851 1 Falorn Nightwhisper Alchemy Trainer Falorn Nightwhisper Alchemy Trainer service_npc 105533 4032 3537 boreantundra 0 0 +poi_npc_105659 service 571 2338.17 5275.62 7.90438 5.28835 1 Argo Strongstout Blacksmithing Trainer Argo Strongstout Blacksmithing Trainer service_npc 105659 4032 3537 boreantundra 0 0 +poi_npc_105875 service 571 2148 5231.63 19.5292 1.15192 1 Rollick MacKreel Cooking Trainer Rollick MacKreel Cooking Trainer service_npc 105875 4032 3537 boreantundra 0 0 +poi_npc_105993 service 571 2147.52 5251.18 19.6081 4.11898 1 Alexis Marlowe Enchanting Trainer Alexis Marlowe Enchanting Trainer service_npc 105993 4032 3537 boreantundra 0 0 +poi_npc_106187 service 571 2121.9 5242.18 19.5292 1.29154 1 Sock Brightbolt Engineering Trainer Sock Brightbolt Engineering Trainer service_npc 106187 4032 3537 boreantundra 0 0 +poi_npc_106237 service 571 2346.57 5237.85 7.74866 5.67232 1 Brynna Wilson First Aid Trainer Brynna Wilson First Aid Trainer service_npc 106237 4032 3537 boreantundra 0 0 +poi_npc_106323 service 571 2144.24 5234.32 19.5292 0.837758 1 Old Man Robert Fishing Trainer Old Man Robert Fishing Trainer service_npc 106323 4032 3537 boreantundra 0 0 +poi_npc_106510 service 571 2135.37 5236.9 19.5292 1.5708 1 Kirea Moondancer Herbalism Trainer Kirea Moondancer Herbalism Trainer service_npc 106510 4032 3537 boreantundra 0 0 +poi_npc_106632 service 571 2141.77 5252.78 19.5573 4.95674 1 Tink Brightbolt Inscription Trainer Tink Brightbolt Inscription Trainer service_npc 106632 4032 3537 boreantundra 0 0 +poi_npc_106815 service 571 3478.23 4177.74 17.2764 4.64258 1 Awan Iceborn Leatherworking Trainer Awan Iceborn Leatherworking Trainer service_npc 106815 4037 3537 boreantundra 0 0 +poi_npc_106833 service 571 2120.8 5259.82 19.55 3.90954 1 Alestos Jewelcrafting Trainer Alestos Jewelcrafting Trainer service_npc 106833 4032 3537 boreantundra 0 0 +poi_npc_106880 service 571 2132.72 5255.87 19.5305 4.86947 1 Rosemary Bovard Leatherworking Trainer Rosemary Bovard Leatherworking Trainer service_npc 106880 4032 3537 boreantundra 0 0 +poi_npc_106961 service 571 2356.65 5258.93 7.87818 4.11898 1 Fendrig Redbeard Mining Trainer Fendrig Redbeard Mining Trainer service_npc 106961 4032 3537 boreantundra 0 0 +poi_npc_106963 tavern 571 5462.97 -2639.05 306.634 2.77507 1 Marissa Everwatch Innkeeper Marissa Everwatch Innkeeper service_npc 106963 4275 66 zuldrak 0 0 +poi_npc_107019 service 571 2136.1 5255.88 19.5315 4.17134 1 Trapper Jack Skinning Trainer Trapper Jack Skinning Trainer service_npc 107019 4032 3537 boreantundra 0 0 +poi_npc_107129 service 571 2117.3 5261.07 19.5305 4.81711 1 Darin Goodstitch Tailoring Trainer Darin Goodstitch Tailoring Trainer service_npc 107129 4032 3537 boreantundra 0 0 +poi_npc_107673 tavern 571 1445.72 -3263.48 167.387 2.47837 1 Innkeeper Celeste Goodhutch Innkeeper Innkeeper Celeste Goodhutch Innkeeper service_npc 107673 4380 495 howlingfjord 0 0 +poi_npc_108031 tavern 571 5566.25 5763.71 -75.1425 6.23082 1 Purser Boulian Innkeeper Purser Boulian Innkeeper service_npc 108031 4284 3711 sholazarbasin 0 0 +poi_npc_109003 service 571 3749.03 1596.74 87.1133 0.506145 1 Apothecary Bressa Alchemy Trainer Apothecary Bressa Alchemy Trainer service_npc 109003 4165 65 dragonblight 0 0 +poi_npc_109008 tavern 571 5761.11 -3562.79 387.133 1.41372 1 Pan'ya Innkeeper Pan'ya Innkeeper service_npc 109008 4323 66 zuldrak 0 0 +poi_npc_109733 tavern 571 3214.17 -684.083 167.62 0.017453 1 Mrs. Winterby Innkeeper Mrs. Winterby Innkeeper service_npc 109733 4186 65 dragonblight 0 0 +poi_npc_109907 service 571 3252.76 -684.58 168.15 0.959931 1 Apothecary Wormwick Alchemy Trainer Apothecary Wormwick Alchemy Trainer service_npc 109907 4186 65 dragonblight 0 0 +poi_npc_110374 service 571 3209.26 -629.828 160.252 0.506145 1 Josric Fame Blacksmithing Trainer Josric Fame Blacksmithing Trainer service_npc 110374 4186 65 dragonblight 0 0 +poi_npc_110511 tavern 571 5837.25 634.072 656.735 4.11215 1 Afsaneh Asrar Assistant Innkeeper Afsaneh Asrar Assistant Innkeeper service_npc 110511 4601 4395 dalaran 0 0 +poi_npc_110585 tavern 571 5716.2 681.837 645.834 6.23082 1 Isirami Fairwind Innkeeper Isirami Fairwind Innkeeper service_npc 110585 4395 4395 dalaran 0 0 +poi_npc_110613 tavern 571 2282.29 5210.83 12.5771 4.2586 1 James Deacon Innkeeper James Deacon Innkeeper service_npc 110613 4032 3537 boreantundra 0 0 +poi_npc_111224 tavern 571 5871.04 493.264 655.527 5.35816 1 Abohba Assistant Innkeeper Abohba Assistant Innkeeper service_npc 111224 4395 4395 dalaran 0 0 +poi_npc_112195 tavern 571 3477.54 2006.68 64.9457 5.34071 1 Naohain Innkeeper Naohain Innkeeper service_npc 112195 4158 65 dragonblight 0 0 +poi_npc_112850 tavern 571 599.04 -4928.18 19.0865 4.99164 1 Innkeeper Hazel Lagras Innkeeper Innkeeper Hazel Lagras Innkeeper service_npc 112850 4379 495 howlingfjord 0 0 +poi_npc_113117 service 571 625.177 -5026.14 2.4039 0.247913 1 Anchorite Yazmina First Aid Trainer Anchorite Yazmina First Aid Trainer service_npc 113117 3981 495 howlingfjord 0 0 +poi_npc_113475 tavern 571 3406.96 -2788.63 201.604 5.48033 1 Jennifer Bell Innkeeper Jennifer Bell Innkeeper service_npc 113475 4204 394 grizzlyhills 0 0 +poi_npc_113774 tavern 571 4506.36 5707.32 81.6039 0.767945 1 Matron Magah Innkeeper Matron Magah Innkeeper service_npc 113774 4122 3537 boreantundra 0 0 +poi_npc_113884 service 571 5850.81 471.807 639.872 1.93731 1 Awilo Lon'gomba Cooking Trainer Awilo Lon'gomba Cooking Trainer service_npc 113884 4395 4395 dalaran 0 0 +poi_npc_114374 service 571 3810.3 1574.13 89.3065 5.45068 1 Borus Ironbender Blacksmithing Trainer Borus Ironbender Blacksmithing Trainer service_npc 114374 4165 65 dragonblight 0 0 +poi_npc_115502 tavern 571 6124.42 -1080.96 402.624 2.49582 1 Smilin' Slirk Brassknob Innkeeper Smilin' Slirk Brassknob Innkeeper service_npc 115502 4418 67 thestormpeaks 0 0 +poi_npc_117436 tavern 571 2681.94 -4390.98 284.543 2.26893 1 Bori Wintertotem Innkeeper Bori Wintertotem Innkeeper service_npc 117436 4018 495 howlingfjord 0 0 +poi_npc_117740 service 571 6643.61 -210.399 951.851 0.855211 1 Brandig Blacksmithing Trainer Brandig Blacksmithing Trainer service_npc 117740 4428 67 thestormpeaks 0 0 +poi_npc_117745 tavern 571 4178.47 5278.22 26.7764 2.42601 1 "Charlie" Northtop Innkeeper "Charlie" Northtop Innkeeper service_npc 117745 4108 3537 boreantundra 0 0 +poi_npc_117818 tavern 571 6671.16 -200.357 951.07 2.98451 1 Gunda Boldhammer Innkeeper Gunda Boldhammer Innkeeper service_npc 117818 4428 67 thestormpeaks 0 0 +poi_npc_118869 tavern 571 3256.43 -2202.08 117.112 5.79449 1 Barracks Master Rhekku Innkeeper Barracks Master Rhekku Innkeeper service_npc 118869 4206 394 grizzlyhills 0 0 +poi_npc_122465 tavern 571 8499.73 2685.31 652.437 2.84489 1 Initiate Brenners Innkeeper Initiate Brenners Innkeeper service_npc 122465 4477 210 icecrown 0 0 +poi_npc_125393 service 571 2809.35 6169.41 104.993 3.57792 1 Nurse Applewood First Aid Trainer Nurse Applewood First Aid Trainer service_npc 125393 4129 3537 boreantundra 0 0 +poi_npc_125423 service 571 2842.94 6170.93 104.895 1.11701 1 Raenah Tailoring Trainer Raenah Tailoring Trainer service_npc 125423 4129 3537 boreantundra 0 0 +poi_npc_125424 service 571 2818.32 6151.04 85.4053 3.1765 1 Orn Tenderhoof Cooking Trainer Orn Tenderhoof Cooking Trainer service_npc 125424 4129 3537 boreantundra 0 0 +poi_npc_125425 service 571 2836.99 6148.09 105.088 4.76475 1 Tansy Wildmane Herbalism Trainer Tansy Wildmane Herbalism Trainer service_npc 125425 4129 3537 boreantundra 0 0 +poi_npc_125426 service 571 2813.49 6163.41 105.04 3.94444 1 Arthur Henslowe Alchemy Trainer Arthur Henslowe Alchemy Trainer service_npc 125426 4129 3537 boreantundra 0 0 +poi_npc_125427 service 571 2853.53 6116 83.5814 0.069813 1 Brunna Ironaxe Mining Trainer Brunna Ironaxe Mining Trainer service_npc 125427 4129 3537 boreantundra 0 0 +poi_npc_125428 service 571 2823.59 6192.59 104.888 0.10472 1 Adelene Sunlance Inscription Trainer Adelene Sunlance Inscription Trainer service_npc 125428 4129 3537 boreantundra 0 0 +poi_npc_125429 service 571 2824.46 6199.23 104.922 5.72468 1 Eorain Dawnstrike Enchanting Trainer Eorain Dawnstrike Enchanting Trainer service_npc 125429 4129 3537 boreantundra 0 0 +poi_npc_125430 service 571 2772.04 6222.61 83.4657 5.14872 1 Crog Steelspine Blacksmithing Trainer Crog Steelspine Blacksmithing Trainer service_npc 125430 4129 3537 boreantundra 0 0 +poi_npc_125431 service 571 2847.77 6170.94 104.921 1.98968 1 Geba'li Jewelcrafting Trainer Geba'li Jewelcrafting Trainer service_npc 125431 4129 3537 boreantundra 0 0 +poi_npc_125569 service 571 2847.77 6110.22 83.4355 2.9671 1 Chief Engineer Leveny Engineering Trainer Chief Engineer Leveny Engineering Trainer service_npc 125569 4129 3537 boreantundra 0 0 +poi_npc_125570 tavern 571 2803.7 6154.5 85.2464 3.90954 1 Williamson Innkeeper Williamson Innkeeper service_npc 125570 4129 3537 boreantundra 0 0 +poi_npc_125585 service 571 2804.14 6165.57 85.3861 4.81711 1 Fishy Ser'ji Fishing Trainer Fishy Ser'ji Fishing Trainer service_npc 125585 4129 3537 boreantundra 0 0 +poi_npc_125645 service 530 9958.94 -7250.08 32.0774 2.27023 1 Zantasia Inscription Trainer Zantasia Inscription Trainer service_npc 125645 3487 3487 silvermooncity 0 2 +poi_npc_125648 service 530 -3890.05 -11494.8 -136.216 0.455529 1 Thoth Inscription Trainer Thoth Inscription Trainer service_npc 125648 3557 3557 theexodar 0 1 +poi_npc_12717 service 530 -3963.75 2203.92 101.867 1.92275 1 Niobe Whizzlespark Engineering Trainer Niobe Whizzlespark Engineering Trainer service_npc 12717 3745 3520 shadowmoonvalley 0 0 +poi_npc_131010 tavern 571 3546.74 273.062 45.6634 1.81514 1 Demestrasz Innkeeper Demestrasz Innkeeper service_npc 131010 4161 65 dragonblight 0 0 +poi_npc_133617 tavern 571 3647.95 -717.195 215.034 3.01298 1 Illusia Lune Innkeeper Illusia Lune Innkeeper service_npc 133617 4177 65 dragonblight 0 0 +poi_npc_138371 service 530 -3957.89 -11863 0.778528 3.47713 1 Alnar Whitebough Cooking Trainer Alnar Whitebough Cooking Trainer service_npc 138371 3557 3557 theexodar 0 1 +poi_npc_138400 service 530 9282.31 -7206.7 16.6141 5.7094 1 Alice Rigsdale Cooking Trainer Alice Rigsdale Cooking Trainer service_npc 138400 3470 3430 eversongwoods 0 2 +poi_npc_150150 tavern 571 4596.14 -4237.28 178.738 2.40775 1 Quartermaster McCarty Innkeeper Quartermaster McCarty Innkeeper service_npc 150150 4159 394 grizzlyhills 0 0 +poi_npc_15654 service 530 -2086.39 5316.66 -37.2403 0.017453 1 Boduro the Seeker Archaeology Trainer Boduro the Seeker Archaeology Trainer service_npc 15654 3703 3703 shattrathcity 0 0 +poi_npc_203226 tavern 571 2477.39 -5054.49 284.47 4.53786 1 Christina Daniels Innkeeper Christina Daniels Innkeeper service_npc 203226 4003 495 howlingfjord 0 0 +poi_npc_250010 service 530 9638.43 -7387.58 15.8111 1.37881 1 Elynara Archaeology Trainer Elynara Archaeology Trainer service_npc 250010 3487 3487 silvermooncity 0 2 +poi_npc_250316 tavern 0 -4891.31 -6599.86 10.9166 0.610865 1 Innkeeper Teresa Innkeeper Innkeeper Teresa Innkeeper service_npc 250316 5140 4922 twilighthighlands 0 0 +poi_npc_250317 tavern 0 -4916.22 -6621.26 10.9166 3.87463 1 Innkeeper Francis Innkeeper Innkeeper Francis Innkeeper service_npc 250317 5140 4922 twilighthighlands 0 0 +poi_npc_255439 service 654 -1858.44 2264.81 44.3006 3.08923 1 Jack "All-Trades" Derrington Profession Trainer Jack "All-Trades" Derrington Profession Trainer service_npc 255439 4786 4714 gilneas 0 0 +poi_npc_255478 service 654 -1911.94 2288.18 44.1762 4.57276 1 Fielding Chesterhill Cooking Trainer Fielding Chesterhill Cooking Trainer service_npc 255478 4786 4714 gilneas 0 0 +poi_npc_255479 service 654 -1911.14 2280.33 52.7609 2.26893 1 Amelia Atherton First Aid Trainer Amelia Atherton First Aid Trainer service_npc 255479 4786 4714 gilneas 0 0 +poi_npc_255480 tavern 654 -1911.98 2281.89 44.1508 5.48033 1 Willa Arnes Innkeeper Willa Arnes Innkeeper service_npc 255480 4786 4714 gilneas 0 0 +poi_npc_256126 tavern 654 -2456.3 1550.22 18.775 2.02458 1 Willa Arnes Innkeeper Willa Arnes Innkeeper service_npc 256126 4731 4714 gilneas 0 0 +poi_npc_256130 service 654 -2480.76 1575.95 16.5748 1.46608 1 Jack "All-Trades" Derrington Profession Trainer Jack "All-Trades" Derrington Profession Trainer service_npc 256130 4731 4714 gilneas 0 0 +poi_npc_256183 service 654 -2529.28 1434.71 1.12616 1.23918 1 Whilsey Bottomtooth Fishing Trainer Whilsey Bottomtooth Fishing Trainer service_npc 256183 4714 4714 gilneas 0 0 +poi_npc_258341 service 654 -1319.47 2133.14 5.71432 4.13643 1 Jack "All-Trades" Derrington Profession Trainer Jack "All-Trades" Derrington Profession Trainer service_npc 258341 4726 4714 gilneas 0 0 +poi_npc_259275 tavern 0 -4009.87 -6439.9 41.4245 1.67552 1 Innkeeper Lutz Innkeeper Innkeeper Lutz Innkeeper service_npc 259275 5136 4922 twilighthighlands 0 0 +poi_npc_260545 service 1 7329.51 -264.988 8.07923 0.959931 1 Jenna Lemkenilli Engineering Trainer Jenna Lemkenilli Engineering Trainer service_npc 260545 4659 148 darkshore 0 1 +poi_npc_260685 service 0 -3763.51 -723.533 2.08669 5.09636 1 Harold Riggs Fishing Trainer Harold Riggs Fishing Trainer service_npc 260685 150 11 wetlands 0 0 +poi_npc_260756 service 0 -3808.11 -824.064 0.735098 5.58505 1 Fremal Doohickey First Aid Trainer Fremal Doohickey First Aid Trainer service_npc 260756 2104 11 wetlands 0 0 +poi_npc_260762 tavern 0 -3825.19 -833.29 0.731596 0.925025 1 Innkeeper Helbrek Innkeeper Innkeeper Helbrek Innkeeper service_npc 260762 2104 11 wetlands 0 0 +poi_npc_260790 service 0 -3584.83 -854.755 3.84314 4.39823 1 Telurinon Moonshadow Herbalism Trainer Telurinon Moonshadow Herbalism Trainer service_npc 260790 150 11 wetlands 0 0 +poi_npc_261241 tavern 0 -2866.25 -1451.4 8.35576 5.96903 1 Innkeeper Daughny Innkeeper Innkeeper Daughny Innkeeper service_npc 261241 1024 11 wetlands 0 0 +poi_npc_262180 tavern 0 -3226.31 -2795.98 21.2108 2.19912 1 Innkeeper Larisal Innkeeper Innkeeper Larisal Innkeeper service_npc 262180 5305 11 wetlands 0 0 +poi_npc_263884 tavern 1 -9389.1 -944.342 113.847 4.7822 1 Kazemde Innkeeper Kazemde Innkeeper service_npc 263884 5466 5034 uldum 0 0 +poi_npc_264191 tavern 1 -8328.1 793.085 152.512 3.35103 1 Yasmin Innkeeper Yasmin Innkeeper service_npc 264191 5670 5034 uldum 0 0 +poi_npc_266608 tavern 1 -10691.1 1079.78 27.6228 3.87463 1 Arcane Guest Registry Arcane Guest Registry service_npc 266608 5602 5034 uldum 0 0 +poi_npc_266922 tavern 1 2781.16 -432.997 116.664 2.58309 1 Innkeeper Kimlya Innkeeper Innkeeper Kimlya Innkeeper service_npc 266922 415 331 ashenvale 0 0 +poi_npc_266924 service 1 2151.04 -1080.37 99.487 5.98648 1 Jayla Skinning Trainer Jayla Skinning Trainer service_npc 266924 420 331 ashenvale 0 0 +poi_npc_267312 tavern 0 -6584.51 -3923.13 379.625 3.47321 1 Sally Gearwell Innkeeper Sally Gearwell Innkeeper service_npc 267312 5496 3 badlands 0 0 +poi_npc_267372 tavern 1 2091.67 -1208.05 101.876 0.820305 1 Innkeeper Chin'toka Innkeeper Innkeeper Chin'toka Innkeeper service_npc 267372 420 331 ashenvale 0 0 +poi_npc_267375 tavern 1 3051.23 -526.09 205.722 3.07178 1 Innkeeper Linkasa Innkeeper Innkeeper Linkasa Innkeeper service_npc 267375 4691 331 ashenvale 0 0 +poi_npc_267380 tavern 1 3360.08 950.816 7.4876 1.39626 1 Innkeeper Duras Innkeeper Innkeeper Duras Innkeeper service_npc 267380 2897 331 ashenvale 0 0 +poi_npc_267779 service 1 2670.32 -374.732 110.811 1.37881 1 Aayndia Floralwind Leatherworking Trainer Aayndia Floralwind Leatherworking Trainer service_npc 267779 415 331 ashenvale 0 0 +poi_npc_267780 service 1 2141.11 -1128.64 99.6612 1.69297 1 Cylania Rootstalker Herbalism Trainer Cylania Rootstalker Herbalism Trainer service_npc 267780 420 331 ashenvale 0 0 +poi_npc_267781 service 1 2138.62 -1179.02 98.599 1.32645 1 Kylanna Alchemy Trainer Kylanna Alchemy Trainer service_npc 267781 420 331 ashenvale 0 0 +poi_npc_270964 service 1 3377.75 1074.24 2.27957 1.65806 1 Kil'Hiwana Fishing Trainer Kil'Hiwana Fishing Trainer service_npc 270964 2897 331 ashenvale 0 0 +poi_npc_271100 tavern 1 2341.86 -2566.99 103.177 2.28638 1 Innkeeper Kaylisk Innkeeper Innkeeper Kaylisk Innkeeper service_npc 271100 431 331 ashenvale 0 0 +poi_npc_271993 tavern 1 -8703.13 -4077.16 40.5545 0 1 Carmen Ibanozzle Innkeeper Carmen Ibanozzle Innkeeper service_npc 271993 5062 440 tanaris 0 0 +poi_npc_273383 service 1 -7230.32 -3793.36 9.10525 0.680678 1 Buzzek Bracketswing Engineering Trainer Buzzek Bracketswing Engineering Trainer service_npc 273383 976 440 tanaris 0 0 +poi_npc_273485 service 1 -7167.72 -3743.08 8.83408 5.49779 1 Pikkle Mining Trainer Pikkle Mining Trainer service_npc 273485 976 440 tanaris 0 0 +poi_npc_273529 service 1 -7131.99 -3839.67 9.01717 1.39626 1 Nixx Sprocketspring Goblin Engineering Trainer Nixx Sprocketspring Goblin Engineering Trainer service_npc 273529 976 440 tanaris 0 0 +poi_npc_273915 tavern 1 -7069.17 -3854.53 9.93303 3.68265 1 Innkeeper Fizzgrimble Innkeeper Innkeeper Fizzgrimble Innkeeper service_npc 273915 976 440 tanaris 0 0 +poi_npc_275002 tavern 0 -10653.3 1166.43 34.9278 5.77704 1 Innkeeper Heather Innkeeper Innkeeper Heather Innkeeper service_npc 275002 108 40 westfall 0 1 +poi_npc_277015 tavern 1 6695.15 -4673.04 721.65 0.541052 1 Innkeeper Vizzie Innkeeper Innkeeper Vizzie Innkeeper service_npc 277015 2255 618 winterspring 0 0 +poi_npc_278360 tavern 0 -622.033 -4583.4 11.7704 5.51524 1 Lard Innkeeper Lard Innkeeper service_npc 278360 3317 47 thehinterlands 0 0 +poi_npc_278379 service 0 -626.071 -4667.71 6.50807 2.75762 1 Katoom the Angler Fishing Trainer & Supplies Katoom the Angler Fishing Trainer & Supplies service_npc 278379 3317 47 thehinterlands 0 0 +poi_npc_278612 tavern 0 328.227 -4122.65 117.284 4.13643 1 Innkeeper Keirnan Innkeeper Innkeeper Keirnan Innkeeper service_npc 278612 5323 47 thehinterlands 0 0 +poi_npc_279314 tavern 0 -21.6719 -2799.42 121.814 5.044 1 Bitsy Innkeeper Bitsy Innkeeper service_npc 279314 1885 47 thehinterlands 0 0 +poi_npc_279447 service 0 350.42 -2090.4 113.868 6.26573 1 Drakk Stonehand Leatherworking Trainer Drakk Stonehand Leatherworking Trainer service_npc 279447 349 47 thehinterlands 0 0 +poi_npc_279448 tavern 0 320.059 -2119.22 121.922 3.40339 1 Innkeeper Thulfram Innkeeper Innkeeper Thulfram Innkeeper service_npc 279448 349 47 thehinterlands 0 0 +poi_npc_280039 service 0 -9375.68 -74.4761 64.5206 3.45575 1 Adele Fielder Leatherworking Trainer Adele Fielder Leatherworking Trainer service_npc 280039 87 12 elwynn 0 1 +poi_npc_280085 service 0 -9059.67 148.566 115.222 1.6057 1 Herbalist Pomeroy Herbalism Trainer Herbalist Pomeroy Herbalism Trainer service_npc 280085 12 12 elwynn 0 1 +poi_npc_280685 service 0 -9456.65 87.8553 58.4271 2.40855 1 Smith Argus Blacksmithing Trainer Smith Argus Blacksmithing Trainer service_npc 280685 87 12 elwynn 0 1 +poi_npc_280690 service 0 -9494.04 79.2656 56.2886 0.925025 1 Lien Farner Profession Trainer Lien Farner Profession Trainer service_npc 280690 87 12 elwynn 0 1 +poi_npc_280695 service 0 -9380.23 -69.5295 64.5206 4.55531 1 Helene Peltskinner Skinning Trainer Helene Peltskinner Skinning Trainer service_npc 280695 87 12 elwynn 0 1 +poi_npc_280703 service 0 -9456.81 29.361 63.9038 2.96706 1 Michelle Belle First Aid Trainer Michelle Belle First Aid Trainer service_npc 280703 5637 12 elwynn 0 1 +poi_npc_280710 tavern 0 -9462.66 16.1915 57.0459 3.03687 1 Innkeeper Farley Innkeeper Innkeeper Farley Innkeeper service_npc 280710 5637 12 elwynn 0 1 +poi_npc_280717 service 0 -9466.99 -4.53396 57.033 1.64061 1 Tomas Cooking Trainer Tomas Cooking Trainer service_npc 280717 5637 12 elwynn 0 1 +poi_npc_281152 service 0 -9537.24 -1214.05 48.2341 4.90438 1 Eldrin Tailoring Trainer Eldrin Tailoring Trainer service_npc 281152 88 12 elwynn 0 1 +poi_npc_281488 service 0 -9576.3 -718.125 99.2704 3.05433 1 Kitta Firewind Enchanting Trainer Kitta Firewind Enchanting Trainer service_npc 281488 91 12 elwynn 0 1 +poi_npc_281595 service 0 -9382.08 -117.005 58.9841 4.43314 1 Lee Brown Fishing Trainer Lee Brown Fishing Trainer service_npc 281595 18 12 elwynn 0 1 +poi_npc_281939 service 1 3516.72 -6520.23 56.1618 1.48353 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 281939 4821 16 azshara 0 2 +poi_npc_281941 tavern 1 3527.24 -6518.98 43.5854 0.122173 1 Mixi Innkeeper Mixi Innkeeper service_npc 281941 4821 16 azshara 0 2 +poi_npc_281946 tavern 1 3529.67 -6518.78 43.5852 3.28122 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 281946 4821 16 azshara 0 2 +poi_npc_285352 service 0 -1215.47 -1884.28 87.6511 0.15708 1 Brumn Winterhoof Leatherworking Trainer Brumn Winterhoof Leatherworking Trainer service_npc 285352 45 45 arathihighlands 0 0 +poi_npc_285694 tavern 0 -1278.7 -2514.56 21.5273 5.44543 1 Vikki Lonsav Innkeeper Vikki Lonsav Innkeeper service_npc 285694 320 45 arathihighlands 0 0 +poi_npc_286042 tavern 0 -912.374 -3524.92 72.7679 3.14159 1 Innkeeper Adegwa Innkeeper Innkeeper Adegwa Innkeeper service_npc 286042 321 45 arathihighlands 0 0 +poi_npc_286048 service 0 -944.927 -3533.55 71.533 2.3911 1 Slagg Superior Butcher Slagg Superior Butcher service_npc 286048 321 45 arathihighlands 0 0 +poi_npc_286493 service 1 2097.17 -4826.23 27.9627 3.1765 1 Borgosh Corebender Blacksmithing Trainer Borgosh Corebender Blacksmithing Trainer service_npc 286493 5168 1637 orgrimmar 0 2 +poi_npc_286494 service 1 2086.36 -4837.17 27.8338 4.69494 1 Saru Steelfury Blacksmithing Trainer Saru Steelfury Blacksmithing Trainer service_npc 286494 5168 1637 orgrimmar 0 2 +poi_npc_286497 service 1 2092.53 -4816.99 27.9775 4.2237 1 Okothos Ironrager Blacksmithing Trainer Okothos Ironrager Blacksmithing Trainer service_npc 286497 5168 1637 orgrimmar 0 2 +poi_npc_286505 service 1 2056.53 -4826.79 27.5544 5.60251 1 Shayis Steelfury Blacksmithing Trainer Shayis Steelfury Blacksmithing Trainer service_npc 286505 5168 1637 orgrimmar 0 2 +poi_npc_286508 service 1 2056.6 -4834.38 27.6174 5.86431 1 Kelgruk Bloodaxe Blacksmithing Trainer Kelgruk Bloodaxe Blacksmithing Trainer service_npc 286508 5168 1637 orgrimmar 0 2 +poi_npc_286514 service 1 2081.98 -4764.08 28.0087 3.4383 1 Makaru Mining Trainer Makaru Mining Trainer service_npc 286514 5168 1637 orgrimmar 0 2 +poi_npc_286595 tavern 1 1916.46 -4732.79 39.0197 1.01229 1 Innkeeper Nufa Innkeeper Innkeeper Nufa Innkeeper service_npc 286595 5168 1637 orgrimmar 0 2 +poi_npc_286597 service 1 2000.46 -4662.07 28.5751 1.50098 1 Lumak Fishing Trainer Lumak Fishing Trainer service_npc 286597 5168 1637 orgrimmar 0 2 +poi_npc_286646 service 1 1852.91 -4570.06 25.0641 4.55531 1 Thuwd Skinning Trainer Thuwd Skinning Trainer service_npc 286646 1637 1637 orgrimmar 0 2 +poi_npc_286647 service 1 1850.18 -4565.55 25.0641 3.19395 1 Karolek Leatherworking Trainer Karolek Leatherworking Trainer service_npc 286647 5167 1637 orgrimmar 0 2 +poi_npc_286670 service 1 1830.8 -4494.98 23.6838 0.890118 1 Roxxik Engineering Trainer Roxxik Engineering Trainer service_npc 286670 1637 1637 orgrimmar 0 2 +poi_npc_286684 service 1 1838.72 -4464.13 47.6899 0 1 Nerog Inscription Trainer Nerog Inscription Trainer service_npc 286684 1637 1637 orgrimmar 0 2 +poi_npc_286703 service 1 1963.26 -4468.53 25.8766 2.86234 1 Yelmak Alchemy Trainer Yelmak Alchemy Trainer service_npc 286703 5167 1637 orgrimmar 0 2 +poi_npc_286706 service 1 1912 -4436.75 24.8761 2.86234 1 Godan Enchanting Trainer Godan Enchanting Trainer service_npc 286706 5167 1637 orgrimmar 0 2 +poi_npc_286708 service 1 1902.69 -4450.71 53.4044 4.34104 1 Muraga Herbalism Trainer Muraga Herbalism Trainer service_npc 286708 5167 1637 orgrimmar 0 2 +poi_npc_286760 service 1 1899.82 -4181.78 37.967 0.296706 1 Hiwahi Three-Feathers Tailoring Trainer Hiwahi Three-Feathers Tailoring Trainer service_npc 286760 1637 1637 orgrimmar 0 2 +poi_npc_286763 tavern 1 1922.61 -4182.53 37.967 5.11381 1 Miwana Innkeeper Miwana Innkeeper service_npc 286763 1637 1637 orgrimmar 0 2 +poi_npc_286768 service 1 1910.17 -4191.3 37.2747 5.16617 1 Rento Skinning Trainer Rento Skinning Trainer service_npc 286768 5171 1637 orgrimmar 0 2 +poi_npc_286890 service 1 1758.03 -4112.26 51.7814 2.40855 1 Jandi Herbalism Trainer Jandi Herbalism Trainer service_npc 286890 5169 1637 orgrimmar 0 2 +poi_npc_286903 tavern 1 1734.55 -4077.61 50.6273 1.98968 1 Sijambi Innkeeper Sijambi Innkeeper service_npc 286903 5169 1637 orgrimmar 0 2 +poi_npc_286920 service 1 1678.85 -4067.18 51.5161 3.05433 1 Zamja Cooking Trainer Zamja Cooking Trainer service_npc 286920 5169 1637 orgrimmar 0 2 +poi_npc_286921 service 1 1705.74 -4118.14 48.3627 1.23918 1 Old Umbehto Fishing Trainer & Supplies Old Umbehto Fishing Trainer & Supplies service_npc 286921 5169 1637 orgrimmar 0 2 +poi_npc_286933 service 1 1689.63 -4127.82 66.3357 5.88176 1 Jo'mah Inscription Trainer Jo'mah Inscription Trainer service_npc 286933 5169 1637 orgrimmar 0 2 +poi_npc_286980 service 1 1474.88 -4149.25 52.9052 2.67528 1 Krenk Choplimb First Aid Trainer Krenk Choplimb First Aid Trainer service_npc 286980 5332 1637 orgrimmar 0 2 +poi_npc_286991 service 1 1483.09 -4142.57 52.436 6.19592 1 "Jack" Pisarek Slamfix Engineering Trainer "Jack" Pisarek Slamfix Engineering Trainer service_npc 286991 5332 1637 orgrimmar 0 2 +poi_npc_287001 service 1 1526.54 -4130.65 51.3357 0.959931 1 Kark Helmbreaker Blacksmithing Trainer Kark Helmbreaker Blacksmithing Trainer service_npc 287001 5332 1637 orgrimmar 0 2 +poi_npc_287004 service 1 1487.83 -4187.19 53.4039 1.13446 1 Zarbo Porkpatty Cooking Trainer Zarbo Porkpatty Cooking Trainer service_npc 287004 5332 1637 orgrimmar 0 2 +poi_npc_287005 service 1 1529.12 -4133.45 51.1367 1.64061 1 Gizzik Oregrab Mining Trainer Gizzik Oregrab Mining Trainer service_npc 287005 5332 1637 orgrimmar 0 2 +poi_npc_287033 tavern 1 1545.31 -4195.52 52.7315 4.62512 1 Tinza Silvermug Innkeeper Tinza Silvermug Innkeeper service_npc 287033 5332 1637 orgrimmar 0 2 +poi_npc_287101 service 1 1562.72 -4223.45 54.2681 1.309 1 Nivi Weavewell Tailoring Trainer Nivi Weavewell Tailoring Trainer service_npc 287101 5332 1637 orgrimmar 0 2 +poi_npc_287122 service 1 1591.39 -4275.7 21.5463 1.0472 1 Rogg Blacksmithing Trainer Rogg Blacksmithing Trainer service_npc 287122 5170 1637 orgrimmar 0 2 +poi_npc_287214 tavern 1 1573.27 -4439.16 16.1397 1.90241 1 Innkeeper Gryshka Innkeeper Innkeeper Gryshka Innkeeper service_npc 287214 5170 1637 orgrimmar 0 2 +poi_npc_287315 tavern 0 -5676.2 -4253.09 407.092 5.68977 1 Vyrin Swiftwind Innkeeper Vyrin Swiftwind Innkeeper service_npc 287315 147 38 lochmodan 0 1 +poi_npc_287981 service 0 -4670.76 -3174.55 312.89 3.21141 1 Deek Fizzlebizz Engineering Trainer Deek Fizzlebizz Engineering Trainer service_npc 287981 146 38 lochmodan 0 1 +poi_npc_288215 service 0 -5217.33 -3112.92 300.988 0.861592 1 Warg Deepwater Fishing Trainer Warg Deepwater Fishing Trainer service_npc 288215 556 38 lochmodan 0 1 +poi_npc_288275 tavern 0 -5377.91 -2973.91 323.252 1.78024 1 Innkeeper Hearthstove Innkeeper Innkeeper Hearthstove Innkeeper service_npc 288275 2101 38 lochmodan 0 1 +poi_npc_288296 service 0 -5350.7 -3021.61 326.415 1.06465 1 Brock Stoneseeker Mining Trainer Brock Stoneseeker Mining Trainer service_npc 288296 144 38 lochmodan 0 1 +poi_npc_288305 service 0 -5380.46 -2999.76 330.719 0.226893 1 Kali Healtouch Herbalism Trainer Kali Healtouch Herbalism Trainer service_npc 288305 144 38 lochmodan 0 1 +poi_npc_288308 service 0 -5395.86 -3016.18 327.663 0.436332 1 Ghak Healtouch Alchemy Trainer Ghak Healtouch Alchemy Trainer service_npc 288308 144 38 lochmodan 0 1 +poi_npc_289405 tavern 0 -7006.62 -2537.2 241.796 0 1 Ivan Zypher Innkeeper Ivan Zypher Innkeeper service_npc 289405 5564 3 badlands 0 0 +poi_npc_289967 service 530 9503.18 -6897.75 28.4305 2.70526 1 Saren Profession Trainer Saren Profession Trainer service_npc 289967 5728 3430 eversongwoods 0 2 +poi_npc_290189 service 1 7768.57 -2429.68 487.31 4.85202 1 Malvor Herbalism Trainer Malvor Herbalism Trainer service_npc 290189 2361 493 moonglade 0 0 +poi_npc_290562 service 974 -4421.53 6289.18 13.9276 0.191986 1 Steven Stagnaro Fishing Trainer Steven Stagnaro Fishing Trainer service_npc 290562 5904 5861 darkmoonisland 0 0 +poi_npc_292982 tavern 0 -10077 -2809.17 24.2052 2.80998 1 Verad Innkeeper Verad Innkeeper service_npc 292982 657 8 swampofsorrows 0 0 +poi_npc_293071 service 0 -10474.9 -3335.97 25.5542 0.261799 1 Rogvar Alchemy Trainer Rogvar Alchemy Trainer service_npc 293071 75 8 swampofsorrows 0 0 +poi_npc_293076 tavern 0 -10487.3 -3258.83 21.2236 6.17846 1 Innkeeper Karakul Innkeeper Innkeeper Karakul Innkeeper service_npc 293076 75 8 swampofsorrows 0 0 +poi_npc_293698 tavern 0 -9766.99 -3879.23 22.0179 3.4383 1 Cap'n Geech Innkeeper Cap'n Geech Innkeeper service_npc 293698 5458 8 swampofsorrows 0 0 +poi_npc_293973 service 1 -997.349 206.727 136.221 1.78024 1 Pand Stonebinder First Aid Trainer Pand Stonebinder First Aid Trainer service_npc 293973 1640 1638 thunderbluff 0 2 +poi_npc_293974 service 1 -995.053 217.069 104.743 0.506145 1 Poshken Hardbinder Inscription Trainer Poshken Hardbinder Inscription Trainer service_npc 293974 2197 1638 thunderbluff 0 2 +poi_npc_294059 service 1 -1045.32 -266.444 159.113 3.87463 1 Otoh Greyhide Archaeology Trainer Otoh Greyhide Archaeology Trainer service_npc 294059 1639 1638 thunderbluff 0 2 +poi_npc_294086 service 1 -1172.76 -69.2332 162.284 3.26377 1 Kah Mistrunner Fishing Trainer Kah Mistrunner Fishing Trainer service_npc 294086 5345 1638 thunderbluff 0 2 +poi_npc_294097 service 1 -1219.57 -12.6973 165.945 5.37561 1 Aska Mistrunner Cooking Trainer Aska Mistrunner Cooking Trainer service_npc 294097 5345 1638 thunderbluff 0 2 +poi_npc_294103 service 1 -1131.19 -4.70871 143.644 0.087266 1 Komin Winterhoof Herbalism Trainer Komin Winterhoof Herbalism Trainer service_npc 294103 5345 1638 thunderbluff 0 2 +poi_npc_294107 service 1 -1080.81 30.1093 140.91 3.68265 1 Bena Winterhoof Alchemy Trainer Bena Winterhoof Alchemy Trainer service_npc 294107 5345 1638 thunderbluff 0 2 +poi_npc_294224 service 1 -2350.51 -238.716 -8.30635 2.44346 1 Uthan Stillwater Fishing Trainer Uthan Stillwater Fishing Trainer service_npc 294224 223 215 mulgore 0 2 +poi_npc_294590 tavern 0 -6726.68 -2464.54 274.661 2.28638 1 Innkeeper Shul'kar Innkeeper Innkeeper Shul'kar Innkeeper service_npc 294590 5565 3 badlands 0 0 +poi_npc_294701 tavern 1 -2365.37 -347.31 -8.87365 5.84685 1 Innkeeper Kauth Innkeeper Innkeeper Kauth Innkeeper service_npc 294701 222 215 mulgore 0 2 +poi_npc_296052 service 1 -2263.26 -284.941 -9.29335 4.72984 1 Pyall Silentstride Cooking Trainer Pyall Silentstride Cooking Trainer service_npc 296052 222 215 mulgore 0 2 +poi_npc_296072 service 1 -2357.02 -356.585 -8.87365 1.15192 1 Vira Younghoof First Aid Trainer Vira Younghoof First Aid Trainer service_npc 296072 222 215 mulgore 0 2 +poi_npc_296074 service 1 -2263.98 -324.861 -9.34158 2.96706 1 Lalum Darkmane Profession Trainer Lalum Darkmane Profession Trainer service_npc 296074 222 215 mulgore 0 2 +poi_npc_296075 service 1 -2251.83 -288.483 -9.34156 3.92699 1 Yonn Deepcut Skinning Trainer Yonn Deepcut Skinning Trainer service_npc 296075 222 215 mulgore 0 2 +poi_npc_296077 service 1 -2254.65 -286.531 -9.34156 4.20624 1 Chaw Stronghide Leatherworking Trainer Chaw Stronghide Leatherworking Trainer service_npc 296077 222 215 mulgore 0 2 +poi_npc_296156 tavern 1 -1300.28 38.4858 129.292 0.558505 1 Innkeeper Pala Innkeeper Innkeeper Pala Innkeeper service_npc 296156 5345 1638 thunderbluff 0 2 +poi_npc_296219 service 1 -1117.48 43.783 141.194 2.35619 1 Teg Dawnstrider Enchanting Trainer Teg Dawnstrider Enchanting Trainer service_npc 296219 5345 1638 thunderbluff 0 2 +poi_npc_296223 service 1 -1146.21 83.4766 145.949 4.24115 1 Una Leatherworking Trainer Una Leatherworking Trainer service_npc 296223 5345 1638 thunderbluff 0 2 +poi_npc_296227 service 1 -1150.26 52.8149 144.92 5.65487 1 Mooranta Skinning Trainer Mooranta Skinning Trainer service_npc 296227 5345 1638 thunderbluff 0 2 +poi_npc_296235 service 1 -1165.59 51.9393 145.878 0.750492 1 Tepa Tailoring Trainer Tepa Tailoring Trainer service_npc 296235 5345 1638 thunderbluff 0 2 +poi_npc_296248 service 1 -1225.76 153.337 133.357 5.09636 1 Nahari Cloudchaser Jewelcrafting Trainer Nahari Cloudchaser Jewelcrafting Trainer service_npc 296248 5345 1638 thunderbluff 0 2 +poi_npc_296255 service 1 -1233.33 105.637 129.456 5.61996 1 Karn Stonehoof Blacksmithing Trainer Karn Stonehoof Blacksmithing Trainer service_npc 296255 5345 1638 thunderbluff 0 2 +poi_npc_296258 service 1 -1252.9 157.965 133.63 5.8294 1 Brek Stonehoof Mining Trainer Brek Stonehoof Mining Trainer service_npc 296258 5345 1638 thunderbluff 0 2 +poi_npc_296262 service 1 -1264.73 140.592 132.629 4.85202 1 Engineer Palehoof Engineering Trainer Engineer Palehoof Engineering Trainer service_npc 296262 5345 1638 thunderbluff 0 2 +poi_npc_296314 service 1 -3777.25 -4366.21 15.0269 0.20944 1 "Kobold" Kerik Mining Trainer & Supplies "Kobold" Kerik Mining Trainer & Supplies service_npc 296314 513 15 dustwallowmarsh 0 0 +poi_npc_296315 service 1 -3785.93 -4366.85 16.8761 4.18879 1 Marie Holdston Blacksmithing Trainer Marie Holdston Blacksmithing Trainer service_npc 296315 513 15 dustwallowmarsh 0 0 +poi_npc_296316 service 1 -3798.24 -4374.62 16.8704 1.85005 1 Caz Twosprocket Engineering Trainer Caz Twosprocket Engineering Trainer service_npc 296316 513 15 dustwallowmarsh 0 0 +poi_npc_296346 service 1 -3846.73 -4449.22 17.3393 0.017453 1 Timothy Worthington Tailoring Trainer Timothy Worthington Tailoring Trainer service_npc 296346 513 15 dustwallowmarsh 0 0 +poi_npc_296458 service 1 -3849.32 -4610.15 8.75931 4.55531 1 "Dirty" Michael Crowe Fishing Trainer & Supplies "Dirty" Michael Crowe Fishing Trainer & Supplies service_npc 296458 513 15 dustwallowmarsh 0 0 +poi_npc_296499 service 1 -3747.27 -4532.25 11.9802 0.418879 1 Doctor Gustaf VanHowzen First Aid Trainer Doctor Gustaf VanHowzen First Aid Trainer service_npc 296499 514 15 dustwallowmarsh 0 0 +poi_npc_296531 service 1 -3774.62 -4448.33 65.1081 3.19395 1 Theoden Manners Inscription Trainer & Supplies Theoden Manners Inscription Trainer & Supplies service_npc 296531 513 15 dustwallowmarsh 0 0 +poi_npc_296538 service 1 -3772.04 -4441.65 65.1081 4.74729 1 Lissah Spellwick Enchanting Trainer & Supplies Lissah Spellwick Enchanting Trainer & Supplies service_npc 296538 513 15 dustwallowmarsh 0 0 +poi_npc_296555 service 1 -3617.13 -4487.07 14.3148 1.72788 1 Craig Nollward Cooking Trainer Craig Nollward Cooking Trainer service_npc 296555 513 15 dustwallowmarsh 0 0 +poi_npc_296566 service 1 -3613.09 -4461.89 13.7046 0.331613 1 Eustace Tanwell Leatherworking Trainer & Supplies Eustace Tanwell Leatherworking Trainer & Supplies service_npc 296566 513 15 dustwallowmarsh 0 0 +poi_npc_296567 service 1 -3612.22 -4458.99 13.7046 3.24631 1 Humbert Tanwell Skinning Trainer Humbert Tanwell Skinning Trainer service_npc 296567 513 15 dustwallowmarsh 0 0 +poi_npc_296569 tavern 1 -3619.51 -4462.25 13.7046 1.8326 1 Innkeeper Janene Innkeeper Innkeeper Janene Innkeeper service_npc 296569 513 15 dustwallowmarsh 0 0 +poi_npc_296570 service 1 -3612.48 -4456.34 21.1856 3.47321 1 Ingo Woolybush Jewelcrafting Trainer & Supplies Ingo Woolybush Jewelcrafting Trainer & Supplies service_npc 296570 513 15 dustwallowmarsh 0 0 +poi_npc_296572 service 1 -3618.92 -4454.05 21.1856 4.7822 1 Faena Woolybush Archaeology Trainer Faena Woolybush Archaeology Trainer service_npc 296572 513 15 dustwallowmarsh 0 0 +poi_npc_296590 service 1 -3700.84 -4331.73 11.5004 4.46804 1 Alchemist Narett Alchemy Trainer Alchemist Narett Alchemy Trainer service_npc 296590 513 15 dustwallowmarsh 0 0 +poi_npc_296592 service 1 -3697.02 -4335.27 11.5014 3.33358 1 Brant Jasperbloom Herbalism Trainer Brant Jasperbloom Herbalism Trainer service_npc 296592 513 15 dustwallowmarsh 0 0 +poi_npc_296954 tavern 1 -2096.83 -3504.85 95.0771 3.64774 1 Keep Watcher Kerry Innkeeper Keep Watcher Kerry Innkeeper service_npc 296954 4847 4709 southernbarrens 0 0 +poi_npc_297587 tavern 1 -3165.61 -2911.76 35.1392 0.733038 1 "Little" Logok Innkeeper "Little" Logok Innkeeper service_npc 297587 496 15 dustwallowmarsh 0 0 +poi_npc_298285 tavern 1 -4629.94 -3176.12 41.2235 6.26344 1 Axle Innkeeper Axle Innkeeper service_npc 298285 4010 15 dustwallowmarsh 0 0 +poi_npc_298845 tavern 1 -3220.69 -1663.86 99.9925 3.9968 1 Innkeeper Lhakadd Innkeeper Innkeeper Lhakadd Innkeeper service_npc 298845 4853 4709 southernbarrens 0 0 +poi_npc_299015 tavern 1 -3183.29 -2279.11 93.3642 4.81711 1 Logistics Officer Salista Innkeeper Logistics Officer Salista Innkeeper service_npc 299015 4854 4709 southernbarrens 0 0 +poi_npc_299136 service 1 -2113.46 -1707.55 99.5747 0.17012 1 Mahani Tailoring Trainer Mahani Tailoring Trainer service_npc 299136 4986 4709 southernbarrens 0 0 +poi_npc_299174 service 1 -2310.22 -1930.83 96.0966 4.66003 1 Krulmoo Fullmoon Leatherworking Trainer Krulmoo Fullmoon Leatherworking Trainer service_npc 299174 4851 4709 southernbarrens 0 0 +poi_npc_299219 service 1 -2375.17 -1945.64 96.1441 1.01229 1 Dranh Skinning Trainer Dranh Skinning Trainer service_npc 299219 4851 4709 southernbarrens 0 0 +poi_npc_300050 tavern 1 -785.29 -1552.46 140.49 4.50295 1 Innkeeper Hurnahet Innkeeper Innkeeper Hurnahet Innkeeper service_npc 300050 4844 4709 southernbarrens 0 0 +poi_npc_300229 tavern 1 -341.958 -1538.93 87.3201 2.19912 1 Logistics Officer Renaldo Innkeeper Logistics Officer Renaldo Innkeeper service_npc 300229 4843 4709 southernbarrens 0 0 +poi_npc_300584 tavern 0 -12723.6 -2817.64 7.62432 4.72984 1 Donna Berrymore Innkeeper Donna Berrymore Innkeeper service_npc 300584 5084 4 blasted_lands 0 0 +poi_npc_301269 tavern 0 -10925.3 -3417.68 66.5808 3.75246 1 Mama Morton Innkeeper Mama Morton Innkeeper service_npc 301269 1438 4 blasted_lands 0 0 +poi_npc_301439 tavern 0 -10859.7 -2674.27 9.89103 3.59538 1 Innkeeper Grak Innkeeper Innkeeper Grak Innkeeper service_npc 301439 1437 4 blasted_lands 0 0 +poi_npc_302189 tavern 1 -1050.04 -3664.8 23.9685 6.00393 1 Innkeeper Wiley Innkeeper Innkeeper Wiley Innkeeper service_npc 302189 392 17 northernbarrens 0 2 +poi_npc_302322 service 1 -534.552 -2979.56 93.147 5.91667 1 Duhng Cooking Trainer Duhng Cooking Trainer service_npc 302322 17 17 northernbarrens 0 2 +poi_npc_302345 service 1 -340.694 -2575.09 97.6699 3.03687 1 Traugh Blacksmithing Trainer Traugh Blacksmithing Trainer service_npc 302345 380 17 northernbarrens 0 2 +poi_npc_302365 tavern 1 -407.123 -2645.23 96.3063 3.4383 1 Innkeeper Boorand Plainswind Innkeeper Innkeeper Boorand Plainswind Innkeeper service_npc 302365 380 17 northernbarrens 0 2 +poi_npc_302388 service 1 -529.43 -2667.07 95.8709 3.28122 1 Kil'hala Tailoring Trainer Kil'hala Tailoring Trainer service_npc 302388 380 17 northernbarrens 0 2 +poi_npc_303484 tavern 1 1175.09 -3390.79 91.9889 3.24631 1 Innkeeper Kritzle Innkeeper Innkeeper Kritzle Innkeeper service_npc 303484 5117 17 northernbarrens 0 2 +poi_npc_303746 tavern 1 278.771 -3029.59 97.4772 3.80482 1 Innkeeper Kerntis Innkeeper Innkeeper Kerntis Innkeeper service_npc 303746 1704 17 northernbarrens 0 2 +poi_npc_303968 service 1 -840.882 -3727.2 19.9711 4.7822 1 Tinkerwiz Engineering Trainer Tinkerwiz Engineering Trainer service_npc 303968 392 17 northernbarrens 0 2 +poi_npc_303969 service 1 -836.957 -3729.89 19.9708 4.13643 1 Vazario Linkgrease Goblin Engineering Trainer Vazario Linkgrease Goblin Engineering Trainer service_npc 303969 392 17 northernbarrens 0 2 +poi_npc_305396 service 0 -5197.73 54.8182 385.752 4.95674 1 Paxton Ganter Fishing Trainer Paxton Ganter Fishing Trainer service_npc 305396 211 1 dun_morogh 0 1 +poi_npc_306229 service 0 -5581.89 -429.616 397.568 1.20418 1 Tognus Flintfire Blacksmithing Trainer Tognus Flintfire Blacksmithing Trainer service_npc 306229 131 1 dun_morogh 0 1 +poi_npc_306357 service 0 -5593.35 -543.233 398.77 0.011483 1 Gremlock Pilsnor Cooking Trainer Gremlock Pilsnor Cooking Trainer service_npc 306357 2102 1 dun_morogh 0 1 +poi_npc_306359 service 0 -5604.49 -521.427 399.741 5.32325 1 Thamner Pol First Aid Trainer Thamner Pol First Aid Trainer service_npc 306359 2102 1 dun_morogh 0 1 +poi_npc_306360 tavern 0 -5601.6 -531.203 399.736 2.1293 1 Innkeeper Belm Innkeeper Innkeeper Belm Innkeeper service_npc 306360 2102 1 dun_morogh 0 1 +poi_npc_306368 service 0 -5637.13 -497.88 396.752 2.21657 1 Wembil Taskwidget Profession Trainer Wembil Taskwidget Profession Trainer service_npc 306368 131 1 dun_morogh 0 1 +poi_npc_306497 service 0 -5528.87 -660.74 393.413 5.11381 1 Yarr Hammerstone Mining Trainer Yarr Hammerstone Mining Trainer service_npc 306497 189 1 dun_morogh 0 1 +poi_npc_306507 service 0 -5531.22 -670.668 393.413 1.98968 1 Bronk Guzzlegear Engineering Trainer Bronk Guzzlegear Engineering Trainer service_npc 306507 189 1 dun_morogh 0 1 +poi_npc_306842 service 0 -5665.97 -1565.55 383.275 2.32129 1 Cook Ghilm Cooking Trainer Cook Ghilm Cooking Trainer service_npc 306842 134 1 dun_morogh 0 1 +poi_npc_306897 service 0 -5697.9 -1612.16 383.388 1.09956 1 Dank Drizzlecut Mining Trainer Dank Drizzlecut Mining Trainer service_npc 306897 134 1 dun_morogh 0 1 +poi_npc_307486 service 0 -4740.69 -1028.76 504.515 2.49582 1 Balthus Stoneflayer Skinning Trainer Balthus Stoneflayer Skinning Trainer service_npc 307486 5342 1537 ironforge 0 1 +poi_npc_307487 service 0 -4746.93 -1031.74 504.515 2.54818 1 Fimble Finespindle Leatherworking Trainer Fimble Finespindle Leatherworking Trainer service_npc 307487 5342 1537 ironforge 0 1 +poi_npc_307490 service 0 -4724.12 -1054.71 504.28 2.14675 1 Jormund Stonebrow Tailoring Trainer Jormund Stonebrow Tailoring Trainer service_npc 307490 5342 1537 ironforge 0 1 +poi_npc_307495 service 0 -4795.11 -1108.57 498.89 5.28835 1 Grumnus Steelshaper Blacksmithing Trainer Grumnus Steelshaper Blacksmithing Trainer service_npc 307495 5342 1537 ironforge 0 1 +poi_npc_307498 service 0 -4787.96 -1129.03 498.889 2.84489 1 Bengus Deepforge Blacksmithing Trainer Bengus Deepforge Blacksmithing Trainer service_npc 307498 5342 1537 ironforge 0 1 +poi_npc_307500 service 0 -4799.05 -1111.48 498.89 5.58505 1 Ironus Coldsteel Blacksmith Trainer Ironus Coldsteel Blacksmith Trainer service_npc 307500 5342 1537 ironforge 0 1 +poi_npc_307565 service 0 -4709.06 -1109.88 504.529 6.0912 1 Geofram Bouldertoe Mining Trainer Geofram Bouldertoe Mining Trainer service_npc 307565 5342 1537 ironforge 0 1 +poi_npc_307567 service 0 -4706.71 -1110.23 504.527 3.01942 1 Hanner Gembold Jewelcrafting Trainer Hanner Gembold Jewelcrafting Trainer service_npc 307567 5342 1537 ironforge 0 1 +poi_npc_307570 service 0 -4609.25 -1093.96 505.086 3.1765 1 Grimnur Stonebrand Fishing Trainer Grimnur Stonebrand Fishing Trainer service_npc 307570 4679 1537 ironforge 0 1 +poi_npc_307592 service 0 -4807.64 -1196.03 505.897 0.122173 1 Elise Brightletter Inscription Trainer Elise Brightletter Inscription Trainer service_npc 307592 5342 1537 ironforge 0 1 +poi_npc_307600 service 0 -4808.33 -1188.84 512.563 5.58505 1 Gimble Thistlefuzz Enchanting Trainer Gimble Thistlefuzz Enchanting Trainer service_npc 307600 5342 1537 ironforge 0 1 +poi_npc_307604 service 0 -4761.46 -1188.56 509.479 0.558505 1 Daryl Riknussun Cooking Trainer Daryl Riknussun Cooking Trainer service_npc 307604 5342 1537 ironforge 0 1 +poi_npc_307612 service 0 -4798.97 -1254.84 502.086 5.21853 1 Springspindle Fizzlegear Engineering Trainer Springspindle Fizzlegear Engineering Trainer service_npc 307612 1537 1537 ironforge 0 1 +poi_npc_307616 service 0 -4834.77 -1263.45 501.951 4.72984 1 Tinkmaster Overspark Gnomish Engineering Trainer Tinkmaster Overspark Gnomish Engineering Trainer service_npc 307616 1537 1537 ironforge 0 1 +poi_npc_307643 service 0 -4863.04 -1240.3 501.807 3.75246 1 Tally Berryfizz Alchemy Trainer Tally Berryfizz Alchemy Trainer service_npc 307643 1537 1537 ironforge 0 1 +poi_npc_307661 service 0 -4881.24 -1155.52 505.853 5.34071 1 Reyna Stonebranch Herbalism Trainer Reyna Stonebranch Herbalism Trainer service_npc 307661 5342 1537 ironforge 0 1 +poi_npc_307667 service 0 -4876.62 -1149.14 512.52 3.57792 1 Nissa Firestone First Aid Trainer Nissa Firestone First Aid Trainer service_npc 307667 5342 1537 ironforge 0 1 +poi_npc_307710 tavern 0 -4840.67 -857.094 501.997 4.86947 1 Innkeeper Firebrew Innkeeper Innkeeper Firebrew Innkeeper service_npc 307710 5719 1537 ironforge 0 1 +poi_npc_307758 service 0 -4627.8 -1311.3 502.076 2.23402 1 Doktor Professor Ironpants Archaeology Trainer Doktor Professor Ironpants Archaeology Trainer service_npc 307758 5341 1537 ironforge 0 1 +poi_npc_309540 service 1 -849.71 -4903.71 21.9105 5.13127 1 Mishiki Herbalism Trainer Mishiki Herbalism Trainer service_npc 309540 367 14 durotar 0 2 +poi_npc_309560 service 1 -911.42 -4993.25 12.2295 4.32842 1 Lau'Tiki Fishing Trainer Lau'Tiki Fishing Trainer service_npc 309560 393 14 durotar 0 2 +poi_npc_309592 service 1 -798.274 -4892.27 22.983 3.90954 1 Miao'zan Alchemy Trainer Miao'zan Alchemy Trainer service_npc 309592 367 14 durotar 0 2 +poi_npc_310295 service 1 330.355 -4826.93 10.6074 2.79253 1 Rawrk First Aid Trainer Rawrk First Aid Trainer service_npc 310295 2337 14 durotar 0 2 +poi_npc_310320 service 1 329.035 -4762.35 12.639 2.47837 1 Runda Profession Trainer Runda Profession Trainer service_npc 310320 362 14 durotar 0 2 +poi_npc_310323 tavern 1 340.363 -4686.29 16.5725 1.01229 1 Innkeeper Grosk Innkeeper Innkeeper Grosk Innkeeper service_npc 310323 362 14 durotar 0 2 +poi_npc_310332 service 1 367.181 -4702.14 16.3944 3.85718 1 Krunn Mining Trainer Krunn Mining Trainer service_npc 310332 362 14 durotar 0 2 +poi_npc_310336 service 1 370.195 -4721.57 13.359 4.67748 1 Mukdrak Engineering Trainer Mukdrak Engineering Trainer service_npc 310336 362 14 durotar 0 2 +poi_npc_310337 service 1 373.106 -4713.63 15.8902 5.18363 1 Dwukk Blacksmithing Trainer Dwukk Blacksmithing Trainer service_npc 310337 362 14 durotar 0 2 +poi_npc_310846 service 1 1574.99 -4281.41 21.476 5.93412 1 Gonto Mining Trainer Gonto Mining Trainer service_npc 310846 5170 1637 orgrimmar 0 2 +poi_npc_310902 service 1 1668.57 -4359.84 26.8577 2.51327 1 Belloc Brightblade Archaeology Trainer Belloc Brightblade Archaeology Trainer service_npc 310902 5356 1637 orgrimmar 0 2 +poi_npc_310986 service 1 1904.11 -4211.94 37.0629 2.82743 1 Opuno Ironhorn Blacksmithing Trainer Opuno Ironhorn Blacksmithing Trainer service_npc 310986 5171 1637 orgrimmar 0 2 +poi_npc_311314 service 1 10671.9 1945.49 1335.3 3.56047 1 Alanna Raveneye Enchanting Trainer Alanna Raveneye Enchanting Trainer service_npc 311314 264 141 teldrassil 0 1 +poi_npc_311607 service 1 10153.3 1682.3 1326.09 2.67035 1 Nadyia Maneweaver Leatherworking Trainer Nadyia Maneweaver Leatherworking Trainer service_npc 311607 4718 141 teldrassil 0 1 +poi_npc_311636 service 1 9838.5 2431.55 1315.81 5.58505 1 Astaia Fishing Trainer Astaia Fishing Trainer service_npc 311636 1662 1657 darnassus 0 1 +poi_npc_311675 service 1 9608.44 2531.11 1331.75 1.22173 1 Hammon the Jaded Archaeology Trainer Hammon the Jaded Archaeology Trainer service_npc 311675 1657 1657 darnassus 0 1 +poi_npc_311707 service 1 9758.26 2430.93 1334 1.58825 1 Firodren Mooncaller Herbalism Trainer Firodren Mooncaller Herbalism Trainer service_npc 311707 1657 1657 darnassus 0 1 +poi_npc_311800 service 1 9923.4 2309.81 1330.87 2.53073 1 Rolf Karner Blacksmithing Trainer Rolf Karner Blacksmithing Trainer service_npc 311800 1657 1657 darnassus 0 1 +poi_npc_311850 tavern 1 10310.7 2442.08 1330.1 3.54302 1 Gwen Armstead Innkeeper Gwen Armstead Innkeeper service_npc 311850 5687 1657 darnassus 0 1 +poi_npc_311913 service 1 10146.1 2318.98 1333.08 2.77507 1 Taladan Enchanting Trainer Taladan Enchanting Trainer service_npc 311913 1657 1657 darnassus 0 1 +poi_npc_311922 service 1 10145 2356.48 1332.05 6.07375 1 Aessa Silverdew Jewelcrafting Trainer Aessa Silverdew Jewelcrafting Trainer service_npc 311922 1657 1657 darnassus 0 1 +poi_npc_311927 service 1 10152.1 2391.06 1323.55 3.35103 1 Dannelor First Aid Trainer Dannelor First Aid Trainer service_npc 311927 1657 1657 darnassus 0 1 +poi_npc_311928 service 1 10119.8 2416.36 1321.73 4.59022 1 Foreman Pernic Mining Trainer Foreman Pernic Mining Trainer service_npc 311928 1657 1657 darnassus 0 1 +poi_npc_311954 service 1 10132 2423.56 1332.04 4.01426 1 Tana Lentner Engineering Trainer Tana Lentner Engineering Trainer service_npc 311954 1657 1657 darnassus 0 1 +poi_npc_312109 service 1 10088.4 2419.45 1321.73 2.00713 1 Alegorn Cooking Trainer Alegorn Cooking Trainer service_npc 312109 1657 1657 darnassus 0 1 +poi_npc_312132 service 1 10068.9 2357.55 1321.66 5.96903 1 Ainethil Alchemy Trainer Ainethil Alchemy Trainer service_npc 312132 1657 1657 darnassus 0 1 +poi_npc_312155 service 1 10139.7 2313 1343.39 3.22886 1 Feyden Darkin Inscription Trainer Feyden Darkin Inscription Trainer service_npc 312155 1657 1657 darnassus 0 1 +poi_npc_312176 service 1 10080.4 2267.32 1333.08 1.91986 1 Me'lynn Tailoring Trainer Me'lynn Tailoring Trainer service_npc 312176 1657 1657 darnassus 0 1 +poi_npc_312180 service 1 10081.2 2259.56 1343.39 4.81711 1 Eladriel Skinning Trainer Eladriel Skinning Trainer service_npc 312180 1657 1657 darnassus 0 1 +poi_npc_312183 service 1 10086.4 2256.49 1343.38 0.488692 1 Telonis Leatherworking Trainer Telonis Leatherworking Trainer service_npc 312183 1657 1657 darnassus 0 1 +poi_npc_312188 tavern 1 10127.9 2224.79 1328.81 2.21657 1 Innkeeper Saelienne Innkeeper Innkeeper Saelienne Innkeeper service_npc 312188 1659 1657 darnassus 0 1 +poi_npc_312256 service 1 10135.7 1671.48 1325.15 3.00197 1 Radnaal Maneweaver Skinning Trainer Radnaal Maneweaver Skinning Trainer service_npc 312256 4718 141 teldrassil 0 1 +poi_npc_312721 service 1 9767.76 879.807 1297.78 0.453786 1 Cyndra Kindwhisper Alchemy Trainer Cyndra Kindwhisper Alchemy Trainer service_npc 312721 186 141 teldrassil 0 1 +poi_npc_312722 service 1 9751.02 906.196 1295.6 6.02139 1 Zarrin Cooking Trainer Zarrin Cooking Trainer service_npc 312722 186 141 teldrassil 0 1 +poi_npc_312741 service 1 9902.94 999.576 1313.92 4.08407 1 Byancie First Aid Trainer Byancie First Aid Trainer service_npc 312741 186 141 teldrassil 0 1 +poi_npc_312743 tavern 1 9802.21 982.608 1313.98 4.79965 1 Innkeeper Keldamyr Innkeeper Innkeeper Keldamyr Innkeeper service_npc 312743 186 141 teldrassil 0 1 +poi_npc_312771 service 1 9803.2 945.681 1308.85 2.58309 1 Iranis Shadebloom Profession Trainer Iranis Shadebloom Profession Trainer service_npc 312771 186 141 teldrassil 0 1 +poi_npc_312790 service 1 9773.23 875.643 1297.78 1.88496 1 Malorne Bladeleaf Herbalism Trainer Malorne Bladeleaf Herbalism Trainer service_npc 312790 186 141 teldrassil 0 1 +poi_npc_313797 service 0 -8975.62 1021.77 101.487 1.29154 1 Jalane Ayrole Tailoring Trainer Jalane Ayrole Tailoring Trainer service_npc 313797 1519 1519 stormwind 0 1 +poi_npc_313808 tavern 0 -9083.99 823.965 108.503 0.401426 1 Steven Lohan Innkeeper Steven Lohan Innkeeper service_npc 313808 5154 1519 stormwind 0 1 +poi_npc_313815 service 0 -8993.05 755.79 98.4145 0.296706 1 Lilyssia Nightbreeze Alchemy Trainer Lilyssia Nightbreeze Alchemy Trainer service_npc 313815 5154 1519 stormwind 0 1 +poi_npc_313878 service 0 -8969.99 779.66 96.3329 4.10152 1 Tannysa Herbalism Trainer Tannysa Herbalism Trainer service_npc 313878 5154 1519 stormwind 0 1 +poi_npc_313880 service 0 -8862.5 857.196 99.6931 4.06662 1 Catarina Stanford Inscription Trainer Catarina Stanford Inscription Trainer service_npc 313880 5154 1519 stormwind 0 1 +poi_npc_313886 service 0 -8938.1 800.706 91.0251 4.34587 1 Georgio Bolero Tailoring Trainer Georgio Bolero Tailoring Trainer service_npc 313886 5154 1519 stormwind 0 1 +poi_npc_314029 service 0 -8858.31 803.734 96.5175 5.35816 1 Lucan Cordell Enchanting Trainer Lucan Cordell Enchanting Trainer service_npc 314029 5154 1519 stormwind 0 1 +poi_npc_314039 tavern 0 -8867.79 673.673 97.9864 5.20108 1 Innkeeper Allison Innkeeper Innkeeper Allison Innkeeper service_npc 314039 5148 1519 stormwind 0 1 +poi_npc_314053 service 0 -8802.01 770.922 96.4214 1.6057 1 Arnold Leland Fishing Trainer Arnold Leland Fishing Trainer service_npc 314053 5390 1519 stormwind 0 1 +poi_npc_314116 service 0 -8712.15 620.003 101.589 0.244346 1 Theresa Denman Jewelcrafting Trainer Theresa Denman Jewelcrafting Trainer service_npc 314116 5148 1519 stormwind 0 1 +poi_npc_314235 service 0 -8725.55 477.415 98.6964 5.24827 1 Simon Tanner Leatherworking Trainer Simon Tanner Leatherworking Trainer service_npc 314235 5149 1519 stormwind 0 1 +poi_npc_314241 service 0 -8716.41 469.414 98.6964 2.60054 1 Maris Granger Skinning Trainer Maris Granger Skinning Trainer service_npc 314241 5149 1519 stormwind 0 1 +poi_npc_314268 service 0 -8296.46 231.802 155.43 0.680678 1 Harrison Jones Archaeology Trainer Harrison Jones Archaeology Trainer service_npc 314268 1519 1519 stormwind 0 1 +poi_npc_314307 service 0 -8612.18 380.115 99.7062 0.785398 1 Stephen Ryback Cooking Trainer Stephen Ryback Cooking Trainer service_npc 314307 5149 1519 stormwind 0 1 +poi_npc_314313 tavern 0 -8622.47 407.783 103.007 1.91986 1 Maegan Tillman Innkeeper Maegan Tillman Innkeeper service_npc 314313 5149 1519 stormwind 0 1 +poi_npc_314423 service 0 -8557.13 593.646 104.682 1.16937 1 Jordan Smith Blacksmithing Trainer & Supplies Jordan Smith Blacksmithing Trainer & Supplies service_npc 314423 5150 1519 stormwind 0 1 +poi_npc_314470 tavern 0 -8365.76 594.658 97.0827 2.9147 1 Thaegra Tillstone Innkeeper Thaegra Tillstone Innkeeper service_npc 314470 5150 1519 stormwind 0 1 +poi_npc_314478 service 0 -8366.05 630.964 95.2242 2.84489 1 Lilliam Sparkspindle Engineering Trainer Lilliam Sparkspindle Engineering Trainer service_npc 314478 5150 1519 stormwind 0 1 +poi_npc_314493 service 0 -8424.52 616.828 95.4669 2.23402 1 Therum Deepforge Blacksmithing Trainer Therum Deepforge Blacksmithing Trainer service_npc 314493 5150 1519 stormwind 0 1 +poi_npc_314504 service 0 -8521.53 816.257 106.602 2.87979 1 Angela Leifeld First Aid Trainer Angela Leifeld First Aid Trainer service_npc 314504 5704 1519 stormwind 0 1 +poi_npc_314511 service 0 -8392.69 690.845 95.3568 5.35816 1 Borgus Steelhand Blacksmithing Trainer Borgus Steelhand Blacksmithing Trainer service_npc 314511 5150 1519 stormwind 0 1 +poi_npc_314621 service 0 -8433.48 688.922 96.401 5.72468 1 Gelman Stonehand Mining Trainer Gelman Stonehand Mining Trainer service_npc 314621 5150 1519 stormwind 0 1 +poi_npc_315309 tavern 0 -6621.65 -4667.51 9.19187 5.11381 1 The Great Pisani Mayor of Fuselight-by-the-Sea The Great Pisani Mayor of Fuselight-by-the-Sea service_npc 315309 5497 3 badlands 0 0 +poi_npc_316476 tavern 1 7423.12 -277.925 7.74319 3.15905 1 Innkeeper Kyteran Innkeeper Innkeeper Kyteran Innkeeper service_npc 316476 4659 148 darkshore 0 1 +poi_npc_316479 service 1 7324.59 -257.325 8.07923 0 1 Faeyrin Willowmoon Tailoring Trainer Faeyrin Willowmoon Tailoring Trainer service_npc 316479 4659 148 darkshore 0 1 +poi_npc_316480 service 1 7396.44 -266.717 5.06044 3.56047 1 Taryel Firestrike Blacksmithing Trainer Taryel Firestrike Blacksmithing Trainer service_npc 316480 4659 148 darkshore 0 1 +poi_npc_316481 service 1 7401.43 -302.811 5.03694 3.68265 1 Periale Mining Trainer Periale Mining Trainer service_npc 316481 4659 148 darkshore 0 1 +poi_npc_316615 service 1 7331.69 -265.641 7.98124 1.46608 1 Stephanie Krutsick Archaeology Trainer Stephanie Krutsick Archaeology Trainer service_npc 316615 4659 148 darkshore 0 1 +poi_npc_317686 service 0 -10591.3 -1166.02 30.1429 0.942478 1 Clarise Gnarltree Blacksmithing Trainer Clarise Gnarltree Blacksmithing Trainer service_npc 317686 42 10 duskwood 0 0 +poi_npc_317687 service 0 -10610.8 -1165.19 26.9799 3.89424 1 Matt Johnson Mining Trainer Matt Johnson Mining Trainer service_npc 317687 42 10 duskwood 0 0 +poi_npc_317765 service 0 -10595 -1256.12 37.5532 1.309 1 Finbus Geargrind Engineering Trainer Finbus Geargrind Engineering Trainer service_npc 317765 42 10 duskwood 0 0 +poi_npc_317772 tavern 0 -10516 -1161.21 28.1161 4.03171 1 Innkeeper Trelayne Innkeeper Innkeeper Trelayne Innkeeper service_npc 317772 42 10 duskwood 0 0 +poi_npc_320407 tavern 0 2295.74 -5336.82 90.8352 2.19912 1 Jessica Chambers Innkeeper Jessica Chambers Innkeeper service_npc 320407 2268 139 easternplaguelands 0 0 +poi_npc_321247 tavern 0 471.135 1500.55 135.605 1.0821 1 Innkeeper Bates Innkeeper Innkeeper Bates Innkeeper service_npc 321247 228 130 silverpineforest 0 2 +poi_npc_321326 service 0 520.043 1649.03 125.747 4.95674 1 Guillaume Sorouy Blacksmithing Trainer Guillaume Sorouy Blacksmithing Trainer service_npc 321326 228 130 silverpineforest 0 2 +poi_npc_321330 service 0 534.024 1626.95 104.895 2.54818 1 Johan Focht Mining Trainer Johan Focht Mining Trainer service_npc 321330 228 130 silverpineforest 0 2 +poi_npc_321922 tavern 0 1097.57 1587.29 28.6136 3.24631 1 Commander Hickley Innkeeper Commander Hickley Innkeeper service_npc 321922 5386 130 silverpineforest 0 2 +poi_npc_322648 tavern 0 -612.373 -1045.95 65.8329 0.490246 1 Innkeeper Durgens Innkeeper Innkeeper Durgens Innkeeper service_npc 322648 5603 267 hillsbradfoothills 0 0 +poi_npc_322909 tavern 0 -51.9497 -967.899 53.5347 0.942478 1 Innkeeper Shay Innkeeper Innkeeper Shay Innkeeper service_npc 322909 272 267 hillsbradfoothills 0 0 +poi_npc_322914 service 0 -73.8368 -974.957 53.645 6.0912 1 Daryl Stack Tailoring Trainer Daryl Stack Tailoring Trainer service_npc 322914 272 267 hillsbradfoothills 0 0 +poi_npc_322935 service 0 -62.3958 -930.988 56.4027 5.88176 1 Aranae Venomblood Herbalism Trainer Aranae Venomblood Herbalism Trainer service_npc 322935 272 267 hillsbradfoothills 0 0 +poi_npc_322986 service 0 -669.767 -537.396 28.3103 6.14356 1 Serge Hinott Alchemy Trainer Serge Hinott Alchemy Trainer service_npc 322986 271 267 hillsbradfoothills 0 0 +poi_npc_324205 tavern 0 -498.934 103.806 57.095 5.74642 1 Innkeeper Hershberg Innkeeper Innkeeper Hershberg Innkeeper service_npc 324205 286 267 hillsbradfoothills 0 0 +poi_npc_325633 service 0 2238.02 1019.64 36.679 1.0821 1 Therisa Sallow Profession Trainer Therisa Sallow Profession Trainer service_npc 325633 4916 85 tirisfalglades 0 2 +poi_npc_325910 service 0 2164.95 656.903 34.6258 3.10669 1 Bowen Brisboise Tailoring Trainer Bowen Brisboise Tailoring Trainer service_npc 325910 166 85 tirisfalglades 0 2 +poi_npc_326177 service 0 1560.8 355.098 -62.0798 3.97935 1 Martha Alliestar Herbalism Trainer Martha Alliestar Herbalism Trainer service_npc 326177 1497 1497 undercity 0 2 +poi_npc_326226 service 0 1638.21 335.638 -62.0999 0.628318 1 Brom Killian Mining Trainer Brom Killian Mining Trainer service_npc 326226 1497 1497 undercity 0 2 +poi_npc_326231 service 0 1645.46 331.009 -62.0967 1.95477 1 Neller Fayne Jewelcrafting Trainer Neller Fayne Jewelcrafting Trainer service_npc 326231 1497 1497 undercity 0 2 +poi_npc_326245 service 0 1408.49 414.871 -84.8822 3.64774 1 Doctor Herbert Halsey Alchemy Trainer Doctor Herbert Halsey Alchemy Trainer service_npc 326245 1497 1497 undercity 0 2 +poi_npc_326397 service 0 2269.6 349.53 33.6679 6.24828 1 Faruza Herbalism Trainer Faruza Herbalism Trainer service_npc 326397 159 85 tirisfalglades 0 2 +poi_npc_326398 service 0 2266.3 344.069 33.6572 5.58505 1 Carolai Anise Alchemy Trainer Carolai Anise Alchemy Trainer service_npc 326398 159 85 tirisfalglades 0 2 +poi_npc_326401 service 0 2265.2 328.677 33.6569 0.314159 1 Nurse Neela First Aid Trainer Nurse Neela First Aid Trainer service_npc 326401 159 85 tirisfalglades 0 2 +poi_npc_326403 service 0 2234.27 329.905 34.3167 5.46288 1 Vance Undergloom Enchanting Trainer Vance Undergloom Enchanting Trainer service_npc 326403 159 85 tirisfalglades 0 2 +poi_npc_326454 service 0 1506.95 287.438 -62.0883 3.61283 1 Margaux Parchley Inscription Trainer Margaux Parchley Inscription Trainer service_npc 326454 1497 1497 undercity 0 2 +poi_npc_326457 service 0 1485.01 279.667 -62.076 2.1293 1 Lavinia Crowe Enchanting Trainer Lavinia Crowe Enchanting Trainer service_npc 326457 1497 1497 undercity 0 2 +poi_npc_326511 service 0 1590.47 277.014 -55.2596 5.44543 1 Eunice Burch Cooking Trainer Eunice Burch Cooking Trainer service_npc 326511 1497 1497 undercity 0 2 +poi_npc_326570 service 0 1681.91 285.452 -62.0549 1.74533 1 James Van Brunt Blacksmithing Trainer James Van Brunt Blacksmithing Trainer service_npc 326570 1497 1497 undercity 0 2 +poi_npc_326619 tavern 0 2285.95 282.613 33.334 2.86234 1 Innkeeper Renee Innkeeper Innkeeper Renee Innkeeper service_npc 326619 159 85 tirisfalglades 0 2 +poi_npc_326623 service 0 2299.31 270.543 33.4403 1.5708 1 Nedric Sallow Profession Trainer Nedric Sallow Profession Trainer service_npc 326623 159 85 tirisfalglades 0 2 +poi_npc_326674 service 0 2271.92 268.179 33.7738 3.80482 1 William Saldean Grain & Feed Vendor William Saldean Grain & Feed Vendor service_npc 326674 159 85 tirisfalglades 0 2 +poi_npc_326679 service 0 2257.22 269.019 33.7537 3.1765 1 The Chef Cooking Trainer The Chef Cooking Trainer service_npc 326679 159 85 tirisfalglades 0 2 +poi_npc_326722 service 0 1499.16 200.116 -62.0551 4.34587 1 Killian Hagey Skinning Trainer Killian Hagey Skinning Trainer service_npc 326722 1497 1497 undercity 0 2 +poi_npc_326726 tavern 0 1635.4 223.331 -43.0198 2.84489 1 Innkeeper Norman Innkeeper Innkeeper Norman Innkeeper service_npc 326726 1497 1497 undercity 0 2 +poi_npc_326818 service 0 1681.49 194.356 -62.0865 6.03884 1 Josef Gregorian Tailoring Trainer Josef Gregorian Tailoring Trainer service_npc 326818 1497 1497 undercity 0 2 +poi_npc_326838 service 0 1510.37 199.943 -62.0539 3.89208 1 Arthur Moore Leatherworking Trainer Arthur Moore Leatherworking Trainer service_npc 326838 1497 1497 undercity 0 2 +poi_npc_326845 service 0 1524.95 171.353 -62.0668 3.90954 1 Mary Edras First Aid Trainer Mary Edras First Aid Trainer service_npc 326845 1497 1497 undercity 0 2 +poi_npc_326861 service 0 1404.08 142.911 -62.2217 0.017453 1 Franklin Lloyd Engineering Trainer Franklin Lloyd Engineering Trainer service_npc 326861 1497 1497 undercity 0 2 +poi_npc_326897 service 0 1636.61 149.648 -62.0584 5.23599 1 Adam Hossack Archaeology Trainer Adam Hossack Archaeology Trainer service_npc 326897 1497 1497 undercity 0 2 +poi_npc_326992 service 0 1677.83 99.0023 -61.9458 2.11185 1 Armand Cromwell Fishing Trainer Armand Cromwell Fishing Trainer service_npc 326992 1497 1497 undercity 0 2 +poi_npc_327059 service 0 2029.08 69.7176 34.4594 0.820305 1 Rand Rhobart Skinning Trainer Rand Rhobart Skinning Trainer service_npc 327059 4919 85 tirisfalglades 0 2 +poi_npc_327060 service 0 2026.51 76.9985 35.5106 3.82985 1 Shelene Rhobart Leatherworking Trainer Shelene Rhobart Leatherworking Trainer service_npc 327060 4919 85 tirisfalglades 0 2 +poi_npc_327090 service 0 1736.6 41.8543 -59.2337 2.05949 1 Josephine Lister Tailoring Trainer Josephine Lister Tailoring Trainer service_npc 327090 1497 1497 undercity 0 2 +poi_npc_327104 service 0 2301.52 -1.88889 23.258 5.60251 1 Clyde Kellen Fishing Trainer Clyde Kellen Fishing Trainer service_npc 327104 162 85 tirisfalglades 0 2 +poi_npc_327601 tavern 0 1668.34 -720.995 58.9988 1.11701 1 Provisioner Elda Innkeeper Provisioner Elda Innkeeper service_npc 327601 152 85 tirisfalglades 0 2 +poi_npc_328015 tavern 0 942.109 -1446.09 63.4805 5.46288 1 Mother Matterly Innkeeper Mother Matterly Innkeeper service_npc 328015 3197 28 westernplaguelands 0 0 +poi_npc_328422 tavern 0 1537.4 -1661.51 67.9856 1.62316 1 Roman Garner Innkeeper Roman Garner Innkeeper service_npc 328422 193 28 westernplaguelands 0 0 +poi_npc_328550 tavern 0 1537.42 -1661.55 68.1146 1.62316 1 Roman Garner Innkeeper Roman Garner Innkeeper service_npc 328550 193 28 westernplaguelands 0 0 +poi_npc_330689 tavern 1 -6160.77 -3797.82 6.26469 4.95674 1 Daisy Innkeeper Daisy Innkeeper service_npc 330689 5049 400 thousandneedles 0 0 +poi_npc_331818 tavern 1 1021.73 2039.16 130.053 1.71042 1 Innkeeper Bernice Innkeeper Innkeeper Bernice Innkeeper service_npc 331818 4939 406 stonetalonmountains 0 0 +poi_npc_332148 tavern 1 2113.13 1575.49 343.445 3.97935 1 Valos Shadowrest Innkeeper Valos Shadowrest Innkeeper service_npc 332148 4937 406 stonetalonmountains 0 0 +poi_npc_332783 tavern 1 893.652 927.946 106.364 5.70723 1 Innkeeper Jayka Innkeeper Innkeeper Jayka Innkeeper service_npc 332783 460 406 stonetalonmountains 0 0 +poi_npc_332788 service 1 1054.63 844.314 165.124 5.07891 1 Hgarth Enchanting Trainer Hgarth Enchanting Trainer service_npc 332788 460 406 stonetalonmountains 0 0 +poi_npc_333027 tavern 1 1187.24 422.464 79.3147 4.11898 1 Alithia Fallowmere Innkeeper Alithia Fallowmere Innkeeper service_npc 333027 5073 406 stonetalonmountains 0 0 +poi_npc_333518 tavern 1 877.288 -20.309 92.7581 0.802851 1 Felonius Stark Innkeeper Felonius Stark Innkeeper service_npc 333518 4933 406 stonetalonmountains 0 0 +poi_npc_333854 tavern 1 293.974 -290.26 92.1589 3.15905 1 Lyanath Innkeeper Lyanath Innkeeper service_npc 333854 5093 406 stonetalonmountains 0 0 +poi_npc_334687 service 0 -9237.78 -2041.65 78.1678 4.64611 1 Alma Jainrose Herbalism Trainer Alma Jainrose Herbalism Trainer service_npc 334687 69 44 redridgemountains 0 0 +poi_npc_334703 service 0 -9205.49 -2066.1 78.0905 3.67749 1 Crystal Boughman Cooking Trainer Crystal Boughman Cooking Trainer service_npc 334703 69 44 redridgemountains 0 0 +poi_npc_334777 tavern 0 -9223.98 -2157.12 64.0168 3.05433 1 Innkeeper Brianna Innkeeper Innkeeper Brianna Innkeeper service_npc 334777 69 44 redridgemountains 0 0 +poi_npc_334782 service 0 -9315.38 -2156.7 63.4833 3.74939 1 Matthew Hooper Fishing Trainer Matthew Hooper Fishing Trainer service_npc 334782 68 44 redridgemountains 0 0 +poi_npc_335473 service 0 -9607.35 -3499.28 122.039 0.575959 1 Wilma Ranthal Skinning Trainer Wilma Ranthal Skinning Trainer service_npc 335473 5324 44 redridgemountains 0 0 +poi_npc_335533 tavern 0 -13232.2 724.248 3.43888 2.98451 1 Innkeeper Draxle Innkeeper Innkeeper Draxle Innkeeper service_npc 335533 1739 5287 thecapeofstranglethorn 0 0 +poi_npc_336272 service 0 -14383 370.766 24.006 5.39307 1 Brikk Keencraft Blacksmithing Trainer Brikk Keencraft Blacksmithing Trainer service_npc 336272 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336325 service 0 -14417 411.288 22.7815 0.453786 1 Oglethorpe Obnoticus Gnomish Engineering Trainer Oglethorpe Obnoticus Gnomish Engineering Trainer service_npc 336325 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336327 service 0 -14429.8 423.762 4.24357 2.63545 1 Mrs. Gant Cooking Trainer & Supplies Mrs. Gant Cooking Trainer & Supplies service_npc 336327 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336353 service 0 -14437.8 384.766 32.398 1.39626 1 Grarnik Goodstitch Tailoring Trainer Grarnik Goodstitch Tailoring Trainer service_npc 336353 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336359 service 0 -14449.2 468.424 15.3566 0.087266 1 Myizz Luckycatch Fishing Trainer Myizz Luckycatch Fishing Trainer service_npc 336359 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336402 service 0 -14486.7 431.512 34.6682 4.7822 1 Jaxin Chong Alchemy Trainer Jaxin Chong Alchemy Trainer service_npc 336402 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336407 service 0 -14481.1 451.732 30.6957 6.03884 1 Flora Silverwind Herbalism Trainer Flora Silverwind Herbalism Trainer service_npc 336407 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336420 tavern 0 -14457.7 495.348 15.2128 3.97935 1 Innkeeper Skindle Innkeeper Innkeeper Skindle Innkeeper service_npc 336420 35 5287 thecapeofstranglethorn 0 0 +poi_npc_337953 service 0 -12358.8 220.811 4.14172 5.0091 1 Mudduk Cooking Trainer Mudduk Cooking Trainer service_npc 337953 117 33 northernstranglethorn 0 0 +poi_npc_337955 service 0 -12335.5 163.184 3.06546 2.70526 1 Angrun Herbalism Trainer Angrun Herbalism Trainer service_npc 337955 117 33 northernstranglethorn 0 0 +poi_npc_338039 service 0 -12396.7 194.965 2.35694 0.017453 1 Brawn Leatherworking Trainer Brawn Leatherworking Trainer service_npc 338039 117 33 northernstranglethorn 0 0 +poi_npc_338118 tavern 0 -12434.4 211.559 2.44848 0.907571 1 Innkeeper Thulbek Innkeeper Innkeeper Thulbek Innkeeper service_npc 338118 117 33 northernstranglethorn 0 0 +poi_npc_338235 service 0 -12619 -111.229 18.5832 3.49066 1 Se'Jib Leatherworking Trainer Se'Jib Leatherworking Trainer service_npc 338235 33 5339 stranglethornvale 0 0 +poi_npc_338369 tavern 0 -12846.1 -437.988 13.05 0.715585 1 Livingston Marshal Innkeeper Livingston Marshal Innkeeper service_npc 338369 5320 33 northernstranglethorn 0 0 +poi_npc_34034 service 530 238.399 2840.97 145.087 5.46581 1 Neferatti Inscription Trainer Neferatti Inscription Trainer service_npc 34034 3536 3483 hellfirepeninsula 0 0 +poi_npc_341693 service 1 8325.19 1068.18 10.575 1.51844 1 Androl Oakhand Fishing Trainer Androl Oakhand Fishing Trainer service_npc 341693 702 141 teldrassil 0 1 +poi_npc_343395 tavern 0 -6112.93 4298.62 -348.321 4.79965 1 Caretaker Movra The Earthen Ring Caretaker Movra The Earthen Ring service_npc 343395 5005 5144 shimmeringexpanse 0 0 +poi_npc_344191 tavern 0 -6612.7 4271.42 -562.875 1.16937 1 Anissa Matherly Innkeeper Anissa Matherly Innkeeper service_npc 344191 4969 5144 shimmeringexpanse 0 0 +poi_npc_344468 tavern 0 -6780.43 4176.16 -480.069 3.1765 1 Zun'ja Innkeeper Zun'ja Innkeeper service_npc 344468 4970 5144 shimmeringexpanse 0 0 +poi_npc_346525 tavern 0 -6866.14 6002.43 -763.704 3.90954 1 Barracks Officer Milson Innkeeper Barracks Officer Milson Innkeeper service_npc 346525 4976 5145 abyssaldepths 0 0 +poi_npc_347125 tavern 0 -6550.66 6145.27 -669.737 4.01426 1 Innkeeper Nerius Innkeeper Innkeeper Nerius Innkeeper service_npc 347125 4975 5145 abyssaldepths 0 0 +poi_npc_349255 tavern 0 -4455.17 3803.01 -81.9119 1.51844 1 Erunak Stonespeaker The Earthen Ring Erunak Stonespeaker The Earthen Ring service_npc 349255 5051 4815 kelptharforest 0 0 +poi_npc_349589 tavern 0 -4611.18 3985.19 -70.4378 5.35816 1 Erunak Stonespeaker The Earthen Ring Erunak Stonespeaker The Earthen Ring service_npc 349589 5056 4815 kelptharforest 0 0 +poi_npc_350029 tavern 0 -10501.9 1028.54 60.6054 1.97222 1 Innkeeper Heather Innkeeper Innkeeper Heather Innkeeper service_npc 350029 108 40 westfall 0 1 +poi_npc_350080 tavern 646 1032.42 542.142 -49.3207 3.9968 1 Caretaker Nuunwa Innkeeper Caretaker Nuunwa Innkeeper service_npc 350080 5303 5042 deepholm 0 0 +poi_npc_356868 tavern 646 1032.42 542.142 -49.2515 3.9968 1 Caretaker Nuunwa Innkeeper Caretaker Nuunwa Innkeeper service_npc 356868 5303 5042 deepholm 0 0 +poi_npc_357012 tavern 646 1032.42 542.142 -49.2515 3.9968 1 Caretaker Nuunwa Innkeeper Caretaker Nuunwa Innkeeper service_npc 357012 5303 5042 deepholm 0 0 +poi_npc_359801 tavern 0 -7085.53 -1202.19 323.987 3.24631 1 Velma Rockslide Innkeeper Velma Rockslide Innkeeper service_npc 359801 5628 51 searinggorge 0 0 +poi_npc_360867 service 1 7025.63 -2135.69 590.38 2.32 1 Meilosh Meilosh service_npc 360867 1769 361 felwood 0 0 +poi_npc_361186 tavern 1 6155.55 -1950.85 568.13 0.93 1 Denmother Ulrica Innkeeper Denmother Ulrica Innkeeper service_npc 361186 1998 361 felwood 0 0 +poi_npc_361275 tavern 1 6051.78 -931.899 414.771 1.1 1 Innkeeper Wylaria Innkeeper Innkeeper Wylaria Innkeeper service_npc 361275 5645 361 felwood 0 0 +poi_npc_361492 tavern 1 4735.21 -866.35 343.55 5.1 1 Innkeeper Teenycaugh Innkeeper Innkeeper Teenycaugh Innkeeper service_npc 361492 5649 361 felwood 0 0 +poi_npc_362563 tavern 1 -6868.04 729.914 45.7454 0.488692 1 Calandrath Innkeeper Calandrath Innkeeper service_npc 362563 3425 1377 silithus 0 0 +poi_npc_364703 tavern 1 -7502.37 -1515.66 -265.847 3.68265 1 Innkeeper Dreedle Marshal Expeditions Innkeeper Dreedle Marshal Expeditions service_npc 364703 4882 490 ungorocrater 0 0 +poi_npc_365328 service 1 -1637.97 3188.65 29.9849 2.42601 1 Malux Skinning Trainer Malux Skinning Trainer service_npc 365328 2408 405 desolace 0 0 +poi_npc_365340 tavern 1 -1592.84 3150.27 47.0414 4.18879 1 Innkeeper Sikewa Innkeeper Innkeeper Sikewa Innkeeper service_npc 365340 2408 405 desolace 0 0 +poi_npc_365355 service 1 -1719.02 3212.89 4.38054 4.59022 1 Lui'Mala Fishing Trainer Lui'Mala Fishing Trainer service_npc 365355 2408 405 desolace 0 0 +poi_npc_366483 service 1 -1236.88 1749.59 90.2457 5.46288 1 Narv Hidecrafter Leatherworking Trainer Narv Hidecrafter Leatherworking Trainer service_npc 366483 597 405 desolace 0 0 +poi_npc_366595 tavern 1 -1047.23 1683.57 60.2219 5.18363 1 Innkeeper Dessina Innkeeper Innkeeper Dessina Innkeeper service_npc 366595 4805 405 desolace 0 0 +poi_npc_367660 tavern 1 255.615 1253.76 192.224 3.24631 1 Innkeeper Lyshaerya Innkeeper Innkeeper Lyshaerya Innkeeper service_npc 367660 608 405 desolace 0 0 +poi_npc_368537 tavern 1 -4460.1 242.722 39.1908 0.506145 1 Innkeeper Greul Innkeeper Innkeeper Greul Innkeeper service_npc 368537 5726 357 feralas 0 0 +poi_npc_368566 service 1 -4374.44 161.097 25.6168 3.64774 1 Ruw Herbalism Trainer Ruw Herbalism Trainer service_npc 368566 1099 357 feralas 0 0 +poi_npc_368589 service 1 -4360.9 266.103 26.4007 5.81195 1 Kulleg Stonehorn Skinning Trainer Kulleg Stonehorn Skinning Trainer service_npc 368589 1099 357 feralas 0 0 +poi_npc_368598 service 1 -4364.53 273.484 26.4007 5.48033 1 Hahrana Ironhide Leatherworking Trainer Hahrana Ironhide Leatherworking Trainer service_npc 368598 1099 357 feralas 0 0 +poi_npc_369649 tavern 1 -4564.63 1835.27 87.5203 3.1765 1 Chonk Innkeeper Chonk Innkeeper service_npc 369649 5003 357 feralas 0 0 +poi_npc_369856 service 1 -4286.39 2297.86 9.56436 3.76991 1 Brannock Fishing Trainer Brannock Fishing Trainer service_npc 369856 5072 357 feralas 0 0 +poi_npc_369866 service 1 -4350.15 2196.19 13.5877 2.82743 1 Xylinnia Starshine Enchanting Trainer Xylinnia Starshine Enchanting Trainer service_npc 369866 5072 357 feralas 0 0 +poi_npc_369879 service 1 -4367.92 2208.53 13.5192 5.49779 1 Kylanna Windwhisper Alchemy Trainer Kylanna Windwhisper Alchemy Trainer service_npc 369879 5072 357 feralas 0 0 +poi_npc_369903 tavern 1 -4467.06 2237.16 27.6743 2.12483 1 Innkeeper Shyria Innkeeper Innkeeper Shyria Innkeeper service_npc 369903 5072 357 feralas 0 0 +poi_npc_370013 tavern 1 -3197.8 1893.23 49.4171 0.750492 1 Andoril Innkeeper Andoril Innkeeper service_npc 370013 5024 357 feralas 0 0 +poi_npc_370242 tavern 1 -3097.09 2563.18 50.2624 0.506145 1 Adene Treetotem Innkeeper Adene Treetotem Innkeeper service_npc 370242 5002 357 feralas 0 0 +poi_npc_370875 service 1 1801.01 -4563.08 23.0834 1.55334 1 Magar Tailoring Trainer Magar Tailoring Trainer service_npc 370875 5167 1637 orgrimmar 0 2 +poi_npc_370886 service 1 1772.08 -4485.13 45.6412 0.879462 1 Arugi Cooking Trainer Arugi Cooking Trainer service_npc 370886 1637 1637 orgrimmar 0 2 +poi_npc_371342 service 571 5855.3 651.028 647.595 0 1 Dariness the Learned Archaeology Trainer Dariness the Learned Archaeology Trainer service_npc 371342 4395 4395 dalaran 0 0 +poi_npc_375512 service 1 2088.8 -4767.27 28.0121 4.15388 1 Lugrah Jewelcrafting Trainer Lugrah Jewelcrafting Trainer service_npc 375512 5168 1637 orgrimmar 0 2 +poi_npc_379433 tavern 0 -2736.68 -6409.73 242.184 3.05433 1 Innkeeper Geno Innkeeper Innkeeper Geno Innkeeper service_npc 379433 5137 4922 twilighthighlands 0 0 +poi_npc_379884 tavern 0 -2788.93 -5316.01 173.936 5.42797 1 Vaughn Blusterbeard Innkeeper Vaughn Blusterbeard Innkeeper service_npc 379884 5143 4922 twilighthighlands 0 0 +poi_npc_380629 tavern 0 -3226.32 -5048.93 120.713 0.436332 1 Naveen Tendernose Innkeeper Naveen Tendernose Innkeeper service_npc 380629 5142 4922 twilighthighlands 0 0 +poi_npc_380996 tavern 0 -3663.24 -5246.88 42.2213 4.43314 1 Innkeeper Turk Innkeeper Innkeeper Turk Innkeeper service_npc 380996 5138 4922 twilighthighlands 0 0 +poi_npc_381441 tavern 0 -4199.51 -5621.03 23.5936 0.890118 1 Innkeeper Corlin Innkeeper Innkeeper Corlin Innkeeper service_npc 381441 5141 4922 twilighthighlands 0 0 +poi_npc_381608 tavern 0 -4167.39 -4736.9 126.875 3.14159 1 Ben Mora Innkeeper Ben Mora Innkeeper service_npc 381608 5470 4922 twilighthighlands 0 0 +poi_npc_382837 tavern 0 -4853.6 -4812.93 196.659 5.74213 1 Innkeeper Krum Innkeeper Innkeeper Krum Innkeeper service_npc 382837 5471 4922 twilighthighlands 0 0 +poi_npc_383966 tavern 1 5513.63 -3608.03 1570.13 1.11701 1 Sebelia Innkeeper Sebelia Innkeeper service_npc 383966 5730 616 mounthyjal 0 0 +poi_npc_385926 tavern 1 4900.89 -2739.06 1437.68 5.63741 1 Isara Riverstride Innkeeper Isara Riverstride Innkeeper service_npc 385926 4990 616 mounthyjal 0 0 +poi_npc_386132 tavern 1 5140.66 -1721.69 1336.1 4.66003 1 Salirn Moonbear Innkeeper Salirn Moonbear Innkeeper service_npc 386132 4989 616 mounthyjal 0 0 +poi_npc_387464 tavern 1 5140.66 -1721.69 1336.1 4.66003 1 Salirn Moonbear Innkeeper Salirn Moonbear Innkeeper service_npc 387464 4989 616 mounthyjal 0 0 +poi_npc_389403 tavern 648 599.734 3118.63 3.65963 1.64061 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 389403 4721 4720 thelostisles 0 2 +poi_npc_389415 service 648 581.295 3099.3 3.1594 1.64061 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 389415 4721 4720 thelostisles 0 2 +poi_npc_391425 service 648 848.686 2770.77 113.709 4.90438 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 391425 4781 4720 thelostisles 0 2 +poi_npc_392276 service 648 903.945 2322.3 5.64735 0.907571 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 392276 4870 4720 thelostisles 0 2 +poi_npc_392287 service 648 901.587 2319.55 5.58772 0.872665 1 KTC Train-a-Tron Deluxe Professions Trainer & Vendor KTC Train-a-Tron Deluxe Professions Trainer & Vendor service_npc 392287 4870 4720 thelostisles 0 2 +poi_npc_392300 tavern 648 913.408 2354.65 5.44061 4.50295 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 392300 4870 4720 thelostisles 0 2 +poi_npc_393087 service 648 903.945 2322.3 5.64735 0.935639 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 393087 4870 4720 thelostisles 0 2 +poi_npc_393102 tavern 648 913.408 2354.65 5.44061 4.49098 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 393102 4870 4720 thelostisles 0 2 +poi_npc_393561 tavern 648 913.408 2354.65 5.44061 4.5204 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 393561 4870 4720 thelostisles 0 2 +poi_npc_394031 service 648 1438.79 1284.25 116.102 2.11834 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 394031 4909 4720 thelostisles 0 2 +poi_npc_394398 service 648 1805.15 1985.63 221.493 5.51524 1 KTC Train-a-Tron Deluxe Professions Trainer & Vendor KTC Train-a-Tron Deluxe Professions Trainer & Vendor service_npc 394398 4923 4720 thelostisles 0 2 +poi_npc_394826 service 648 2042.33 2588.39 10.2111 1.65806 1 KTC Train-a-Tron Deluxe Professions Trainer & Vendor KTC Train-a-Tron Deluxe Professions Trainer & Vendor service_npc 394826 4956 4720 thelostisles 0 2 +poi_npc_394832 service 648 2042.78 2594.01 10.2111 4.41568 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 394832 4956 4720 thelostisles 0 2 +poi_npc_395047 service 648 2388.1 2448.5 10.9595 2.1293 1 KTC Train-a-Tron Deluxe Professions Trainer & Vendor KTC Train-a-Tron Deluxe Professions Trainer & Vendor service_npc 395047 4954 4720 thelostisles 0 2 +poi_npc_395048 service 648 2389.23 2453.16 11.21 1.85005 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 395048 4954 4720 thelostisles 0 2 +poi_npc_40266 service 530 -2263.63 5559.49 67.0918 5.91667 1 Alchemy Alchemy service_npc 40266 3703 3703 shattrathcity 0 0 +poi_npc_40510 service 530 -2262.64 5561.96 67.0948 5.89921 1 Blacksmithing Blacksmithing service_npc 40510 3703 3703 shattrathcity 0 0 +poi_npc_40516 service 530 -2261.59 5564.54 67.095 5.93412 1 Enchanting Enchanting service_npc 40516 3703 3703 shattrathcity 0 0 +poi_npc_40517 service 530 -2260.64 5567.08 67.092 5.93412 1 Engineering Engineering service_npc 40517 3703 3703 shattrathcity 0 0 +poi_npc_40518 service 530 -2264.54 5562.77 67.0939 2.79253 1 Leatherworking Leatherworking service_npc 40518 3703 3703 shattrathcity 0 0 +poi_npc_40601 service 530 -2265.57 5560.32 67.0911 2.80998 1 Tailoring Tailoring service_npc 40601 3703 3703 shattrathcity 0 0 +poi_npc_40602 service 530 -2263.47 5565.35 67.0937 2.80998 1 Jewelcrafting Jewelcrafting service_npc 40602 3703 3703 shattrathcity 0 0 +poi_npc_40603 service 530 -2262.36 5567.8 67.0909 2.79253 1 Inscription Inscription service_npc 40603 3703 3703 shattrathcity 0 0 +poi_npc_41320 service 530 -2268.1 5563.18 67.0919 5.89921 1 Herbalism Herbalism service_npc 41320 3703 3703 shattrathcity 0 0 +poi_npc_41674 service 530 -2266.98 5565.78 67.0927 5.89921 1 Mining Mining service_npc 41674 3703 3703 shattrathcity 0 0 +poi_npc_41723 service 530 -2265.86 5568.36 67.0911 5.84685 1 Skinning Skinning service_npc 41723 3703 3703 shattrathcity 0 0 +poi_npc_41775 service 530 -2267.52 5569.19 67.0896 2.74017 1 Cooking Cooking service_npc 41775 3703 3703 shattrathcity 0 0 +poi_npc_41779 service 530 -2269.93 5564.2 67.09 2.75762 1 First Aid First Aid service_npc 41779 3703 3703 shattrathcity 0 0 +poi_npc_41780 service 530 -2268.81 5566.68 67.0905 2.74017 1 Fishing Fishing service_npc 41780 3703 3703 shattrathcity 0 0 +poi_npc_41791 service 530 -2999.68 2619.98 76.6582 4.83569 1 Jonathan Garrett Engineering Trainer Jonathan Garrett Engineering Trainer service_npc 41791 3744 3520 shadowmoonvalley 0 0 +poi_npc_47642 service 530 -2121.53 5405.8 53.808 4.49468 1 Scribe Lanloer Inscription Trainer Scribe Lanloer Inscription Trainer service_npc 47642 3898 3703 shattrathcity 0 0 +poi_npc_47646 service 530 -1853.15 5663.53 128.521 3.4658 1 Recorder Lidio Inscription Trainer Recorder Lidio Inscription Trainer service_npc 47646 3896 3703 shattrathcity 0 0 +poi_npc_52882 service 70 -159.803 196.172 -49.5849 1.74533 1 Annora Enchanting Trainer Annora Enchanting Trainer service_npc 52882 1337 1337 uldaman 0 0 +poi_npc_532 service 530 -4216.73 -12481.6 45.3254 6.05629 1 Valn Profession Trainer Valn Profession Trainer service_npc 532 3576 3524 azuremystisle 0 1 +poi_npc_55353 tavern 530 8700.38 -6638.36 72.8276 5.51524 1 Marniel Amberlight Innkeeper Marniel Amberlight Innkeeper service_npc 55353 3462 3430 eversongwoods 0 2 +poi_npc_55356 service 530 8986.43 -7419.07 89.4855 2.21657 1 Arathel Sunforge Blacksmithing Trainer Arathel Sunforge Blacksmithing Trainer service_npc 55356 3464 3430 eversongwoods 0 2 +poi_npc_55372 tavern 530 9476.91 -6859.21 17.4246 1.72788 1 Innkeeper Delaniel Innkeeper Innkeeper Delaniel Innkeeper service_npc 55372 5728 3430 eversongwoods 0 2 +poi_npc_55420 service 530 9484.79 -6876.58 17.5029 1.27409 1 Aleinia Jewelcrafting Trainer Aleinia Jewelcrafting Trainer service_npc 55420 5728 3430 eversongwoods 0 2 +poi_npc_56753 service 530 8657.6 -6366.7 53.5858 0.139626 1 Magistrix Eredania Enchanting Trainer Magistrix Eredania Enchanting Trainer service_npc 56753 3468 3430 eversongwoods 0 2 +poi_npc_56754 service 530 8661.36 -6367 53.6323 3.07178 1 Arcanist Sheynathren Alchemy Trainer Arcanist Sheynathren Alchemy Trainer service_npc 56754 3468 3430 eversongwoods 0 2 +poi_npc_56981 service 530 9479.53 -6880.07 28.4266 1.36136 1 Kanaria First Aid Trainer Kanaria First Aid Trainer service_npc 56981 5728 3430 eversongwoods 0 2 +poi_npc_56982 service 530 9362.89 -7134.58 8.66731 1.46608 1 Mathreyn Skinning Trainer Mathreyn Skinning Trainer service_npc 56982 3430 3430 eversongwoods 0 2 +poi_npc_56985 service 530 9494.86 -6879.45 28.4306 4.55531 1 Quarelestra Cooking Trainer Quarelestra Cooking Trainer service_npc 56985 5728 3430 eversongwoods 0 2 +poi_npc_56986 service 530 9363.75 -7130.75 8.68478 4.39823 1 Sathein Leatherworking Trainer Sathein Leatherworking Trainer service_npc 56986 3430 3430 eversongwoods 0 2 +poi_npc_57022 service 530 8680.36 -6327.51 56.0313 3.9619 1 Sempstress Ambershine Tailoring Trainer Sempstress Ambershine Tailoring Trainer service_npc 57022 3468 3430 eversongwoods 0 2 +poi_npc_57023 service 530 8678.92 -6329.09 56.0269 0.837758 1 Botanist Tyniarrel Herbalism Trainer & Supplies Botanist Tyniarrel Herbalism Trainer & Supplies service_npc 57023 3468 3430 eversongwoods 0 2 +poi_npc_57556 service 530 167.278 2795.67 113.449 2.61799 1 Rohok Blacksmithing Trainer Rohok Blacksmithing Trainer service_npc 57556 3536 3483 hellfirepeninsula 0 0 +poi_npc_57561 service 530 225.656 2839.38 131.424 2.00713 1 Apothecary Antonivich Alchemy Trainer Apothecary Antonivich Alchemy Trainer service_npc 57561 3536 3483 hellfirepeninsula 0 0 +poi_npc_57606 tavern 530 190.876 2610.93 87.3669 2.42601 1 Floyd Pinkus Innkeeper Floyd Pinkus Innkeeper service_npc 57606 3536 3483 hellfirepeninsula 0 0 +poi_npc_57614 tavern 530 9684.1 -7363.6 12.0145 4.4855 1 Innkeeper Velandra Innkeeper Innkeeper Velandra Innkeeper service_npc 57614 3487 3487 silvermooncity 0 2 +poi_npc_57617 service 530 9841.1 -7506.1 15.0275 1.65806 1 Ileda Ileda service_npc 57617 3487 3487 silvermooncity 0 2 +poi_npc_57627 service 530 9962.51 -7247.43 32.1599 2.42601 1 Sedana Enchanting Trainer Sedana Enchanting Trainer service_npc 57627 3487 3487 silvermooncity 0 2 +poi_npc_57634 service 530 9749.56 -7095.87 16.7743 1.71042 1 Keelen Sheets Tailoring Trainer Keelen Sheets Tailoring Trainer service_npc 57634 3487 3487 silvermooncity 0 2 +poi_npc_57636 service 530 10018.3 -7209.14 32.1599 2.63545 1 Camberon Alchemy Trainer Camberon Alchemy Trainer service_npc 57636 3487 3487 silvermooncity 0 2 +poi_npc_57638 service 530 10005.3 -7217.5 32.1598 0.942478 1 Botanist Nathera Herbalism Trainer Botanist Nathera Herbalism Trainer service_npc 57638 3487 3487 silvermooncity 0 2 +poi_npc_57653 service 530 9580.31 -7343.42 14.5367 0.907571 1 Alestus First Aid Trainer Alestus First Aid Trainer service_npc 57653 3487 3487 silvermooncity 0 2 +poi_npc_57654 service 530 9804.84 -7356.56 20.7757 6.10865 1 Belil Mining Trainer Belil Mining Trainer service_npc 57654 3487 3487 silvermooncity 0 2 +poi_npc_57657 service 530 9822.16 -7333.16 26.3 0.8303 1 Danwe Engineering Trainer Danwe Engineering Trainer service_npc 57657 3487 3487 silvermooncity 0 2 +poi_npc_57659 service 530 9841.98 -7362.39 18.5945 4.79965 1 Bemarrin Blacksmithing Trainer Bemarrin Blacksmithing Trainer service_npc 57659 3487 3487 silvermooncity 0 2 +poi_npc_57666 service 530 9576.28 -7244.55 27.1145 0.733038 1 Sylann Cooking Trainer Sylann Cooking Trainer service_npc 57666 3487 3487 silvermooncity 0 2 +poi_npc_57677 service 530 9503.61 -7430.97 14.2317 1.39626 1 Lynalis Leatherworking Trainer Lynalis Leatherworking Trainer service_npc 57677 3487 3487 silvermooncity 0 2 +poi_npc_57681 service 530 9520.33 -7433.28 14.1588 0.902319 1 Tyn Skinning Trainer Tyn Skinning Trainer service_npc 57681 3487 3487 silvermooncity 0 2 +poi_npc_57710 service 530 -4037.06 -11361 -138.836 4.79965 1 Lucc Alchemy Trainer Lucc Alchemy Trainer service_npc 57710 3557 3557 theexodar 0 1 +poi_npc_57711 service 530 -4095.78 -11747 -139.578 3.68265 1 Refik Tailoring Trainer Refik Tailoring Trainer service_npc 57711 3557 3557 theexodar 0 1 +poi_npc_57744 service 530 -4228.17 -11697.1 -143.465 5.25344 1 Muaat Mining Trainer Muaat Mining Trainer service_npc 57744 3557 3557 theexodar 0 1 +poi_npc_57790 service 530 9607.08 -7324.33 15.0517 3.80482 1 Drathen Fishing Trainer Drathen Fishing Trainer service_npc 57790 3487 3487 silvermooncity 0 2 +poi_npc_57881 service 530 -717.317 2607.58 91.0112 2.04204 1 Humphry Blacksmithing Trainer Humphry Blacksmithing Trainer service_npc 57881 3538 3483 hellfirepeninsula 0 0 +poi_npc_57884 tavern 530 -708.871 2739.13 94.8168 5.044 1 Sid Limbardi Innkeeper Sid Limbardi Innkeeper service_npc 57884 3538 3483 hellfirepeninsula 0 0 +poi_npc_61738 service 530 -4199.11 -12469.9 45.7105 3.29055 1 Anchorite Fateema First Aid Trainer Anchorite Fateema First Aid Trainer service_npc 61738 3576 3524 azuremystisle 0 1 +poi_npc_61739 service 530 -4191.15 -12470 45.6375 3.80482 1 Daedal Alchemy Trainer Daedal Alchemy Trainer service_npc 61739 3576 3524 azuremystisle 0 1 +poi_npc_61975 service 530 -4726.29 -12387 11.1737 3.24631 1 Blacksmith Calypso Blacksmithing Trainer & Supplies Blacksmith Calypso Blacksmithing Trainer & Supplies service_npc 61975 3573 3524 azuremystisle 0 1 +poi_npc_61976 service 530 -4710.87 -12400.6 12.1142 1.1577 1 "Cookie" McWeaksauce Cooking Trainer & Supplies "Cookie" McWeaksauce Cooking Trainer & Supplies service_npc 61976 3573 3524 azuremystisle 0 1 +poi_npc_62870 service 530 -1931.62 -11858.3 51.4339 2.77507 1 Anchorite Paetheus First Aid Trainer Anchorite Paetheus First Aid Trainer service_npc 62870 3584 3525 bloodmystisle 0 1 +poi_npc_62897 service 530 -2014.22 -11812.1 53.9252 4.88692 1 Morae Herbalism Trainer Morae Herbalism Trainer service_npc 62897 3584 3525 bloodmystisle 0 1 +poi_npc_62916 service 530 -3431.17 -12316.5 14.2924 4.53786 1 Gurf Skinning Trainer Gurf Skinning Trainer service_npc 62916 3572 3524 azuremystisle 0 1 +poi_npc_62917 service 530 -3442.68 -12322.2 14.1547 6.12611 1 Moordo Leatherworking Trainer Moordo Leatherworking Trainer service_npc 62917 3572 3524 azuremystisle 0 1 +poi_npc_62999 service 530 -4711.54 -12386.7 11.9356 3.89208 1 Erin Kelly Tailoring Trainer Erin Kelly Tailoring Trainer service_npc 62999 3573 3524 azuremystisle 0 1 +poi_npc_63162 tavern 530 -2059.2 -11897 45.7415 0.959931 1 Caregiver Topher Loaal Innkeeper Caregiver Topher Loaal Innkeeper service_npc 63162 3584 3525 bloodmystisle 0 1 +poi_npc_63362 tavern 530 9565.68 -7222.8 16.4272 5.2709 1 Innkeeper Jovia Innkeeper Innkeeper Jovia Innkeeper service_npc 63362 3487 3487 silvermooncity 0 2 +poi_npc_63366 service 530 252.251 6023.74 131.693 1.0472 1 K. Lee Smallfry Engineering Trainer K. Lee Smallfry Engineering Trainer service_npc 63366 3644 3521 zangarmarsh 0 0 +poi_npc_63368 service 530 228.256 7764.29 17.5397 4.7822 1 Mack Diver Engineering Trainer Mack Diver Engineering Trainer service_npc 63368 3521 3521 zangarmarsh 0 0 +poi_npc_63689 service 530 -4189.43 -12459.4 45.4232 5.95157 1 Heur Herbalism Trainer Heur Herbalism Trainer service_npc 63689 3576 3524 azuremystisle 0 1 +poi_npc_63720 service 530 272.576 7853.82 24.0883 0.191986 1 Zurjaya Fishing Trainer Zurjaya Fishing Trainer service_npc 63720 3645 3521 zangarmarsh 0 0 +poi_npc_65514 tavern 530 228.163 7933.88 25.1611 5.13127 1 Merajit Innkeeper Merajit Innkeeper service_npc 65514 3645 3521 zangarmarsh 0 0 +poi_npc_65520 tavern 530 282.266 6098.17 132.571 4.66003 1 Caregiver Abidaar Innkeeper Caregiver Abidaar Innkeeper service_npc 65520 3644 3521 zangarmarsh 0 0 +poi_npc_66688 tavern 530 3023.56 5435.18 146.617 2.21423 1 Innkeeper Aelerya Innkeeper Innkeeper Aelerya Innkeeper service_npc 66688 3951 3522 bladesedgemountains 0 0 +poi_npc_67006 service 530 186.755 2676.36 89.0101 3.15905 1 Krugosh Mining Trainer Krugosh Mining Trainer service_npc 67006 3536 3483 hellfirepeninsula 0 0 +poi_npc_67007 service 530 232.844 2842.46 131.424 4.15388 1 Ruak Stronghorn Herbalism Trainer Ruak Stronghorn Herbalism Trainer service_npc 67007 3536 3483 hellfirepeninsula 0 0 +poi_npc_67008 service 530 204.177 2617.73 87.3669 3.97935 1 Dalinna Tailoring Trainer Dalinna Tailoring Trainer service_npc 67008 3536 3483 hellfirepeninsula 0 0 +poi_npc_67024 service 530 179.75 2607.09 87.3669 0.226893 1 Kalaen Jewelcrafting Trainer Kalaen Jewelcrafting Trainer service_npc 67024 3536 3483 hellfirepeninsula 0 0 +poi_npc_67025 service 530 154.993 2710.45 88.1616 5.044 1 Zebig Engineering Trainer Zebig Engineering Trainer service_npc 67025 3536 3483 hellfirepeninsula 0 0 +poi_npc_67026 service 530 242.253 2836.55 145.176 0.872665 1 Felannia Enchanting Trainer Felannia Enchanting Trainer service_npc 67026 3536 3483 hellfirepeninsula 0 0 +poi_npc_67027 service 530 148.588 2636.02 86.018 1.27409 1 Barim Spilthoof Leatherworking Trainer Barim Spilthoof Leatherworking Trainer service_npc 67027 3536 3483 hellfirepeninsula 0 0 +poi_npc_67028 service 530 151.239 2633.32 86.627 0.15708 1 Moorutu Skinning Trainer Moorutu Skinning Trainer service_npc 67028 3536 3483 hellfirepeninsula 0 0 +poi_npc_67046 service 530 -721.657 2745.26 94.0548 3.45575 1 Brumman Leatherworking Trainer Brumman Leatherworking Trainer service_npc 67046 3538 3483 hellfirepeninsula 0 0 +poi_npc_67047 service 530 -712.816 2718.37 101.675 6.14356 1 Hama Tailoring Trainer Hama Tailoring Trainer service_npc 67047 3538 3483 hellfirepeninsula 0 0 +poi_npc_67048 service 530 -796.387 2769.96 146.618 2.25148 1 Johan Barnes Enchanting Trainer Johan Barnes Enchanting Trainer service_npc 67048 3538 3483 hellfirepeninsula 0 0 +poi_npc_67049 service 530 -711.68 2717.99 94.8203 6.21337 1 Tatiana Jewelcrafting Trainer Tatiana Jewelcrafting Trainer service_npc 67049 3538 3483 hellfirepeninsula 0 0 +poi_npc_67050 service 530 -777.6 2661.83 108.252 0.20944 1 Lebowski Engineering Trainer Lebowski Engineering Trainer service_npc 67050 3538 3483 hellfirepeninsula 0 0 +poi_npc_67051 service 530 -784.479 2771.25 120.93 4.43314 1 Rorelien Herbalism Trainer Rorelien Herbalism Trainer service_npc 67051 3538 3483 hellfirepeninsula 0 0 +poi_npc_67052 service 530 -693.831 2724.7 94.1936 3.1765 1 Jelena Nightsky Skinning Trainer Jelena Nightsky Skinning Trainer service_npc 67052 3538 3483 hellfirepeninsula 0 0 +poi_npc_67053 service 530 -717.806 2611.67 91.0945 5.88176 1 Hurnak Grimmord Mining Trainer Hurnak Grimmord Mining Trainer service_npc 67053 3538 3483 hellfirepeninsula 0 0 +poi_npc_67159 service 530 -785.352 2760.92 122.006 5.39307 1 Alchemist Gribble Alchemy Trainer Alchemist Gribble Alchemy Trainer service_npc 67159 3538 3483 hellfirepeninsula 0 0 +poi_npc_67161 service 530 -1937.86 -11912.5 48.1426 1.90241 1 Prospector Nachlan Explorers' League Prospector Nachlan Explorers' League service_npc 67161 3584 3525 bloodmystisle 0 1 +poi_npc_67878 tavern 530 -568.976 4151.49 68.217 3.735 1 Innkeeper Bazil Olof'tazun Innkeeper Innkeeper Bazil Olof'tazun Innkeeper service_npc 67878 3554 3483 hellfirepeninsula 0 0 +poi_npc_67879 tavern 530 229.118 4333.73 119.083 3.07178 1 Caregiver Ophera Windfury Innkeeper Caregiver Ophera Windfury Innkeeper service_npc 67879 3552 3483 hellfirepeninsula 0 0 +poi_npc_67880 tavern 530 -174.478 5529.21 29.4909 3.33358 1 Innkeeper Coryth Stoktron Innkeeper Innkeeper Coryth Stoktron Innkeeper service_npc 67880 3565 3521 zangarmarsh 0 0 +poi_npc_67881 tavern 530 1056.38 7370.99 39.6667 3.85718 1 Innkeeper Kerp Innkeeper Innkeeper Kerp Innkeeper service_npc 67881 3766 3521 zangarmarsh 0 0 +poi_npc_67911 service 530 -279.86 5551.56 22.5139 2.05949 1 Juno Dufrain Fishing Trainer Juno Dufrain Fishing Trainer service_npc 67911 3565 3521 zangarmarsh 0 0 +poi_npc_67932 tavern 530 -1229.58 7161.33 57.3484 2.47837 1 Matron Tikkit Innkeeper Matron Tikkit Innkeeper service_npc 67932 3613 3518 nagrand 0 0 +poi_npc_67933 tavern 530 -2761.41 7300.42 43.5535 1.72788 1 Caregiver Isel Innkeeper Caregiver Isel Innkeeper service_npc 67933 3626 3518 nagrand 0 0 +poi_npc_68097 tavern 530 -2621.78 4450.3 36.1768 4.62512 1 Innkeeper Grilka Innkeeper Innkeeper Grilka Innkeeper service_npc 68097 3683 3519 terokkarforest 0 0 +poi_npc_68268 service 530 -707.75 2749.15 94.805 2.96706 1 Gaston Cooking Trainer Gaston Cooking Trainer service_npc 68268 3538 3483 hellfirepeninsula 0 0 +poi_npc_68269 service 530 194.006 2605.81 87.3669 1.85005 1 Baxter Cooking Trainer Baxter Cooking Trainer service_npc 68269 3536 3483 hellfirepeninsula 0 0 +poi_npc_68270 service 530 123.621 4386.27 114.782 5.58505 1 Burko First Aid Trainer Burko First Aid Trainer service_npc 68270 3552 3483 hellfirepeninsula 0 0 +poi_npc_68271 service 530 -655.603 4187.3 68.632 4.60767 1 Aresella First Aid Trainer Aresella First Aid Trainer service_npc 68271 3554 3483 hellfirepeninsula 0 0 +poi_npc_68273 service 530 -178.006 5527.99 29.4909 0.331613 1 Naka Cooking Trainer & Supplies Naka Cooking Trainer & Supplies service_npc 68273 3565 3521 zangarmarsh 0 0 +poi_npc_68349 tavern 530 -1904.29 5765.5 131.296 0.314159 1 Minalei Innkeeper Minalei Innkeeper service_npc 68349 3703 3703 shattrathcity 0 0 +poi_npc_68361 service 530 -1661.06 5539.73 -4.87096 5.32325 1 Lorokeem Alchemy Trainer Lorokeem Alchemy Trainer service_npc 68361 3703 3703 shattrathcity 0 0 +poi_npc_68364 service 530 -1654.68 5664.69 132.774 1.11701 1 Hamanar Jewelcrafting Trainer Hamanar Jewelcrafting Trainer service_npc 68364 3896 3703 shattrathcity 0 0 +poi_npc_68625 service 530 -2047.99 5299.68 -38.5085 5.67232 1 Seymour Skinning Trainer Seymour Skinning Trainer service_npc 68625 3703 3703 shattrathcity 0 0 +poi_npc_68633 service 530 -1592.02 5263.72 -13.9117 1.15192 1 Mildred Fletcher First Aid Trainer Mildred Fletcher First Aid Trainer service_npc 68633 3703 3703 shattrathcity 0 0 +poi_npc_68634 service 530 -2067.41 5316.57 -37.3236 1.26899 1 Jack Trapper Cooking Trainer Jack Trapper Cooking Trainer service_npc 68634 3703 3703 shattrathcity 0 0 +poi_npc_68635 service 530 -1767.14 5135.39 -37.2049 3.67627 1 Kylene Barmaid Kylene Barmaid service_npc 68635 3703 3703 shattrathcity 0 0 +poi_npc_68636 service 530 -2060.92 5256.68 -38.3819 0.767945 1 Darmari Leatherworking Trainer Darmari Leatherworking Trainer service_npc 68636 3703 3703 shattrathcity 0 0 +poi_npc_68760 tavern 530 -2184.04 5399.62 51.9658 1.23918 1 Innkeeper Haelthol Innkeeper Innkeeper Haelthol Innkeeper service_npc 68760 3898 3703 shattrathcity 0 0 +poi_npc_68775 service 530 -2277.57 5570.21 79.9269 4.31096 1 Enchantress Volali Enchanting Trainer Enchantress Volali Enchanting Trainer service_npc 68775 3703 3703 shattrathcity 0 0 +poi_npc_68776 service 530 -2278.56 5567.73 79.9171 1.23918 1 High Enchanter Bardolan Enchanting Trainer High Enchanter Bardolan Enchanting Trainer service_npc 68776 3703 3703 shattrathcity 0 0 +poi_npc_68872 tavern 530 -2917.88 4021.48 0.51079 3.66519 1 Innkeeper Biribi Innkeeper Innkeeper Biribi Innkeeper service_npc 68872 3684 3519 terokkarforest 0 0 +poi_npc_68904 tavern 530 -2965 2562 78.6 2 1 Innkeeper Darg Bloodclaw Innkeeper Innkeeper Darg Bloodclaw Innkeeper service_npc 68904 3744 3520 shadowmoonvalley 0 0 +poi_npc_68957 service 530 -3103 2595 63 0 1 Grutah Blacksmithing Trainer Grutah Blacksmithing Trainer service_npc 68957 3744 3520 shadowmoonvalley 0 0 +poi_npc_69013 tavern 530 -4084.32 2186.97 107.585 0.139626 1 Dreg Cloudsweeper Innkeeper Dreg Cloudsweeper Innkeeper service_npc 69013 3745 3520 shadowmoonvalley 0 0 +poi_npc_69100 service 530 -4093.06 2178.5 107.03 0.802851 1 Celie Steelwing Cooking Trainer Celie Steelwing Cooking Trainer service_npc 69100 3745 3520 shadowmoonvalley 0 0 +poi_npc_69731 tavern 530 2404.13 5950.76 152.192 1.76278 1 Gholah Innkeeper Gholah Innkeeper service_npc 69731 3769 3522 bladesedgemountains 0 0 +poi_npc_69738 service 530 2415.58 5915.76 152.4 2.02458 1 Fera Palerunner First Aid Trainer Fera Palerunner First Aid Trainer service_npc 69738 3769 3522 bladesedgemountains 0 0 +poi_npc_69856 tavern 530 2098.18 6903.92 183.313 3.75246 1 Innkeeper Shaunessy Innkeeper Innkeeper Shaunessy Innkeeper service_npc 69856 3772 3522 bladesedgemountains 0 0 +poi_npc_69936 tavern 530 4113.01 3066.12 339.548 5.18363 1 Eyonix Innkeeper Eyonix Innkeeper service_npc 69936 3738 3523 netherstorm 0 0 +poi_npc_69944 service 530 4191.23 3001.25 339.392 2.33874 1 Jazdalaad Jewelcrafting Trainer Jazdalaad Jewelcrafting Trainer service_npc 69944 3738 3523 netherstorm 0 0 +poi_npc_69945 service 530 4205.09 3017.44 339.392 4.06662 1 Asarnan Enchanting Trainer Asarnan Enchanting Trainer service_npc 69945 3738 3523 netherstorm 0 0 +poi_npc_70010 tavern 530 3062.15 3701.82 142.562 4.79965 1 Innkeeper Remi Dodoso Innkeeper Innkeeper Remi Dodoso Innkeeper service_npc 70010 3712 3523 netherstorm 0 0 +poi_npc_70015 service 530 2974 3672.69 143.634 0 1 Xyrol Engineering Trainer Xyrol Engineering Trainer service_npc 70015 3712 3523 netherstorm 0 0 +poi_npc_70730 service 530 9558.09 -7495.16 16.3403 3.9619 1 Kalinda Jewelcrafting Trainer Kalinda Jewelcrafting Trainer service_npc 70730 3487 3487 silvermooncity 0 2 +poi_npc_71625 service 530 -1847.61 5230.97 -38.0452 4.77226 1 Kradu Grimblade Blacksmithing Trainer Kradu Grimblade Blacksmithing Trainer service_npc 71625 3703 3703 shattrathcity 0 0 +poi_npc_71626 service 530 -1839.5 5223.18 -37.9621 3.42085 1 Zula Slagfury Blacksmithing Trainer Zula Slagfury Blacksmithing Trainer service_npc 71626 3703 3703 shattrathcity 0 0 +poi_npc_74113 service 530 2039.82 4675.43 150.074 0.977384 1 Grikka Leatherworking Trainer Grikka Leatherworking Trainer service_npc 74113 3844 3522 bladesedgemountains 0 0 +poi_npc_74114 tavern 530 2227.13 4717.91 162.075 2.00713 1 Matron Varah Innkeeper Matron Varah Innkeeper service_npc 74114 3844 3522 bladesedgemountains 0 0 +poi_npc_74143 tavern 530 1944.85 5537.87 266.734 2.14675 1 Fizit "Doc" Clocktock Innkeeper Fizit "Doc" Clocktock Innkeeper service_npc 74143 3918 3522 bladesedgemountains 0 0 +poi_npc_74397 service 530 -595.426 2899.24 59.2054 2.37375 1 Dumphry Blacksmithing Trainer Dumphry Blacksmithing Trainer service_npc 74397 3483 3483 hellfirepeninsula 0 0 +poi_npc_74480 service 571 8553.96 863.632 547.436 0.942478 1 Dustin Vail Tailoring Trainer Dustin Vail Tailoring Trainer service_npc 74480 4658 210 icecrown 0 0 +poi_npc_74701 service 571 8556.13 942.075 547.664 0 1 Kul'de Leatherworking Trainer Kul'de Leatherworking Trainer service_npc 74701 4658 210 icecrown 0 0 +poi_npc_74975 service 571 8569.21 863.483 547.652 2.00713 1 Fael Morningsong Enchanting Trainer Fael Morningsong Enchanting Trainer service_npc 74975 4658 210 icecrown 0 0 +poi_npc_75088 service 530 -2091.98 5634.98 50.3112 2.84489 1 Aelthin Alchemy Trainer Aelthin Alchemy Trainer service_npc 75088 3703 3703 shattrathcity 0 0 +poi_npc_75089 service 530 -2093.76 5632.88 50.3112 2.51327 1 Botanist Alaenra Herbalism Trainer Botanist Alaenra Herbalism Trainer service_npc 75089 3703 3703 shattrathcity 0 0 +poi_npc_75402 service 530 3088.5 3645.93 142.639 6.10865 1 Kablamm Farflinger Transportation Engineer Kablamm Farflinger Transportation Engineer service_npc 75402 3712 3523 netherstorm 0 0 +poi_npc_75471 service 571 8551.09 917.832 547.379 0.820305 1 Binkie Brightgear Engineering Trainer Binkie Brightgear Engineering Trainer service_npc 75471 4658 210 icecrown 0 0 +poi_npc_75712 service 571 8549.81 906.748 547.438 0 1 Bethany Cromwell Cooking Trainer Bethany Cromwell Cooking Trainer service_npc 75712 4658 210 icecrown 0 0 +poi_npc_75903 service 571 8546.45 953.047 547.377 5.79449 1 Crystal Brightspark Alchemy Trainer Crystal Brightspark Alchemy Trainer service_npc 75903 4658 210 icecrown 0 0 +poi_npc_75904 service 571 8489.46 964.667 547.293 3.19395 1 Joseph Wilson First Aid Trainer Joseph Wilson First Aid Trainer service_npc 75904 4658 210 icecrown 0 0 +poi_npc_75906 service 571 8553.32 962.42 547.562 0.366519 1 Oluros Jewelcrafting Trainer Oluros Jewelcrafting Trainer service_npc 75906 4658 210 icecrown 0 0 +poi_npc_75910 service 571 8550.03 936.91 547.377 5.5676 1 Rekka the Hammer Blacksmithing Trainer Rekka the Hammer Blacksmithing Trainer service_npc 75910 4658 210 icecrown 0 0 +poi_npc_75998 tavern 530 -4141.9 1127.26 44.6148 0.436332 1 Roldemar Innkeeper Roldemar Innkeeper service_npc 75998 3938 3520 shadowmoonvalley 0 0 +poi_npc_75999 tavern 530 -2983.52 863.391 -7.48924 3.08923 1 Caretaker Aluuro Innkeeper Caretaker Aluuro Innkeeper service_npc 75999 3754 3520 shadowmoonvalley 0 0 +poi_npc_78918 service 530 -3739.92 5418.41 -3.31487 4.38078 1 Anchorite Ensham First Aid Trainer Anchorite Ensham First Aid Trainer service_npc 78918 3958 3519 terokkarforest 0 0 +poi_npc_81741 tavern 530 7553.37 -6897.35 96.11 1.09956 1 Innkeeper Kalarin Innkeeper Innkeeper Kalarin Innkeeper service_npc 81741 3488 3433 ghostlands 0 2 +poi_npc_82940 tavern 530 -3746.37 -11696.1 -105.87 3.14578 1 Caregiver Breel Innkeeper Caregiver Breel Innkeeper service_npc 82940 3557 3557 theexodar 0 1 +poi_npc_82941 service 530 -3781.55 -11541.8 -134.744 1.93941 1 Farii Jewelcrafting Trainer Farii Jewelcrafting Trainer service_npc 82941 3557 3557 theexodar 0 1 +poi_npc_82946 service 530 -4214.06 -11630.2 -98.8992 5.66455 1 Handiir Handiir service_npc 82946 3557 3557 theexodar 0 1 +poi_npc_82948 tavern 530 -4129.43 -12469 44.0842 3.90528 1 Caregiver Chellan Innkeeper Caregiver Chellan Innkeeper service_npc 82948 3576 3524 azuremystisle 0 1 +poi_npc_82949 service 530 -4266.38 -12985.1 2.29031 5.5232 1 Diktynna Fishing Trainer & Supplies Diktynna Fishing Trainer & Supplies service_npc 82949 3857 3524 azuremystisle 0 1 +poi_npc_84408 service 530 -3797.98 -11655.5 -106.063 4.08407 1 Mumman Cooking Trainer Mumman Cooking Trainer service_npc 84408 3557 3557 theexodar 0 1 +poi_npc_84579 service 530 -4179.89 -12493.1 44.4446 1.72788 1 Dulvi Mining Trainer Dulvi Mining Trainer service_npc 84579 3576 3524 azuremystisle 0 1 +poi_npc_84582 service 530 -4157.57 -12470.2 44.9803 2.23402 1 Artificer Daelo Engineering Trainer Artificer Daelo Engineering Trainer service_npc 84582 3576 3524 azuremystisle 0 1 +poi_npc_84990 tavern 571 8605.13 665.765 550.375 5.61996 1 Caris Sunlance Innkeeper Caris Sunlance Innkeeper service_npc 84990 4667 210 icecrown 0 0 +poi_npc_84992 tavern 571 8425.18 671.476 550.458 4.01426 1 Jarin Dawnglow Innkeeper Jarin Dawnglow Innkeeper service_npc 84992 4666 210 icecrown 0 0 +poi_npc_85320 service 571 533.751 -5048.23 10.3191 1.39626 1 Byron Welwick Fishing Trainer Byron Welwick Fishing Trainer service_npc 85320 3981 495 howlingfjord 0 0 +poi_npc_85588 service 530 -4263.95 -11638.5 -142.013 5.16617 1 Ockil Engineering Trainer Ockil Engineering Trainer service_npc 85588 3557 3557 theexodar 0 1 +poi_npc_85595 service 530 -4243.9 -11706.7 -143.99 0.645772 1 Miall Blacksmithing Trainer Miall Blacksmithing Trainer service_npc 85595 3557 3557 theexodar 0 1 +poi_npc_85596 service 530 -4135.28 -11760.2 -136.734 3.735 1 Remere Skinning Trainer Remere Skinning Trainer service_npc 85596 3557 3557 theexodar 0 1 +poi_npc_85597 service 530 -4135.17 -11779.7 -136.806 1.74533 1 Akham Leatherworking Trainer Akham Leatherworking Trainer service_npc 85597 3557 3557 theexodar 0 1 +poi_npc_85614 service 530 -3766.05 -11481.8 -134.338 3.19956 1 Nus First Aid Trainer Nus First Aid Trainer service_npc 85614 3557 3557 theexodar 0 1 +poi_npc_85615 service 530 -3712.96 -11404 -133.865 1.85005 1 Erett Fishing Trainer Erett Fishing Trainer service_npc 85615 3557 3557 theexodar 0 1 +poi_npc_85619 service 530 -3882.85 -11496.7 -136.057 1.67552 1 Nahogg Enchanting Trainer Nahogg Enchanting Trainer service_npc 85619 3557 3557 theexodar 0 1 +poi_npc_85630 service 530 -4052.46 -11356.4 -138.998 4.69494 1 Cemmorhan Herbalism Trainer Cemmorhan Herbalism Trainer service_npc 85630 3557 3557 theexodar 0 1 +poi_npc_85881 service 530 7586.1 -6881.42 95.1048 1.23918 1 Master Chef Mouldier Cooking Trainer & Supplies Master Chef Mouldier Cooking Trainer & Supplies service_npc 85881 3488 3433 ghostlands 0 2 +poi_npc_88255 service 530 -1858.61 5658.11 127.459 2.79598 1 Zurii Enchanting Trainer Zurii Enchanting Trainer service_npc 88255 3896 3703 shattrathcity 0 0 +poi_npc_88256 service 530 -1892.28 5662.67 127.459 0.45548 1 Nemiha Jewelcrafting Trainer Nemiha Jewelcrafting Trainer service_npc 88256 3896 3703 shattrathcity 0 0 +poi_npc_88257 service 530 -1897.77 5663.99 128.514 0.125614 1 Fono Mining Trainer Fono Mining Trainer service_npc 88257 3896 3703 shattrathcity 0 0 +poi_npc_88259 service 530 -1737.53 5629.11 128.023 0.142108 1 Alchemist Kanhu Alchemy Trainer Alchemist Kanhu Alchemy Trainer service_npc 88259 3896 3703 shattrathcity 0 0 +poi_npc_88260 service 530 -1738.27 5636.08 128.023 6.27607 1 Jijia Herbalism Trainer Jijia Herbalism Trainer service_npc 88260 3896 3703 shattrathcity 0 0 +poi_npc_88261 service 530 -1747.66 5643.65 128.023 0.000734 1 Onodo Blacksmithing Trainer Onodo Blacksmithing Trainer service_npc 88261 3896 3703 shattrathcity 0 0 +poi_npc_88262 service 530 -1751.24 5641.23 129.071 0.845039 1 Technician Mihila Engineering Trainer Technician Mihila Engineering Trainer service_npc 88262 3896 3703 shattrathcity 0 0 +poi_npc_88263 service 530 -1707.45 5651.2 129.081 3.67248 1 Dremm Skinning Trainer Dremm Skinning Trainer service_npc 88263 3896 3703 shattrathcity 0 0 +poi_npc_88264 service 530 -1708.82 5642.69 129.071 2.76141 1 Weaver Aoa Tailoring Trainer Weaver Aoa Tailoring Trainer service_npc 88264 3896 3703 shattrathcity 0 0 +poi_npc_88265 service 530 -1714.82 5645.47 128.024 3.64106 1 Korim Leatherworking Trainer Korim Leatherworking Trainer service_npc 88265 3896 3703 shattrathcity 0 0 +poi_npc_88266 service 530 -2128.29 5366.55 54.8629 1.63907 1 Hanlir Mining Trainer Hanlir Mining Trainer service_npc 88266 3703 3703 shattrathcity 0 0 +poi_npc_88267 service 530 -2128.67 5372.53 53.8087 1.38618 1 Kirembri Silvermane Jewelcrafting Trainer Kirembri Silvermane Jewelcrafting Trainer service_npc 88267 3703 3703 shattrathcity 0 0 +poi_npc_88268 service 530 -2124.96 5410.95 54.8625 5.16159 1 Enchantress Andiala Enchanting Trainer Enchantress Andiala Enchanting Trainer service_npc 88268 3898 3703 shattrathcity 0 0 +poi_npc_88269 service 530 -2040.66 5567.97 53.384 0.992695 1 Barien Blacksmithing Trainer Barien Blacksmithing Trainer service_npc 88269 3898 3703 shattrathcity 0 0 +poi_npc_88270 service 530 -2041.29 5561.97 54.4371 1.56054 1 Engineer Sinbei Engineering Trainer Engineer Sinbei Engineering Trainer service_npc 88270 3898 3703 shattrathcity 0 0 +poi_npc_88271 service 530 -2023.51 5596.42 53.3846 4.12487 1 Daenril Leatherworking Trainer Daenril Leatherworking Trainer service_npc 88271 3898 3703 shattrathcity 0 0 +poi_npc_88272 service 530 -2026.79 5598.05 53.3846 4.81601 1 Miralisse Tailoring Trainer Miralisse Tailoring Trainer service_npc 88272 3898 3703 shattrathcity 0 0 +poi_npc_88273 service 530 -2027.25 5604.75 54.444 4.83956 1 Irduil Skinning Trainer Irduil Skinning Trainer service_npc 88273 3898 3703 shattrathcity 0 0 +poi_npc_94379 tavern 530 12817 -7004.92 18.5937 2.21166 1 Caregiver Inaara Innkeeper Caregiver Inaara Innkeeper service_npc 94379 4087 4080 isleofqueldanas 0 0 +poi_npc_97428 tavern 571 8426.41 -355.584 906.485 0.820305 1 Magorn Innkeeper Magorn Innkeeper service_npc 97428 4484 67 thestormpeaks 0 0 +poi_npc_97509 tavern 571 704.029 -2932.88 -2.98511 0.20944 1 Caregiver Iqniq Innkeeper Caregiver Iqniq Innkeeper service_npc 97509 3988 495 howlingfjord 0 0 +poi_npc_97654 tavern 571 5671.43 724.478 653.412 2.08769 1 Caliel Brightwillow Assistant Innkeeper Caliel Brightwillow Assistant Innkeeper service_npc 97654 4395 4395 dalaran 0 0 +poi_npc_97714 tavern 571 5847.97 635.435 647.574 1.0472 1 Amisi Azuregaze Innkeeper Amisi Azuregaze Innkeeper service_npc 97714 4395 4395 dalaran 0 0 +poi_npc_97928 tavern 571 7798.31 -2967.05 1258.92 1.11701 1 Wabada Whiteflower Innkeeper Wabada Whiteflower Innkeeper service_npc 97928 4441 67 thestormpeaks 0 0 +poi_npc_98040 service 571 5846.42 728.394 642.08 3.66519 1 Enchanter Nalthanis Enchanting Trainer Enchanter Nalthanis Enchanting Trainer service_npc 98040 4395 4395 dalaran 0 0 +poi_npc_98070 service 571 5913.41 676.299 643.579 2.9147 1 Alard Schmied Blacksmithing Trainer Alard Schmied Blacksmithing Trainer service_npc 98070 4395 4395 dalaran 0 0 +poi_npc_98071 tavern 571 1873.32 -6218.15 13.1841 1.3439 1 Timothy Holland Innkeeper Timothy Holland Innkeeper service_npc 98071 4532 495 howlingfjord 0 0 +poi_npc_98087 service 571 608.451 -4925.96 17.9667 3.42085 1 Lanolis Dewdrop Alchemy Trainer Lanolis Dewdrop Alchemy Trainer service_npc 98087 4379 495 howlingfjord 0 0 +poi_npc_98110 service 571 545.083 -5000.47 10.6208 6.19592 1 Rosina Rivet Blacksmithing Trainer Rosina Rivet Blacksmithing Trainer service_npc 98110 3981 495 howlingfjord 0 0 +poi_npc_98120 service 571 5910.78 763.743 641.18 4.50295 1 Derik Marks Skinning Trainer Derik Marks Skinning Trainer service_npc 98120 4395 4395 dalaran 0 0 +poi_npc_98178 service 571 5923.3 733.456 642.212 4.59022 1 Timofey Oshenko Engineering Trainer Timofey Oshenko Engineering Trainer service_npc 98178 4395 4395 dalaran 0 0 +poi_npc_98184 service 571 615.058 -4916.97 18.7611 3.28122 1 Brom Brewbaster Cooking Trainer Brom Brewbaster Cooking Trainer service_npc 98184 4379 495 howlingfjord 0 0 +poi_npc_98236 service 571 588.048 -4940.85 28.177 1.13446 1 Elizabeth Jackson Enchanting Trainer Elizabeth Jackson Enchanting Trainer service_npc 98236 4379 495 howlingfjord 0 0 +poi_npc_98239 service 571 5924.54 708.256 642.621 2.9147 1 Jedidiah Handers Mining Trainer Jedidiah Handers Mining Trainer service_npc 98239 4395 4395 dalaran 0 0 +poi_npc_98344 service 571 534.039 -5006.6 10.6165 5.89921 1 Tisha Longbridge Engineering Trainer Tisha Longbridge Engineering Trainer service_npc 98344 3981 495 howlingfjord 0 0 +poi_npc_98346 service 571 5881.01 752.591 640.486 4.93928 1 Charles Worth Tailoring Trainer Charles Worth Tailoring Trainer service_npc 98346 4395 4395 dalaran 0 0 +poi_npc_98421 service 571 5908.16 764.413 641.169 4.62512 1 Diane Cannings Leatherworking Trainer Diane Cannings Leatherworking Trainer service_npc 98421 4395 4395 dalaran 0 0 +poi_npc_98589 service 571 5871.05 714.891 643.176 1.29154 1 Timothy Jones Jewelcrafting Trainer Timothy Jones Jewelcrafting Trainer service_npc 98589 4395 4395 dalaran 0 0 +poi_npc_98803 service 571 5860.99 707.239 643.355 4.39823 1 Professor Pallin Inscription Trainer Professor Pallin Inscription Trainer service_npc 98803 4395 4395 dalaran 0 0 +poi_npc_98806 service 571 577.173 -4950.83 18.0981 3.33358 1 Fayin Whisperleaf Herbalism Trainer Fayin Whisperleaf Herbalism Trainer service_npc 98806 3981 495 howlingfjord 0 0 +poi_npc_98841 service 571 554.88 -5018.89 11.5043 1.8326 1 Bernadette Dexter Leatherworking Trainer Bernadette Dexter Leatherworking Trainer service_npc 98841 3981 495 howlingfjord 0 0 +poi_npc_98842 service 571 5889.27 698.529 643.266 1.6057 1 Linzy Blackbolt Alchemy Trainer Linzy Blackbolt Alchemy Trainer service_npc 98842 4395 4395 dalaran 0 0 +poi_npc_98860 service 571 537.788 -5020.13 10.6239 0.907571 1 Grumbol Stoutpick Mining Trainer Grumbol Stoutpick Mining Trainer service_npc 98860 3981 495 howlingfjord 0 0 +poi_npc_98866 service 571 5878.11 696.354 644.913 4.06662 1 Dorothy Egan Herbalism Trainer Dorothy Egan Herbalism Trainer service_npc 98866 4620 4395 dalaran 0 0 +poi_npc_98952 service 571 5707.61 715.535 642.472 0.837758 1 Katherine Lee Cooking Trainer Katherine Lee Cooking Trainer service_npc 98952 4395 4395 dalaran 0 0 +poi_npc_98959 service 571 548.9 -5021.24 11.0368 1.71042 1 Frederic Burrhus Skinning Trainer Frederic Burrhus Skinning Trainer service_npc 98959 3981 495 howlingfjord 0 0 +poi_npc_99018 service 571 588.854 -4938.71 28.1742 4.45059 1 Benjamin Clegg Tailoring Trainer Benjamin Clegg Tailoring Trainer service_npc 99018 4379 495 howlingfjord 0 0 +poi_npc_99029 service 571 5860.29 749.055 640.564 5.13127 1 Olisarra the Kind First Aid Trainer Olisarra the Kind First Aid Trainer service_npc 99029 4395 4395 dalaran 0 0 +poi_npc_99181 service 571 542.818 -5020.94 10.6891 0.925025 1 Ounhulo Jewelcrafting Trainer Ounhulo Jewelcrafting Trainer service_npc 99181 3981 495 howlingfjord 0 0 +poi_npc_99197 service 571 599.037 -4920.18 29.7398 5.02655 1 Mindri Dinkles Inscription Trainer Mindri Dinkles Inscription Trainer service_npc 99197 4379 495 howlingfjord 0 0 +poi_npc_99371 tavern 571 2779.23 927.021 22.6099 5.23599 1 Caregiver Mumik Innkeeper Caregiver Mumik Innkeeper service_npc 99371 4152 65 dragonblight 0 0 +poi_tele_1 landmark 529 1054.94 1055.23 -48.2358 0.313367 1 AB AB game_tele 1 3421 3358 arathibasin 0 0 +poi_tele_10 landmark 0 2799.46 847.549 111.842 0.509892 1 AgamandMills AgamandMills game_tele 10 157 85 tirisfalglades 0 2 +poi_tele_100 landmark 0 -7179.34 -921.212 165.821 5.09599 1 BlackrockDepths BlackrockDepths game_tele 100 25 25 blackrockmountain 0 0 +poi_tele_1000 landmark 1 -8243.79 -1081.22 -201.915 2.1135 1 TerrorRun TerrorRun game_tele 1000 539 490 ungorocrater 0 0 +poi_tele_1001 landmark 0 2739.7 -2465.84 73.5058 5.39901 1 TerrorwebTunnel TerrorwebTunnel game_tele 1001 2626 139 easternplaguelands 0 0 +poi_tele_1002 landmark 0 -7585.46 -2720.35 134.451 5.65201 1 TerrorWingPath TerrorWingPath game_tele 1002 2420 46 burningsteppes 0 0 +poi_tele_1003 landmark 1 43.7346 1785.5 110.983 2.83589 1 TethrisAran TethrisAran game_tele 1003 2404 405 desolace 0 0 +poi_tele_1004 landmark 1 -4525.63 -791.364 -42.3639 1.09938 1 Thalanaar Thalanaar game_tele 1004 489 357 feralas 0 0 +poi_tele_1005 settlement 1 4337.93 -6105.19 122.737 4.99736 1 ThalassianBaseCamp ThalassianBaseCamp game_tele 1005 1220 16 azshara 0 2 +poi_tele_1006 landmark 530 6480.81 -6851.1 100.15 3.10746 1 ThalassianPass ThalassianPass game_tele 1006 3861 3433 ghostlands 0 2 +poi_tele_1007 landmark 0 -2363.54 -2503.22 88.3441 1.25443 1 ThandolSpan ThandolSpan game_tele 1007 880 45 arathihighlands 0 0 +poi_tele_1008 landmark 530 -3597.86 1879.9 47.2408 4.94268 1 TheAltarOfDamnation TheAltarOfDamnation game_tele 1008 3928 3520 shadowmoonvalley 0 0 +poi_tele_1009 landmark 530 -4559.69 1014.4 10.9432 0.447663 1 TheAltarOfShadows TheAltarOfShadows game_tele 1009 3944 3520 shadowmoonvalley 0 0 +poi_tele_101 zone 0 -7494.94 -1123.49 265.547 3.3092 1 BlackrockMountain BlackrockMountain game_tele 101 25 25 blackrockmountain 1 0 +poi_tele_1010 landmark 0 -271.689 -3438.52 187.18 3.93027 1 TheAltarOfZul TheAltarOfZul game_tele 1010 355 47 thehinterlands 0 0 +poi_tele_1011 landmark 0 1514.38 323.128 -62.1661 2.31096 1 TheApothecarium TheApothecarium game_tele 1011 1497 1497 undercity 0 2 +poi_tele_1012 landmark 530 3308.92 1340.72 505.56 4.94686 1 TheArcatraz TheArcatraz game_tele 1012 3842 3523 netherstorm 0 0 +poi_tele_1013 landmark 1 884.54 -3548.45 91.8532 2.95957 1 TheBarrens TheBarrens game_tele 1013 17 17 northernbarrens 0 2 +poi_tele_1014 landmark 530 -1366.97 5905.97 191.618 5.17124 1 TheBarrierHills TheBarrierHills game_tele 1014 3696 3519 terokkarforest 0 0 +poi_tele_1015 landmark 530 9687.22 -7175.47 13.9257 1.37183 1 TheBazaar TheBazaar game_tele 1015 3487 3487 silvermooncity 0 2 +poi_tele_1016 landmark 1 -8734.3 -4230.11 -209.5 2.16212 1 TheBlackMorass TheBlackMorass game_tele 1016 2300 440 tanaris 0 0 +poi_tele_1017 landmark 530 -1218.3 -12837.2 0.001255 3.77931 1 TheBloodcursedReff TheBloodcursedReff game_tele 1017 3604 3525 bloodmystisle 0 1 +poi_tele_1018 landmark 530 -291.324 3149.1 31.5541 2.27147 1 TheBloodFurnace TheBloodFurnace game_tele 1018 3955 3483 hellfirepeninsula 0 0 +poi_tele_1019 landmark 530 -3537.02 4572.27 -20.9226 3.55964 1 TheBoneWastes TheBoneWastes game_tele 1019 3697 3519 terokkarforest 0 0 +poi_tele_102 landmark 0 -8520.94 -2559.99 133.334 3.27225 1 BlackrockPass BlackrockPass game_tele 102 2417 46 burningsteppes 0 0 +poi_tele_1020 landmark 530 3407.11 1488.48 182.838 5.59559 1 TheBotanica TheBotanica game_tele 1020 3842 3523 netherstorm 0 0 +poi_tele_1021 landmark 0 1711.99 -719.761 54.3351 4.66387 1 TheBulwark TheBulwark game_tele 1021 152 85 tirisfalglades 0 2 +poi_tele_1022 zone 0 -14087 290.316 15.7614 3.9234 1 TheCapeOfStranglethorn TheCapeOfStranglethorn game_tele 1022 5287 5287 thecapeofstranglethorn 1 0 +poi_tele_1023 landmark 0 -6939.52 -1263.21 179.709 0.200595 1 TheCauldron TheCauldron game_tele 1023 246 51 searinggorge 0 0 +poi_tele_1024 landmark 1 721.568 1494.15 -18.1516 1.85895 1 TheCharredValed TheCharredValed game_tele 1024 406 406 stonetalonmountains 0 0 +poi_tele_1025 landmark 1 10303.8 1198.57 1457.46 3.0779 1 TheCleft TheCleft game_tele 1025 263 141 teldrassil 0 1 +poi_tele_1026 landmark 0 -9498.58 -1921.71 78.7092 0.662431 1 TheCorners TheCorners game_tele 1026 1002 44 redridgemountains 0 0 +poi_tele_1027 ruins 0 120.332 -3456.52 108.157 4.37088 1 TheCreepingRuin TheCreepingRuin game_tele 1027 1886 47 thehinterlands 0 0 +poi_tele_1028 landmark 530 -2510.36 -12488.4 2.03858 4.73043 1 TheCrimsonReach TheCrimsonReach game_tele 1028 3589 3525 bloodmystisle 0 1 +poi_tele_1029 landmark 1 -452.84 -2650.76 95.5209 0.241081 1 TheCrossroads TheCrossroads game_tele 1029 380 17 northernbarrens 0 2 +poi_tele_103 landmark 0 -7527.05 -1226.77 285.732 5.29626 1 BlackrockSpire BlackrockSpire game_tele 103 25 25 blackrockmountain 0 0 +poi_tele_1030 landmark 530 -2054.45 -11389.9 61.4746 2.05143 1 TheCryocore TheCryocore game_tele 1030 3588 3525 bloodmystisle 0 1 +poi_tele_1031 landmark 530 -3821.99 -11489.4 -138.564 1.09563 1 TheCrystalHall TheCrystalHall game_tele 1031 3557 3557 theexodar 0 1 +poi_tele_1032 landmark 0 -14081.3 -144.113 3.68835 4.61063 1 TheCrystalShore TheCrystalShore game_tele 1032 302 5287 thecapeofstranglethorn 0 0 +poi_tele_1033 landmark 1 -6248.2 1695.54 6.3349 3.55227 1 TheCrystalVale TheCrystalVale game_tele 1033 2740 1377 silithus 0 0 +poi_tele_1034 landmark 0 -11276.9 1428.07 89.7866 1.29233 1 TheDaggerHills TheDaggerHills game_tele 1034 920 40 westfall 0 1 +poi_tele_1035 bank 0 -9966.63 -614.729 34.8066 5.94737 1 TheDarkenedBank TheDarkenedBank game_tele 1035 799 10 duskwood 0 0 +poi_tele_1036 landmark 0 -11840.1 -3196.63 -29.6059 3.3391 1 TheDarkPortal TheDarkPortal game_tele 1036 72 4 blasted_lands 0 0 +poi_tele_1037 landmark 530 -247.29 910.638 84.3798 1.49341 1 TheDarkPortalOutland TheDarkPortalOutland game_tele 1037 3539 3483 hellfirepeninsula 0 0 +poi_tele_1038 landmark 0 1173.43 372.651 33.9918 4.07796 1 TheDawningIsles TheDawningIsles game_tele 1038 232 130 silverpineforest 0 2 +poi_tele_1039 landmark 0 -10821.8 869.442 33.0338 0.631022 1 TheDeadAcre TheDeadAcre game_tele 1039 917 40 westfall 0 1 +poi_tele_104 landmark 0 -7733.43 -1510.24 132.792 1.01584 1 BlackrockStronghold BlackrockStronghold game_tele 104 5653 46 burningsteppes 0 0 +poi_tele_1040 landmark 0 1064.64 1551.05 28.3425 3.01297 1 TheDeadField TheDeadField game_tele 1040 5386 130 silverpineforest 0 2 +poi_tele_1041 zone 0 -11208.7 1673.52 24.6361 1.51067 1 TheDeadmines TheDeadmines game_tele 1041 1581 1581 thedeadmines 1 1 +poi_tele_1042 landmark 530 664.515 5349.82 -23.1373 0.875759 1 TheDeadMire TheDeadMire game_tele 1042 3648 3521 zangarmarsh 0 0 +poi_tele_1043 landmark 530 9013.29 -6930.75 17.8158 2.99131 1 TheDeadScar TheDeadScar game_tele 1043 3482 3430 eversongwoods 0 2 +poi_tele_1044 workshop 530 -3435.61 2044.34 79.0861 5.47439 1 TheDeathforge TheDeathforge game_tele 1044 3748 3520 shadowmoonvalley 0 0 +poi_tele_1045 landmark 0 658.574 1011.34 44.6068 5.4367 1 TheDecrepitFerry TheDecrepitFerry game_tele 1045 237 130 silverpineforest 0 2 +poi_tele_1046 landmark 1 -603.88 -4191.68 41.0998 1.55607 1 TheDen TheDen game_tele 1046 364 14 durotar 0 2 +poi_tele_1047 landmark 1 -4303.61 -3041.87 29.9607 1.55428 1 TheDenOfFlame TheDenOfFlame game_tele 1047 509 15 dustwallowmarsh 0 0 +poi_tele_1048 landmark 1 1775.99 -2663.07 109.366 4.96353 1 TheDorDanilBarrowDen TheDorDanilBarrowDen game_tele 1048 432 331 ashenvale 0 0 +poi_tele_1049 landmark 1 1913.54 -4490.07 23.16 4.13223 1 TheDrag TheDrag game_tele 1049 5167 1637 orgrimmar 0 2 +poi_tele_105 landmark 530 -2348.01 -11059.3 0.530463 2.53917 1 BlacksiltShore BlacksiltShore game_tele 105 3594 3525 bloodmystisle 0 1 +poi_tele_1050 landmark 1 -4558.57 -2934.04 35.306 4.21758 1 TheDragonmurk TheDragonmurk game_tele 1050 510 15 dustwallowmarsh 0 0 +poi_tele_1051 landmark 0 -2273.25 -1723.87 -56.5399 1.61234 1 TheDrownedReef TheDrownedReef game_tele 1051 328 45 arathihighlands 0 0 +poi_tele_1052 landmark 1 748.603 -1348.11 92.6076 0.122718 1 TheDryHills TheDryHills game_tele 1052 383 17 northernbarrens 0 2 +poi_tele_1053 landmark 0 -6614.72 -2629.53 265.833 0.843023 1 TheDustbowl TheDustbowl game_tele 1053 1878 3 badlands 0 0 +poi_tele_1054 landmark 0 -11110.5 600.244 36.5205 4.15746 1 TheDustPlains TheDustPlains game_tele 1054 922 40 westfall 0 1 +poi_tele_1055 zone 530 -3965.7 -11653.6 -138.844 0.852154 1 TheExodar TheExodar game_tele 1055 3557 3557 theexodar 1 1 +poi_tele_1056 landmark 530 3088.49 1381.57 184.863 4.61973 1 TheEye TheEye game_tele 1056 3842 3523 netherstorm 0 0 +poi_tele_1057 landmark 530 -3536.55 1631.94 45.0453 4.57511 1 TheFelPits TheFelPits game_tele 1057 3747 3520 shadowmoonvalley 0 0 +poi_tele_1058 landmark 530 -3452.24 2747.76 127.219 1.28272 1 TheFetidPool TheFetidPool game_tele 1058 3940 3520 shadowmoonvalley 0 0 +poi_tele_1059 landmark 1 -4347.46 2415.11 8.00515 1.52603 1 TheForgottenCoast TheForgottenCoast game_tele 1059 1108 357 feralas 0 0 +poi_tele_106 landmark 530 -3649.92 317.469 35.2827 2.94285 1 BlackTemple BlackTemple game_tele 106 3520 3520 shadowmoonvalley 0 0 +poi_tele_1060 landmark 1 141.278 -1948.08 94.318 3.13864 1 TheForgottenPools TheForgottenPools game_tele 1060 386 17 northernbarrens 0 2 +poi_tele_1061 ruins 0 -4624.25 -1097.17 501.273 3.00102 1 TheForlornCavern TheForlornCavern game_tele 1061 4679 1537 ironforge 0 1 +poi_tele_1062 landmark 0 2448.89 -3708.71 177.867 5.66288 1 TheFungalVale TheFungalVale game_tele 1062 2258 139 easternplaguelands 0 0 +poi_tele_1063 landmark 1 -8877.71 -3953.51 9.90049 4.17595 1 TheGapingChasm TheGapingChasm game_tele 1063 981 440 tanaris 0 0 +poi_tele_1064 landmark 1 -1059.43 -678.757 -53.0876 3.4738 1 TheGoldenPlains TheGoldenPlains game_tele 1064 820 215 mulgore 0 2 +poi_tele_1065 landmark 0 2874.85 -765.215 160.333 5.09183 1 TheGrandVestibule TheGrandVestibule game_tele 1065 796 796 scarletmonastery 0 2 +poi_tele_1066 landmark 0 -13226.2 228.625 33.1421 1.37088 1 TheGreatArena TheGreatArena game_tele 1066 1741 5287 thecapeofstranglethorn 0 0 +poi_tele_1067 landmark 530 -630.013 3967.65 28.9957 5.30639 1 TheGreatFissure TheGreatFissure game_tele 1067 3543 3483 hellfirepeninsula 0 0 +poi_tele_1068 workshop 0 -4792.95 -1119.12 498.806 2.17085 1 TheGreatForge TheGreatForge game_tele 1068 5342 1537 ironforge 0 1 +poi_tele_1069 landmark 1 -4608.03 -1851.45 86.1002 3.08268 1 TheGreatLift TheGreatLift game_tele 1069 485 400 thousandneedles 0 0 +poi_tele_107 landmark 1 -3945.67 -1776.91 91.6706 0.595491 1 BlackthornRidge BlackthornRidge game_tele 107 4709 4709 southernbarrens 0 0 +poi_tele_1070 landmark 0 -3372.12 -3082.42 22.0718 2.24279 1 TheGreenBelt TheGreenBelt game_tele 1070 1025 11 wetlands 0 0 +poi_tele_1071 landmark 0 -715.077 1503.82 11.4471 2.58024 1 TheGreymaneWall TheGreymaneWall game_tele 1071 5456 130 silverpineforest 0 2 +poi_tele_1072 mine 0 -7390.69 -941.553 169.43 3.90454 1 TheGrindingQuarry TheGrindingQuarry game_tele 1072 25 25 blackrockmountain 0 0 +poi_tele_1073 landmark 0 -5679.22 -294.234 369.284 0.35122 1 TheGrizzledDen TheGrizzledDen game_tele 1073 136 1 dun_morogh 0 1 +poi_tele_1074 landmark 530 -3674.68 1344.99 275.705 3.38664 1 TheHandOfGulDan TheHandOfGulDan game_tele 1074 3746 3520 shadowmoonvalley 0 0 +poi_tele_1075 landmark 0 -10126 -2834.73 22.2157 0.674244 1 TheHarborage TheHarborage game_tele 1075 657 8 swampofsorrows 0 0 +poi_tele_1076 landmark 0 -16.6821 -333.396 131.146 0.8126 1 TheHeadland TheHeadland game_tele 1076 1680 267 hillsbradfoothills 0 0 +poi_tele_1077 landmark 530 2662.78 3766.07 143.16 2.69827 1 TheHeap TheHeap game_tele 1077 3729 3523 netherstorm 0 0 +poi_tele_1078 landmark 1 7645.61 -4931 697.11 0.777426 1 TheHiddenCove TheHiddenCove game_tele 1078 618 618 winterspring 0 0 +poi_tele_1079 zone 0 119.387 -3190.37 117.331 2.34064 1 TheHinterlands TheHinterlands game_tele 1079 47 47 thehinterlands 1 0 +poi_tele_108 landmark 530 -3663.45 3577.09 259.226 3.19599 1 BlackwindLake BlackwindLake game_tele 108 3690 3519 terokkarforest 0 0 +poi_tele_1080 landmark 1 3156.34 -1176.21 216.451 4.79547 1 TheHowlingVale TheHowlingVale game_tele 1080 4690 331 ashenvale 0 0 +poi_tele_1081 bank 0 -10322.3 635.42 26.6725 4.82819 1 TheHushedBank TheHushedBank game_tele 1081 1097 10 duskwood 0 0 +poi_tele_1082 landmark 0 1918.81 -4104.45 67.9526 5.43984 1 TheInfectisScar TheInfectisScar game_tele 1082 2623 139 easternplaguelands 0 0 +poi_tele_1083 landmark 0 1258.38 1207.68 52.6055 0.010372 1 TheIvarPatch TheIvarPatch game_tele 1083 239 130 silverpineforest 0 2 +poi_tele_1084 landmark 0 -9824.42 991.59 29.1302 1.81697 1 TheJansenStead TheJansenStead game_tele 1084 916 40 westfall 0 1 +poi_tele_1085 landmark 530 -212.967 6697.84 21.9545 4.46685 1 TheLagoon TheLagoon game_tele 1085 3659 3521 zangarmarsh 0 0 +poi_tele_1086 landmark 530 -469.406 1769.22 48.8923 5.22312 1 TheLegionFront TheLegionFront game_tele 1086 3804 3483 hellfirepeninsula 0 0 +poi_tele_1087 landmark 0 -3911.04 -2581.19 44.066 1.00735 1 ThelgenRock ThelgenRock game_tele 1087 1021 11 wetlands 0 0 +poi_tele_1088 landmark 530 1835.86 6820.31 139.508 4.81166 1 TheLivingGrove TheLivingGrove game_tele 1088 3771 3522 bladesedgemountains 0 0 +poi_tele_1089 landmark 530 8702.12 -7557.77 89.7481 4.17962 1 TheLivingWood TheLivingWood game_tele 1089 3471 3430 eversongwoods 0 2 +poi_tele_109 landmark 530 -3636.25 3191.57 312.961 4.99533 1 BlackwindValley BlackwindValley game_tele 109 3680 3519 terokkarforest 0 0 +poi_tele_1090 landmark 0 -5289.82 -3482.56 297.605 6.2238 1 TheLoch TheLoch game_tele 1090 38 38 lochmodan 0 1 +poi_tele_1091 landmark 1 5937.02 523.751 1.58805 3.17606 1 TheLongWash TheLongWash game_tele 1091 453 148 darkshore 0 1 +poi_tele_1092 landmark 0 -2795.41 -1020.59 6.67844 2.57838 1 TheLostFleet TheLostFleet game_tele 1092 1039 11 wetlands 0 0 +poi_tele_1093 landmark 530 -2739.5 6042.77 35.8899 0.681148 1 TheLowPath TheLowPath game_tele 1093 3788 3518 nagrand 0 0 +poi_tele_1094 landmark 0 -5352.54 -2948.53 323.78 5.34258 1 Thelsamar Thelsamar game_tele 1094 144 38 lochmodan 0 1 +poi_tele_1095 landmark 0 -9935.13 86.7215 32.9021 4.73231 1 TheMaclureVineyards TheMaclureVineyards game_tele 1095 64 12 elwynn 0 1 +poi_tele_1096 landmark 0 -6049.42 -3305.28 257.85 2.26108 1 TheMakersTerrace TheMakersTerrace game_tele 1096 1897 3 badlands 0 0 +poi_tele_1097 landmark 0 1869.13 -3213.89 124.624 1.9126 1 TheMarrisStead TheMarrisStead game_tele 1097 2260 139 easternplaguelands 0 0 +poi_tele_1098 wilderness 1 -7775.56 -1923.59 -272.806 2.71513 1 TheMarshlands TheMarshlands game_tele 1098 1942 490 ungorocrater 0 0 +poi_tele_1099 landmark 1 4572.2 430.013 33.6399 3.80203 1 TheMastersGlaive TheMastersGlaive game_tele 1099 449 148 darkshore 0 1 +poi_tele_11 landmark 0 -7040.08 -3342.15 241.667 0.82338 1 AgmondsEnd AgmondsEnd game_tele 11 345 3 badlands 0 0 +poi_tele_110 landmark 530 3202.45 7117.62 173.86 3.63041 1 BlackwingCoven BlackwingCoven game_tele 110 3780 3522 bladesedgemountains 0 0 +poi_tele_1100 landmark 1 -3739.86 1093.8 131.969 3.09301 1 TheMaul TheMaul game_tele 1100 3217 357 feralas 0 0 +poi_tele_1101 landmark 530 2867.12 1549.42 252.159 3.82218 1 TheMechanar TheMechanar game_tele 1101 3842 3523 netherstorm 0 0 +poi_tele_1102 landmark 1 -855.206 -4072.39 1.35044 1.88279 1 TheMerchantCoast TheMerchantCoast game_tele 1102 391 17 northernbarrens 0 2 +poi_tele_1103 landmark 0 -4968.86 -1225.49 501.669 1.30248 1 TheMilitaryWard TheMilitaryWard game_tele 1103 5343 1537 ironforge 0 1 +poi_tele_1104 landmark 0 -4662.07 -952.721 500.378 3.64898 1 TheMistyWard TheMistyWard game_tele 1104 5344 1537 ironforge 0 1 +poi_tele_1105 landmark 0 -10247.5 1440.7 40.7233 3.92498 1 TheMolsenFarm TheMolsenFarm game_tele 1105 918 40 westfall 0 1 +poi_tele_1106 landmark 0 -7538.51 -1063.45 180.981 0.03409 1 TheMoltenSpan TheMoltenSpan game_tele 1106 25 25 blackrockmountain 0 0 +poi_tele_1107 landmark 1 1242.82 -2236.11 91.9476 3.83099 1 TheMorShanRampart TheMorShanRampart game_tele 1107 1703 17 northernbarrens 0 2 +poi_tele_1108 landmark 0 3021.37 -236.555 7.38714 0.881534 1 TheNorthCoast TheNorthCoast game_tele 1108 168 85 tirisfalglades 0 2 +poi_tele_1109 landmark 0 2677.02 -5303.72 153.226 5.25368 1 TheNoxiousGlade TheNoxiousGlade game_tele 1109 2270 139 easternplaguelands 0 0 +poi_tele_111 landmark 229 164.789 -475.305 116.842 0.022714 1 BlackwingLair BlackwingLair game_tele 111 1583 1583 blackrockspire 0 0 +poi_tele_1110 landmark 1 -7833.72 -2713.72 10.0944 1.12939 1 TheNoxiousLair TheNoxiousLair game_tele 1110 982 440 tanaris 0 0 +poi_tele_1111 landmark 1 10658.2 1930.28 1332.89 0.27247 1 TheOracleGlade TheOracleGlade game_tele 1111 264 141 teldrassil 0 1 +poi_tele_1112 landmark 530 -157.561 3437.57 60.4541 2.3525 1 TheOverlook TheOverlook game_tele 1112 3670 3483 hellfirepeninsula 0 0 +poi_tele_1113 landmark 0 -0.750207 -4657.33 11.0567 6.12818 1 TheOverlookCliffs TheOverlookCliffs game_tele 1113 307 47 thehinterlands 0 0 +poi_tele_1114 landmark 0 -8778.04 1066.56 90.781 1.2262 1 ThePark ThePark game_tele 1114 5409 1519 stormwind 0 1 +poi_tele_1115 landmark 530 -4311.8 1381.19 144.269 3.19908 1 ThePathOfConquest ThePathOfConquest game_tele 1115 3929 3520 shadowmoonvalley 0 0 +poi_tele_1116 landmark 530 -199.545 1657.92 43.6863 4.76602 1 ThePathOfGlory ThePathOfGlory game_tele 1116 3542 3483 hellfirepeninsula 0 0 +poi_tele_1117 landmark 0 -8075.47 -1686.41 131.836 1.28519 1 ThePillarOfAsh ThePillarOfAsh game_tele 1117 5652 46 burningsteppes 0 0 +poi_tele_1118 landmark 1 -1026.6 221.11 108.998 1.07758 1 ThePoolsOfVision ThePoolsOfVision game_tele 1118 2197 1638 thunderbluff 0 2 +poi_tele_1119 landmark 530 3073.95 3398.27 105.141 0.249392 1 TheProvingGrounds TheProvingGrounds game_tele 1119 3873 3523 netherstorm 0 0 +poi_tele_112 landmark 1 1398.08 179.4 12.3398 1.81183 1 BlackwolfRiver BlackwolfRiver game_tele 112 636 406 stonetalonmountains 0 0 +poi_tele_1120 landmark 1 -3743.96 -2933.6 35.9061 4.8082 1 TheQuagmire TheQuagmire game_tele 1120 2302 15 dustwallowmarsh 0 0 +poi_tele_1121 landmark 1 -3641.3 -4358.93 8.35467 3.81559 1 Theramore Theramore game_tele 1121 513 15 dustwallowmarsh 0 0 +poi_tele_1122 landmark 1 -3711.95 -4404.3 21.3729 4.03694 1 TheramoreIsle TheramoreIsle game_tele 1122 513 15 dustwallowmarsh 0 0 +poi_tele_1123 landmark 530 -717.31 7930.72 58.5098 4.77929 1 TheRingOfBlood TheRingOfBlood game_tele 1123 3700 3518 nagrand 0 0 +poi_tele_1124 landmark 530 -1999.94 6581.71 11.32 2.36528 1 TheRingOfTrials TheRingOfTrials game_tele 1124 3638 3518 nagrand 0 0 +poi_tele_1125 landmark 1 2136.95 -4739.25 50.4957 0.299454 1 TheRingOfValor TheRingOfValor game_tele 1125 5168 1637 orgrimmar 0 2 +poi_tele_1126 landmark 1 -2590.98 -1056.52 -3.74557 5.09009 1 TheRollingPlains TheRollingPlains game_tele 1126 821 215 mulgore 0 2 +poi_tele_1127 landmark 0 -11028.6 -883.618 61.4453 4.14486 1 TheRottingOrchard TheRottingOrchard game_tele 1127 241 10 duskwood 0 0 +poi_tele_1128 landmark 530 9619.83 -7449.09 13.5847 6.04494 1 TheRoyalExchange TheRoyalExchange game_tele 1128 3487 3487 silvermooncity 0 2 +poi_tele_1129 ruins 1 2374.69 -5904.33 11.4691 2.12828 1 TheRuinedReaches TheRuinedReaches game_tele 1129 1256 16 azshara 0 2 +poi_tele_113 landmark 1 4621.7 33.6288 69.6487 4.35643 1 BlackwoodDen BlackwoodDen game_tele 113 455 148 darkshore 0 1 +poi_tele_1130 ruins 1 -8409.82 1499.06 27.7179 2.51868 1 TheRuinsOfAhnQiraj TheRuinsOfAhnQiraj game_tele 1130 5695 5695 ahnqirajthefallenkingdom 0 0 +poi_tele_1131 ruins 1 6440.9 -4289.75 666.743 0.780563 1 TheRuinsOfKelTheril TheRuinsOfKelTheril game_tele 1131 2252 618 winterspring 0 0 +poi_tele_1132 ruins 1 3508.82 -109.892 0.824844 3.53256 1 TheRuinsOfOrdilAran TheRuinsOfOrdilAran game_tele 1132 412 331 ashenvale 0 0 +poi_tele_1133 ruins 1 2104.12 -226.389 97.064 5.19053 1 TheRuinsOfStardust TheRuinsOfStardust game_tele 1133 418 331 ashenvale 0 0 +poi_tele_1134 landmark 1 -6453.01 -3497.6 -58.8657 3.69926 1 TheRustmaulDigSite TheRustmaulDigSite game_tele 1134 5591 400 thousandneedles 0 0 +poi_tele_1135 landmark 530 9788.65 -7293.19 13.3877 3.41072 1 TheSanctum TheSanctum game_tele 1135 3487 3487 silvermooncity 0 2 +poi_tele_1136 landmark 0 -12619.3 -40.9729 28.0657 1.30488 1 TheSavageCoast TheSavageCoast game_tele 1136 301 33 northernstranglethorn 0 0 +poi_tele_1137 landmark 1 -8066.33 1634.51 24.3409 1.55029 1 TheScarabDais TheScarabDais game_tele 1137 2741 1377 silithus 0 0 +poi_tele_1138 landmark 1 -8098.67 1525.15 2.77194 3.01977 1 TheScarabWall TheScarabWall game_tele 1138 2737 1377 silithus 0 0 +poi_tele_1139 landmark 1 -8097.76 1502.46 2.60945 4.17432 1 TheScaradWalp TheScaradWalp game_tele 1139 2737 1377 silithus 0 0 +poi_tele_114 landmark 0 2493.53 -4222.79 74.027 1.21046 1 BlackwoodLake BlackwoodLake game_tele 114 2624 139 easternplaguelands 0 0 +poi_tele_1140 landmark 0 1616.01 -5519.79 109.33 4.16042 1 TheScarletBasilica TheScarletBasilica game_tele 1140 2266 139 easternplaguelands 0 0 +poi_tele_1141 landmark 530 8158.19 -6340.32 66.7171 0.029571 1 TheScorchedGrove TheScorchedGrove game_tele 1141 3474 3430 eversongwoods 0 2 +poi_tele_1142 landmark 530 3223.19 2677.41 144.211 0.984536 1 TheScrapField TheScrapField game_tele 1142 3727 3523 netherstorm 0 0 +poi_tele_1143 landmark 1 -5394.77 -1662.67 -54.1244 3.08822 1 TheScreechingCanyon TheScreechingCanyon game_tele 1143 5590 400 thousandneedles 0 0 +poi_tele_1144 landmark 0 -7048.17 -1493.56 241.598 0.319151 1 TheSeaOfCinders TheSeaOfCinders game_tele 1144 1444 51 searinggorge 0 0 +poi_tele_1145 landmark 0 504.534 1539.08 129.502 1.35812 1 TheSepulcher TheSepulcher game_tele 1145 228 130 silverpineforest 0 2 +poi_tele_1146 landmark 530 -3106.88 4946.71 -22.5348 3.21013 1 TheShadowStair TheShadowStair game_tele 1146 3956 3519 terokkarforest 0 0 +poi_tele_1147 landmark 1 2312.29 -1893.78 68.3491 5.94215 1 TheShadyNook TheShadyNook game_tele 1147 427 331 ashenvale 0 0 +poi_tele_1148 landmark 530 -305.79 3061.63 -2.53847 1.88888 1 TheShatteredHalls TheShatteredHalls game_tele 1148 3545 3483 hellfirepeninsula 0 0 +poi_tele_1149 landmark 1 3858.59 -5663.59 13.7294 4.55518 1 TheShatteredStrand TheShatteredStrand game_tele 1149 1228 16 azshara 0 2 +poi_tele_115 landmark 530 2899.4 5081.33 264.302 1.15416 1 BladedGulch BladedGulch game_tele 115 3867 3522 bladesedgemountains 0 0 +poi_tele_1150 landmark 0 -10197.5 -3222.68 20.3199 2.60154 1 TheShiftingMire TheShiftingMire game_tele 1150 1798 8 swampofsorrows 0 0 +poi_tele_1151 landmark 1 -5588.82 -3752.19 -58.7494 4.1972 1 TheShimmeringFlats TheShimmeringFlats game_tele 1151 5025 400 thousandneedles 0 0 +poi_tele_1152 landmark 0 1338.49 712.097 33.2729 3.49676 1 TheShiningStrand TheShiningStrand game_tele 1152 927 130 silverpineforest 0 2 +poi_tele_1153 landmark 1 2622.09 448.504 73.5894 5.07272 1 TheShrineOfAessina TheShrineOfAessina game_tele 1153 416 331 ashenvale 0 0 +poi_tele_1154 landmark 0 1247.04 1944.64 12.595 0.200456 1 TheSkitteringDark TheSkitteringDark game_tele 1154 226 130 silverpineforest 0 2 +poi_tele_1155 landmark 0 -6767.57 -1421.64 210.383 0.609748 1 TheSlagPit TheSlagPit game_tele 1155 1443 51 searinggorge 0 0 +poi_tele_1156 landmark 530 717.282 6979.87 -73.0281 1.50287 1 TheSlavePens TheSlavePens game_tele 1156 3905 3521 zangarmarsh 0 0 +poi_tele_1157 landmark 1 -7884.39 -1338.18 -279.648 2.89812 1 TheSlitheringScar TheSlitheringScar game_tele 1157 540 490 ungorocrater 0 0 +poi_tele_1158 landmark 1 1058.98 -3169.91 103.805 1.80111 1 TheSludgeFen TheSludgeFen game_tele 1158 382 17 northernbarrens 0 2 +poi_tele_1159 landmark 530 -100.415 8775 18.7677 0.508193 1 TheSpawningGlen TheSpawningGlen game_tele 1159 3647 3521 zangarmarsh 0 0 +poi_tele_116 landmark 1 1324.36 -5005.13 0.814836 5.04482 1 BladefistBay BladefistBay game_tele 116 374 14 durotar 0 2 +poi_tele_1160 landmark 530 -296.918 3661.74 70.3319 1.55139 1 TheStadium TheStadium game_tele 1160 3669 3483 hellfirepeninsula 0 0 +poi_tele_1161 landmark 1 -1332.03 -3009.5 90.8255 0.266427 1 TheStagnantOasis TheStagnantOasis game_tele 1161 388 17 northernbarrens 0 2 +poi_tele_1162 landmark 530 -248 956 84.3628 1.58766 1 TheStairOfDestiny TheStairOfDestiny game_tele 1162 3539 3483 hellfirepeninsula 0 0 +poi_tele_1163 landmark 530 794.537 6927.81 -80.4757 0.159089 1 TheSteamvault TheSteamvault game_tele 1163 3905 3521 zangarmarsh 0 0 +poi_tele_1164 landmark 0 -11511 -703.088 35.6861 5.22091 1 TheStockpile TheStockpile game_tele 1164 106 33 northernstranglethorn 0 0 +poi_tele_1165 landmark 0 -9917.83 384.428 35.0559 5.35278 1 THeStonefieldFarm THeStonefieldFarm game_tele 1165 63 12 elwynn 0 1 +poi_tele_1166 landmark 530 4150.19 3015.92 339.188 4.0499 1 TheStormspire TheStormspire game_tele 1166 3738 3523 netherstorm 0 0 +poi_tele_1167 landmark 0 -10177.9 -3994.9 -111.239 6.01885 1 TheSunkenTemple TheSunkenTemple game_tele 1167 1477 1477 thetempleofatalhakkar 0 0 +poi_tele_1168 landmark 530 10353.4 -6395.35 38.5292 1.45664 1 TheSunspire TheSunspire game_tele 1168 3431 3430 eversongwoods 0 2 +poi_tele_1169 landmark 1 -7136.04 586.608 9.01752 1.21736 1 TheSwarmingPillar TheSwarmingPillar game_tele 1169 3097 1377 silithus 0 0 +poi_tele_117 zone 530 3037.67 5962.86 130.774 1.27253 1 BladesEdgeMountains BladesEdgeMountains game_tele 117 3522 3522 bladesedgemountains 1 0 +poi_tele_1170 landmark 0 -11892.7 -2647.08 -4.68415 3.69096 1 TheTaintedScar TheTaintedScar game_tele 1170 5044 4 blasted_lands 0 0 +poi_tele_1171 landmark 1 1945.42 -742.68 112.78 2.76364 1 TheTalondeepPath TheTalondeepPath game_tele 1171 1276 331 ashenvale 0 0 +poi_tele_1172 landmark 1 2417.77 1790.01 393.666 2.00589 1 TheTalonDen TheTalonDen game_tele 1172 468 406 stonetalonmountains 0 0 +poi_tele_1173 landmark 1 9826.5 2533.55 1321.09 3.1706 1 TheTempleGardens TheTempleGardens game_tele 1173 1657 1657 darnassus 0 1 +poi_tele_1174 landmark 1 -8240.09 1991.32 129.072 0.941603 1 TheTempleOfAhnQiraj TheTempleOfAhnQiraj game_tele 1174 5695 5695 ahnqirajthefallenkingdom 0 0 +poi_tele_1175 zone 0 -10449.5 -3827.47 18.0675 6.04945 1 TheTempleOfAtalHakkar TheTempleOfAtalHakkar game_tele 1175 1477 1477 thetempleofatalhakkar 1 0 +poi_tele_1176 landmark 0 -10447.1 -3824.83 18.0678 6.07301 1 TheTempleOfTears TheTempleOfTears game_tele 1176 1477 1477 thetempleofatalhakkar 0 0 +poi_tele_1177 landmark 0 -5812.99 -1180.16 378.179 5.84509 1 TheTundridHills TheTundridHills game_tele 1177 804 1 dun_morogh 0 1 +poi_tele_1178 landmark 530 -1376.82 9616.71 201.301 2.64604 1 TheTwilightRidge TheTwilightRidge game_tele 1178 3764 3518 nagrand 0 0 +poi_tele_1179 landmark 1 -3183.13 2402.97 254.1 4.02663 1 TheTwinColossals TheTwinColossals game_tele 1179 1119 357 feralas 0 0 +poi_tele_118 landmark 530 2209.1 6376.61 -10.338 3.27783 1 BladespireGrounds BladespireGrounds game_tele 118 3931 3522 bladesedgemountains 0 0 +poi_tele_1180 landmark 530 763.307 6767.81 -67.7695 5.99726 1 TheUnderbog TheUnderbog game_tele 1180 3905 3521 zangarmarsh 0 0 +poi_tele_1181 landmark 0 1655.1 -3258.48 84.1786 3.27451 1 TheUndercroft TheUndercroft game_tele 1181 2261 139 easternplaguelands 0 0 +poi_tele_1182 landmark 0 1093.26 -684.829 82.0192 5.18414 1 TheUplands TheUplands game_tele 1182 284 267 hillsbradfoothills 0 0 +poi_tele_1183 landmark 530 -4073.9 -11426.1 -141.433 2.05381 1 TheVaultOfLights TheVaultOfLights game_tele 1183 3557 3557 theexodar 0 1 +poi_tele_1184 landmark 530 -1897.51 -10710.7 110.708 1.17888 1 TheVectorCoil TheVectorCoil game_tele 1184 3586 3525 bloodmystisle 0 1 +poi_tele_1185 zone 530 -4263.27 -11338 5.59938 1.67446 1 TheVeiledSea TheVeiledSea game_tele 1185 3479 3479 theveiledsea 1 1 +poi_tele_1186 mine 1 -1896.77 -1104.8 88.4923 5.78989 1 TheVentureCoMine TheVentureCoMine game_tele 1186 360 215 mulgore 0 2 +poi_tele_1187 landmark 0 -10879.6 -2206.99 122.514 3.74515 1 TheVice TheVice game_tele 1187 2561 41 deadwindpass 0 0 +poi_tele_1188 landmark 0 -12163.2 551.904 12.1557 4.11665 1 TheVileReef TheVileReef game_tele 1188 104 33 northernstranglethorn 0 0 +poi_tele_1189 landmark 530 2242.67 2240.95 101.525 4.06407 1 TheVioletTower TheVioletTower game_tele 1189 3733 3523 netherstorm 0 0 +poi_tele_119 landmark 530 2639.37 6526.93 0.818903 6.17248 1 BladespireHold BladespireHold game_tele 119 3773 3522 bladesedgemountains 0 0 +poi_tele_1190 landmark 530 3142.74 1895.54 144.578 1.53825 1 TheVortexFields TheVortexFields game_tele 1190 3728 3523 netherstorm 0 0 +poi_tele_1191 ruins 1 -805.049 -2032.03 95.8796 6.18912 1 TheWailingCaverns TheWailingCaverns game_tele 1191 718 718 wailingcaverns 0 2 +poi_tele_1192 landmark 530 -1408.9 3321.58 34.6189 4.03089 1 TheWarpFields TheWarpFields game_tele 1192 3796 3483 hellfirepeninsula 0 0 +poi_tele_1193 landmark 530 -1230.03 -11808.4 6.76926 6.23447 1 TheWarpPiston TheWarpPiston game_tele 1193 3587 3525 bloodmystisle 0 1 +poi_tele_1194 landmark 1 -5209.65 -2795.71 -7.20066 5.88581 1 TheWeatheredNook TheWeatheredNook game_tele 1194 400 400 thousandneedles 0 0 +poi_tele_1195 ruins 0 2244.95 -2401.97 60.6771 1.16648 1 TheWeepingCave TheWeepingCave game_tele 1195 198 28 westernplaguelands 0 0 +poi_tele_1196 landmark 1 -5154.02 214.92 52.8355 3.86268 1 TheWrithingDeep TheWrithingDeep game_tele 1196 1101 357 feralas 0 0 +poi_tele_1197 landmark 0 1453.28 -1864.44 58.7015 5.81604 1 TheWrithingHaunt TheWrithingHaunt game_tele 1197 202 28 westernplaguelands 0 0 +poi_tele_1198 landmark 0 -11049.3 -488.388 30.2968 3.20631 1 TheYorgenFarmstead TheYorgenFarmstead game_tele 1198 245 10 duskwood 0 0 +poi_tele_1199 landmark 1 3579.08 904.851 3.41642 1.04992 1 TheZoramStrand TheZoramStrand game_tele 1199 414 331 ashenvale 0 0 +poi_tele_12 landmark 0 451.572 -3342.23 119.689 0.772541 1 AgolWatha AgolWatha game_tele 12 1884 47 thehinterlands 0 0 +poi_tele_120 landmark 530 933.847 5948.09 121.211 0.641137 1 BladesRun BladesRun game_tele 120 3767 3522 bladesedgemountains 0 0 +poi_tele_1200 landmark 1 -8970.3 -2192.9 8.89688 5.57003 1 ThistleshrubValley ThistleshrubValley game_tele 1200 980 440 tanaris 0 0 +poi_tele_1201 landmark 0 1925.08 -2621.31 62.2875 4.65288 1 ThondrorilRiver ThondrorilRiver game_tele 1201 2619 139 easternplaguelands 0 0 +poi_tele_1202 landmark 0 -820.219 -1562.88 54.1671 4.06022 1 ThoradinsWall ThoradinsWall game_tele 1202 1057 267 hillsbradfoothills 0 0 +poi_tele_1203 landmark 0 -6506.47 -1149.95 307.708 4.18256 1 ThoriumPoint ThoriumPoint game_tele 1203 1446 51 searinggorge 0 0 +poi_tele_1204 landmark 530 -247.65 5170.55 83.1052 4.97103 1 ThornfangHill ThornfangHill game_tele 1204 3800 3483 hellfirepeninsula 0 0 +poi_tele_1205 landmark 1 -449.553 -3476.24 94.5329 0.871187 1 ThornHill ThornHill game_tele 1205 1699 17 northernbarrens 0 2 +poi_tele_1206 zone 1 -4969.02 -1726.89 -62.1269 3.7933 1 ThousandNeedles ThousandNeedles game_tele 1206 400 400 thousandneedles 1 0 +poi_tele_1207 landmark 530 156.251 2673.45 85.1587 0.382074 1 Thrallmar Thrallmar game_tele 1207 3536 3483 hellfirepeninsula 0 0 +poi_tele_1208 mine 530 385.93 2881.01 53.2777 5.09746 1 ThrallmarMine ThrallmarMine game_tele 1208 3483 3483 hellfirepeninsula 0 0 +poi_tele_1209 landmark 530 809.937 2332.9 281.37 5.77383 1 ThroneOfKiljaeden ThroneOfKiljaeden game_tele 1209 3547 3483 hellfirepeninsula 0 0 +poi_tele_121 landmark 530 1059.17 7087.83 118.027 0.112612 1 BladeToothCanyon BladeToothCanyon game_tele 121 3770 3522 bladesedgemountains 0 0 +poi_tele_1210 landmark 530 -781.295 6943.52 33.3343 2.62259 1 ThroneOfTheElements ThroneOfTheElements game_tele 1210 3615 3518 nagrand 0 0 +poi_tele_1211 landmark 1 -309.085 1666.33 116.017 2.09605 1 ThunderAxeFortress ThunderAxeFortress game_tele 1211 599 405 desolace 0 0 +poi_tele_1212 zone 1 -1277.37 124.804 131.287 5.22274 1 ThunderBluff ThunderBluff game_tele 1212 1638 1638 thunderbluff 1 2 +poi_tele_1213 landmark 0 -9305.71 671.617 133.138 0.165219 1 ThunderFalls ThunderFalls game_tele 1213 61 12 elwynn 0 1 +poi_tele_1214 landmark 1 -1813.19 -251.665 -9.42466 2.30507 1 ThunderhornWaterWell ThunderhornWaterWell game_tele 1214 397 215 mulgore 0 2 +poi_tele_1215 landmark 530 2314.75 6041.96 142.417 6.24317 1 ThunderlordStronghold ThunderlordStronghold game_tele 1215 3769 3522 bladesedgemountains 0 0 +poi_tele_1216 landmark 1 808.307 -4084.94 -12.8768 1.03222 1 ThunderRidge ThunderRidge game_tele 1216 369 14 durotar 0 2 +poi_tele_1217 landmark 530 9259.11 -7482.08 35.529 5.02965 1 ThuronsLivery ThuronsLivery game_tele 1217 3469 3430 eversongwoods 0 2 +poi_tele_1218 landmark 1 -4437.22 -4134.71 2.21481 0.98565 1 TidefuryCove TidefuryCove game_tele 1218 517 15 dustwallowmarsh 0 0 +poi_tele_1219 landmark 1 6808.73 -2091.08 624.962 5.93802 1 TimbermawHold TimbermawHold game_tele 1219 1769 361 felwood 0 0 +poi_tele_122 landmark 530 -1772.53 -11581.4 35.9727 2.16531 1 Bladewood Bladewood game_tele 122 3585 3525 bloodmystisle 0 1 +poi_tele_1220 landmark 1 6474.08 -3142.89 570.406 2.14401 1 TimbermawPost TimbermawPost game_tele 1220 2243 618 winterspring 0 0 +poi_tele_1221 settlement 0 -4831.62 -1279.2 501.869 1.44385 1 TinkerTown TinkerTown game_tele 1221 1537 1537 ironforge 0 1 +poi_tele_1222 landmark 1 -202.191 -5025.83 21.631 5.30633 1 TiragardeKeep TiragardeKeep game_tele 1222 372 14 durotar 0 2 +poi_tele_1223 zone 0 2036.02 161.331 33.8674 0.143896 1 TirisfalGlades TirisfalGlades game_tele 1223 85 85 tirisfalglades 1 2 +poi_tele_1224 landmark 0 2063.35 273.607 94.1076 5.30632 1 TirisfalGladesZeppelin TirisfalGladesZeppelin game_tele 1224 85 85 tirisfalglades 0 2 +poi_tele_1225 ruins 0 -11834.4 64.8268 14.1722 2.65266 1 TkashiRuins TkashiRuins game_tele 1225 126 33 northernstranglethorn 0 0 +poi_tele_1226 ruins 530 -2998.41 4545.29 -21.8414 0.066171 1 TombOfLights TombOfLights game_tele 1226 3890 3519 terokkarforest 0 0 +poi_tele_1227 landmark 1 726.529 -4244.99 17.3731 0.66858 1 TorKrenFarm TorKrenFarm game_tele 1227 2979 14 durotar 0 2 +poi_tele_1228 landmark 530 8561.26 -7920.25 154.912 3.21279 1 TorWatha TorWatha game_tele 1228 3476 3430 eversongwoods 0 2 +poi_tele_1229 landmark 530 1910.63 5556.25 263.017 6.25981 1 ToshleysStation ToshleysStation game_tele 1229 3918 3522 bladesedgemountains 0 0 +poi_tele_123 landmark 530 2211.66 5712.69 272.876 0.564311 1 BladspireOutpost BladspireOutpost game_tele 123 3922 3522 bladesedgemountains 0 0 +poi_tele_1230 landmark 1 7165.92 -772.39 54.9534 0.847262 1 TowerOfAlthalaxx TowerOfAlthalaxx game_tele 1230 444 148 darkshore 0 1 +poi_tele_1231 landmark 1 4231.66 -7812.84 6.72805 3.74308 1 TowerOfEldara TowerOfEldara game_tele 1231 1229 16 azshara 0 2 +poi_tele_1232 landmark 0 -9284.76 -3346.89 109.759 1.52871 1 TowerOfIlgalar TowerOfIlgalar game_tele 1232 96 44 redridgemountains 0 0 +poi_tele_1233 landmark 0 -9281.56 -3341.22 111.243 1.50594 1 TowerOfLlgalar TowerOfLlgalar game_tele 1233 96 44 redridgemountains 0 0 +poi_tele_1234 settlement 530 2265.88 2270.97 97.4046 4.06565 1 TownSquare TownSquare game_tele 1234 3934 3523 netherstorm 0 0 +poi_tele_1235 landmark 0 -8835.7 620.485 93.2388 0.772328 1 TradeDistrict TradeDistrict game_tele 1235 5148 1519 stormwind 0 1 +poi_tele_1236 landmark 0 1563.81 238.463 -43.4301 0.104772 1 TradeQuarter TradeQuarter game_tele 1236 1497 1497 undercity 0 2 +poi_tele_1237 landmark 530 -4109.67 -11683.9 -142.705 3.22799 1 TradersTier TradersTier game_tele 1237 3557 3557 theexodar 0 1 +poi_tele_1238 landmark 530 -5073.41 -11252.9 0.820152 4.43198 1 TraitorsCove TraitorsCove game_tele 1238 3579 3524 azuremystisle 0 1 +poi_tele_1239 landmark 0 -10965.2 -1271.56 52.4084 4.05062 1 TranquilGardensCemetery TranquilGardensCemetery game_tele 1239 121 10 duskwood 0 0 +poi_tele_124 zone 0 -11182.5 -3016.67 7.42235 4.0004 1 BlastedLands BlastedLands game_tele 124 4 4 blasted_lands 1 0 +poi_tele_1240 landmark 530 7564.25 -6872.23 96.0413 4.3579 1 Tranquillien Tranquillien game_tele 1240 3488 3433 ghostlands 0 2 +poi_tele_1241 landmark 530 9010.64 -5825.39 0.507373 3.72724 1 TranquilShore TranquilShore game_tele 1241 3911 3430 eversongwoods 0 2 +poi_tele_1242 mine 530 3799.23 4014.57 121.147 6.17891 1 TrelleumMine TrelleumMine game_tele 1242 3881 3523 netherstorm 0 0 +poi_tele_1243 landmark 530 1718.35 4964.6 171.722 1.68743 1 TrogmasClaim TrogmasClaim game_tele 1243 3779 3522 bladesedgemountains 0 0 +poi_tele_1244 landmark 530 4053 3551.25 120.964 2.73676 1 TulumansLanding TulumansLanding game_tele 1244 3852 3523 netherstorm 0 0 +poi_tele_1245 landmark 530 -2162.03 4218.48 6.33299 5.20557 1 Tuurem Tuurem game_tele 1245 3675 3519 terokkarforest 0 0 +poi_tele_1246 settlement 1 -6989.36 1156.02 10.2789 1.12618 1 TwilightBaseCamp TwilightBaseCamp game_tele 1246 2739 1377 silithus 0 0 +poi_tele_1247 landmark 0 -10384.3 -421.588 63.6179 3.23856 1 TwilightGrove TwilightGrove game_tele 1247 856 10 duskwood 0 0 +poi_tele_1248 landmark 1 -7895.48 1862.03 3.00047 0.438955 1 TwilightOutpost TwilightOutpost game_tele 1248 3099 1377 silithus 0 0 +poi_tele_1249 landmark 1 -6685.63 1563.55 7.60951 4.43192 1 TwilightPost TwilightPost game_tele 1249 3098 1377 silithus 0 0 +poi_tele_125 ruins 530 -3273.56 5988.13 -2.58558 1.14452 1 BleedingHollowRuins BleedingHollowRuins game_tele 125 3719 3519 terokkarforest 0 0 +poi_tele_1250 landmark 1 5712.85 571.447 1.39422 3.39362 1 TwilightShore TwilightShore game_tele 1250 2078 148 darkshore 0 1 +poi_tele_1251 landmark 1 -6307.77 138.391 15.5158 5.19777 1 TwilightsRun TwilightsRun game_tele 1251 3426 1377 silithus 0 0 +poi_tele_1252 landmark 1 4768.02 220.04 49.0354 6.12288 1 TwilightVale TwilightVale game_tele 1252 2077 148 darkshore 0 1 +poi_tele_1253 ruins 530 223.846 7085.71 35.2267 6.21829 1 TwinSpireRuins TwinSpireRuins game_tele 1253 3720 3521 zangarmarsh 0 0 +poi_tele_1254 landmark 0 1684.77 -5320.44 73.6126 4.52641 1 TyrsHand TyrsHand game_tele 1254 2266 139 easternplaguelands 0 0 +poi_tele_1255 landmark 0 1736.53 -5388.97 82.5741 5.26784 1 TyrsHandAbbey TyrsHandAbbey game_tele 1255 2266 139 easternplaguelands 0 0 +poi_tele_1256 landmark 229 138.726 -318.182 70.9562 0.116645 1 UBRS UBRS game_tele 1256 1583 1583 blackrockspire 0 0 +poi_tele_1257 landmark 70 -226.8 49.09 -46.03 1.39 1 Ulda Ulda game_tele 1257 1337 1337 uldaman 0 0 +poi_tele_1258 landmark 0 -6071.37 -2955.16 209.782 0.015708 1 Uldaman Uldaman game_tele 1258 1517 3 badlands 0 0 +poi_tele_1259 zone 1 -9574.83 -924.954 100.272 3.13119 1 Uldum Uldum game_tele 1259 5034 5034 uldum 1 0 +poi_tele_126 landmark 530 7171.91 -6397.79 49.1227 5.62946 1 BleedingZiggurat BleedingZiggurat game_tele 126 3501 3433 ghostlands 0 2 +poi_tele_1260 landmark 530 -427.677 5856.72 20.6041 5.04097 1 UmbrafenLake UmbrafenLake game_tele 1260 3655 3521 zangarmarsh 0 0 +poi_tele_1261 settlement 530 -804.516 5258.08 19.2276 5.67557 1 UmbrafenVillage UmbrafenVillage game_tele 1261 3641 3521 zangarmarsh 0 0 +poi_tele_1262 landmark 546 9.71391 -16.2008 -2.75334 5.62187 1 underbog underbog game_tele 1262 3716 3716 theunderbog 0 0 +poi_tele_1263 zone 0 1584.07 241.987 -52.1534 0.049647 1 Undercity Undercity game_tele 1263 1497 1497 undercity 1 2 +poi_tele_1264 mine 530 7185.68 -6205.57 18.986 3.43112 1 UnderlightMines UnderlightMines game_tele 1264 3505 3433 ghostlands 0 2 +poi_tele_1265 zone 1 -7943.22 -2119.09 -218.343 6.0727 1 UnGoroCrater UnGoroCrater game_tele 1265 490 490 ungorocrater 1 0 +poi_tele_1266 landmark 530 -3910 3021.99 356.692 4.7927 1 UpperVeilShilAk UpperVeilShilAk game_tele 1266 3977 3519 terokkarforest 0 0 +poi_tele_1267 landmark 1 4163.63 -5910.48 100.681 3.04329 1 Ursolan Ursolan game_tele 1267 16 16 azshara 0 2 +poi_tele_1268 ruins 0 1025.53 -1807.11 76.9136 3.4245 1 UthersTomb UthersTomb game_tele 1268 5426 28 westernplaguelands 0 0 +poi_tele_1269 landmark 0 928.515 1242.67 46.8493 5.52386 1 ValgansField ValgansField game_tele 1269 227 130 silverpineforest 0 2 +poi_tele_127 landmark 530 -1933.1 -12871.3 85.896 5.32971 1 BloodcurseIsle BloodcurseIsle game_tele 127 3612 3525 bloodmystisle 0 1 +poi_tele_1270 landmark 530 -934.43 2474.4 3.88924 5.62132 1 ValleyOfBones ValleyOfBones game_tele 1270 3794 3483 hellfirepeninsula 0 0 +poi_tele_1271 landmark 0 -6773.84 -3155.91 240.745 0.59012 1 ValleyOfFangs ValleyOfFangs game_tele 1271 5322 3 badlands 0 0 +poi_tele_1272 landmark 1 1936.47 -4673.71 26.3522 5.2789 1 ValleyOfHonor ValleyOfHonor game_tele 1272 5168 1637 orgrimmar 0 2 +poi_tele_1273 landmark 0 -5805.89 -2610.93 316.609 2.43858 1 ValleyOfKings ValleyOfKings game_tele 1273 924 38 lochmodan 0 1 +poi_tele_1274 landmark 1 -1346.42 2828.24 113.273 2.37881 1 ValleyOfSpears ValleyOfSpears game_tele 1274 607 405 desolace 0 0 +poi_tele_1275 landmark 1 1529.69 -4210.23 41.3515 3.31305 1 ValleyOfSpirits ValleyOfSpirits game_tele 1275 5332 1637 orgrimmar 0 2 +poi_tele_1276 landmark 1 1548.05 -4417.19 9.50517 0.139761 1 ValleyOfStrength ValleyOfStrength game_tele 1276 5170 1637 orgrimmar 0 2 +poi_tele_1277 landmark 1 -9565.22 -2792.77 7.83946 3.06854 1 ValleyOfTheWatchers ValleyOfTheWatchers game_tele 1277 990 440 tanaris 0 0 +poi_tele_1278 landmark 1 -601.294 -4296.76 37.8115 1.65401 1 ValleyOfTrials ValleyOfTrials game_tele 1278 363 14 durotar 0 2 +poi_tele_1279 landmark 1 1931.31 -4284.49 28.3693 1.66609 1 ValleyOfWisdom ValleyOfWisdom game_tele 1279 5171 1637 orgrimmar 0 2 +poi_tele_128 landmark 1 -4324.33 -2671.96 32.864 1.86217 1 BloodfenBurrow BloodfenBurrow game_tele 128 498 15 dustwallowmarsh 0 0 +poi_tele_1280 landmark 1 3608.59 -4414.43 113.047 1.62303 1 Valormok Valormok game_tele 1280 16 16 azshara 0 2 +poi_tele_1281 landmark 1 -6382.67 -291.916 -3.07818 4.47432 1 ValorsRest ValorsRest game_tele 1281 3077 1377 silithus 0 0 +poi_tele_1282 landmark 0 -106.365 -3151.74 119.322 0.604897 1 ValorwindLake ValorwindLake game_tele 1282 1883 47 thehinterlands 0 0 +poi_tele_1283 landmark 530 -3683.96 3349.31 284.921 5.27572 1 VeilAlaRak VeilAlaRak game_tele 1283 3976 3519 terokkarforest 0 0 +poi_tele_1284 landmark 530 -3702.96 3754.15 276.354 3.76069 1 VeilHarrIk VeilHarrIk game_tele 1284 3974 3519 terokkarforest 0 0 +poi_tele_1285 landmark 530 1669.12 6935.57 167.396 2.60233 1 VeilLashh VeilLashh game_tele 1285 3782 3522 bladesedgemountains 0 0 +poi_tele_1286 landmark 530 -3590.61 5802.91 -4.29788 0.673285 1 VeilLithic VeilLithic game_tele 1286 3686 3519 terokkarforest 0 0 +poi_tele_1287 landmark 530 -2999.94 5605.95 -3.92787 1.66524 1 VeilRhaze VeilRhaze game_tele 1287 3889 3519 terokkarforest 0 0 +poi_tele_1288 landmark 530 3253.49 5333.48 145.558 5.27728 1 VeilRuuan VeilRuuan game_tele 1288 3829 3522 bladesedgemountains 0 0 +poi_tele_1289 landmark 530 -3544.89 4043.25 68.1842 3.42925 1 VeilShalas VeilShalas game_tele 1289 3678 3519 terokkarforest 0 0 +poi_tele_129 settlement 1 -2240.91 -399.174 -9.42446 2.53353 1 BloodhoofVillage BloodhoofVillage game_tele 129 222 215 mulgore 0 2 +poi_tele_1290 landmark 530 -1902.4 3919.57 -1.69338 0.786375 1 VeilShienor VeilShienor game_tele 1290 3676 3519 terokkarforest 0 0 +poi_tele_1291 landmark 530 -2504.8 5429.98 0.047476 4.09213 1 VeilSkith VeilSkith game_tele 1291 3677 3519 terokkarforest 0 0 +poi_tele_1292 landmark 530 1729.69 4637.52 147.393 4.36564 1 VeilVekh VeilVekh game_tele 1292 3783 3522 bladesedgemountains 0 0 +poi_tele_1293 landmark 530 1713.82 4920.47 169.989 5.92915 1 VekhaarStand VekhaarStand game_tele 1293 3827 3522 bladesedgemountains 0 0 +poi_tele_1294 landmark 0 2528 -871.109 53.9863 4.87192 1 VenomwebVale VenomwebVale game_tele 1294 4918 85 tirisfalglades 0 2 +poi_tele_1295 settlement 0 -11988 -582.287 10.0503 1.64342 1 VentureCoBaseCamp VentureCoBaseCamp game_tele 1295 1740 33 northernstranglethorn 0 0 +poi_tele_1296 landmark 1 -4737.16 1077.75 93.5801 1.83556 1 VerdantisRiver VerdantisRiver game_tele 1296 2521 357 feralas 0 0 +poi_tele_1297 landmark 530 -1067.77 -12505.2 20.8405 0.379317 1 VeridianPoint VeridianPoint game_tele 1297 3907 3525 bloodmystisle 0 1 +poi_tele_1298 landmark 530 3325.01 4608.41 217.521 2.62912 1 VimGolsCircle VimGolsCircle game_tele 1298 3962 3522 bladesedgemountains 0 0 +poi_tele_1299 landmark 530 -1742.09 -11075.5 76.3923 2.56979 1 VindicatorsRest VindicatorsRest game_tele 1299 3608 3525 bloodmystisle 0 1 +poi_tele_13 landmark 1 -2681.4 -4787.21 16.0751 4.69276 1 AlcazIsland AlcazIsland game_tele 13 2079 15 dustwallowmarsh 0 0 +poi_tele_130 settlement 530 3526.96 5794.43 1.72332 2.48461 1 BloodmaulCamp BloodmaulCamp game_tele 130 3777 3522 bladesedgemountains 0 0 +poi_tele_1300 landmark 530 4291.45 2295.64 122.382 3.85881 1 VoidwindPlateau VoidwindPlateau game_tele 1300 3735 3523 netherstorm 0 0 +poi_tele_1301 landmark 530 2606.02 7247.71 366.1 3.50082 1 VortexSummit VortexSummit game_tele 1301 3832 3522 bladesedgemountains 0 0 +poi_tele_1302 landmark 0 -11078.1 -81.2907 16.645 3.36735 1 VulgolOgreMound VulgolOgreMound game_tele 1302 93 10 duskwood 0 0 +poi_tele_1303 zone 1 -731.607 -2218.39 17.0281 2.78486 1 WailingCaverns WailingCaverns game_tele 1303 718 718 wailingcaverns 1 2 +poi_tele_1304 landmark 530 9517.59 -7344.19 14.3582 3.75943 1 WalkOfElders WalkOfElders game_tele 1304 3487 3487 silvermooncity 0 2 +poi_tele_1305 landmark 530 -3750.85 1059.38 70.921 3.49973 1 WardensCage WardensCage game_tele 1305 3821 3520 shadowmoonvalley 0 0 +poi_tele_1306 landmark 530 -735.921 8790.11 184.206 3.10641 1 WarmaulHill WarmaulHill game_tele 1306 3617 3518 nagrand 0 0 +poi_tele_1307 landmark 0 1724.8 368.623 -60.4843 0.709539 1 WarQuarter WarQuarter game_tele 1307 1497 1497 undercity 0 2 +poi_tele_1308 landmark 1 9921.22 2346.78 1330.78 6.12055 1 WarriorsTerrace WarriorsTerrace game_tele 1308 1657 1657 darnassus 0 1 +poi_tele_1309 zone 489 1235.54 1427.1 309.715 0.557629 1 WarsongGulch WarsongGulch game_tele 1309 3277 3277 warsonggulch 1 0 +poi_tele_131 landmark 530 1623.51 6344.2 -2.54653 3.86891 1 BloodmaulOutpost BloodmaulOutpost game_tele 131 3776 3522 bladesedgemountains 0 0 +poi_tele_1310 landmark 489 1525.95 1481.66 352.001 3.20756 1 WarsongGulchAlliance WarsongGulchAlliance game_tele 1310 4571 3277 warsonggulch 0 0 +poi_tele_1311 landmark 489 930.851 1431.57 345.537 0.015704 1 WarsongGulchHorde WarsongGulchHorde game_tele 1311 4572 3277 warsonggulch 0 0 +poi_tele_1312 settlement 1 1572.22 -2460.86 97.991 5.06328 1 WarsongLaborCamp WarsongLaborCamp game_tele 1312 3177 331 ashenvale 0 0 +poi_tele_1313 settlement 1 2288.94 -3277.64 101.471 6.11261 1 WarsongLumberCamp WarsongLumberCamp game_tele 1313 437 331 ashenvale 0 0 +poi_tele_1314 landmark 1 -7376.95 -4579.41 9.88491 3.184 1 WaterspringField WaterspringField game_tele 1314 985 440 tanaris 0 0 +poi_tele_1315 landmark 1 -7221.12 -4892.68 0.553891 4.28199 1 WavestriderBeach WavestriderBeach game_tele 1315 988 440 tanaris 0 0 +poi_tele_1316 landmark 43 -163.49 132.9 -73.66 5.83 1 WC WC game_tele 1316 718 718 wailingcaverns 0 2 +poi_tele_1317 landmark 1 -5790.12 -3912.32 -91.3618 2.06955 1 WeazelsCrater WeazelsCrater game_tele 1317 5046 400 thousandneedles 0 0 +poi_tele_1318 landmark 1 817.389 469.891 66.6528 1.40814 1 WebwinderPath WebwinderPath game_tele 1318 1076 406 stonetalonmountains 0 0 +poi_tele_1319 landmark 1 10410.6 1628.39 1288.2 0.009365 1 WellspringLake WellspringLake game_tele 1319 266 141 teldrassil 0 1 +poi_tele_132 landmark 530 1809.28 6411.22 -10.338 3.25427 1 BloodmaulRavine BloodmaulRavine game_tele 132 3824 3522 bladesedgemountains 0 0 +poi_tele_1320 landmark 1 10639.6 1625.53 1285.09 1.27385 1 WellspringRiver WellspringRiver game_tele 1320 265 141 teldrassil 0 1 +poi_tele_1321 landmark 0 -9663.01 686.769 37.414 5.88684 1 WestbrookGarrison WestbrookGarrison game_tele 1321 120 12 elwynn 0 1 +poi_tele_1322 zone 0 1728.65 -1602.25 63.429 1.6558 1 WesternPlaguelands WesternPlaguelands game_tele 1322 28 28 westernplaguelands 1 0 +poi_tele_1323 landmark 0 -1073.67 276.526 0.822079 3.35856 1 WesternStrand WesternStrand game_tele 1323 295 267 hillsbradfoothills 0 0 +poi_tele_1324 zone 0 -10235.2 1222.47 43.6252 6.2427 1 Westfall Westfall game_tele 1324 40 40 westfall 1 0 +poi_tele_1325 landmark 0 -11405 1970.07 8.90656 4.10641 1 WestfallLighthouse WestfallLighthouse game_tele 1325 115 40 westfall 0 1 +poi_tele_1326 landmark 530 9144.45 -6273.75 22.6069 5.69229 1 WestSanctum WestSanctum game_tele 1326 3466 3430 eversongwoods 0 2 +poi_tele_1327 zone 0 -3242.81 -2469.04 15.9226 6.03924 1 Wetlands Wetlands game_tele 1327 11 11 wetlands 1 0 +poi_tele_1328 landmark 0 -3446.82 -1818.75 24.1032 3.54812 1 WhelgarsExcavationSite WhelgarsExcavationSite game_tele 1328 118 11 wetlands 0 0 +poi_tele_1329 landmark 0 2812.03 -704.537 136.047 0.37551 1 WhisperingGardens WhisperingGardens game_tele 1329 160 85 tirisfalglades 0 2 +poi_tele_133 zone 530 -1993.62 -11475.8 63.9657 5.29437 1 BloodmystIsle BloodmystIsle game_tele 133 3525 3525 bloodmystisle 1 1 +poi_tele_1330 landmark 0 2508.78 1663.26 3.20579 5.76976 1 WhisperingShore WhisperingShore game_tele 1330 169 85 tirisfalglades 0 2 +poi_tele_1331 landmark 1 -4905.75 -1378.99 -52.6113 2.47564 1 WhitereachPost WhitereachPost game_tele 1331 2237 400 thousandneedles 0 0 +poi_tele_1332 landmark 1 5110.28 142.992 42.9436 3.71084 1 WildbendRiver WildbendRiver game_tele 1332 454 148 darkshore 0 1 +poi_tele_1333 landmark 0 291.808 -2124.52 121.243 0.276169 1 WildhammerKeep WildhammerKeep game_tele 1333 349 47 thehinterlands 0 0 +poi_tele_1334 landmark 530 -3989.47 2168.39 105.35 3.08422 1 WildhammerStronghold WildhammerStronghold game_tele 1334 3745 3520 shadowmoonvalley 0 0 +poi_tele_1335 landmark 1 -752.026 -132.783 -28.7924 4.70689 1 WildmaneWaterWell WildmaneWaterWell game_tele 1335 398 215 mulgore 0 2 +poi_tele_1336 landmark 0 -14647.1 316.009 3.49004 0.472363 1 WildShore WildShore game_tele 1336 43 5287 thecapeofstranglethorn 0 0 +poi_tele_1337 landmark 1 -5308.52 -2838.5 -55.5527 4.00714 1 WindbreakCanyon WindbreakCanyon game_tele 1337 400 400 thousandneedles 0 0 +poi_tele_1338 landmark 1 -556.474 -554.987 16.7506 5.90461 1 WindfuryRidge WindfuryRidge game_tele 1338 819 215 mulgore 0 2 +poi_tele_1339 landmark 530 7016.75 -5707.58 106.608 4.71628 1 WindrunnerSpire WindrunnerSpire game_tele 1339 3492 3433 ghostlands 0 2 +poi_tele_134 landmark 0 -13470 675.488 10.4762 4.9884 1 BloodsailCompound BloodsailCompound game_tele 134 1739 5287 thecapeofstranglethorn 0 0 +poi_tele_1340 settlement 530 7251.69 -5943.03 17.0084 3.32884 1 WindrunnerVillage WindrunnerVillage game_tele 1340 3491 3433 ghostlands 0 2 +poi_tele_1341 landmark 1 1260.37 393.698 93.3468 4.15782 1 WindshearCrag WindshearCrag game_tele 1341 4929 406 stonetalonmountains 0 0 +poi_tele_1342 mine 1 982.879 -358.391 14.8563 3.71878 1 WindshearMine WindshearMine game_tele 1342 2160 406 stonetalonmountains 0 0 +poi_tele_1343 settlement 1 6837.43 -5084.04 691.045 3.19095 1 WinterfallVillage WinterfallVillage game_tele 1343 2244 618 winterspring 0 0 +poi_tele_1344 zone 1 6759.18 -4419.63 763.214 4.43476 1 Winterspring Winterspring game_tele 1344 618 618 winterspring 1 0 +poi_tele_1345 landmark 1 -2863.26 -4052.18 37.0607 3.9647 1 WitchHill WitchHill game_tele 1345 502 15 dustwallowmarsh 0 0 +poi_tele_1346 settlement 0 -1675.81 -3461.71 52.4582 3.67737 1 WitherbarkVillage WitherbarkVillage game_tele 1346 317 45 arathihighlands 0 0 +poi_tele_1347 landmark 530 2251.27 2403.09 117.366 2.99201 1 WizardRow WizardRow game_tele 1347 3935 3523 netherstorm 0 0 +poi_tele_1348 landmark 1 -4952.22 471.918 17.6569 3.27362 1 WoodpawHills WoodpawHills game_tele 1348 2519 357 feralas 0 0 +poi_tele_1349 tavern 530 -1755.97 5154.3 -37.2047 4.85864 1 WorldsEndTavern WorldsEndTavern game_tele 1349 3703 3703 shattrathcity 0 0 +poi_tele_135 landmark 530 360.89 8136.18 23.3585 1.1674 1 BloodscaleEnclave BloodscaleEnclave game_tele 135 3643 3521 zangarmarsh 0 0 +poi_tele_1350 landmark 530 -2236.79 -12274.6 49.2693 4.68644 1 WrathscaleLair WrathscaleLair game_tele 1350 3590 3525 bloodmystisle 0 1 +poi_tele_1351 landmark 530 -4942.25 -11750.1 22.2637 3.90184 1 WrathscalePoint WrathscalePoint game_tele 1351 3570 3524 azuremystisle 0 1 +poi_tele_1352 landmark 530 -3425.33 4455.75 -8.58434 0.530853 1 WrithingMound WrithingMound game_tele 1352 3892 3519 terokkarforest 0 0 +poi_tele_1353 landmark 489 1304.63 1455.89 317.694 0.08639 1 WSG WSG game_tele 1353 3277 3277 warsonggulch 0 0 +poi_tele_1354 landmark 1 -4864.84 -3375.2 30.4545 4.34245 1 Wyrmbog Wyrmbog game_tele 1354 511 15 dustwallowmarsh 0 0 +poi_tele_1355 landmark 530 -1205.72 -12428.7 94.8675 6.23292 1 WyrmscarIsland WyrmscarIsland game_tele 1355 3599 3525 bloodmystisle 0 1 +poi_tele_1356 landmark 530 3013.53 5909.98 130.699 1.26484 1 WyrmskullBridge WyrmskullBridge game_tele 1356 3952 3522 bladesedgemountains 0 0 +poi_tele_1357 landmark 530 3117.35 6186.83 138.132 1.31978 1 WyrmskullTunnel WyrmskullTunnel game_tele 1357 3954 3522 bladesedgemountains 0 0 +poi_tele_1358 landmark 1 2937.28 -2828.3 212.398 0.433398 1 Xavian Xavian game_tele 1358 429 331 ashenvale 0 0 +poi_tele_1359 landmark 0 -11774.3 1266.94 2.99361 3.226 1 YojambaIsle YojambaIsle game_tele 1359 3357 33 northernstranglethorn 0 0 +poi_tele_136 landmark 530 539.523 6226.4 21.2966 0.731476 1 BloodscaleGrounds BloodscaleGrounds game_tele 136 3818 3521 zangarmarsh 0 0 +poi_tele_1360 landmark 568 120.7 1776 43.46 4.7713 1 ZA ZA game_tele 1360 3805 3805 zulaman 0 0 +poi_tele_1361 landmark 530 260.28 7860.4 23.3231 3.77545 1 Zabrajin Zabrajin game_tele 1361 3645 3521 zangarmarsh 0 0 +poi_tele_1362 landmark 1 -7351.38 -4878.43 3.31332 1.46633 1 ZalashjisDen ZalashjisDen game_tele 1362 986 440 tanaris 0 0 +poi_tele_1363 zone 530 -54.8621 5813.44 20.9764 0.081722 1 Zangarmarsh Zangarmarsh game_tele 1363 3521 3521 zangarmarsh 1 0 +poi_tele_1364 landmark 530 -575.676 8441.21 63.0364 3.12603 1 ZangarRidge ZangarRidge game_tele 1364 3763 3518 nagrand 0 0 +poi_tele_1365 landmark 530 7112.27 -7491.7 48.8403 4.39733 1 ZebNowa ZebNowa game_tele 1365 3517 3433 ghostlands 0 2 +poi_tele_1366 landmark 530 8027.92 -7831.6 174.185 5.34437 1 ZebSora ZebSora game_tele 1366 3512 3433 ghostlands 0 2 +poi_tele_1367 landmark 530 7435.65 -7837.06 151.305 4.63123 1 ZebTela ZebTela game_tele 1367 3516 3433 ghostlands 0 2 +poi_tele_1368 landmark 530 8442.72 -7611.23 155.586 1.86819 1 ZebWatha ZebWatha game_tele 1368 3475 3430 eversongwoods 0 2 +poi_tele_1369 landmark 530 -1088.38 2998.27 8.18949 2.73983 1 ZeppelinCrash ZeppelinCrash game_tele 1369 3816 3483 hellfirepeninsula 0 0 +poi_tele_137 settlement 1 1641.62 -1448.83 147.085 2.65133 1 BloodtoothCamp BloodtoothCamp game_tele 137 2357 331 ashenvale 0 0 +poi_tele_1370 landmark 530 -1005.37 2030.91 67.873 3.12703 1 ZethGor ZethGor game_tele 1370 3582 3483 hellfirepeninsula 0 0 +poi_tele_1372 ruins 0 -12659.8 -458.71 29.312 3.65797 1 ZiatajaiRuins ZiatajaiRuins game_tele 1372 128 33 northernstranglethorn 0 0 +poi_tele_1373 landmark 1 3376.86 1013.05 3.34387 3.81699 1 ZoramgarOutpost ZoramgarOutpost game_tele 1373 2897 331 ashenvale 0 0 +poi_tele_1374 landmark 530 6851.78 -7972.57 179.242 4.64691 1 ZulAman ZulAman game_tele 1374 3508 3433 ghostlands 0 2 +poi_tele_1375 landmark 1 -6801.19 -2893.02 9.00388 0.158639 1 ZulFarrak ZulFarrak game_tele 1375 978 440 tanaris 0 0 +poi_tele_1376 landmark 0 -11916.7 -1215.72 92.289 4.72454 1 ZulGurub ZulGurub game_tele 1376 19 33 northernstranglethorn 0 0 +poi_tele_1377 landmark 0 3381.52 -4922.54 160.168 5.33458 1 Zulmashar Zulmashar game_tele 1377 2273 139 easternplaguelands 0 0 +poi_tele_1378 landmark 0 -14.5469 -2479.52 120.64 2.32214 1 ZunWatha ZunWatha game_tele 1378 352 47 thehinterlands 0 0 +poi_tele_1379 ruins 0 -11701.7 963.365 3.89563 5.6466 1 ZuuldaiaRuins ZuuldaiaRuins game_tele 1379 122 33 northernstranglethorn 0 0 +poi_tele_138 landmark 1 5282.47 -716.836 346.13 0.216695 1 BloodvenomFalls BloodvenomFalls game_tele 138 1765 361 felwood 0 0 +poi_tele_1380 landmark 0 -8419.34 1212.14 5.17277 1.55232 1 StormwindHarbor StormwindHarbor game_tele 1380 4411 1519 stormwind 0 1 +poi_tele_1381 landmark 571 564.401 -4944.94 18.5962 5.36544 1 Valgarde Valgarde game_tele 1381 3981 495 howlingfjord 0 0 +poi_tele_1382 landmark 571 424.405 -4548.76 245.652 5.37325 1 NewAgamand NewAgamand game_tele 1382 3991 495 howlingfjord 0 0 +poi_tele_1383 landmark 571 774.043 -2940.65 7.36477 1.41719 1 Kamagua Kamagua game_tele 1383 3988 495 howlingfjord 0 0 +poi_tele_1384 landmark 571 1391.04 -3284.63 163.929 1.59391 1 WestguardKeep WestguardKeep game_tele 1384 3998 495 howlingfjord 0 0 +poi_tele_1385 landmark 571 1942.86 -6167.11 23.724 2.64258 1 VengeanceLanding VengeanceLanding game_tele 1385 4000 495 howlingfjord 0 0 +poi_tele_1386 landmark 571 2469.09 -5086.4 282.921 2.07711 1 FortWildervar FortWildervar game_tele 1386 4003 495 howlingfjord 0 0 +poi_tele_1387 settlement 571 2649.82 -4362.69 276.885 5.15979 1 CampWinterhoof CampWinterhoof game_tele 1387 4018 495 howlingfjord 0 0 +poi_tele_1388 landmark 571 1259.33 -4852.02 215.763 3.48293 1 UtgardePinnacle UtgardePinnacle game_tele 1388 3983 495 howlingfjord 0 0 +poi_tele_1389 landmark 571 1219.72 -4865.28 41.2479 0.313228 1 UtgardeKeep UtgardeKeep game_tele 1389 3983 495 howlingfjord 0 0 +poi_tele_139 landmark 1 5128.91 -343.506 355.035 3.39176 1 BloodvenomPost BloodvenomPost game_tele 139 1997 361 felwood 0 0 +poi_tele_1390 landmark 571 2213.95 5273.15 11.2565 5.89294 1 ValianceKeep ValianceKeep game_tele 1390 4032 3537 boreantundra 0 0 +poi_tele_1391 landmark 571 2741.29 6097.16 76.9055 0.731543 1 WarsongHold WarsongHold game_tele 1391 4129 3537 boreantundra 0 0 +poi_tele_1392 landmark 571 4147.98 5278.79 24.7334 0.150308 1 FizzcrankAirstrip FizzcrankAirstrip game_tele 1392 4108 3537 boreantundra 0 0 +poi_tele_1393 landmark 571 3781.81 6953.65 104.82 0.467432 1 TheNexus TheNexus game_tele 1393 4120 3537 boreantundra 0 0 +poi_tele_1394 landmark 571 4488.76 5736.18 80.0769 5.45078 1 BorgorokOutpost BorgorokOutpost game_tele 1394 4122 3537 boreantundra 0 0 +poi_tele_1395 landmark 571 3071.85 4791.19 1.13476 5.76654 1 Kaskala Kaskala game_tele 1395 4041 3537 boreantundra 0 0 +poi_tele_1396 landmark 571 2925.02 4065.63 1.46737 3.56739 1 Unupe Unupe game_tele 1396 4113 3537 boreantundra 0 0 +poi_tele_1397 settlement 571 3464.17 4087.16 17.0561 2.02607 1 TaunkaleVillage TaunkaleVillage game_tele 1397 4037 3537 boreantundra 0 0 +poi_tele_1398 zone 571 5804.15 624.771 647.767 1.64 1 Dalaran Dalaran game_tele 1398 4395 4395 dalaran 1 0 +poi_tele_1399 zone 571 4103.36 264.478 50.5019 3.09349 1 Dragonblight Dragonblight game_tele 1399 65 65 dragonblight 1 0 +poi_tele_14 landmark 530 -1746.58 5780.03 146.44 1.30629 1 AldorRise AldorRise game_tele 14 3703 3703 shattrathcity 0 0 +poi_tele_140 landmark 1 5277.69 -512.571 322.307 3.04806 1 BloodvenomRiver BloodvenomRiver game_tele 140 1764 361 felwood 0 0 +poi_tele_1400 zone 571 3256.57 5278.23 40.8046 0.246367 1 BoreanTundra BoreanTundra game_tele 1400 3537 3537 boreantundra 1 0 +poi_tele_1401 zone 571 1902.15 -4883.91 171.363 3.11537 1 HowlingFjord HowlingFjord game_tele 1401 495 495 howlingfjord 1 0 +poi_tele_1402 zone 571 4391.73 -3587.92 238.531 3.57526 1 GrizzlyHills GrizzlyHills game_tele 1402 394 394 grizzlyhills 1 0 +poi_tele_1403 zone 571 5560.23 -3211.66 371.709 5.55055 1 ZulDrak ZulDrak game_tele 1403 66 66 zuldrak 1 0 +poi_tele_1404 landmark 571 6898.72 -4584.94 451.12 2.34455 1 Gundrak Gundrak game_tele 1404 4375 66 zuldrak 0 0 +poi_tele_1405 landmark 571 7527.14 -1260.89 919.049 2.0696 1 StormPeaks StormPeaks game_tele 1405 4432 67 thestormpeaks 0 0 +poi_tele_1406 landmark 571 9049.37 -1282.35 1060.19 5.8395 1 Ulduar Ulduar game_tele 1406 4445 67 thestormpeaks 0 0 +poi_tele_1407 zone 571 7253.64 1644.78 433.68 4.83412 1 Icecrown Icecrown game_tele 1407 210 210 icecrown 1 0 +poi_tele_1408 landmark 0 -8379.79 253.323 155.347 5.38782 1 StormwindKeep StormwindKeep game_tele 1408 1519 1519 stormwind 0 1 +poi_tele_1409 landmark 0 -9003.05 874.064 148.619 3.47324 1 WizardsSanctum WizardsSanctum game_tele 1409 5154 1519 stormwind 0 1 +poi_tele_141 landmark 530 -1944.5 -11873.7 49.3983 6.04835 1 BloodWatch BloodWatch game_tele 141 3584 3525 bloodmystisle 0 1 +poi_tele_1410 landmark 571 5453.72 2840.79 421.28 0 1 VaultOfArchavon VaultOfArchavon game_tele 1410 4575 4197 wintergrasp 0 0 +poi_tele_1411 landmark 571 4774.6 -2032.92 229.15 1.59 1 DrakTharonKeep DrakTharonKeep game_tele 1411 4309 66 zuldrak 0 0 +poi_tele_1412 zone 571 4760.7 2143.7 423 1.13 1 Wintergrasp Wintergrasp game_tele 1412 4197 4197 wintergrasp 1 0 +poi_tele_1413 zone 571 5323 4942 -133.5 2.17 1 SholazarBasin SholazarBasin game_tele 1413 3711 3711 sholazarbasin 1 0 +poi_tele_1414 landmark 571 8515.89 629.25 547.396 1.5747 1 ArgentTournament ArgentTournament game_tele 1414 4658 210 icecrown 0 0 +poi_tele_1415 landmark 571 5696.73 507.4 652.97 4.03 1 TheVioletHold TheVioletHold game_tele 1415 4567 4395 dalaran 0 0 +poi_tele_1416 landmark 571 3412.88 -2791.17 201.521 2.2458 1 AmberpineLodge AmberpineLodge game_tele 1416 4204 394 grizzlyhills 0 0 +poi_tele_1417 landmark 571 3682.71 -722.635 212.729 5.7991 1 WintergardeKeep WintergardeKeep game_tele 1417 4177 65 dragonblight 0 0 +poi_tele_1418 landmark 571 5873.82 2110.98 636.011 3.5523 1 IcecrownCitadelRaid IcecrownCitadelRaid game_tele 1418 4522 210 icecrown 0 0 +poi_tele_1419 landmark 571 5690.97 2141.07 798.054 4.4344 1 TheFrozenHalls TheFrozenHalls game_tele 1419 4862 210 icecrown 0 0 +poi_tele_142 landmark 1 -2825.56 -3112.78 36.0223 0.327524 1 Bluefen Bluefen game_tele 142 507 15 dustwallowmarsh 0 0 +poi_tele_1420 landmark 571 8427.88 2706.33 655.095 5.743 1 TheShadowVault TheShadowVault game_tele 1420 4477 210 icecrown 0 0 +poi_tele_1421 landmark 571 3641.45 282.75 -120.145 3.325 1 ChamberOfAspects ChamberOfAspects game_tele 1421 4254 65 dragonblight 0 0 +poi_tele_1422 landmark 571 4682.07 -5569.67 53.61 3.85 1 BloodmoonIsle BloodmoonIsle game_tele 1422 4244 394 grizzlyhills 0 0 +poi_tele_1423 landmark 0 1856.3 -1755.17 60.1676 5.57256 1 TheMendersStead TheMendersStead game_tele 1423 5367 28 westernplaguelands 0 0 +poi_tele_1424 landmark 1 16218.7 16403.6 -64.3789 3.12191 1 Jail Jail game_tele 1424 876 876 gmisland 0 0 +poi_tele_1425 landmark 169 -366.091 3097.86 92.317 0.048763 1 EmeraldDream EmeraldDream game_tele 1425 0 0 0 0 +poi_tele_1426 landmark 169 2781.57 3006.76 23.2219 0.5 1 EmeraldStatue EmeraldStatue game_tele 1426 0 0 0 0 +poi_tele_1427 landmark 169 -2128.12 -1005.89 132.213 0.5 1 VerdantFields VerdantFields game_tele 1427 956 956 theverdantfields 0 0 +poi_tele_1428 zone 169 2732.93 -3319.63 101.284 0.5 1 EmeraldForest EmeraldForest game_tele 1428 1397 1397 emeraldforest 1 0 +poi_tele_1429 landmark 571 3670.24 6784.35 170.181 1.4044 1 Coldarra Coldarra game_tele 1429 4024 3537 boreantundra 0 0 +poi_tele_143 wilderness 0 -3012.77 -1066.97 8.82117 0.006195 1 BluegillMarsh BluegillMarsh game_tele 143 1022 11 wetlands 0 0 +poi_tele_1430 landmark 571 3606.76 5944.54 136.216 2.84247 1 AmberLedge AmberLedge game_tele 1430 4023 3537 boreantundra 0 0 +poi_tele_1431 landmark 571 2967.29 6788.09 7.05211 5.86967 1 Garrosh'sLanding Garrosh'sLanding game_tele 1431 4106 3537 boreantundra 0 0 +poi_tele_1432 landmark 571 3543.21 271.834 342.721 3.15239 1 WyrmrestTemple WyrmrestTemple game_tele 1432 4161 65 dragonblight 0 0 +poi_tele_1433 landmark 0 -4194.43 -4736.05 126.787 3.22751 1 VictorsPoint VictorsPoint game_tele 1433 5470 4922 twilighthighlands 0 0 +poi_tele_1434 landmark 0 -4184.38 -5650.3 27.3267 5.11639 1 FirebeardsPatrol FirebeardsPatrol game_tele 1434 5141 4922 twilighthighlands 0 0 +poi_tele_1435 bank 0 -4827.46 -6678.2 4.38096 0.945928 1 Highbank Highbank game_tele 1435 5140 4922 twilighthighlands 0 0 +poi_tele_1436 settlement 0 -5123.42 450.15 396.584 0.222564 1 NewTinkertown NewTinkertown game_tele 1436 133 1 dun_morogh 0 1 +poi_tele_1437 landmark 0 -7008.63 -2554.03 241.714 4.87685 1 DragonsMouth DragonsMouth game_tele 1437 5564 3 badlands 0 0 +poi_tele_1438 landmark 0 -6603.82 -3407.45 279.287 2.74842 1 DustwindDig DustwindDig game_tele 1438 5525 3 badlands 0 0 +poi_tele_1439 landmark 0 -6628.2 -3895.36 378.73 4.7983 1 Fuselight Fuselight game_tele 1439 5496 3 badlands 0 0 +poi_tele_144 landmark 0 -235.037 -2566.93 118.73 1.11813 1 BogensLedge BogensLedge game_tele 144 1887 47 thehinterlands 0 0 +poi_tele_1440 settlement 0 -9474.42 -2841.39 65.2866 3.3681 1 CampEverstill CampEverstill game_tele 1440 5326 44 redridgemountains 0 0 +poi_tele_1441 landmark 0 -9637.02 -3474.82 121.956 5.36301 1 ShalewindCanyon ShalewindCanyon game_tele 1441 5324 44 redridgemountains 0 0 +poi_tele_1442 wilderness 0 -10150.1 -3782.54 17.3522 1.67169 1 MarshtideWatch MarshtideWatch game_tele 1442 5459 8 swampofsorrows 0 0 +poi_tele_1443 landmark 0 -12712.5 -2862.74 1.42455 4.55647 1 Surwich Surwich game_tele 1443 5084 4 blasted_lands 0 0 +poi_tele_1444 landmark 0 -12061.9 -611.914 13.7046 3.69646 1 NorthStranglethorn NorthStranglethorn game_tele 1444 1740 33 northernstranglethorn 0 0 +poi_tele_1445 landmark 0 -12834 -422.427 13.0279 4.49677 1 FortLivingston FortLivingston game_tele 1445 5320 33 northernstranglethorn 0 0 +poi_tele_1446 landmark 0 -13607.7 -62.7543 35.526 3.02416 1 ExplorersLeagueDigsite ExplorersLeagueDigsite game_tele 1446 5408 5287 thecapeofstranglethorn 0 0 +poi_tele_1447 zone 732 -281.595 1362.91 22.7936 1.84159 1 TolBaradPeninsula TolBaradPeninsula game_tele 1447 5389 5389 tolbaradpeninsula 1 0 +poi_tele_1448 landmark 732 -1208.18 980.94 119.728 3.21604 1 BaradinHold BaradinHold game_tele 1448 5399 5095 tolbarad 0 0 +poi_tele_1449 landmark 0 -198.45 1273.47 40.4208 2.0155 1 TheForsakenFront TheForsakenFront game_tele 1449 5387 130 silverpineforest 0 2 +poi_tele_145 ruins 530 -349.384 7253.7 47.4862 3.07277 1 BohaMuRuins BohaMuRuins game_tele 145 3668 3521 zangarmarsh 0 0 +poi_tele_1450 landmark 0 -1703.84 1419.06 21.6703 0.719589 1 GilneasCity GilneasCity game_tele 1450 5435 4706 ruinsofgilneas 0 0 +poi_tele_1451 zone 0 -1496.84 1617.89 20.4854 0.817762 1 RuinsOfGilneas RuinsOfGilneas game_tele 1451 4706 4706 ruinsofgilneas 1 0 +poi_tele_1452 landmark 0 -926.41 1639.02 68.4227 1.44215 1 ForsakenForwardCommand ForsakenForwardCommand game_tele 1452 5434 4706 ruinsofgilneas 0 0 +poi_tele_1453 landmark 974 -4202.26 6346.8 9.7129 3.25583 1 DarkmoonFaire DarkmoonFaire game_tele 1453 5870 5861 darkmoonisland 0 0 +poi_tele_1454 zone 0 -3493.13 -4912.95 77.1887 0.522433 1 TwilightHighlands TwilightHighlands game_tele 1454 4922 4922 twilighthighlands 1 0 +poi_tele_1455 landmark 0 -3026.46 -4013.16 279.076 4.6929 1 VermillionRedoubt VermillionRedoubt game_tele 1455 5155 4922 twilighthighlands 0 0 +poi_tele_1456 landmark 0 -3374.71 -4463.59 170.216 6.17773 1 GlopgutsHollow GlopgutsHollow game_tele 1456 5639 4922 twilighthighlands 0 0 +poi_tele_1457 landmark 0 -3687.72 -5304.55 36.1321 5.42767 1 Bloodgulch Bloodgulch game_tele 1457 5138 4922 twilighthighlands 0 0 +poi_tele_1458 landmark 0 -2748.68 -6359.73 199.013 3.34637 1 TheKrazzworks TheKrazzworks game_tele 1458 5137 4922 twilighthighlands 0 0 +poi_tele_1459 landmark 0 -4024.3 -6380.98 37.2517 6.24448 1 DragonmawPort DragonmawPort game_tele 1459 5136 4922 twilighthighlands 0 0 +poi_tele_146 landmark 1 -2270.12 2505.58 74.147 3.50113 1 BolgansHole BolgansHole game_tele 146 606 405 desolace 0 0 +poi_tele_1460 landmark 0 -4836.46 -4833.4 196.088 4.56373 1 Crushblow Crushblow game_tele 1460 5471 4922 twilighthighlands 0 0 +poi_tele_1461 landmark 0 -628.98 -1048.63 63.7107 5.91068 1 EastpointTower EastpointTower game_tele 1461 5603 267 hillsbradfoothills 0 0 +poi_tele_1462 landmark 0 -581.828 422.095 79.4355 1.59099 1 SouthpointGate SouthpointGate game_tele 1462 285 267 hillsbradfoothills 0 0 +poi_tele_1463 landmark 0 -6903.39 -3511.24 242.086 5.3766 1 BloodwatcherPoint BloodwatcherPoint game_tele 1463 5524 3 badlands 0 0 +poi_tele_1464 landmark 0 -6744.2 -2542.31 241.88 4.37523 1 NewKargath NewKargath game_tele 1464 5565 3 badlands 0 0 +poi_tele_1465 landmark 0 -8093.77 -1013.15 132.81 4.74436 1 FlamestarPost FlamestarPost game_tele 1465 5651 46 burningsteppes 0 0 +poi_tele_1466 landmark 0 -7926.49 -1922.52 132.845 1.18258 1 Chiselgrip Chiselgrip game_tele 1466 5654 46 burningsteppes 0 0 +poi_tele_1467 landmark 0 -12118.3 -841.394 45.1837 5.02317 1 Bambala Bambala game_tele 1467 5317 33 northernstranglethorn 0 0 +poi_tele_1468 landmark 0 -13296.7 735.068 3.51823 3.9236 1 HardwrenchHideaway HardwrenchHideaway game_tele 1468 1739 5287 thecapeofstranglethorn 0 0 +poi_tele_1469 landmark 0 -12346 -3019.36 88.2151 5.63504 1 SunveilExcursion SunveilExcursion game_tele 1469 5083 4 blasted_lands 0 0 +poi_tele_147 ruins 530 -2975.06 3481.44 -0.79203 5.2333 1 BonechewerRuins BonechewerRuins game_tele 147 3685 3519 terokkarforest 0 0 +poi_tele_1470 landmark 1 -10679.1 1049.4 23.3868 0.157086 1 SchnottzsLanding SchnottzsLanding game_tele 1470 5602 5034 uldum 0 0 +poi_tele_1471 landmark 1 -9448.21 -962.083 111.012 2.93346 1 Ramkahen Ramkahen game_tele 1471 5466 5034 uldum 0 0 +poi_tele_1472 landmark 1 -9469.56 -2467.28 17.0011 2.11647 1 DawnriseExpedition DawnriseExpedition game_tele 1472 5388 440 tanaris 0 0 +poi_tele_1473 wilderness 1 -7551.99 -1560.2 -270.296 2.27137 1 MarshalsStand MarshalsStand game_tele 1473 4882 490 ungorocrater 0 0 +poi_tele_1474 landmark 1 -4293.64 -922.479 80.3139 5.39944 1 WestreachSummit WestreachSummit game_tele 1474 5011 400 thousandneedles 0 0 +poi_tele_1475 landmark 1 -6119.92 -3879.47 6.17747 2.01436 1 Fizzle&PozziksSpeedbarge Fizzle&PozziksSpeedbarge game_tele 1475 5041 400 thousandneedles 0 0 +poi_tele_1476 landmark 1 -4602.94 1823.88 88.6075 4.13181 1 StonemaulHold StonemaulHold game_tele 1476 5003 357 feralas 0 0 +poi_tele_1477 settlement 1 -3090.93 2564.16 50.1792 4.08862 1 CampAtaya CampAtaya game_tele 1477 5002 357 feralas 0 0 +poi_tele_1478 landmark 1 -414.606 2226.48 91.6884 5.12392 1 FuriensPost FuriensPost game_tele 1478 4803 405 desolace 0 0 +poi_tele_1479 landmark 1 -1146.63 1659.83 62.641 3.67485 1 CenarionWildlands CenarionWildlands game_tele 1479 4804 405 desolace 0 0 +poi_tele_148 landmark 0 -14297.2 530.993 8.77916 3.98863 1 BootyBay BootyBay game_tele 148 35 5287 thecapeofstranglethorn 0 0 +poi_tele_1480 landmark 1 -3243.52 -1737.5 92.0702 1.51794 1 DesolationHold DesolationHold game_tele 1480 4853 4709 southernbarrens 0 0 +poi_tele_1481 landmark 1 -2133.74 -1737.11 95.0385 0.143498 1 VendettaPoint VendettaPoint game_tele 1481 4986 4709 southernbarrens 0 0 +poi_tele_1482 landmark 1 -811.892 -1557.49 140.893 0.398748 1 HuntersHill HuntersHill game_tele 1482 4844 4709 southernbarrens 0 0 +poi_tele_1483 zone 1 60.5981 -2708.93 91.6855 1.33239 1 NorthernBarrens NorthernBarrens game_tele 1483 17 17 northernbarrens 1 2 +poi_tele_1484 landmark 1 1138.75 -3400.13 91.7627 0.645341 1 NozzlepotsOutpost NozzlepotsOutpost game_tele 1484 5117 17 northernbarrens 0 2 +poi_tele_1485 landmark 1 898.339 12.318 92.7756 0.668837 1 KromgarFortress KromgarFortress game_tele 1485 4933 406 stonetalonmountains 0 0 +poi_tele_1486 landmark 1 1733.68 790.458 130.74 3.49729 1 TheSludgewerks TheSludgewerks game_tele 1486 4934 406 stonetalonmountains 0 0 +poi_tele_1487 landmark 1 2142.58 1281.18 452.122 0.91333 1 CliffwalkerPost CliffwalkerPost game_tele 1487 4936 406 stonetalonmountains 0 0 +poi_tele_1488 landmark 1 2993.48 -490.334 198.628 2.64353 1 HellscreamsWatch HellscreamsWatch game_tele 1488 4691 331 ashenvale 0 0 +poi_tele_1489 landmark 1 4731.59 -881.593 342.757 1.06101 1 WildheartPoint WildheartPoint game_tele 1489 5649 361 felwood 0 0 +poi_tele_149 landmark 553 40.0395 -28.613 -1.1189 2.35856 1 Bota Bota game_tele 149 3847 3847 thebotanica 0 0 +poi_tele_1490 landmark 1 6042.5 -838.868 412.509 0.03214 1 WhisperwindGrove WhisperwindGrove game_tele 1490 5645 361 felwood 0 0 +poi_tele_1491 landmark 1 6890.44 -1597.8 500.325 6.15432 1 IrontreeClearing IrontreeClearing game_tele 1491 5676 361 felwood 0 0 +poi_tele_1492 landmark 1 5580.16 -3608.15 1570.6 5.78912 1 Nordrassil Nordrassil game_tele 1492 5038 616 mounthyjal 0 0 +poi_tele_1493 zone 1 5075.76 -3201.27 1889.44 1.41445 1 MountHyjal MountHyjal game_tele 1493 616 616 mounthyjal 1 0 +poi_tele_1494 landmark 1 4986.75 -2669.72 1425.98 1.116 1 ShrineOfAviana ShrineOfAviana game_tele 1494 4990 616 mounthyjal 0 0 +poi_tele_1495 landmark 1 5111.4 -1767.61 1333.27 5.94619 1 GroveOfAessina GroveOfAessina game_tele 1495 4989 616 mounthyjal 0 0 +poi_tele_1496 landmark 1 4443.45 -2039.02 1211.09 5.08618 1 SanctuaryOfMalorne SanctuaryOfMalorne game_tele 1496 5019 616 mounthyjal 0 0 +poi_tele_1497 landmark 1 4097.25 -3983.19 970.389 3.80205 1 GatesOfSothann GatesOfSothann game_tele 1497 4998 616 mounthyjal 0 0 +poi_tele_1498 landmark 1 3528.16 -6554.95 40.7513 4.08435 1 BilgewaterHarbor BilgewaterHarbor game_tele 1498 4821 16 azshara 0 2 +poi_tele_1499 landmark 1 2647.67 -6200.57 99.1108 5.34884 1 SouthernRocketway SouthernRocketway game_tele 1499 4828 16 azshara 0 2 +poi_tele_15 landmark 1 10405.3 883.631 1320.33 0.102033 1 Aldrassil Aldrassil game_tele 15 256 141 teldrassil 0 1 +poi_tele_150 landmark 1 3155.52 -3526.2 130.635 5.5267 1 BoughShadow BoughShadow game_tele 150 438 331 ashenvale 0 0 +poi_tele_1500 landmark 1 -6985.64 -1055.36 -266.292 0.097304 1 MossyPile MossyPile game_tele 1500 4883 490 ungorocrater 0 0 +poi_tele_1501 landmark 1 -8342.68 795.983 151.57 5.97209 1 OasisOfVirsar OasisOfVirsar game_tele 1501 5670 5034 uldum 0 0 +poi_tele_1502 landmark 1 -3141.28 -2280.31 93.1071 4.34236 1 FortTriumph FortTriumph game_tele 1502 4854 4709 southernbarrens 0 0 +poi_tele_1503 settlement 1 276.744 -325.368 92.5341 0.722958 1 NorthwatchExpeditionBaseCamp NorthwatchExpeditionBaseCamp game_tele 1503 4940 406 stonetalonmountains 0 0 +poi_tele_1504 landmark 1 1210.52 435.034 77.2938 3.20874 1 WindshearHold WindshearHold game_tele 1504 4929 406 stonetalonmountains 0 0 +poi_tele_1505 landmark 1 1371.22 1039.32 165.145 4.22583 1 MirkfallonPost MirkfallonPost game_tele 1505 4935 406 stonetalonmountains 0 0 +poi_tele_1506 landmark 1 1047.4 1970.7 127.061 2.33302 1 FarwatchersGlen FarwatchersGlen game_tele 1506 4939 406 stonetalonmountains 0 0 +poi_tele_1507 landmark 1 2112.79 1598.04 341.271 6.11471 1 ThaldarahOverlook ThaldarahOverlook game_tele 1507 4937 406 stonetalonmountains 0 0 +poi_tele_1508 settlement 1 3883.11 642.907 10.4574 2.9692 1 BlackfathomCamp BlackfathomCamp game_tele 1508 4645 331 ashenvale 0 0 +poi_tele_1509 landmark 1 1925.46 -344.28 118.114 2.68645 1 StardustSpire StardustSpire game_tele 1509 4711 331 ashenvale 0 0 +poi_tele_151 landmark 0 -1968.97 -2773.94 79.3106 4.10542 1 BoulderfistHall BoulderfistHall game_tele 151 316 45 arathihighlands 0 0 +poi_tele_1510 zone 648 -8390.34 1342.36 101.991 1.2849 1 Kezan Kezan game_tele 1510 4737 4737 kezan 1 2 +poi_tele_1511 landmark 0 -6785.14 4202.74 -480.919 0.218087 1 LegionsRest LegionsRest game_tele 1511 5144 5146 vashjir 0 0 +poi_tele_1512 landmark 0 -6114.43 4287.74 -349.123 2.00952 1 SilverTideHollow SilverTideHollow game_tele 1512 4961 5144 shimmeringexpanse 0 0 +poi_tele_1513 landmark 0 -5627.77 3743.81 2.39179 3.48214 1 ShimmeringExpanse ShimmeringExpanse game_tele 1513 5144 5146 vashjir 0 0 +poi_tele_1514 landmark 0 -4570.29 3478.06 -101.809 5.62628 1 SmugglersScar SmugglersScar game_tele 1514 5057 4815 kelptharforest 0 0 +poi_tele_1515 zone 0 -4985.18 3550.5 -128.72 1.28695 1 KelptharForest KelptharForest game_tele 1515 4815 4815 kelptharforest 1 0 +poi_tele_1516 ruins 0 -6601.58 6029.2 -673.447 3.79629 1 TenebrousCavern TenebrousCavern game_tele 1516 4977 5145 abyssaldepths 0 0 +poi_tele_1517 landmark 0 -5990.31 6141.37 -803.235 2.70851 1 AbyssalDepth AbyssalDepth game_tele 1517 5134 5145 abyssaldepths 0 0 +poi_tele_1518 zone 646 915.004 503.842 -49.23 0.196921 1 Deepholm Deepholm game_tele 1518 5042 5042 deepholm 1 0 +poi_tele_1519 zone 730 851.307 1067.76 -10.0183 4.50656 1 TheMaelstrom TheMaelstrom game_tele 1519 5416 5416 themaelstrom 1 0 +poi_tele_152 landmark 0 -1197.66 -2130.17 61.2405 1.26105 1 BoulderfistOuspost BoulderfistOuspost game_tele 152 1858 45 arathihighlands 0 0 +poi_tele_1520 landmark 1 3991.27 -2952.46 1002.55 1.96224 1 Firelands Firelands game_tele 1520 5039 616 mounthyjal 0 0 +poi_tele_1521 landmark 571 8515.63 714.174 558.248 1.57298 1 TrialOfTheCrusader TrialOfTheCrusader game_tele 1521 4658 210 icecrown 0 0 +poi_tele_1522 landmark 571 8588.42 791.888 558.236 3.23819 1 TrialOfTheChampion TrialOfTheChampion game_tele 1522 4658 210 icecrown 0 0 +poi_tele_1523 ruins 0 -7570.92 -1326.44 245.537 4.82715 1 BlackrockCaverns BlackrockCaverns game_tele 1523 5374 25 blackrockmountain 0 0 +poi_tele_1524 landmark 1 -10194.8 -1837.65 20.1282 3.13903 1 HallsOfOrigination HallsOfOrigination game_tele 1524 5732 5034 uldum 0 0 +poi_tele_1525 landmark 1 -10667.5 -1303.97 15.3534 3.39428 1 LostCityOfTheTolvir LostCityOfTheTolvir game_tele 1525 5599 5034 uldum 0 0 +poi_tele_1526 landmark 1 -11506.6 -2304.29 608.394 3.83882 1 TheVortexPinnacle TheVortexPinnacle game_tele 1526 5034 5034 uldum 0 0 +poi_tele_1527 landmark 1 -11351.8 49.8219 723.885 1.94915 1 ThroneOfTheFourWinds ThroneOfTheFourWinds game_tele 1527 5034 5034 uldum 0 0 +poi_tele_1528 landmark 0 -4887.03 -4245.4 827.764 2.08397 1 BastionOfTwilight BastionOfTwilight game_tele 1528 5473 4922 twilighthighlands 0 0 +poi_tele_1529 landmark 0 -7537.35 -1199.88 477.721 1.93083 1 BlackwingDescent BlackwingDescent game_tele 1529 5729 25 blackrockmountain 0 0 +poi_tele_153 landmark 0 -1210.81 -2082.89 49.878 0.221184 1 BoulderfistOutpost BoulderfistOutpost game_tele 153 1858 45 arathihighlands 0 0 +poi_tele_1530 landmark 646 1024.46 641.61 156.673 4.91323 1 TheStoneCore TheStoneCore game_tele 1530 5303 5042 deepholm 0 0 +poi_tele_1531 landmark 0 -5598.9 5411.9 -1798.71 5.63353 1 ThroneOfTheTides ThroneOfTheTides game_tele 1531 5047 5145 abyssaldepths 0 0 +poi_tele_1532 landmark 1 -8284.39 -4521.57 -219.041 0.338499 1 DragonSoul DragonSoul game_tele 1532 2300 440 tanaris 0 0 +poi_tele_154 landmark 0 -1194.77 -2202.83 53.6903 1.52416 1 BoulderGor BoulderGor game_tele 154 1858 45 arathihighlands 0 0 +poi_tele_155 mine 1 1329.13 -3598.07 91.7029 3.94133 1 BoulderLodeMine BoulderLodeMine game_tele 155 381 17 northernbarrens 0 2 +poi_tele_156 landmark 530 3588.57 7143.33 140.447 1.56718 1 BoulderMok BoulderMok game_tele 156 3903 3522 bladesedgemountains 0 0 +poi_tele_157 ruins 1 -100.856 251.61 100.892 0.777452 1 BoulderslideCavern BoulderslideCavern game_tele 157 2540 406 stonetalonmountains 0 0 +poi_tele_158 landmark 1 -69.2305 63.8333 48.9635 2.54067 1 BoulderslideRavine BoulderslideRavine game_tele 158 2540 406 stonetalonmountains 0 0 +poi_tele_159 settlement 1 -3130.67 -2908.43 34.0976 1.42798 1 BrackenwallVillage BrackenwallVillage game_tele 159 496 15 dustwallowmarsh 0 0 +poi_tele_16 landmark 0 -10656.1 1655 41.8732 2.86155 1 AlexstonFarmstead AlexstonFarmstead game_tele 16 219 40 westfall 0 1 +poi_tele_160 landmark 0 -9757.58 -897.584 39.4214 5.20747 1 BrackwellPumpkinPatch BrackwellPumpkinPatch game_tele 160 62 12 elwynn 0 1 +poi_tele_161 landmark 1 -3029.73 -1058.27 50.5731 4.53254 1 BramblebladeRavine BramblebladeRavine game_tele 161 358 215 mulgore 0 2 +poi_tele_162 landmark 1 -2077.71 -2700.8 93.9102 5.72965 1 Bramblescar Bramblescar game_tele 162 4709 4709 southernbarrens 0 0 +poi_tele_163 landmark 230 458.32 26.52 -70.67 4.95 1 BRD BRD game_tele 163 1584 1584 blackrockdepths 0 0 +poi_tele_164 settlement 0 -5385.04 310.278 394.151 5.19649 1 BrewnallVillage BrewnallVillage game_tele 164 137 1 dun_morogh 0 1 +poi_tele_165 landmark 0 2539.96 -53.7843 28.1068 1.0229 1 BrightwaterLake BrightwaterLake game_tele 165 163 85 tirisfalglades 0 2 +poi_tele_166 landmark 0 -10443.9 -830.975 49.7064 1.95754 1 BrightwoodGrove BrightwoodGrove game_tele 166 242 10 duskwood 0 0 +poi_tele_167 landmark 0 2259.25 290.43 34.1137 0.987414 1 Brill Brill game_tele 167 159 85 tirisfalglades 0 2 +poi_tele_168 landmark 530 -2534.78 -12296.2 13.9722 6.17556 1 BristlelimbEnclave BristlelimbEnclave game_tele 168 3600 3525 bloodmystisle 0 1 +poi_tele_169 settlement 530 -4505.81 -11623.1 11.3414 3.04968 1 BristlelimbVillage BristlelimbVillage game_tele 169 3571 3524 azuremystisle 0 1 +poi_tele_17 landmark 0 -4817.04 -2656.26 327.12 4.68835 1 AlgazStation AlgazStation game_tele 17 925 38 lochmodan 0 1 +poi_tele_170 landmark 1 -3867.39 1131.48 154.788 6.16863 1 BrokenCommons BrokenCommons game_tele 170 3217 357 feralas 0 0 +poi_tele_171 landmark 530 -467.983 3471.16 38.2596 4.92625 1 BrokenHill BrokenHill game_tele 171 3671 3483 hellfirepeninsula 0 0 +poi_tele_172 landmark 1 -7997.8 -3891.14 11.7253 1.31317 1 BrokenPillar BrokenPillar game_tele 172 1938 440 tanaris 0 0 +poi_tele_173 landmark 530 3507.86 4615.89 216.47 0.378958 1 BrokenWilds BrokenWilds game_tele 173 3863 3522 bladesedgemountains 0 0 +poi_tele_174 settlement 1 -8008.65 1107.88 -0.668291 3.56178 1 BronzebeardEncampment BronzebeardEncampment game_tele 174 3427 1377 silithus 0 0 +poi_tele_175 landmark 0 2465.15 -5116.14 76.4285 5.12016 1 BrowmanMill BrowmanMill game_tele 175 2269 139 easternplaguelands 0 0 +poi_tele_176 landmark 564 96.4462 1002.35 -86.9984 6.26671 1 BT BT game_tele 176 3959 3959 blacktemple 0 0 +poi_tele_177 landmark 1 -171.297 -4362.51 68.0577 0.011192 1 BurningBladeCoven BurningBladeCoven game_tele 177 365 14 durotar 0 2 +poi_tele_178 ruins 530 -2560.08 6248.7 17.9276 1.14689 1 BurningBladeRuins BurningBladeRuins game_tele 178 3610 3518 nagrand 0 0 +poi_tele_179 zone 0 -8118.54 -1633.83 132.996 0.089067 1 BurningSteppes BurningSteppes game_tele 179 46 46 burningsteppes 1 0 +poi_tele_18 landmark 530 -2593.73 3326.38 0.607573 4.93171 1 AllerianPost AllerianPost game_tele 18 3901 3519 terokkarforest 0 0 +poi_tele_180 landmark 469 -7664.76 -1100.87 399.679 0.561981 1 BWL BWL game_tele 180 2677 2677 blackwinglair 0 0 +poi_tele_181 landmark 0 1248.8 -2604.13 90.961 0.255412 1 CaerDarrow CaerDarrow game_tele 181 2298 28 westernplaguelands 0 0 +poi_tele_182 settlement 1 -44.6129 -505.122 -46.1274 1.84172 1 CampAparaje CampAparaje game_tele 182 2538 406 stonetalonmountains 0 0 +poi_tele_183 settlement 0 -7022.26 -3609.21 241.879 4.08514 1 CampBoff CampBoff game_tele 183 3 3 badlands 0 0 +poi_tele_184 settlement 0 -7166.43 -2390.08 240.945 5.77925 1 CampCagg CampCagg game_tele 184 344 3 badlands 0 0 +poi_tele_185 settlement 1 -4619.13 -1234.54 -53.5973 3.48882 1 CampEThok CampEThok game_tele 185 400 400 thousandneedles 0 0 +poi_tele_186 settlement 0 -6264.36 -3703.95 244.144 4.65455 1 CampKosh CampKosh game_tele 186 341 3 badlands 0 0 +poi_tele_187 settlement 1 -4396.7 224.841 25.4136 4.93684 1 CampMojache CampMojache game_tele 187 1099 357 feralas 0 0 +poi_tele_188 settlement 1 -2919.35 -264.535 53.6197 0.409027 1 CampNarache CampNarache game_tele 188 221 215 mulgore 0 2 +poi_tele_189 settlement 530 3216.07 3543.61 124.642 5.94353 1 CampOfBoom CampOfBoom game_tele 189 3883 3523 netherstorm 0 0 +poi_tele_19 landmark 530 -2949.27 3958.32 0.285465 1.37205 1 AllerianStronghold AllerianStronghold game_tele 19 3684 3519 terokkarforest 0 0 +poi_tele_190 settlement 1 -2363.11 -1913.78 95.7829 0.165556 1 CampTaurajo CampTaurajo game_tele 190 4851 4709 southernbarrens 0 0 +poi_tele_191 settlement 0 -6838.66 -2833.16 241.666 1.16111 1 CampWurg CampWurg game_tele 191 1878 3 badlands 0 0 +poi_tele_192 landmark 0 1650.58 200.023 -62.1773 1.41639 1 Canals Canals game_tele 192 1497 1497 undercity 0 2 +poi_tele_193 landmark 530 -2866.74 4738.97 -4.36527 0.870223 1 CarrionHill CarrionHill game_tele 193 3891 3519 terokkarforest 0 0 +poi_tele_194 landmark 0 -8583.63 805.724 106.519 0.660715 1 CathedralOfLight CathedralOfLight game_tele 194 5704 1519 stormwind 0 1 +poi_tele_195 landmark 0 -8658.39 746.877 96.825 0.646923 1 CathedralSquare CathedralSquare game_tele 195 5151 1519 stormwind 0 1 +poi_tele_196 ruins 1 -8204.88 -4495.25 9.0091 4.72574 1 CavernsOfTime CavernsOfTime game_tele 196 2300 440 tanaris 0 0 +poi_tele_197 landmark 530 4035.83 1435.5 -123.376 5.73225 1 CelestialRidge CelestialRidge game_tele 197 3737 3523 netherstorm 0 0 +poi_tele_198 landmark 1 -6834 763.39 43.0314 4.97156 1 CenarioHold CenarioHold game_tele 198 3425 1377 silithus 0 0 +poi_tele_199 landmark 1 10122.8 2540.84 1321.73 0.326671 1 CenarionEnclave CenarionEnclave game_tele 199 1658 1657 darnassus 0 1 +poi_tele_2 landmark 530 -2068.19 7463.77 -18.9908 5.21755 1 AbandonedArmory AbandonedArmory game_tele 2 3839 3518 nagrand 0 0 +poi_tele_20 landmark 530 -3053.96 828.896 -10.4689 5.53466 1 AltarOfShatar AltarOfShatar game_tele 20 3754 3520 shadowmoonvalley 0 0 +poi_tele_200 landmark 1 -6818.09 733.814 41.5661 2.3082 1 CenarionHold CenarionHold game_tele 200 3425 1377 silithus 0 0 +poi_tele_201 landmark 530 -318.842 4718.99 18.4132 6.21599 1 CenarionPost CenarionPost game_tele 201 3808 3483 hellfirepeninsula 0 0 +poi_tele_202 landmark 530 -223.541 5487.99 23.2281 0.886755 1 CenarionRefuge CenarionRefuge game_tele 202 3565 3521 zangarmarsh 0 0 +poi_tele_203 landmark 530 -1816.67 4691.8 10.6813 0.383229 1 CenarionThicket CenarionThicket game_tele 203 3674 3519 terokkarforest 0 0 +poi_tele_204 landmark 530 2416.41 2171.83 90.9205 5.58696 1 ChapelYard ChapelYard game_tele 204 3879 3523 netherstorm 0 0 +poi_tele_205 landmark 0 -5568.39 94.4882 483.947 2.57091 1 ChillBreezeValley ChillBreezeValley game_tele 205 801 1 dun_morogh 0 1 +poi_tele_206 settlement 0 967.964 -1443.99 65.0399 2.05398 1 ChillwindCamp ChillwindCamp game_tele 206 3197 28 westernplaguelands 0 0 +poi_tele_207 landmark 0 262.381 -1437.45 50.1333 4.13091 1 ChillwindPoint ChillwindPoint game_tele 207 1684 267 hillsbradfoothills 0 0 +poi_tele_208 landmark 530 2839.44 5930.17 11.1002 3.16284 1 CircleOfBloodArena CircleOfBloodArena game_tele 208 3855 3522 bladesedgemountains 0 0 +poi_tele_209 landmark 0 -842.406 -3271.57 78.3724 0.432116 1 CircleOfEastBinding CircleOfEastBinding game_tele 209 333 45 arathihighlands 0 0 +poi_tele_21 landmark 0 -7616.9 -744.571 190.288 5.01897 1 AltarOfStorms AltarOfStorms game_tele 21 255 46 burningsteppes 0 0 +poi_tele_210 landmark 0 -1539.11 -2168.63 17.3715 0.578985 1 CircleOfInnerBinding CircleOfInnerBinding game_tele 210 335 45 arathihighlands 0 0 +poi_tele_211 landmark 0 -1354.53 -2737.5 58.9458 5.9114 1 CircleOfOuterBinding CircleOfOuterBinding game_tele 211 336 45 arathihighlands 0 0 +poi_tele_212 landmark 0 -867.807 -1777.93 40.2461 5.60058 1 CircleOfWestBinding CircleOfWestBinding game_tele 212 334 45 arathihighlands 0 0 +poi_tele_213 landmark 1 1836.86 -4397.85 3.58252 2.15931 1 CleftOfShadow CleftOfShadow game_tele 213 1637 1637 orgrimmar 0 2 +poi_tele_214 landmark 1 6892.58 -659.319 85.6375 3.11156 1 CliffspringFalls CliffspringFalls game_tele 214 445 148 darkshore 0 1 +poi_tele_215 landmark 1 7344.08 -398.198 0.822346 3.29942 1 CliffspringRiver CliffspringRiver game_tele 215 452 148 darkshore 0 1 +poi_tele_216 landmark 530 735.066 6883.45 -66.2913 5.89172 1 CoilfangReservoir CoilfangReservoir game_tele 216 3905 3521 zangarmarsh 0 0 +poi_tele_217 landmark 530 -2926.87 1333.17 8.17311 4.24367 1 CoilskarCistern CoilskarCistern game_tele 217 3749 3520 shadowmoonvalley 0 0 +poi_tele_218 landmark 530 -3010.81 1715.21 74.0269 6.16004 1 CoilskarPoint CoilskarPoint game_tele 218 3750 3520 shadowmoonvalley 0 0 +poi_tele_219 landmark 0 2109.16 603.695 35.2618 0.727451 1 ColdHearthManor ColdHearthManor game_tele 219 166 85 tirisfalglades 0 2 +poi_tele_22 landmark 0 370.763 -491.355 175.361 5.37858 1 AlteracMountains AlteracMountains game_tele 22 1357 267 hillsbradfoothills 0 0 +poi_tele_220 landmark 0 -6231.77 332.993 383.171 0.480178 1 ColdridgeValley ColdridgeValley game_tele 220 132 1 dun_morogh 0 1 +poi_tele_221 landmark 0 2012.28 -4470.7 73.6229 5.15472 1 CorinsCrossing CorinsCrossing game_tele 221 2264 139 easternplaguelands 0 0 +poi_tele_222 landmark 0 34.5932 -549.443 144.423 2.68188 1 CorrahnsDagger CorrahnsDagger game_tele 222 1679 267 hillsbradfoothills 0 0 +poi_tele_223 landmark 530 2988.21 1806.9 139.071 3.8591 1 Cosmowrench Cosmowrench game_tele 223 3724 3523 netherstorm 0 0 +poi_tele_224 landmark 530 9888.38 -7178.39 31.0292 0.854246 1 CourtOfTheSun CourtOfTheSun game_tele 224 3487 3487 silvermooncity 0 2 +poi_tele_225 landmark 1 10070 2293.83 1329.44 5.9784 1 CraftmensTerrace CraftmensTerrace game_tele 225 1659 1657 darnassus 0 1 +poi_tele_226 landmark 1 1598.52 106.656 22.1495 4.00152 1 CragpoolLake CragpoolLake game_tele 226 463 406 stonetalonmountains 0 0 +poi_tele_227 landmark 530 -4042.22 -13779.5 74.8069 2.37976 1 CrashSite CrashSite game_tele 227 3527 3524 azuremystisle 0 1 +poi_tele_228 landmark 530 -4606.39 1359.61 139.903 2.40976 1 CrimsonWatch CrimsonWatch game_tele 228 3950 3520 shadowmoonvalley 0 0 +poi_tele_229 landmark 0 1864.38 -3675.68 153.909 4.56648 1 CrownGuardTower CrownGuardTower game_tele 229 2263 139 easternplaguelands 0 0 +poi_tele_23 zone 30 -215.738 -309.394 6.66761 3.07325 1 AlteracValley AlteracValley game_tele 23 2597 2597 alteracvalley 1 0 +poi_tele_230 landmark 0 3039.71 -559.263 121.856 0.032519 1 CrusadersOutpost CrusadersOutpost game_tele 230 459 85 tirisfalglades 0 2 +poi_tele_231 landmark 0 1797.5 689.077 44.7761 1.51755 1 CrusadersOutpost CrusadersOutpost game_tele 231 4921 85 tirisfalglades 0 2 +poi_tele_232 landmark 0 684.935 -583.82 163.055 3.81442 1 CrushridgeHold CrushridgeHold game_tele 232 282 267 hillsbradfoothills 0 0 +poi_tele_233 ruins 0 -11052.9 -1568.93 27.233 4.64509 1 Crypt Crypt game_tele 233 10 10 duskwood 0 0 +poi_tele_234 landmark 0 -9528.41 -359.942 61.0692 5.9536 1 CrystalLake CrystalLake game_tele 234 18 12 elwynn 0 1 +poi_tele_235 landmark 530 4004.78 4989.05 267.544 0.940518 1 CrystalSpine CrystalSpine game_tele 235 3865 3522 bladesedgemountains 0 0 +poi_tele_236 mine 0 -13304.6 -428.921 14.3756 4.78735 1 CrystalveinMine CrystalveinMine game_tele 236 310 5287 thecapeofstranglethorn 0 0 +poi_tele_237 landmark 530 2687.72 5597.35 -11.2866 4.70098 1 CursedHollow CursedHollow game_tele 237 3904 3522 bladesedgemountains 0 0 +poi_tele_238 landmark 0 -1092.24 -2852.42 42.3323 4.65476 1 DabyriesFarmstead DabyriesFarmstead game_tele 238 315 45 arathihighlands 0 0 +poi_tele_239 settlement 530 1175.45 8135.31 18.8313 0.846961 1 DaggerfenVillage DaggerfenVillage game_tele 239 3640 3521 zangarmarsh 0 0 +poi_tele_24 landmark 30 883.187 -489.375 96.7618 3.06932 1 AlteracValleyAlliance AlteracValleyAlliance game_tele 24 2597 2597 alteracvalley 0 0 +poi_tele_240 landmark 530 3549.35 5684.65 -10.3382 5.88067 1 DaggermawCanyon DaggermawCanyon game_tele 240 3826 3522 bladesedgemountains 0 0 +poi_tele_241 landmark 0 335.479 204.771 42.1124 3.42294 1 DalaranCrater DalaranCrater game_tele 241 279 267 hillsbradfoothills 0 0 +poi_tele_242 landmark 0 1845.91 -1563.5 59.1322 5.86316 1 DalsonsTears DalsonsTears game_tele 242 200 28 westernplaguelands 0 0 +poi_tele_243 landmark 0 1180.74 -330.016 43.949 0.365731 1 DandredsFold DandredsFold game_tele 243 1682 267 hillsbradfoothills 0 0 +poi_tele_244 landmark 1 -4779.79 -1882.54 90.1741 3.77625 1 DarkcloudPinnacle DarkcloudPinnacle game_tele 244 2097 400 thousandneedles 0 0 +poi_tele_245 landmark 530 -389.634 6364.47 21.7062 5.20512 1 DarkcrestEnclave DarkcrestEnclave game_tele 245 3819 3521 zangarmarsh 0 0 +poi_tele_246 landmark 530 -589.891 5879.56 21.8492 5.17685 1 DarkcrestShore DarkcrestShore game_tele 246 3841 3521 zangarmarsh 0 0 +poi_tele_247 ruins 1 -2819.49 -2770.63 35.1771 1.85512 1 DarkmistCavern DarkmistCavern game_tele 247 499 15 dustwallowmarsh 0 0 +poi_tele_248 landmark 0 -10573 -1182.51 28.0148 0.309022 1 Darkshire Darkshire game_tele 248 42 10 duskwood 0 0 +poi_tele_249 zone 1 5756.25 298.505 20.6049 5.96504 1 Darkshore Darkshore game_tele 249 148 148 darkshore 1 1 +poi_tele_25 landmark 30 -818.155 -623.043 54.0884 2.15276 1 AlteracValleyHorde AlteracValleyHorde game_tele 25 2597 2597 alteracvalley 0 0 +poi_tele_250 landmark 1 -1111.52 -4776.58 4.40189 4.11253 1 DarkspearStrand DarkspearStrand game_tele 250 393 14 durotar 0 2 +poi_tele_251 landmark 1 4918.16 -4553.79 857.268 3.62056 1 DarkwhisperGorge DarkwhisperGorge game_tele 251 4991 616 mounthyjal 0 0 +poi_tele_252 zone 1 9949.56 2284.21 1341.4 1.59587 1 Darnassus Darnassus game_tele 252 1657 1657 darnassus 1 1 +poi_tele_253 landmark 0 -318.143 -456.173 59.0946 0.914737 1 DarrowHill DarrowHill game_tele 253 1056 267 hillsbradfoothills 0 0 +poi_tele_254 landmark 0 1547.05 -2355.31 61.0999 2.91792 1 DarrowmereLake DarrowmereLake game_tele 254 2297 28 westernplaguelands 0 0 +poi_tele_255 landmark 0 1469.48 -3686.9 77.7679 3.44337 1 DarrowShire DarrowShire game_tele 255 2262 139 easternplaguelands 0 0 +poi_tele_256 landmark 530 9994.48 -6487.35 1.20902 2.43127 1 DawningLane DawningLane game_tele 256 3532 3430 eversongwoods 0 2 +poi_tele_257 landmark 530 7828.77 -7846.07 168.986 4.5841 1 DawnstarSpire DawnstarSpire game_tele 257 3495 3433 ghostlands 0 2 +poi_tele_258 landmark 1 831.592 -5068.66 4.14613 4.95999 1 DeadeyeShore DeadeyeShore game_tele 258 375 14 durotar 0 2 +poi_tele_259 landmark 0 -10461.4 -1744.82 88.1416 5.05985 1 DeadmansCrossing DeadmansCrossing game_tele 259 2697 41 deadwindpass 0 0 +poi_tele_26 landmark 0 -9194.3 -2748.93 88.8711 1.84838 1 AlthersMill AlthersMill game_tele 26 97 44 redridgemountains 0 0 +poi_tele_260 dungeon 0 -11208.2 1672.81 24.65 1.52892 1 Deadmines Deadmines game_tele 260 920 40 westfall 0 0 +poi_tele_261 zone 0 -10438.8 -1932.75 104.617 4.77402 1 DeadwindPass DeadwindPass game_tele 261 41 41 deadwindpass 1 0 +poi_tele_262 landmark 0 -10811.7 -1859.29 114.868 4.26659 1 DeadwindRavine DeadwindRavine game_tele 262 2558 41 deadwindpass 0 0 +poi_tele_263 settlement 1 3560.7 -1123.08 220.487 3.14152 1 DeadwoodVillage DeadwoodVillage game_tele 263 1761 361 felwood 0 0 +poi_tele_264 workshop 530 -3472.5 2006.64 96.8434 6.22837 1 DeathforgeTower DeathforgeTower game_tele 264 3748 3520 shadowmoonvalley 0 0 +poi_tele_265 landmark 0 1843.5 1590 93.2971 3.08757 1 Deathknell Deathknell game_tele 265 154 85 tirisfalglades 0 2 +poi_tele_266 landmark 0 1841.39 1591.43 93.4301 2.39092 1 Deathnell Deathnell game_tele 266 154 85 tirisfalglades 0 2 +poi_tele_267 landmark 530 6545.51 -6406.76 32.4218 2.39547 1 Deatholme Deatholme game_tele 267 3500 3433 ghostlands 0 2 +poi_tele_268 landmark 530 2033.17 5415.61 144.698 0.117995 1 DeathsDoor DeathsDoor game_tele 268 3831 3522 bladesedgemountains 0 0 +poi_tele_269 mine 0 368.992 1100.97 106.238 5.00081 1 DeepElemMine DeepElemMine game_tele 269 213 130 silverpineforest 0 2 +poi_tele_27 landmark 530 7639.28 -7482.36 158.73 1.63194 1 AmaniCatacombs AmaniCatacombs game_tele 27 3510 3433 ghostlands 0 2 +poi_tele_270 zone 369 23.0998 9.00932 -4.29664 3.18737 1 DeeprunTram DeeprunTram game_tele 270 2257 2257 deepruntram 1 1 +poi_tele_271 landmark 1 1795.06 -3179.68 92.2109 3.17443 1 DemonFallCanyon DemonFallCanyon game_tele 271 435 331 ashenvale 0 0 +poi_tele_272 landmark 1 1561.25 -2840.63 182.535 2.51311 1 DemonFallRidge DemonFallRidge game_tele 272 436 331 ashenvale 0 0 +poi_tele_273 landmark 0 -11117.5 1797.77 36.5497 2.64007 1 DemontsPlace DemontsPlace game_tele 273 921 40 westfall 0 1 +poi_tele_274 landmark 530 -1089.35 4197.33 16.769 3.0523 1 DenOfHaalEsh DenOfHaalEsh game_tele 274 3556 3483 hellfirepeninsula 0 0 +poi_tele_275 landmark 530 -3754.58 4708.83 -17.8536 0.692921 1 DerelictCaravan DerelictCaravan game_tele 275 3886 3519 terokkarforest 0 0 +poi_tele_276 zone 1 -606.395 2211.75 92.9818 0.809746 1 Desolace Desolace game_tele 276 405 405 desolace 1 0 +poi_tele_277 landmark 0 -6123.1 -2955.85 204.97 2.93259 1 DigOne DigOne game_tele 277 1517 3 badlands 0 0 +poi_tele_278 workshop 0 -2838.55 -2875.5 32.5915 0.253382 1 DireforgeHill DireforgeHill game_tele 278 1016 11 wetlands 0 0 +poi_tele_279 landmark 1 -3980.8 789.005 161.007 4.71945 1 DireMaulEast DireMaulEast game_tele 279 2577 357 feralas 0 0 +poi_tele_28 landmark 530 6849.17 -7747.52 122.016 4.56069 1 AmaniPass AmaniPass game_tele 28 3508 3433 ghostlands 0 2 +poi_tele_280 landmark 1 -3521.29 1085.2 161.097 4.7281 1 DireMaulNorth DireMaulNorth game_tele 280 2577 357 feralas 0 0 +poi_tele_281 landmark 1 -3828.01 1250.22 160.226 3.20835 1 DireMaulWest DireMaulWest game_tele 281 3217 357 feralas 0 0 +poi_tele_282 landmark 429 -201.11 -328.66 -2.72386 5.22313 1 Dmeast Dmeast game_tele 282 2557 2557 diremaul 0 0 +poi_tele_283 landmark 429 255.249 -16.0561 -2.58737 4.7 1 Dmnorth Dmnorth game_tele 283 2557 2557 diremaul 0 0 +poi_tele_284 landmark 429 -67.3581 163.341 -3.46468 2.13943 1 Dmwest Dmwest game_tele 284 2557 2557 diremaul 0 0 +poi_tele_285 landmark 1 9848.37 966.953 1306.38 3.77457 1 Dolanaar Dolanaar game_tele 285 186 141 teldrassil 0 1 +poi_tele_286 landmark 0 -8187.12 -1019.58 145.084 3.11439 1 Dracodar Dracodar game_tele 286 5650 46 burningsteppes 0 0 +poi_tele_287 mine 530 1413.82 6539.05 3.65071 3.14981 1 Draenethystmine Draenethystmine game_tele 287 3778 3522 bladesedgemountains 0 0 +poi_tele_288 settlement 530 -5105.71 600.108 85.5544 5.2386 1 DragonmawBaseCamp DragonmawBaseCamp game_tele 288 3966 3520 shadowmoonvalley 0 0 +poi_tele_289 landmark 530 -4193.21 380.221 118.023 3.5046 1 DragonmawFortress DragonmawFortress game_tele 289 3939 3520 shadowmoonvalley 0 0 +poi_tele_29 landmark 0 -129.094 835.621 63.598 4.83351 1 Ambermill Ambermill game_tele 29 233 130 silverpineforest 0 2 +poi_tele_290 landmark 0 -3453.27 -3655.72 58.0513 4.29267 1 DragonmawGates DragonmawGates game_tele 290 1038 11 wetlands 0 0 +poi_tele_291 landmark 530 2672.5 5852.8 -15.4945 1.64421 1 DragonsEnd DragonsEnd game_tele 291 3825 3522 bladesedgemountains 0 0 +poi_tele_292 landmark 0 -10895 -2933.24 12.8408 6.26628 1 DreadmaulHold DreadmaulHold game_tele 292 1437 4 blasted_lands 0 0 +poi_tele_293 landmark 0 -11517.4 -2851.64 6.78542 4.15663 1 DreadmaulPost DreadmaulPost game_tele 293 1439 4 blasted_lands 0 0 +poi_tele_294 landmark 0 -7734.77 -2609.01 165.137 4.22183 1 DreadmaulRock DreadmaulRock game_tele 294 249 46 burningsteppes 0 0 +poi_tele_295 landmark 1 317.4 -2209.99 213.239 4.9592 1 DreadmistDen DreadmistDen game_tele 295 384 17 northernbarrens 0 2 +poi_tele_296 landmark 1 327.143 -2253.88 242.753 3.93818 1 DreadmistPeak DreadmistPeak game_tele 296 384 17 northernbarrens 0 2 +poi_tele_297 landmark 1 -3141.22 -4220.36 0.570819 5.34856 1 DreadmurkShore DreadmurkShore game_tele 297 518 15 dustwallowmarsh 0 0 +poi_tele_298 landmark 1 -2944.13 1891.22 33.9487 0.049356 1 DreamBough DreamBough game_tele 298 1111 357 feralas 0 0 +poi_tele_299 landmark 1 916.611 -4810.57 14.8334 6.28024 1 DrygulchRavine DrygulchRavine game_tele 299 370 14 durotar 0 2 +poi_tele_3 landmark 1 -7583.58 -3408.81 43.2019 2.47556 1 AbyssalSands AbyssalSands game_tele 3 1939 440 tanaris 0 0 +poi_tele_30 landmark 0 -5537.72 -1336.54 398.664 0.237343 1 AmberstillRanch AmberstillRanch game_tele 30 803 1 dun_morogh 0 1 +poi_tele_300 landmark 0 -1003.14 -3841.03 148.832 5.54348 1 DrywhiskerGorge DrywhiskerGorge game_tele 300 318 45 arathihighlands 0 0 +poi_tele_301 landmark 0 -4086.41 -2604.38 44.7943 1.58996 1 DunAlgaz DunAlgaz game_tele 301 836 11 wetlands 0 0 +poi_tele_302 landmark 1 -8491.62 -3036.55 9.25275 3.88535 1 DunemaulCompound DunemaulCompound game_tele 302 983 440 tanaris 0 0 +poi_tele_303 landmark 0 -1256.99 -1189.47 38.9804 3.82979 1 DunGarok DunGarok game_tele 303 290 267 hillsbradfoothills 0 0 +poi_tele_304 landmark 1 5719.41 -4504.33 760.87 4.73111 1 DunMandarr DunMandarr game_tele 304 2248 618 winterspring 0 0 +poi_tele_305 landmark 0 -2600.48 -2350.81 82.9572 0.914501 1 DunModr DunModr game_tele 305 205 11 wetlands 0 0 +poi_tele_306 zone 0 -5451.55 -656.992 392.675 0.66789 1 DunMorogh DunMorogh game_tele 306 1 1 dun_morogh 1 0 +poi_tele_307 landmark 0 -483.455 -1426.23 89.1916 1.93697 1 DurnholdeKeep DurnholdeKeep game_tele 307 275 267 hillsbradfoothills 0 0 +poi_tele_308 zone 1 1007.78 -4446.22 11.2022 0.20797 1 Durotar Durotar game_tele 308 14 14 durotar 1 2 +poi_tele_309 landmark 1 1340.98 -4638.58 53.5445 5.0328 1 DurotarZeppelin DurotarZeppelin game_tele 309 817 14 durotar 0 2 +poi_tele_31 landmark 530 -1566.43 -10800.1 51.7294 0.885114 1 AmberwebPass AmberwebPass game_tele 31 3597 3525 bloodmystisle 0 1 +poi_tele_310 landmark 530 9496.84 -7862.65 16.1435 5.20221 1 DuskwitherGrounds DuskwitherGrounds game_tele 310 3480 3430 eversongwoods 0 2 +poi_tele_311 landmark 530 9317.38 -7856.4 63.2953 5.35693 1 DuskwitherSpire DuskwitherSpire game_tele 311 3480 3430 eversongwoods 0 2 +poi_tele_312 zone 0 -10898.3 -364.784 39.2681 3.04614 1 Duskwood Duskwood game_tele 312 10 10 duskwood 1 0 +poi_tele_313 landmark 0 -6440.73 -1987.77 244.718 0.464476 1 DustfireValley DustfireValley game_tele 313 1959 51 searinggorge 0 0 +poi_tele_314 landmark 530 -758.534 4401.98 79.563 2.88658 1 DustquillRavine DustquillRavine game_tele 314 3835 3483 hellfirepeninsula 0 0 +poi_tele_315 landmark 1 -3646.88 -3847.61 4.72729 6.08682 1 DustwallowBay DustwallowBay game_tele 315 516 15 dustwallowmarsh 0 0 +poi_tele_316 zone 1 -4043.65 -2991.32 36.3984 3.37443 1 DustwallowMarsh DustwallowMarsh game_tele 316 15 15 dustwallowmarsh 1 0 +poi_tele_317 ruins 1 790.409 -4756.59 38.4724 0.283734 1 DustwindCave DustwindCave game_tele 317 14 14 durotar 0 2 +poi_tele_318 landmark 0 -8394.21 606.628 94.6108 1.15148 1 DwarvenDistrict DwarvenDistrict game_tele 318 5150 1519 stormwind 0 1 +poi_tele_319 zone 0 2300.97 -4613.36 73.6231 0.367722 1 EasternPlaguelands EasternPlaguelands game_tele 319 139 139 easternplaguelands 1 0 +poi_tele_32 landmark 1 5674.5 128.459 32.3476 6.11808 1 AmethAran AmethAran game_tele 32 447 148 darkshore 0 1 +poi_tele_320 landmark 0 -1011.45 -765.635 5.14928 2.23574 1 EasternStrand EasternStrand game_tele 320 294 267 hillsbradfoothills 0 0 +poi_tele_321 ruins 1 -8794.45 -3396.89 11.7786 3.88771 1 EastmoonRuins EastmoonRuins game_tele 321 984 440 tanaris 0 0 +poi_tele_322 landmark 530 8748.09 -7067.4 37.1027 4.29194 1 EastSanctum EastSanctum game_tele 322 3467 3430 eversongwoods 0 2 +poi_tele_323 settlement 0 -9450.82 -1299.92 42.7818 5.20197 1 EastvaleLoggingCamp EastvaleLoggingCamp game_tele 323 88 12 elwynn 0 1 +poi_tele_324 landmark 0 3194.88 -4038.96 107.991 6.27156 1 EastwallGate EastwallGate game_tele 324 2625 139 easternplaguelands 0 0 +poi_tele_325 landmark 0 2521.67 -4756.54 99.988 5.5003 1 EastwallTower EastwallTower game_tele 325 2271 139 easternplaguelands 0 0 +poi_tele_326 landmark 1 -1041.59 -5346.67 0.218679 4.0102 1 EchoIsles EchoIsles game_tele 326 4875 14 durotar 0 2 +poi_tele_327 ruins 70 -148.859 387.324 -38.5684 2.99526 1 EchonokCaver EchonokCaver game_tele 327 1337 1337 uldaman 0 0 +poi_tele_328 mine 0 -8689.6 -114.525 88.8215 5.95046 1 EchoRidgeMine EchoRidgeMine game_tele 328 34 12 elwynn 0 1 +poi_tele_329 landmark 530 -4472.37 1671.36 162.888 3.88687 1 EclipsePoint EclipsePoint game_tele 329 3822 3520 shadowmoonvalley 0 0 +poi_tele_33 landmark 530 -4155.37 -13498.5 48.356 5.92816 1 AmmenFields AmmenFields game_tele 33 3560 3524 azuremystisle 0 1 +poi_tele_330 landmark 530 4949.53 3041.26 98.7052 5.42963 1 EcoDomeFarfield EcoDomeFarfield game_tele 330 3874 3523 netherstorm 0 0 +poi_tele_331 landmark 530 3421.37 2800.02 150.087 0.705719 1 EcoDomeMidrealm EcoDomeMidrealm game_tele 331 3877 3523 netherstorm 0 0 +poi_tele_332 landmark 530 4469.96 2840.21 140.442 1.97331 1 EcoDomeSutheron EcoDomeSutheron game_tele 332 3876 3523 netherstorm 0 0 +poi_tele_333 landmark 1 -1048.56 -274.104 159.03 5.4703 1 ElderRise ElderRise game_tele 333 1639 1638 thunderbluff 0 2 +poi_tele_334 landmark 1 -4186.72 1261.28 161.214 4.84131 1 EldrethRow EldrethRow game_tele 334 2577 357 feralas 0 0 +poi_tele_335 landmark 530 -748.972 6563.11 171.754 2.21497 1 ElementalPlateau ElementalPlateau game_tele 335 3636 3518 nagrand 0 0 +poi_tele_336 landmark 530 8624.53 -7693.87 158.81 2.13052 1 ElrendarFalls ElrendarFalls game_tele 336 3558 3430 eversongwoods 0 2 +poi_tele_337 landmark 530 8039.45 -6241.13 16.2526 4.89432 1 ElrendarRiver ElrendarRiver game_tele 337 3515 3433 ghostlands 0 2 +poi_tele_338 zone 0 -9617.06 -288.949 57.3053 4.72687 1 ElwynnForest ElwynnForest game_tele 338 12 12 elwynn 1 1 +poi_tele_339 landmark 1 -4998.67 -3837.87 44.2691 3.7377 1 EmberstrifesDen EmberstrifesDen game_tele 339 511 15 dustwallowmarsh 0 0 +poi_tele_34 landmark 530 -4260.24 -13021 1.0163 5.35482 1 AmmenFord AmmenFord game_tele 34 3857 3524 azuremystisle 0 1 +poi_tele_340 landmark 1 3986.71 -1293.58 250.144 5.74591 1 EmeraldSanctuary EmeraldSanctuary game_tele 340 2479 361 felwood 0 0 +poi_tele_341 landmark 566 2063.11 1547.38 1162.1 1.87623 1 EOTS EOTS game_tele 341 3820 3820 eyeofthestorm 0 0 +poi_tele_342 landmark 1 -443.408 2468.83 105.837 0.930524 1 EthelRethor EthelRethor game_tele 342 2405 405 desolace 0 0 +poi_tele_343 landmark 530 4042.33 2326.74 113.447 3.1331 1 EthereumStagingGrounds EthereumStagingGrounds game_tele 343 3878 3523 netherstorm 0 0 +poi_tele_344 landmark 530 2976.85 5511.01 144.637 3.86042 1 Evergrove Evergrove game_tele 344 3951 3522 bladesedgemountains 0 0 +poi_tele_345 landmark 1 6725.69 -4619.44 720.909 4.66802 1 Everlook Everlook game_tele 345 2255 618 winterspring 0 0 +poi_tele_346 zone 530 9079.92 -7193.23 55.6013 5.94597 1 EversongWoods EversongWoods game_tele 346 3430 3430 eversongwoods 1 2 +poi_tele_347 landmark 0 -6091.69 -3076.67 242.055 1.80555 1 ExcavationCenter ExcavationCenter game_tele 347 1517 3 badlands 0 0 +poi_tele_348 landmark 530 -1384.5 2724.56 -28.568 3.37207 1 ExpeditionArmory ExpeditionArmory game_tele 348 3546 3483 hellfirepeninsula 0 0 +poi_tele_349 landmark 530 -671.631 1865.18 66.8961 5.49722 1 ExpeditionPoint ExpeditionPoint game_tele 349 3815 3483 hellfirepeninsula 0 0 +poi_tele_35 landmark 530 -4021.4 -13582.1 54.7153 2.06953 1 AmmenVale AmmenVale game_tele 35 3526 3524 azuremystisle 0 1 +poi_tele_350 landmark 550 -10.8021 -1.15045 -2.42833 6.22821 1 Eye Eye game_tele 350 3845 3845 tempestkeep 0 0 +poi_tele_351 zone 566 2167.44 1564.11 1159.35 0.254382 1 EyeOfTheStorm EyeOfTheStorm game_tele 351 3820 3820 eyeofthestorm 1 0 +poi_tele_352 landmark 566 2487.72 1609.12 1224.64 3.35671 1 EyeOfTheStormAlliance EyeOfTheStormAlliance game_tele 352 3820 3820 eyeofthestorm 0 0 +poi_tele_353 landmark 566 1843.73 1529.77 1224.43 0.297579 1 EyeOfTheStormHorde EyeOfTheStormHorde game_tele 353 3820 3820 eyeofthestorm 0 0 +poi_tele_354 settlement 530 8714.14 -6650.33 72.7517 2.39205 1 FairbreezeVillage FairbreezeVillage game_tele 354 3462 3430 eversongwoods 0 2 +poi_tele_355 landmark 530 -2906.3 -12222.4 17.3124 4.94957 1 FairbridgeStrand FairbridgeStrand game_tele 355 3915 3524 azuremystisle 0 1 +poi_tele_356 landmark 530 -600.782 4100.1 90.5571 0.207697 1 FalconWatch FalconWatch game_tele 356 3554 3483 hellfirepeninsula 0 0 +poi_tele_357 landmark 530 9514.33 -6822.1 16.4907 1.60979 1 FalconwingSquare FalconwingSquare game_tele 357 3665 3430 eversongwoods 0 2 +poi_tele_358 landmark 0 -2074.65 -2113.64 15.3642 1.55343 1 FaldirsCove FaldirsCove game_tele 358 327 45 arathihighlands 0 0 +poi_tele_359 landmark 1 2666.18 -2545.89 173.4 1.26906 1 FalfarrenRiver FalfarrenRiver game_tele 359 433 331 ashenvale 0 0 +poi_tele_36 landmark 530 -2145.99 8844.79 19.8449 3.42056 1 AncestralGrounds AncestralGrounds game_tele 36 3633 3518 nagrand 0 0 +poi_tele_360 landmark 1 1486.96 -2181.85 90.2204 0.965078 1 FallenSkyLake FallenSkyLake game_tele 360 422 331 ashenvale 0 0 +poi_tele_361 landmark 530 126.53 4847.85 74.3962 3.65942 1 FallenSkyRidge FallenSkyRidge game_tele 361 3797 3483 hellfirepeninsula 0 0 +poi_tele_362 landmark 0 -9985.94 -3594.22 21.6782 5.47218 1 FallowSanctuary FallowSanctuary game_tele 362 76 8 swampofsorrows 0 0 +poi_tele_363 landmark 530 10158.8 -6001.84 110.154 3.59136 1 FalthrienAcademy FalthrienAcademy game_tele 363 3431 3430 eversongwoods 0 2 +poi_tele_364 mine 0 -9870.52 212.959 14.0087 5.95753 1 FargodeepMine FargodeepMine game_tele 364 57 12 elwynn 0 1 +poi_tele_365 landmark 530 7544.57 -7667.85 151.258 6.22794 1 farstriderEnclave farstriderEnclave game_tele 365 3496 3433 ghostlands 0 2 +poi_tele_366 landmark 0 -5657.29 -4278.25 407.823 2.08396 1 FarstriderLodge FarstriderLodge game_tele 366 147 38 lochmodan 0 1 +poi_tele_367 landmark 530 9041.51 -7456.05 83.385 3.11721 1 FarstriderRetreat FarstriderRetreat game_tele 367 3464 3430 eversongwoods 0 2 +poi_tele_368 landmark 530 9850.54 -7396.79 13.6387 0.894016 1 FarstridersSquare FarstridersSquare game_tele 368 3487 3487 silvermooncity 0 2 +poi_tele_369 landmark 1 276.636 -3689.5 27.8892 1.64403 1 FarWatchPost FarWatchPost game_tele 369 379 17 northernbarrens 0 2 +poi_tele_37 landmark 530 7939.87 -6484.24 47.8099 3.93927 1 AnDaroth AnDaroth game_tele 37 3497 3433 ghostlands 0 2 +poi_tele_370 landmark 1 -4985.61 1590.89 63.7734 1.179 1 FearScarVale FearScarVale game_tele 370 1105 357 feralas 0 0 +poi_tele_371 landmark 0 82.3052 -2086.59 112.764 3.16252 1 FeatherbeardsHovel FeatherbeardsHovel game_tele 371 1880 47 thehinterlands 0 0 +poi_tele_372 landmark 1 -4317.47 3287.35 18.2864 3.12825 1 FeathermoonStronghold FeathermoonStronghold game_tele 372 1116 357 feralas 0 0 +poi_tele_373 landmark 1 2038.72 -2981.96 105.815 4.69104 1 FelfireHill FelfireHill game_tele 373 434 331 ashenvale 0 0 +poi_tele_374 settlement 1 6851.06 -1912.89 550.904 3.00564 1 FelpawVillage FelpawVillage game_tele 374 1762 361 felwood 0 0 +poi_tele_375 landmark 1 10041.9 1031.59 1329.46 0.24968 1 FelRock FelRock game_tele 375 258 141 teldrassil 0 1 +poi_tele_376 landmark 0 1776.93 -1179.19 59.4284 3.30669 1 FelstoneField FelstoneField game_tele 376 199 28 westernplaguelands 0 0 +poi_tele_377 zone 1 4102.25 -1006.79 272.717 0.790048 1 Felwood Felwood game_tele 377 361 361 felwood 1 0 +poi_tele_378 landmark 0 998.173 736.541 59.2738 6.16398 1 FenrisIsle FenrisIsle game_tele 378 172 130 silverpineforest 0 2 +poi_tele_379 zone 1 -4841.19 1309.44 81.3937 1.48501 1 Feralas Feralas game_tele 379 357 357 feralas 1 0 +poi_tele_38 landmark 530 7012.04 -6814.81 42.0817 5.87793 1 AndilienEstate AndilienEstate game_tele 38 3506 3433 ghostlands 0 2 +poi_tele_380 settlement 530 -110.357 7115.07 18.8779 3.49689 1 FeralfenVillage FeralfenVillage game_tele 380 3642 3521 zangarmarsh 0 0 +poi_tele_381 landmark 530 9889.14 -6647.39 10.5165 5.79591 1 FethsWay FethsWay game_tele 381 3534 3430 eversongwoods 0 2 +poi_tele_382 landmark 1 -3125.88 -2224.59 91.9413 3.27842 1 FieldOfGiants FieldOfGiants game_tele 382 4854 4709 southernbarrens 0 0 +poi_tele_383 landmark 1 -7236.79 -1417.51 -231.997 0.628312 1 FirePlumeRidge FirePlumeRidge game_tele 383 537 490 ungorocrater 0 0 +poi_tele_384 landmark 1 2221.45 197.106 131.234 1.51093 1 FireScarShrine FireScarShrine game_tele 384 417 331 ashenvale 0 0 +poi_tele_385 landmark 0 -6652.97 -832.567 244.531 1.11634 1 FirewachtRidge FirewachtRidge game_tele 385 1442 51 searinggorge 0 0 +poi_tele_386 landmark 530 -2345.07 3253.53 -3.37535 4.84822 1 FirewingPoint FirewingPoint game_tele 386 3681 3519 terokkarforest 0 0 +poi_tele_387 landmark 0 -7501.51 -2183.08 165.926 6.07144 1 FlameCrest FlameCrest game_tele 387 251 46 burningsteppes 0 0 +poi_tele_388 wilderness 0 -9700.27 812.057 27.2225 5.46273 1 ForestsEdge ForestsEdge game_tele 388 60 12 elwynn 0 1 +poi_tele_389 wilderness 1 3011.16 -3359.08 147.96 2.42202 1 ForestSong ForestSong game_tele 389 2358 331 ashenvale 0 0 +poi_tele_39 settlement 0 -3376.27 -2270.04 53.5307 4.14502 1 AngerfangEncampment AngerfangEncampment game_tele 39 1036 11 wetlands 0 0 +poi_tele_390 workshop 530 4742.7 3356.29 200.155 4.89556 1 ForgeBaseGehenna ForgeBaseGehenna game_tele 390 3740 3523 netherstorm 0 0 +poi_tele_391 workshop 530 4444.94 3415.77 165.925 5.6074 1 ForgeBaseOblivion ForgeBaseOblivion game_tele 391 3739 3523 netherstorm 0 0 +poi_tele_392 workshop 530 2940.65 4802.15 283.677 1.47618 1 ForgeCampAnger ForgeCampAnger game_tele 392 3787 3522 bladesedgemountains 0 0 +poi_tele_393 workshop 530 -1840.08 9236.04 71.6117 5.15551 1 ForgeCampFear ForgeCampFear game_tele 393 3624 3518 nagrand 0 0 +poi_tele_394 workshop 530 -1275.81 8895.8 57.4377 2.96739 1 ForgeCampHate ForgeCampHate game_tele 394 3625 3518 nagrand 0 0 +poi_tele_395 workshop 530 392.203 2195.63 118.621 5.07233 1 ForgeCampMageddon ForgeCampMageddon game_tele 395 3541 3483 hellfirepeninsula 0 0 +poi_tele_396 workshop 530 353.575 2497.05 158.244 6.02265 1 ForgeCampRage ForgeCampRage game_tele 396 3548 3483 hellfirepeninsula 0 0 +poi_tele_397 workshop 530 1540.72 7281.82 364.469 3.39479 1 ForgeCampTerror ForgeCampTerror game_tele 397 3784 3522 bladesedgemountains 0 0 +poi_tele_398 workshop 530 2910.37 6984.92 365.438 2.81124 1 ForgeCampWrath ForgeCampWrath game_tele 398 3785 3522 bladesedgemountains 0 0 +poi_tele_399 landmark 1 2750.63 -4597.28 183.965 1.62173 1 ForlornRidge ForlornRidge game_tele 399 4744 16 azshara 0 2 +poi_tele_4 landmark 558 -21.8975 0.16 -0.1206 6.28318 1 AC AC game_tele 4 3790 3790 auchenaicrypts 0 0 +poi_tele_40 landmark 0 -6398.46 -3166.67 299.812 0.769213 1 AngorFortress AngorFortress game_tele 40 338 3 badlands 0 0 +poi_tele_400 landmark 1 -5661.05 1667.52 87.9256 5.3848 1 FrayfeatherHighlands FrayfeatherHighlands game_tele 400 1106 357 feralas 0 0 +poi_tele_401 landmark 1 -5431.78 -2449.38 89.2848 2.32854 1 FreewindPost FreewindPost game_tele 401 484 400 thousandneedles 0 0 +poi_tele_402 landmark 1 6812.06 -2425.9 552.871 4.37848 1 FrostfireHotSprings FrostfireHotSprings game_tele 402 2246 618 winterspring 0 0 +poi_tele_403 landmark 0 -5542.53 501.507 387.248 2.21198 1 FrostmaneHold FrostmaneHold game_tele 403 135 1 dun_morogh 0 1 +poi_tele_404 landmark 1 8091.41 -3882.58 696.668 2.18722 1 FrostsaberRock FrostsaberRock game_tele 404 2241 618 winterspring 0 0 +poi_tele_405 landmark 1 5259.73 -4781.05 690.81 4.5269 1 FrostwhisperGorge FrostwhisperGorge game_tele 405 2249 618 winterspring 0 0 +poi_tele_406 landmark 1 -6376.41 -1810.71 -263.646 4.96999 1 FungalRock FungalRock game_tele 406 542 490 ungorocrater 0 0 +poi_tele_407 ruins 530 -1125.17 5712.53 58.7895 2.46015 1 FunggorCavern FunggorCavern game_tele 407 3652 3521 zangarmarsh 0 0 +poi_tele_408 landmark 0 -9925.14 1239.35 42.3457 0.815598 1 FurlbrowsPumpkinFarm FurlbrowsPumpkinFarm game_tele 408 109 40 westfall 0 1 +poi_tele_409 landmark 530 3875.48 5223.77 270.997 0.390741 1 FurywingsPerch FurywingsPerch game_tele 409 3972 3522 bladesedgemountains 0 0 +poi_tele_41 landmark 530 1046.25 8503.63 20.2232 2.63767 1 AngoRoshGrounds AngoRoshGrounds game_tele 41 3650 3521 zangarmarsh 0 0 +poi_tele_410 landmark 1 -7177.15 -3785.34 8.36981 6.10237 1 Gadgetzan Gadgetzan game_tele 410 976 440 tanaris 0 0 +poi_tele_411 landmark 0 1723.05 -2292.37 58.9754 2.73335 1 GahrronsWithering GahrronsWithering game_tele 411 201 28 westernplaguelands 0 0 +poi_tele_412 landmark 0 450.999 -627.906 167.189 1.86114 1 GallowsCorner GallowsCorner game_tele 412 1357 267 hillsbradfoothills 0 0 +poi_tele_413 landmark 530 -1321.34 7239.12 32.7371 4.04169 1 Garadar Garadar game_tele 413 3613 3518 nagrand 0 0 +poi_tele_414 landmark 0 2789.48 366.372 24.4196 5.13839 1 GarrensHaunt GarrensHaunt game_tele 414 164 85 tirisfalglades 0 2 +poi_tele_415 landmark 0 -10902.7 -3179.32 49.0836 0.042708 1 GarrisonArmory GarrisonArmory game_tele 415 1457 4 blasted_lands 0 0 +poi_tele_416 landmark 1 -8255.03 1484.42 4.87199 3.44005 1 GateOfAhnQiraj GateOfAhnQiraj game_tele 416 5695 5695 ahnqirajthefallenkingdom 0 0 +poi_tele_417 workshop 0 -5040.5 -814.817 495.128 5.49652 1 GateOfIronforge GateOfIronforge game_tele 417 809 1 dun_morogh 0 1 +poi_tele_418 landmark 1 -8216.06 1536.36 1.30797 3.0826 1 GatesOfAhnQiraj GatesOfAhnQiraj game_tele 418 5695 5695 ahnqirajthefallenkingdom 0 0 +poi_tele_419 landmark 0 -55.4571 -103.292 132.406 5.47787 1 GavinsNaze GavinsNaze game_tele 419 1677 267 hillsbradfoothills 0 0 +poi_tele_42 landmark 530 1593.28 8607.12 -32.6589 6.1963 1 AngoRoshStronghold AngoRoshStronghold game_tele 42 3651 3521 zangarmarsh 0 0 +poi_tele_420 settlement 530 -4615.2 -12917.5 9.74236 3.88613 1 GeezlesCamp GeezlesCamp game_tele 420 3577 3524 azuremystisle 0 1 +poi_tele_421 settlement 1 -2182.62 2534.41 71.9615 2.22408 1 GelkisVillage GelkisVillage game_tele 421 606 405 desolace 0 0 +poi_tele_422 zone 530 7360.86 -6803.3 44.2942 5.83679 1 Ghostlands Ghostlands game_tele 422 3433 3433 ghostlands 1 2 +poi_tele_423 landmark 1 -1224.46 1728.53 90.0592 0.831707 1 GhostWalkerPost GhostWalkerPost game_tele 423 597 405 desolace 0 0 +poi_tele_424 zone 1 16226.2 16257 13.2022 1.65007 1 GMIsland GMIsland game_tele 424 876 876 gmisland 1 0 +poi_tele_425 landmark 1 9254.93 1636.45 1302.05 2.40247 1 GnarlpineHold GnarlpineHold game_tele 425 261 141 teldrassil 0 1 +poi_tele_426 landmark 90 -332.22 -2.28 -150.86 2.77 1 Gnome Gnome game_tele 426 721 721 gnomeregan 0 1 +poi_tele_427 landmark 0 -5143.53 894.909 287.394 2.26833 1 Gnomeregan Gnomeregan game_tele 427 5495 1 dun_morogh 0 1 +poi_tele_428 landmark 1 -7258.24 -584.973 -271.642 0.734342 1 GolakkaHotSprings GolakkaHotSprings game_tele 428 543 490 ungorocrater 0 0 +poi_tele_429 mine 0 -5783.67 -1620.21 358.878 4.148 1 GolBolarQuarry GolBolarQuarry game_tele 429 134 1 dun_morogh 0 1 +poi_tele_43 landmark 530 6828.47 -7186.99 24.7617 4.91465 1 AnOwyn AnOwyn game_tele 43 3499 3433 ghostlands 0 2 +poi_tele_430 mine 0 -10419.6 1907.61 7.48861 2.50341 1 GoldCoastQuarry GoldCoastQuarry game_tele 430 113 40 westfall 0 1 +poi_tele_431 landmark 530 8418.56 -6138.39 58.0933 4.69877 1 GoldenboughPass GoldenboughPass game_tele 431 3912 3430 eversongwoods 0 2 +poi_tele_432 settlement 530 7895.49 -6188.39 19.5624 2.39911 1 GoldenmistVillage GoldenmistVillage game_tele 432 3490 3433 ghostlands 0 2 +poi_tele_433 landmark 530 8652.87 -5683.02 1.22002 4.18198 1 GoldenStrand GoldenStrand game_tele 433 3460 3430 eversongwoods 0 2 +poi_tele_434 landmark 1 616.536 -2489.5 94.631 4.21857 1 GoldRoad GoldRoad game_tele 434 458 17 northernbarrens 0 2 +poi_tele_435 landmark 0 -9448.55 68.236 56.3225 2.1115 1 Goldshire Goldshire game_tele 435 87 12 elwynn 0 1 +poi_tele_436 landmark 1 -3862.64 137.7 123.544 6.18747 1 GordunniOutpost GordunniOutpost game_tele 436 1103 357 feralas 0 0 +poi_tele_437 landmark 530 -1117.72 3230.8 67.8104 3.69003 1 GorGazOutpost GorGazOutpost game_tele 437 3811 3483 hellfirepeninsula 0 0 +poi_tele_438 landmark 0 -1518.71 -3067.96 14.751 0.005637 1 GoShekFarm GoShekFarm game_tele 438 314 45 arathihighlands 0 0 +poi_tele_439 settlement 530 -2458.16 4935.8 33.7396 0.969919 1 GrangolvarVillage GrangolvarVillage game_tele 439 3682 3519 terokkarforest 0 0 +poi_tele_44 landmark 530 7427.38 -7297.13 93.3437 0.18602 1 AnTelas AnTelas game_tele 44 3498 3433 ghostlands 0 2 +poi_tele_440 landmark 1 87.2504 -223.637 9.64243 4.2607 1 GreatwoodVale GreatwoodVale game_tele 440 469 406 stonetalonmountains 0 0 +poi_tele_441 settlement 1 2185.38 -1580.47 85.9111 0.829216 1 GreenpawVillage GreenpawVillage game_tele 441 2359 331 ashenvale 0 0 +poi_tele_442 landmark 0 -4080.6 -3463.16 273.276 0.690672 1 GrimBatol GrimBatol game_tele 442 1037 4922 twilighthighlands 0 0 +poi_tele_443 landmark 0 -7011.77 -1729.52 234.099 4.78807 1 GrimesiltDigSite GrimesiltDigSite game_tele 443 247 51 searinggorge 0 0 +poi_tele_444 landmark 1 -4188.75 629.705 70.4892 4.89549 1 GrimtotemCompound GrimtotemCompound game_tele 444 1100 357 feralas 0 0 +poi_tele_445 landmark 1 108.029 -322.863 3.36205 4.62591 1 GrimtotemPost GrimtotemPost game_tele 445 2537 406 stonetalonmountains 0 0 +poi_tele_446 landmark 530 3616.06 6635.92 130.007 4.95354 1 Grishnath Grishnath game_tele 446 3781 3522 bladesedgemountains 0 0 +poi_tele_447 landmark 0 -5728.8 -3113.4 315.857 0.804162 1 GrizzlepawRidge GrizzlepawRidge game_tele 447 936 38 lochmodan 0 1 +poi_tele_448 landmark 1 262.459 -3043.31 96.5546 0.64736 1 GroldomFarm GroldomFarm game_tele 448 1704 17 northernbarrens 0 2 +poi_tele_449 settlement 0 -12388.9 172.578 2.83358 1.91753 1 GromgolBaseCamp GromgolBaseCamp game_tele 449 117 33 northernstranglethorn 0 0 +poi_tele_45 landmark 0 -6925.52 -2506.75 240.744 0.795898 1 ApocryphansRest ApocryphansRest game_tele 45 5565 3 badlands 0 0 +poi_tele_450 landmark 1 1924.94 -4205.16 42.0388 1.65038 1 GrommashHold GrommashHold game_tele 450 5171 1637 orgrimmar 0 2 +poi_tele_451 settlement 0 -12365.7 175.632 2.77714 4.9248 1 GrongolbaseCamp GrongolbaseCamp game_tele 451 117 33 northernstranglethorn 0 0 +poi_tele_452 landmark 0 -11108.1 -2326.63 118.375 4.28623 1 GroshgokCompound GroshgokCompound game_tele 452 2561 41 deadwindpass 0 0 +poi_tele_453 landmark 1 4986.02 92.278 52.7174 5.66255 1 GroveOfTheAncients GroveOfTheAncients game_tele 453 448 148 darkshore 0 1 +poi_tele_454 ruins 0 216.885 -273.27 145.045 0.145041 1 GrowlessCave GrowlessCave game_tele 454 1683 267 hillsbradfoothills 0 0 +poi_tele_455 landmark 571 3707.86 2150.23 36.76 3.22 1 AzjolNerub AzjolNerub game_tele 455 65 65 dragonblight 0 0 +poi_tele_456 landmark 565 62.7842 35.462 -3.9835 1.41844 1 Gruul Gruul game_tele 456 3923 3923 gruulslair 0 0 +poi_tele_457 landmark 530 3530.06 5104.08 3.50861 5.51117 1 GruulsLair GruulsLair game_tele 457 3774 3522 bladesedgemountains 0 0 +poi_tele_458 landmark 0 -13277.4 127.372 26.1418 1.11878 1 GurubashiArena GurubashiArena game_tele 458 1741 5287 thecapeofstranglethorn 0 0 +poi_tele_459 landmark 530 3373.87 4296.43 120.293 0.2091 1 GyroPlankBridge GyroPlankBridge game_tele 459 3868 3523 netherstorm 0 0 +poi_tele_46 landmark 509 -8437.74 1516.91 31.9074 2.73319 1 AQ20 AQ20 game_tele 46 3429 3429 ruinsofahnqiraj 0 0 +poi_tele_460 landmark 530 -1241.9 4096.71 70.6772 3.55888 1 HaalEshiGorge HaalEshiGorge game_tele 460 3798 3483 hellfirepeninsula 0 0 +poi_tele_461 landmark 530 -1563.05 7945.67 -22.5568 1.13572 1 Halaa Halaa game_tele 461 3628 3518 nagrand 0 0 +poi_tele_462 landmark 530 -1349.94 7925.93 -98.2172 2.31159 1 HalaaniBasin HalaaniBasin game_tele 462 3666 3518 nagrand 0 0 +poi_tele_463 settlement 1 3280.67 -4322.2 132.301 3.1839 1 HaldarrEncampment HaldarrEncampment game_tele 463 16 16 azshara 0 2 +poi_tele_464 landmark 229 78.5083 -225.044 49.839 4.67589 1 HallOfBlackhand HallOfBlackhand game_tele 464 1583 1583 blackrockspire 0 0 +poi_tele_465 landmark 0 -4675.79 -1256.32 501.993 1.974 1 HallOfExplorers HallOfExplorers game_tele 465 5341 1537 ironforge 0 1 +poi_tele_466 zone 450 221.322 74.4933 25.7195 0.484836 1 HallOfLegends HallOfLegends game_tele 466 2917 2917 halloflegends 1 2 +poi_tele_467 landmark 1 1966.24 -4794.55 56.7642 6.241 1 HallOfTheBrave HallOfTheBrave game_tele 467 5168 1637 orgrimmar 0 2 +poi_tele_468 landmark 70 17.3566 231.68 -31.392 0.39445 1 HallOfTheCrafters HallOfTheCrafters game_tele 468 1337 1337 uldaman 0 0 +poi_tele_469 landmark 70 -226.8 49.09 -46.03 1.39 1 HallOfTheKeepers HallOfTheKeepers game_tele 469 1337 1337 uldaman 0 0 +poi_tele_47 landmark 531 -8213.48 2016 129.072 1.28414 1 AQ40 AQ40 game_tele 47 3428 3428 ahnqiraj 0 0 +poi_tele_470 landmark 0 -941.007 -3526.66 70.935 3.48668 1 Hammerfall Hammerfall game_tele 470 321 45 arathihighlands 0 0 +poi_tele_471 landmark 0 -6427.04 -3381.19 229.711 4.254 1 HammertoesDigsite HammertoesDigsite game_tele 471 346 3 badlands 0 0 +poi_tele_472 landmark 530 7065.06 -7687.02 113.903 5.96904 1 HatchetHills HatchetHills game_tele 472 3507 3433 ghostlands 0 2 +poi_tele_473 landmark 0 2793.09 -1621.4 129.333 1.98722 1 Hearthglen Hearthglen game_tele 473 190 28 westernplaguelands 0 0 +poi_tele_474 landmark 530 -390.863 3130.64 4.51327 0.218692 1 HellfireCitadel HellfireCitadel game_tele 474 3955 3483 hellfirepeninsula 0 0 +poi_tele_475 zone 530 -211.237 4278.54 86.5678 4.59776 1 HellfirePeninsula HellfirePeninsula game_tele 475 3483 3483 hellfirepeninsula 1 0 +poi_tele_476 landmark 530 -360.671 3071.9 -15.0977 1.89389 1 HellfireRamparts HellfireRamparts game_tele 476 3545 3483 hellfirepeninsula 0 0 +poi_tele_477 landmark 0 -5661.83 -1993.18 396.111 0.091415 1 HelmsBedLake HelmsBedLake game_tele 477 212 1 dun_morogh 0 1 +poi_tele_478 landmark 0 -9127.98 -1052.89 70.604 2.11379 1 HeroesVigil HeroesVigil game_tele 478 56 12 elwynn 0 1 +poi_tele_479 landmark 1 3554.3 -6232.61 44.262 2.12438 1 HetaerasClutch HetaerasClutch game_tele 479 4821 16 azshara 0 2 +poi_tele_48 zone 529 1017.16 1040.59 -44.9017 0.325149 1 ArathiBasin ArathiBasin game_tele 48 3358 3358 arathibasin 1 0 +poi_tele_480 landmark 530 1001.29 7586.72 22.1567 1.60094 1 HewnBog HewnBog game_tele 480 3667 3521 zangarmarsh 0 0 +poi_tele_481 landmark 1 -807.114 -4111.26 55.5967 4.7919 1 HiddenPath HiddenPath game_tele 481 638 14 durotar 0 2 +poi_tele_482 landmark 1 -4979.56 -969.821 -4.67023 1.93765 1 Highperch Highperch game_tele 482 482 400 thousandneedles 0 0 +poi_tele_483 landmark 1 -4610.67 1700.18 114.705 3.05218 1 HighWilderness HighWilderness game_tele 483 1136 357 feralas 0 0 +poi_tele_484 landmark 0 -510.344 9.53799 50.345 1.33728 1 HillsbradFields HillsbradFields game_tele 484 286 267 hillsbradfoothills 0 0 +poi_tele_485 zone 0 -436.657 -581.254 53.5944 1.25917 1 HillsbradFoothills HillsbradFoothills game_tele 485 267 267 hillsbradfoothills 1 0 +poi_tele_486 landmark 0 -17.942 -2805.92 122.271 2.75175 1 HiriWatha HiriWatha game_tele 486 1885 47 thehinterlands 0 0 +poi_tele_487 landmark 1 -6661.66 988.222 -14.6814 1.34146 1 HiveAshi HiveAshi game_tele 487 2742 1377 silithus 0 0 +poi_tele_488 landmark 1 -7678.21 611.804 -52.124 2.91382 1 HiveRegal HiveRegal game_tele 488 2744 1377 silithus 0 0 +poi_tele_489 landmark 1 -7152.81 1387.39 2.14026 2.78729 1 HiveZora HiveZora game_tele 489 2743 1377 silithus 0 0 +poi_tele_49 landmark 529 1308.68 1306.03 -9.0107 3.91285 1 ArathiBasinAlliance ArathiBasinAlliance game_tele 49 3417 3358 arathibasin 0 0 +poi_tele_490 landmark 530 -748.211 2681.52 100.35 5.7479 1 HonorHold HonorHold game_tele 490 3538 3483 hellfirepeninsula 0 0 +poi_tele_491 landmark 1 -353.057 -1296.11 90.9438 4.37878 1 HonorsStand HonorsStand game_tele 491 4843 4709 southernbarrens 0 0 +poi_tele_492 landmark 530 7225.84 -6628.42 55.2716 2.89705 1 HowlingZiggurat HowlingZiggurat game_tele 492 3502 3433 ghostlands 0 2 +poi_tele_493 landmark 1 -1396.43 -115.322 158.935 2.92089 1 HunterRise HunterRise game_tele 493 1641 1638 thunderbluff 0 2 +poi_tele_494 landmark 530 9706.81 -6712.6 0.548797 4.38141 1 HuntressOfTheSun HuntressOfTheSun game_tele 494 3664 3430 eversongwoods 0 2 +poi_tele_495 landmark 1 -8177.89 -4181.23 -167.552 0.913338 1 HyjalSummit HyjalSummit game_tele 495 2300 440 tanaris 0 0 +poi_tele_496 landmark 0 -5195.11 -3.63924 386.111 1.74231 1 IceflowLake IceflowLake game_tele 496 211 1 dun_morogh 0 1 +poi_tele_497 landmark 1 6153.06 -5050.74 787.233 5.86444 1 IceThistleHills IceThistleHills game_tele 497 2247 618 winterspring 0 0 +poi_tele_498 landmark 530 -3794.35 2556.02 91.0218 1.65971 1 IllidariPoint IllidariPoint game_tele 498 3752 3520 shadowmoonvalley 0 0 +poi_tele_499 landmark 530 4140.7 5429.55 274.427 2.81212 1 InsidionsPerch InsidionsPerch game_tele 499 3971 3522 bladesedgemountains 0 0 +poi_tele_5 landmark 530 3742.43 2083.64 148.765 6.032 1 AccessShaftZeon AccessShaftZeon game_tele 5 3880 3523 netherstorm 0 0 +poi_tele_50 landmark 529 686.053 683.165 -12.9149 0.816022 1 ArathiBasinHorde ArathiBasinHorde game_tele 50 3418 3358 arathibasin 0 0 +poi_tele_500 landmark 530 555.59 2804.49 217.804 6.20094 1 InvasionPointAnnihilator InvasionPointAnnihilator game_tele 500 3549 3483 hellfirepeninsula 0 0 +poi_tele_501 landmark 530 -2670.83 2691.26 102.277 4.91601 1 InvasionPointCataclysm InvasionPointCataclysm game_tele 501 3943 3520 shadowmoonvalley 0 0 +poi_tele_502 landmark 530 4775.3 3487.7 116.091 5.1893 1 InvasionPointOverlord InvasionPointOverlord game_tele 502 3900 3523 netherstorm 0 0 +poi_tele_503 landmark 1 2758.5 -928.177 204.091 2.86339 1 IrisLake IrisLake game_tele 503 424 331 ashenvale 0 0 +poi_tele_504 landmark 0 -5854.97 -1996.35 401.478 3.88489 1 IronbandsCompound IronbandsCompound game_tele 504 716 1 dun_morogh 0 1 +poi_tele_505 landmark 0 -5650.98 -3826.83 321.919 4.87213 1 IronbandsExcavationSite IronbandsExcavationSite game_tele 505 142 38 lochmodan 0 1 +poi_tele_506 ruins 0 -2887.82 -2224.53 23.6055 0.386887 1 IronbeardsTomb IronbeardsTomb game_tele 506 309 11 wetlands 0 0 +poi_tele_507 zone 0 -4918.88 -940.406 501.564 5.42347 1 Ironforge Ironforge game_tele 507 1537 1537 ironforge 1 0 +poi_tele_508 settlement 1 -5843.28 -3417.03 -50.9329 2.95077 1 IronstoneCamp IronstoneCamp game_tele 508 5025 400 thousandneedles 0 0 +poi_tele_509 landmark 1 -6969.88 -2409.95 -216.546 5.0496 1 IronstonePlateau IronstonePlateau game_tele 509 1943 490 ungorocrater 0 0 +poi_tele_51 zone 0 -1508.51 -2732.06 32.4986 3.35708 1 ArathiHighlands ArathiHighlands game_tele 51 45 45 arathihighlands 1 0 +poi_tele_510 ruins 1 6463.17 -1577.12 438.992 4.84426 1 IrontreeCavern IrontreeCavern game_tele 510 1768 361 felwood 0 0 +poi_tele_511 wilderness 1 6223.18 -1151.23 382.803 3.19416 1 IrontreeWoods IrontreeWoods game_tele 511 1767 361 felwood 0 0 +poi_tele_512 landmark 1 -5403.55 3055.7 1.70606 1.67518 1 IsleOfDread IsleOfDread game_tele 512 2323 357 feralas 0 0 +poi_tele_513 zone 530 12947.4 -6893.31 5.68398 3.09154 1 IsleOfQuelDanas IsleOfQuelDanas game_tele 513 4080 4080 isleofqueldanas 1 0 +poi_tele_514 landmark 530 8042.94 -7548.78 150.119 0.139542 1 IsleOfTribulations IsleOfTribulations game_tele 514 3823 3433 ghostlands 0 2 +poi_tele_515 ruins 0 -10661.8 -2527.18 26.8436 3.30055 1 IthariussCave IthariussCave game_tele 515 1777 8 swampofsorrows 0 0 +poi_tele_516 landmark 1 3822.04 -727.42 324.477 1.00681 1 JadefireGlen JadefireGlen game_tele 516 2480 361 felwood 0 0 +poi_tele_517 landmark 1 6293.06 -609.351 468.671 2.9224 1 JadefireRun JadefireRun game_tele 517 2618 361 felwood 0 0 +poi_tele_518 landmark 1 -3057.92 1837.42 29.4535 0.06035 1 JademirLake JademirLake game_tele 518 1112 357 feralas 0 0 +poi_tele_519 landmark 1 4785.13 -477.744 331.858 1.88488 1 Jaedenar Jaedenar game_tele 519 1763 361 felwood 0 0 +poi_tele_52 landmark 552 -1.23165 0.014346 -0.204293 0.00984 1 Arca Arca game_tele 52 3848 3848 thearcatraz 0 0 +poi_tele_520 landmark 1 4983.03 -6041.19 95.5841 1.88091 1 JaggedReef JaggedReef game_tele 520 1230 16 azshara 0 2 +poi_tele_521 landmark 530 1793.51 6009.75 137.638 4.55488 1 JaggedRidge JaggedRidge game_tele 521 3768 3522 bladesedgemountains 0 0 +poi_tele_522 landmark 1 1253.77 -4525.58 20.9508 2.77973 1 JaggedswineFarm JaggedswineFarm game_tele 522 1297 14 durotar 0 2 +poi_tele_523 landmark 0 -14601.1 -234.16 24.7223 5.58923 1 JagueroIsle JagueroIsle game_tele 523 297 5287 thecapeofstranglethorn 0 0 +poi_tele_524 landmark 0 -14180.5 729.773 21.633 4.17552 1 JaneirosPoint JaneirosPoint game_tele 524 312 5287 thecapeofstranglethorn 0 0 +poi_tele_525 mine 0 -10004.7 1462.85 40.887 6.10526 1 JangolodeMine JangolodeMine game_tele 525 111 40 westfall 0 1 +poi_tele_526 mine 0 -9208.19 -618.418 60.4529 0.385121 1 JasperlodeMine JasperlodeMine game_tele 526 54 12 elwynn 0 1 +poi_tele_527 landmark 0 -233.765 -4121.89 117.635 3.39306 1 JinthaAlor JinthaAlor game_tele 527 354 47 thehinterlands 0 0 +poi_tele_528 landmark 0 -9971.72 -115.655 26.3099 5.38026 1 JoredsLanding JoredsLanding game_tele 528 797 12 elwynn 0 1 +poi_tele_529 ruins 0 -12135 17.9116 -4.73151 4.10564 1 KalaiRuins KalaiRuins game_tele 529 125 33 northernstranglethorn 0 0 +poi_tele_53 landmark 530 3043.33 3681.33 143.065 5.07464 1 Area52 Area52 game_tele 53 3712 3523 netherstorm 0 0 +poi_tele_530 landmark 532 -11091.2 -1992.38 49.816 0.95178 1 Kara Kara game_tele 530 3457 3457 karazhan 0 0 +poi_tele_531 landmark 0 -11118.9 -2010.33 47.0819 0.649895 1 Karazhan Karazhan game_tele 531 2562 41 deadwindpass 0 0 +poi_tele_532 landmark 0 -6692.48 -2175.31 283.453 0.427571 1 Kargath Kargath game_tele 532 340 3 badlands 0 0 +poi_tele_533 landmark 1 2440.86 -3506.6 99.3423 4.69889 1 KargathiaKeep KargathiaKeep game_tele 533 437 331 ashenvale 0 0 +poi_tele_534 landmark 530 -2676.89 -12141.3 17.2281 5.52763 1 KesselsCrossing KesselsCrossing game_tele 534 3602 3525 bloodmystisle 0 1 +poi_tele_535 landmark 0 -5597.31 -483.398 396.981 3.17566 1 Kharanos Kharanos game_tele 535 131 1 dun_morogh 0 1 +poi_tele_536 landmark 530 -2850.34 6405.81 77.0322 3.64548 1 KilsorrowFortress KilsorrowFortress game_tele 536 3637 3518 nagrand 0 0 +poi_tele_537 settlement 530 2280.68 2273.98 94.6903 4.34107 1 KirinVarVillage KirinVarVillage game_tele 537 3934 3523 netherstorm 0 0 +poi_tele_538 landmark 1 -1273.07 1970.71 50.7823 3.981 1 KodoGraveyard KodoGraveyard game_tele 538 596 405 desolace 0 0 +poi_tele_539 landmark 1 -3030.09 -704.29 44.1878 5.32579 1 KodoRock KodoRock game_tele 539 4878 215 mulgore 0 2 +poi_tele_54 settlement 0 -10456.7 -2139.85 90.7913 6.26152 1 AridensCamp AridensCamp game_tele 54 2560 41 deadwindpass 0 0 +poi_tele_540 landmark 1 -946.186 -4492.28 28.8956 0.54997 1 KolgarCrag KolgarCrag game_tele 540 366 14 durotar 0 2 +poi_tele_541 settlement 1 -990.368 935.934 91.9163 3.14846 1 KolgarVillage KolgarVillage game_tele 541 4797 405 desolace 0 0 +poi_tele_542 landmark 1 -713.262 1455.17 90.526 3.72573 1 KormeksHut KormeksHut game_tele 542 2407 405 desolace 0 0 +poi_tele_543 landmark 0 -11605.1 -645.993 29.5029 5.88457 1 KurzensCompound KurzensCompound game_tele 543 101 33 northernstranglethorn 0 0 +poi_tele_544 landmark 1 9356.42 1191.51 1252.81 6.20615 1 LakeAlAmeth LakeAlAmeth game_tele 544 259 141 teldrassil 0 1 +poi_tele_545 landmark 530 8453.08 -7748.48 144.45 2.73684 1 LakeElrendar LakeElrendar game_tele 545 3473 3430 eversongwoods 0 2 +poi_tele_546 landmark 1 7794.49 -2635.94 460.244 3.286 1 LakeEluneAra LakeEluneAra game_tele 546 656 493 moonglade 0 0 +poi_tele_547 landmark 530 -3161.76 3814.37 58.1972 4.55865 1 LakeEreNoru LakeEreNoru game_tele 547 3691 3519 terokkarforest 0 0 +poi_tele_548 landmark 0 -9355.14 -2280.93 71.6411 0.104803 1 LakeEverstill LakeEverstill game_tele 548 68 44 redridgemountains 0 0 +poi_tele_549 landmark 1 3044.74 526.567 4.85566 3.02598 1 LakeFalathim LakeFalathim game_tele 549 441 331 ashenvale 0 0 +poi_tele_55 landmark 530 2865.62 3196.4 177.857 0.572978 1 ArklonisRidge ArklonisRidge game_tele 55 3921 3523 netherstorm 0 0 +poi_tele_550 landmark 530 -2471.75 4657.29 159.739 4.97727 1 LakeJorune LakeJorune game_tele 550 3692 3519 terokkarforest 0 0 +poi_tele_551 landmark 1 6517.05 -4006.25 658.802 4.53634 1 LakeKelTheril LakeKelTheril game_tele 551 2251 618 winterspring 0 0 +poi_tele_552 landmark 1 2680.46 -5363.06 84.0912 2.11964 1 LakeMennar LakeMennar game_tele 552 1234 16 azshara 0 2 +poi_tele_553 landmark 0 1716.21 -4585.15 76.217 4.78011 1 LakeMereldar LakeMereldar game_tele 553 2621 139 easternplaguelands 0 0 +poi_tele_554 landmark 0 -11825.1 -421.353 12.0978 2.58982 1 LakeNazferiti LakeNazferiti game_tele 554 37 33 northernstranglethorn 0 0 +poi_tele_555 landmark 0 -9656.42 -2519.56 56.8919 0.022329 1 LakeridgeHighway LakeridgeHighway game_tele 555 1001 44 redridgemountains 0 0 +poi_tele_556 landmark 0 -9266.59 -2188.77 64.0892 2.10205 1 Lakeshire Lakeshire game_tele 556 69 44 redridgemountains 0 0 +poi_tele_557 landmark 530 -1708.2 8418.44 -21.4027 3.67976 1 LakeSunspring LakeSunspring game_tele 557 3621 3518 nagrand 0 0 +poi_tele_558 landmark 1 -6347.89 -1218.88 -270.355 2.6083 1 Lakkari TarPits Lakkari TarPits game_tele 558 538 490 ungorocrater 0 0 +poi_tele_559 landmark 1 -6430.22 -1052.96 -272.085 5.61795 1 LakkariTarPits LakkariTarPits game_tele 559 538 490 ungorocrater 0 0 +poi_tele_56 ruins 530 2779.37 3210.53 149.846 3.37686 1 ArklonRuins ArklonRuins game_tele 56 3723 3523 netherstorm 0 0 +poi_tele_560 landmark 1 -10219.4 -3922.28 0.821068 5.62501 1 LandsEndBeach LandsEndBeach game_tele 560 987 440 tanaris 0 0 +poi_tele_561 landmark 1 -4171.38 145.112 57.0216 5.74763 1 LarissPavilion LarissPavilion game_tele 561 2518 357 feralas 0 0 +poi_tele_562 ruins 530 -832.056 7741.02 34.3061 4.44079 1 LaughingSkullRuins LaughingSkullRuins game_tele 562 3616 3518 nagrand 0 0 +poi_tele_563 landmark 229 78.2437 -239.341 55.3424 4.77799 1 LBRS LBRS game_tele 563 1583 1583 blackrockspire 0 0 +poi_tele_564 settlement 1 4525.1 -6359.32 126.976 4.83794 1 LegashEncampment LegashEncampment game_tele 564 1219 16 azshara 0 2 +poi_tele_565 landmark 530 -3291.28 2888 131.919 2.25661 1 LegionHold LegionHold game_tele 565 3743 3520 shadowmoonvalley 0 0 +poi_tele_566 landmark 0 -6742.69 -4092.03 264.17 6.25284 1 LethlorRavine LethlorRavine game_tele 566 339 3 badlands 0 0 +poi_tele_567 landmark 0 2279.65 -5310.01 87.0759 5.07618 1 LightsHopeChapel LightsHopeChapel game_tele 567 2268 139 easternplaguelands 0 0 +poi_tele_568 zone 0 -5172.04 -2952.93 336.993 6.20809 1 LochModan LochModan game_tele 568 38 38 lochmodan 1 1 +poi_tele_569 landmark 0 -10091.5 1955.59 7.16286 0.077321 1 Longshore Longshore game_tele 569 2 40 westfall 0 1 +poi_tele_57 zone 1 1928.34 -2165.95 93.7896 0.205731 1 Ashenvale Ashenvale game_tele 57 331 331 ashenvale 1 0 +poi_tele_570 landmark 0 1214.77 731.732 32.9321 2.30374 1 LordamareLake LordamareLake game_tele 570 1338 130 silverpineforest 0 2 +poi_tele_571 settlement 0 -62.356 189.834 53.4352 2.43918 1 LordamereInternmentCamp LordamereInternmentCamp game_tele 571 278 267 hillsbradfoothills 0 0 +poi_tele_572 landmark 1 -3920.81 -2842.47 45.0363 4.48854 1 LostPoint LostPoint game_tele 572 506 15 dustwallowmarsh 0 0 +poi_tele_573 landmark 1 -8021.77 -5292.28 1.33809 4.35817 1 LostRiggerCove LostRiggerCove game_tele 573 1336 440 tanaris 0 0 +poi_tele_574 landmark 0 -7512.38 -1043.39 181.55 0.909809 1 LothosRiftwaker LothosRiftwaker game_tele 574 25 25 blackrockmountain 0 0 +poi_tele_575 landmark 530 -2055.96 5305.2 -37.9105 4.02848 1 LowerCity LowerCity game_tele 575 3703 3703 shattrathcity 0 0 +poi_tele_576 landmark 530 -3904.46 3147.39 327.077 4.42121 1 LowerVeilShilAk LowerVeilShilAk game_tele 576 3978 3519 terokkarforest 0 0 +poi_tele_577 landmark 1 -4847.14 434.406 16.2021 2.33115 1 LowerWilds LowerWilds game_tele 577 1137 357 feralas 0 0 +poi_tele_578 landmark 1 -960.748 -2043.74 81.2893 5.9535 1 LushwaterOasis LushwaterOasis game_tele 578 387 17 northernbarrens 0 2 +poi_tele_579 landmark 1 3194.97 163.192 5.48506 3.36212 1 MaestrasPost MaestrasPost game_tele 579 413 331 ashenvale 0 0 +poi_tele_58 landmark 1 2676.19 -422.905 107.123 0.648691 1 Astranaar Astranaar game_tele 58 415 331 ashenvale 0 0 +poi_tele_580 landmark 0 -8976.21 876.055 106.542 3.3507 1 MageQuarter MageQuarter game_tele 580 5154 1519 stormwind 0 1 +poi_tele_581 landmark 530 395.308 3715.99 179.279 0.814673 1 MagHarGrounds MagHarGrounds game_tele 581 3801 3483 hellfirepeninsula 0 0 +poi_tele_582 landmark 530 -1283.99 8498.33 16.4938 1.76808 1 MagHariProcession MagHariProcession game_tele 582 3672 3518 nagrand 0 0 +poi_tele_583 landmark 530 512.08 3879.32 191.494 0.027839 1 MagharPost MagharPost game_tele 583 3555 3483 hellfirepeninsula 0 0 +poi_tele_584 landmark 0 1736.52 96.2668 -62.2857 5.5036 1 MagicQuarter MagicQuarter game_tele 584 1497 1497 undercity 0 2 +poi_tele_585 landmark 530 12884.6 -7317.69 65.5023 4.799 1 MagistersTerrace MagistersTerrace game_tele 585 4095 4080 isleofqueldanas 0 0 +poi_tele_586 landmark 530 -3440.16 2547.11 58.5443 0.37951 1 MagmaFields MagmaFields game_tele 586 3949 3520 shadowmoonvalley 0 0 +poi_tele_587 settlement 1 -1733.94 897.726 90.7702 2.15654 1 MagramVillage MagramVillage game_tele 587 604 405 desolace 0 0 +poi_tele_588 landmark 544 190.035 3.38458 67.9651 3.15819 1 magtheridon magtheridon game_tele 588 3836 3836 magtheridonslair 0 0 +poi_tele_589 landmark 530 -312.7 3087.26 -116.52 5.19026 1 MagtheridonsLair MagtheridonsLair game_tele 589 3545 3483 hellfirepeninsula 0 0 +poi_tele_59 landmark 530 -3336.2 363.236 120.466 0.150953 1 AtaMalTerrace AtaMalTerrace game_tele 59 3757 3520 shadowmoonvalley 0 0 +poi_tele_590 landmark 1 -198.834 -336.707 11.0481 5.48042 1 MalakaJin MalakaJin game_tele 590 2539 406 stonetalonmountains 0 0 +poi_tele_591 landmark 0 1404.44 1071.55 52.4562 1.01804 1 MaldensOrchard MaldensOrchard game_tele 591 5369 130 silverpineforest 0 2 +poi_tele_592 workshop 530 3902.61 4036.58 188.558 0.149414 1 ManaforgeAra ManaforgeAra game_tele 592 3722 3523 netherstorm 0 0 +poi_tele_593 workshop 530 3007.58 4216.86 160.794 2.8844 1 ManaforgeBnaar ManaforgeBnaar game_tele 593 3726 3523 netherstorm 0 0 +poi_tele_594 workshop 530 2463.21 2862.53 132.065 3.9824 1 ManaforgeCoruu ManaforgeCoruu game_tele 594 3730 3523 netherstorm 0 0 +poi_tele_595 workshop 530 3079.11 2211.89 160.351 3.59991 1 ManaforgeDuro ManaforgeDuro game_tele 595 3734 3523 netherstorm 0 0 +poi_tele_596 workshop 530 3850.68 2061.16 254.219 5.65108 1 ManaforgeUltris ManaforgeUltris game_tele 596 3736 3523 netherstorm 0 0 +poi_tele_597 ruins 530 -3104.18 4945.52 -101.507 6.22344 1 ManaTombs ManaTombs game_tele 597 3688 3519 terokkarforest 0 0 +poi_tele_598 landmark 1 -2041.95 1915.12 70.474 0.545691 1 MannorocCoven MannorocCoven game_tele 598 602 405 desolace 0 0 +poi_tele_599 landmark 0 -10342.5 -1250.62 35.3013 3.56761 1 ManorMistmantle ManorMistmantle game_tele 599 1098 10 duskwood 0 0 +poi_tele_6 landmark 0 -10964 240.019 28.5578 2.99821 1 AddlesStead AddlesStead game_tele 6 536 10 duskwood 0 0 +poi_tele_60 landmark 1 6501.4 481.607 6.27062 1.70033 1 Auberdine Auberdine game_tele 60 442 148 darkshore 0 1 +poi_tele_600 landmark 70 -228.302 236.591 -50.6459 1.64438 1 MapChamber MapChamber game_tele 600 1337 1337 uldaman 0 0 +poi_tele_601 landmark 349 1019.69 -458.31 -43.43 0.31 1 Maraorange Maraorange game_tele 601 2100 2100 maraudon 0 0 +poi_tele_602 landmark 349 751.254 -606.421 -33.2458 0.089788 1 Marapurple Marapurple game_tele 602 2100 2100 maraudon 0 0 +poi_tele_603 landmark 1 -1419.13 2908.14 137.464 1.57366 1 Maraudon Maraudon game_tele 603 607 405 desolace 0 0 +poi_tele_604 landmark 1 -1464.14 2615.21 76.7172 3.21357 1 MaraudonOrange MaraudonOrange game_tele 604 2100 2100 maraudon 0 0 +poi_tele_605 landmark 1 -1188.37 2879.61 85.7888 5.07366 1 MaraudonPurple MaraudonPurple game_tele 605 2100 2100 maraudon 0 0 +poi_tele_606 landmark 0 2927.64 -1420.34 150.782 1.13192 1 MardenholdeKeep MardenholdeKeep game_tele 606 190 28 westernplaguelands 0 0 +poi_tele_607 wilderness 1 -6152.25 -1087.6 -201.435 0.707637 1 MarshalsRefuge MarshalsRefuge game_tele 607 541 490 ungorocrater 0 0 +poi_tele_608 wilderness 530 583.302 8485.48 21.6066 4.03254 1 MarshlightLake MarshlightLake game_tele 608 3656 3521 zangarmarsh 0 0 +poi_tele_609 landmark 0 3452.17 -4992.52 196.839 5.44846 1 MazraAlor MazraAlor game_tele 609 2273 139 easternplaguelands 0 0 +poi_tele_61 ruins 530 -3362.04 5209.85 -101.05 1.60924 1 AuchenaiCrypts AuchenaiCrypts game_tele 61 3688 3519 terokkarforest 0 0 +poi_tele_610 landmark 1 6163.22 -4432.47 660.866 1.60523 1 Mazthoril Mazthoril game_tele 610 2245 618 winterspring 0 0 +poi_tele_611 landmark 409 1082.04 -474.596 -107.762 5.02623 1 MC MC game_tele 611 2717 2717 moltencore 0 0 +poi_tele_612 landmark 554 -28.906 0.680314 -1.81282 6.26827 1 Mech Mech game_tele 612 3849 3849 themechanar 0 0 +poi_tele_613 landmark 530 -3236.59 -12713.5 27.0563 3.45338 1 MenagerieWreckage MenagerieWreckage game_tele 613 3578 3524 azuremystisle 0 1 +poi_tele_614 landmark 0 -3977.14 -898.953 8.83729 0.524569 1 MenethilBay MenethilBay game_tele 614 299 11 wetlands 0 0 +poi_tele_615 landmark 0 -3769.32 -744.26 8.01027 1.95752 1 MenethilHarbor MenethilHarbor game_tele 615 150 11 wetlands 0 0 +poi_tele_616 landmark 585 15.2235 -0.221107 -2.79687 0.007752 1 Mgt Mgt game_tele 616 4131 4131 magistersterrace 0 0 +poi_tele_617 landmark 530 -2390.97 -11785.5 16.2604 2.27998 1 Middenvale Middenvale game_tele 617 3908 3525 bloodmystisle 0 1 +poi_tele_618 landmark 530 3371.2 2883.39 143.893 1.73852 1 MidrealmPost MidrealmPost game_tele 618 3851 3523 netherstorm 0 0 +poi_tele_619 landmark 0 -6967.2 -2857.38 241.814 2.5709 1 MirageFlats MirageFlats game_tele 619 5322 3 badlands 0 0 +poi_tele_62 landmark 530 -3637.1 5188.61 -19.1186 3.39151 1 AuchenaiGrounds AuchenaiGrounds game_tele 62 3894 3519 terokkarforest 0 0 +poi_tele_620 landmark 1 -6221.35 -3927.64 -58.7495 0.757735 1 MirageRaceway MirageRaceway game_tele 620 5048 400 thousandneedles 0 0 +poi_tele_621 landmark 1 1587.03 874.207 183.222 3.18787 1 MirkfallonLake MirkfallonLake game_tele 621 464 406 stonetalonmountains 0 0 +poi_tele_622 landmark 0 -9360.13 441.323 49.1944 2.7374 1 MirrorLake MirrorLake game_tele 622 92 12 elwynn 0 1 +poi_tele_623 landmark 0 -9497.38 476.237 51.0552 6.1853 1 MirrorLakeOrchard MirrorLakeOrchard game_tele 623 89 12 elwynn 0 1 +poi_tele_624 landmark 1 6960.9 278.856 2.62734 3.54128 1 MistsEdge MistsEdge game_tele 624 452 148 darkshore 0 1 +poi_tele_625 landmark 0 -13968.3 121.306 14.8902 5.42744 1 MistvaleValley MistvaleValley game_tele 625 1737 5287 thecapeofstranglethorn 0 0 +poi_tele_626 landmark 0 -5355.18 -1046.42 394.441 0.123457 1 MistyPineRefuge MistyPineRefuge game_tele 626 138 1 dun_morogh 0 1 +poi_tele_627 landmark 0 -10855.8 -4114.24 22.2215 1.37632 1 MistyReedPost MistyReedPost game_tele 627 1978 8 swampofsorrows 0 0 +poi_tele_628 landmark 0 -9813.85 -4115.01 4.58721 5.54286 1 MistyReedStrand MistyReedStrand game_tele 628 300 8 swampofsorrows 0 0 +poi_tele_629 landmark 0 590.273 132.249 42.0482 0.487462 1 MistyShore MistyShore game_tele 629 1681 267 hillsbradfoothills 0 0 +poi_tele_63 landmark 530 -3324.49 4943.45 -101.239 4.63901 1 Auchindoun Auchindoun game_tele 63 3893 3519 terokkarforest 0 0 +poi_tele_630 landmark 0 -10170.6 -2528.78 27.3798 1.09358 1 MistyValley MistyValley game_tele 630 116 8 swampofsorrows 0 0 +poi_tele_631 ruins 0 -12424.8 -148.732 15.055 3.21029 1 MizjahRuins MizjahRuins game_tele 631 129 33 northernstranglethorn 0 0 +poi_tele_632 landmark 0 -4915.65 -3958.31 298.303 0.553624 1 MogroshStronghold MogroshStronghold game_tele 632 143 38 lochmodan 0 1 +poi_tele_633 settlement 530 2210.93 4763.72 157.42 4.60576 1 MokNathalVillage MokNathalVillage game_tele 633 3844 3522 bladesedgemountains 0 0 +poi_tele_634 landmark 230 1126.64 -459.94 -102.535 3.46095 1 MoltenCore MoltenCore game_tele 634 1584 1584 blackrockdepths 0 0 +poi_tele_635 landmark 0 -10986.7 1542.75 44.7858 2.62438 1 Moonbrook Moonbrook game_tele 635 20 40 westfall 0 1 +poi_tele_636 zone 1 7654.3 -2232.87 462.107 5.96786 1 Moonglade Moonglade game_tele 636 493 493 moonglade 1 0 +poi_tele_637 landmark 1 7486.41 -2124.22 490.738 3.11294 1 MoongladeHordeFlypoint MoongladeHordeFlypoint game_tele 637 493 493 moonglade 0 0 +poi_tele_638 wilderness 530 -3623.63 -12755.4 5.5687 0.798743 1 MoongrazeWoods MoongrazeWoods game_tele 638 3916 3524 azuremystisle 0 1 +poi_tele_639 landmark 530 -5074.81 -11092.5 26.8435 1.10189 1 MoonwingDen MoonwingDen game_tele 639 3566 3524 azuremystisle 0 1 +poi_tele_64 landmark 30 -215.738 -309.394 6.66761 3.07325 1 AV AV game_tele 64 3057 2597 alteracvalley 0 0 +poi_tele_640 landmark 0 -8372.77 -2754.46 186.622 3.43486 1 MorgansVigil MorgansVigil game_tele 640 2418 46 burningsteppes 0 0 +poi_tele_641 landmark 1 3790.49 -1681.81 251.595 3.87194 1 MorlosAran MorlosAran game_tele 641 2478 361 felwood 0 0 +poi_tele_642 settlement 1 1035.62 -2106 122.946 1.60767 1 MorshanBaseCamp MorshanBaseCamp game_tele 642 1599 17 northernbarrens 0 2 +poi_tele_643 landmark 0 -12345.2 -966.453 12.2932 4.29021 1 MoshoggOgreMound MoshoggOgreMound game_tele 643 105 33 northernstranglethorn 0 0 +poi_tele_644 landmark 0 -3750.76 -2902.37 12.3196 4.19214 1 MosshideFen MosshideFen game_tele 644 1020 11 wetlands 0 0 +poi_tele_645 landmark 557 -11.1808 0.991746 -0.9543 3.13767 1 MT MT game_tele 645 3792 3792 manatombs 0 0 +poi_tele_646 landmark 1 -4573.79 -3173.15 34.0877 3.1231 1 Mudsprocket Mudsprocket game_tele 646 4010 15 dustwallowmarsh 0 0 +poi_tele_647 landmark 530 9755.35 -7304.14 24.4126 0.426204 1 MuerderRow MuerderRow game_tele 647 3487 3487 silvermooncity 0 2 +poi_tele_648 zone 1 -2192.62 -736.317 -13.3274 0.487569 1 Mulgore Mulgore game_tele 648 215 215 mulgore 1 2 +poi_tele_649 landmark 530 9755.35 -7304.14 24.4126 0.426204 1 MurderEow MurderEow game_tele 649 3487 3487 silvermooncity 0 2 +poi_tele_65 landmark 530 -1512.97 -11378.7 67.4006 0.326728 1 Axxarien Axxarien game_tele 65 3593 3525 bloodmystisle 0 1 +poi_tele_650 landmark 1 1902.31 -1363.98 99.987 0.929737 1 MystralLake MystralLake game_tele 650 421 331 ashenvale 0 0 +poi_tele_651 landmark 530 -2593.97 -11700.4 11.4544 1.18828 1 Mystwood Mystwood game_tele 651 3910 3525 bloodmystisle 0 1 +poi_tele_652 zone 530 -1145.95 8182.35 3.60249 6.13478 1 Nagrand Nagrand game_tele 652 3518 3518 nagrand 1 0 +poi_tele_653 landmark 1 -4141.59 -4054.2 2.2126 5.28022 1 NatsLanding NatsLanding game_tele 653 4047 15 dustwallowmarsh 0 0 +poi_tele_654 landmark 533 3021.64 -3402.99 298.22 2.97352 1 Nax Nax game_tele 654 3456 3456 naxxramas 0 0 +poi_tele_655 landmark 571 3668.72 -1262.46 243.622 4.785 1 Naxxramas Naxxramas game_tele 655 4188 65 dragonblight 0 0 +poi_tele_656 landmark 530 -2474.89 -11380.1 37.3419 1.59514 1 Nazzivian Nazzivian game_tele 656 3592 3525 bloodmystisle 0 1 +poi_tele_657 landmark 0 -13835.5 420.427 90.6791 5.33319 1 NekManiWellspring NekManiWellspring game_tele 657 1738 5287 thecapeofstranglethorn 0 0 +poi_tele_658 landmark 530 -1446.49 6346.65 37.5461 2.77876 1 NesingwarySafari NesingwarySafari game_tele 658 3673 3518 nagrand 0 0 +poi_tele_659 landmark 0 -11609.3 -52.9532 10.9376 3.48911 1 NesingwarysExpedition NesingwarysExpedition game_tele 659 100 33 northernstranglethorn 0 0 +poi_tele_66 zone 1 4023.99 -5888.25 114.119 2.9839 1 Azshara Azshara game_tele 66 16 16 azshara 1 2 +poi_tele_660 landmark 530 -4452 -13871.9 101.029 3.69763 1 NestlewoodHills NestlewoodHills game_tele 660 3559 3524 azuremystisle 0 1 +poi_tele_661 landmark 530 -4395.01 -13772.3 52.3834 5.03674 1 NestlewoodThicket NestlewoodThicket game_tele 661 3529 3524 azuremystisle 0 1 +poi_tele_662 landmark 0 -907.58 -979.134 30.3489 2.36926 1 NethanderStead NethanderStead game_tele 662 289 267 hillsbradfoothills 0 0 +poi_tele_663 landmark 0 -10999.8 -3380.08 62.2525 4.63501 1 NethergardeKeep NethergardeKeep game_tele 663 1438 4 blasted_lands 0 0 +poi_tele_664 landmark 530 4836.34 2892.29 144.631 3.419 1 Netherstone Netherstone game_tele 664 3850 3523 netherstorm 0 0 +poi_tele_665 zone 530 3830.23 3426.5 88.6145 5.16677 1 Netherstorm Netherstorm game_tele 665 3523 3523 netherstorm 1 0 +poi_tele_666 landmark 530 -3814.67 4264.16 5.66786 3.73006 1 NetherwebRidge NetherwebRidge game_tele 666 3885 3519 terokkarforest 0 0 +poi_tele_667 landmark 530 -4122.58 800.66 6.54928 1.1217 1 NetherwingFields NetherwingFields game_tele 667 3758 3520 shadowmoonvalley 0 0 +poi_tele_668 landmark 530 -5098.7 505.358 84.97 3.41328 1 NetherwingLedge NetherwingLedge game_tele 668 3759 3520 shadowmoonvalley 0 0 +poi_tele_669 mine 530 -5145.07 711.023 43.4061 5.2221 1 NetherwingMines NetherwingMines game_tele 669 3965 3520 shadowmoonvalley 0 0 +poi_tele_67 zone 37 128.205 135.136 236.11 4.59132 1 AzsharaCrater AzsharaCrater game_tele 67 268 268 azsharacrater 1 0 +poi_tele_670 landmark 530 -4331.55 819.57 15.3479 5.87712 1 NetherwingPass NetherwingPass game_tele 670 3945 3520 shadowmoonvalley 0 0 +poi_tele_671 landmark 1 7966.85 -2491.04 487.734 3.20562 1 Nighthaven Nighthaven game_tele 671 2361 493 moonglade 0 0 +poi_tele_672 landmark 0 2076.72 1158.54 39.13 3.26114 1 NightmareVale NightmareVale game_tele 672 811 85 tirisfalglades 0 2 +poi_tele_673 landmark 1 2529.43 -2143.92 197.679 3.09116 1 NightRun NightRun game_tele 673 428 331 ashenvale 0 0 +poi_tele_674 wilderness 1 3396.9 -1526.19 165.357 3.32216 1 NightsongWoods NightsongWoods game_tele 674 2457 331 ashenvale 0 0 +poi_tele_675 landmark 0 2048.96 1813.93 105.345 1.84271 1 NightWebsHollow NightWebsHollow game_tele 675 155 85 tirisfalglades 0 2 +poi_tele_676 landmark 1 176.426 1309.76 190.18 0.556817 1 NijelsPoint NijelsPoint game_tele 676 608 405 desolace 0 0 +poi_tele_677 ruins 1 -7017.57 -4339.67 11.159 6.02322 1 NoonshadeRuins NoonshadeRuins game_tele 677 1937 440 tanaris 0 0 +poi_tele_678 landmark 0 3029.82 -4901.18 100.63 4.63322 1 Northdale Northdale game_tele 678 2272 139 easternplaguelands 0 0 +poi_tele_679 landmark 0 -815.306 -2033.47 34.2293 3.32686 1 NorthfoldManor NorthfoldManor game_tele 679 313 45 arathihighlands 0 0 +poi_tele_68 landmark 530 9620.79 -8043.05 0.475485 2.05119 1 AzurebreezeCoast AzurebreezeCoast game_tele 68 3472 3430 eversongwoods 0 2 +poi_tele_680 landmark 0 -5191.62 -2297.24 400.342 3.9438 1 NorthGateOutpost NorthGateOutpost game_tele 680 808 1 dun_morogh 0 1 +poi_tele_681 landmark 0 -4802.07 -2532.42 353.848 1.92022 1 NorthGatePass NorthGatePass game_tele 681 838 38 lochmodan 0 1 +poi_tele_682 landmark 0 3162.59 -4323.12 132.34 4.87705 1 NorthpassTower NorthpassTower game_tele 682 2275 139 easternplaguelands 0 0 +poi_tele_683 landmark 1 -2861.79 -3423.24 39.0049 3.29711 1 NorthPointTower NorthPointTower game_tele 683 504 15 dustwallowmarsh 0 0 +poi_tele_684 settlement 0 2365.94 -1511 101.787 0.282905 1 NorthridgeLumberCamp NorthridgeLumberCamp game_tele 684 192 28 westernplaguelands 0 0 +poi_tele_685 landmark 530 9287.65 -6701.97 22.026 1.3137 1 NorthSanctum NorthSanctum game_tele 685 3465 3430 eversongwoods 0 2 +poi_tele_686 landmark 0 -8921.09 -119.135 82.195 5.82878 1 NorthshireValley NorthshireValley game_tele 686 9 12 elwynn 0 1 +poi_tele_687 landmark 0 -9076.49 -344.655 73.4527 0.882288 1 NorthshireVineyards NorthshireVineyards game_tele 687 59 12 elwynn 0 1 +poi_tele_688 landmark 0 851.635 1581.33 32.3011 0.628498 1 NorthTidesHollow NorthTidesHollow game_tele 688 928 130 silverpineforest 0 2 +poi_tele_689 landmark 0 878.157 1883.93 1.85641 2.38779 1 NorthTidesRun NorthTidesRun game_tele 689 928 130 silverpineforest 0 2 +poi_tele_69 mine 0 -902.924 244.914 8.80433 5.61973 1 AzurelodeMine AzurelodeMine game_tele 69 288 267 hillsbradfoothills 0 0 +poi_tele_690 landmark 1 -1998.12 -3680.54 21.1346 2.45298 1 NorthwatchHold NorthwatchHold game_tele 690 4847 4709 southernbarrens 0 0 +poi_tele_691 landmark 530 -1155.9 8035.88 -86.9813 3.21951 1 NorthwindCleft NorthwindCleft game_tele 691 3627 3518 nagrand 0 0 +poi_tele_692 landmark 530 2444.66 6990.76 367.981 2.20806 1 ObsidiasPerch ObsidiasPerch game_tele 692 3970 3522 bladesedgemountains 0 0 +poi_tele_693 landmark 530 -4677.05 -12439.1 16.2655 2.09541 1 OdesyusLanding OdesyusLanding game_tele 693 3573 3524 azuremystisle 0 1 +poi_tele_694 landmark 530 2297.68 7293.12 365.617 1.28888 1 Ogrila Ogrila game_tele 694 3786 3522 bladesedgemountains 0 0 +poi_tele_695 landmark 1 -8404.3 -4070.62 -208.586 0.237038 1 OldHillsbradFoothills OldHillsbradFoothills game_tele 695 2300 440 tanaris 0 0 +poi_tele_696 settlement 0 -8728.45 409.289 97.7728 3.80528 1 OldTown OldTown game_tele 696 5149 1519 stormwind 0 1 +poi_tele_697 landmark 0 141.756 1465.7 114.441 1.55058 1 OlsensFarthing OlsensFarthing game_tele 697 229 130 silverpineforest 0 2 +poi_tele_698 landmark 1 -3220.5 1892.94 49.3026 0.094122 1 Oneiros Oneiros game_tele 698 5024 357 feralas 0 0 +poi_tele_699 landmark 249 29.1607 -71.3372 -8.18032 4.43584 1 onyxia onyxia game_tele 699 2159 2159 onyxiaslair 0 0 +poi_tele_7 landmark 0 260.366 -2125.21 119.565 3.18494 1 AeriePeak AeriePeak game_tele 7 348 47 thehinterlands 0 0 +poi_tele_70 zone 530 -4216.87 -12336.9 4.34247 6.02008 1 AzuremystIsle AzuremystIsle game_tele 70 3524 3524 azuremystisle 1 1 +poi_tele_700 zone 1 -4708.27 -3727.64 54.5589 3.72786 1 OnyxiasLair OnyxiasLair game_tele 700 2159 2159 onyxiaslair 1 0 +poi_tele_701 landmark 0 -7663.74 -1217.4 287.789 5.33945 1 OrbOfCommand OrbOfCommand game_tele 701 25 25 blackrockmountain 0 0 +poi_tele_702 landmark 530 958.66 7374.02 27.9079 6.12064 1 OreborHarborage OreborHarborage game_tele 702 3766 3521 zangarmarsh 0 0 +poi_tele_703 zone 1 1569.97 -4397.41 16.0472 0.543025 1 Orgrimmar Orgrimmar game_tele 703 1637 1637 orgrimmar 1 2 +poi_tele_704 landmark 530 -2790.42 1265.35 74.8801 3.51465 1 OronoksFarm OronoksFarm game_tele 704 3927 3520 shadowmoonvalley 0 0 +poi_tele_705 landmark 1 -7583.14 223.826 12.1392 5.11522 1 OrtellsHideout OrtellsHideout game_tele 705 2744 1377 silithus 0 0 +poi_tele_706 landmark 530 -2417.03 8314.75 -37.5225 3.13613 1 Oshugun Oshugun game_tele 706 3630 3518 nagrand 0 0 +poi_tele_707 landmark 1 5503.37 -4948.18 850.096 3.91821 1 OwlWingThicket OwlWingThicket game_tele 707 2250 618 winterspring 0 0 +poi_tele_708 landmark 1 -2400.94 295.281 65.7074 1.27785 1 PalemaneRock PalemaneRock game_tele 708 818 215 mulgore 0 2 +poi_tele_709 landmark 0 2308.92 -5075.61 69.9643 3.30119 1 PestilentScar PestilentScar game_tele 709 2622 139 easternplaguelands 0 0 +poi_tele_71 landmark 530 -4190.85 -12516.5 44.5276 1.34225 1 AzureWatch AzureWatch game_tele 71 3576 3524 azuremystisle 0 1 +poi_tele_710 landmark 0 350.535 -2519.39 194.666 0.207063 1 PlaguemistRavine PlaguemistRavine game_tele 710 1882 47 thehinterlands 0 0 +poi_tele_711 landmark 0 3065.36 -3704 120.931 1.21752 1 Plaguewood Plaguewood game_tele 711 2277 139 easternplaguelands 0 0 +poi_tele_712 landmark 0 3032.21 -3058.25 118.245 2.69521 1 PlaguewoodTower PlaguewoodTower game_tele 712 4067 139 easternplaguelands 0 0 +poi_tele_713 landmark 530 -4468.03 -11990.3 31.3148 0.665984 1 PodCluster PodCluster game_tele 713 3567 3524 azuremystisle 0 1 +poi_tele_714 landmark 530 -4430.11 -12641.6 18.6332 3.64265 1 PodWreckage PodWreckage game_tele 714 3568 3524 azuremystisle 0 1 +poi_tele_715 landmark 0 -10615.7 -3842.2 19.601 0.237497 1 PoolOfTears PoolOfTears game_tele 715 74 8 swampofsorrows 0 0 +poi_tele_716 landmark 530 282.878 3479.82 63.4083 0.305086 1 PoolsOfAggonar PoolsOfAggonar game_tele 716 3553 3483 hellfirepeninsula 0 0 +poi_tele_717 landmark 1 9543.02 1665.64 1298.2 5.67365 1 PoolsOfArlithrien PoolsOfArlithrien game_tele 717 478 141 teldrassil 0 1 +poi_tele_718 landmark 530 571.187 8674.03 21.2322 4.86742 1 PortalClearing PortalClearing game_tele 718 3657 3521 zangarmarsh 0 0 +poi_tele_719 landmark 530 4270.15 2154.62 136.167 1.80184 1 ProtectorateWatchPost ProtectorateWatchPost game_tele 719 3854 3523 netherstorm 0 0 +poi_tele_72 zone 0 -6712.91 -3350.91 241.254 1.01048 1 Badlands Badlands game_tele 72 3 3 badlands 1 0 +poi_tele_720 landmark 0 -1242.7 462.432 6.25075 1.75667 1 PurgationIsle PurgationIsle game_tele 720 896 267 hillsbradfoothills 0 0 +poi_tele_721 settlement 0 -388.146 1543.67 18.1592 3.10171 1 PyrewoodVillage PyrewoodVillage game_tele 721 204 130 silverpineforest 0 2 +poi_tele_722 landmark 530 -186.082 8076.92 19.0829 5.03314 1 QuaggRidge QuaggRidge game_tele 722 3646 3521 zangarmarsh 0 0 +poi_tele_723 landmark 0 226.318 -2777.59 123.356 0.59469 1 QuelDanilLodge QuelDanilLodge game_tele 723 350 47 thehinterlands 0 0 +poi_tele_724 landmark 0 3385.31 -4220.6 155.092 3.57879 1 QuelLithienLodge QuelLithienLodge game_tele 724 2276 139 easternplaguelands 0 0 +poi_tele_725 landmark 530 -1428.84 -11951.2 16.4308 6.12844 1 RagefeatherRidge RagefeatherRidge game_tele 725 3601 3525 bloodmystisle 0 1 +poi_tele_726 landmark 1 1811.78 -4410.5 -18.4704 5.20165 1 RagefireChasm RagefireChasm game_tele 726 1637 1637 orgrimmar 0 2 +poi_tele_727 landmark 1 -3839.07 1760.37 142.462 4.58606 1 RageScarHold RageScarHold game_tele 727 1115 357 feralas 0 0 +poi_tele_728 landmark 543 -1346.58 1653.44 68.8313 0.486942 1 Ramp Ramp game_tele 728 3562 3562 hellfireramparts 0 0 +poi_tele_729 landmark 1 170.849 2914.41 19.6981 0.530757 1 RanazjarIsle RanazjarIsle game_tele 729 2406 405 desolace 0 0 +poi_tele_73 landmark 1 -1942.74 413.534 134.205 2.53057 1 BaelDunDigsite BaelDunDigsite game_tele 73 404 215 mulgore 0 2 +poi_tele_730 landmark 1 -2023.09 -3220.48 90.5983 1.07774 1 RaptorGrounds RaptorGrounds game_tele 730 4709 4709 southernbarrens 0 0 +poi_tele_731 landmark 0 -3134.17 -3238.84 63.364 5.4904 1 RaptorRidge RaptorRidge game_tele 731 1017 11 wetlands 0 0 +poi_tele_732 landmark 1 -956.664 -3754.71 5.33239 0.996637 1 Ratchet Ratchet game_tele 732 392 17 northernbarrens 0 2 +poi_tele_733 landmark 1 -1920.81 -732.852 2.29586 1.70032 1 RavagedCaravan RavagedCaravan game_tele 733 224 215 mulgore 0 2 +poi_tele_734 settlement 1 -6160.61 1746.37 24.2906 0.89614 1 RavagedTwilightCamp RavagedTwilightCamp game_tele 734 3100 1377 silithus 0 0 +poi_tele_735 landmark 1 -6191.56 1743.28 19.6888 0.630589 1 RavagedTwilightCapm RavagedTwilightCapm game_tele 735 3100 1377 silithus 0 0 +poi_tele_736 landmark 1 2580.25 -6830.65 117.466 5.1403 1 RavencrestMonument RavencrestMonument game_tele 736 1232 16 azshara 0 2 +poi_tele_737 landmark 0 -10742.2 330.574 38.2503 0.551712 1 RavenHill RavenHill game_tele 737 94 10 duskwood 0 0 +poi_tele_738 landmark 0 -10526.7 295.889 31.0954 6.27724 1 RavenHillCemetery RavenHillCemetery game_tele 738 492 10 duskwood 0 0 +poi_tele_739 landmark 0 -9.50862 -1569.46 194.606 5.78733 1 RavenholdtManor RavenholdtManor game_tele 739 3486 267 hillsbradfoothills 0 0 +poi_tele_74 landmark 1 -4091.59 -2329.66 126.129 5.15315 1 BaelDunKeep BaelDunKeep game_tele 74 4856 4709 southernbarrens 0 0 +poi_tele_740 landmark 530 3565.61 6890.04 141.477 4.50586 1 RavensWood RavensWood game_tele 740 3830 3522 bladesedgemountains 0 0 +poi_tele_741 landmark 1 2667.31 -1855.58 188.309 5.72617 1 RaynewoodRetreat RaynewoodRetreat game_tele 741 426 331 ashenvale 0 0 +poi_tele_742 landmark 530 2830.32 5252.84 264.143 5.26235 1 RazaansLanding RazaansLanding game_tele 742 3942 3522 bladesedgemountains 0 0 +poi_tele_743 zone 1 -4657.3 -2519.35 81.0529 4.54808 1 RazorfenDowns RazorfenDowns game_tele 743 722 722 razorfendowns 1 0 +poi_tele_744 zone 1 -4470.28 -1677.77 81.3925 1.16302 1 RazorfenKraul RazorfenKraul game_tele 744 491 491 razorfenkraul 1 2 +poi_tele_745 landmark 1 326.81 -4706.65 15.3665 4.16414 1 RazorHill RazorHill game_tele 745 362 14 durotar 0 2 +poi_tele_746 landmark 1 406.553 -4227.69 25.8136 6.14752 1 RazormaneGrounds RazormaneGrounds game_tele 746 4981 14 durotar 0 2 +poi_tele_747 landmark 530 2432.62 5201.37 264.661 3.00927 1 RazorRidge RazorRidge game_tele 747 3833 3522 bladesedgemountains 0 0 +poi_tele_748 landmark 530 -1248.26 3837.32 264.797 3.21797 1 RazorthornRise RazorthornRise game_tele 748 4078 3519 terokkarforest 0 0 +poi_tele_749 landmark 530 -1708.1 4028.77 60.0601 2.08778 1 RazorthornShelf RazorthornShelf game_tele 749 3858 3519 terokkarforest 0 0 +poi_tele_75 landmark 1 -4134.29 -2192.52 50.7921 3.99548 1 BaelModan BaelModan game_tele 75 4946 4709 southernbarrens 0 0 +poi_tele_750 landmark 530 -1550.52 3547.46 32.4329 2.05248 1 RazorthornTrail RazorthornTrail game_tele 750 3765 3483 hellfirepeninsula 0 0 +poi_tele_751 landmark 1 950.321 -4596.04 19.5531 3.94604 1 RazorwindCanyon RazorwindCanyon game_tele 751 410 14 durotar 0 2 +poi_tele_752 landmark 530 -32.7738 2123.59 110.62 0.264264 1 ReaversFall ReaversFall game_tele 752 3807 3483 hellfirepeninsula 0 0 +poi_tele_753 settlement 0 -11322.4 -202.492 75.6362 0.432339 1 RebelCamp RebelCamp game_tele 753 99 33 northernstranglethorn 0 0 +poi_tele_754 landmark 1 -3162.62 -490.493 30.0476 1.64305 1 RedCloudMesa RedCloudMesa game_tele 754 220 215 mulgore 0 2 +poi_tele_755 landmark 0 -8955.78 -2303.5 132.459 0.783378 1 RedridgeCanyons RedridgeCanyons game_tele 755 95 44 redridgemountains 0 0 +poi_tele_756 zone 0 -9551.81 -2204.73 93.473 5.47141 1 RedridgeMountains RedridgeMountains game_tele 756 44 44 redridgemountains 1 0 +poi_tele_757 landmark 1 -975.866 -1089.96 44.4156 5.60771 1 RedRocks RedRocks game_tele 757 225 215 mulgore 0 2 +poi_tele_758 landmark 530 -2807.36 5077.65 -12.2418 3.23972 1 RefugeeCaravan RefugeeCaravan game_tele 758 3887 3519 terokkarforest 0 0 +poi_tele_759 landmark 0 -1246.61 -2529.32 20.6098 0.741709 1 RefugePointe RefugePointe game_tele 759 320 45 arathihighlands 0 0 +poi_tele_76 ruins 0 -12551.3 -714.58 38.8789 5.67092 1 BaliaMahRuins BaliaMahRuins game_tele 76 127 33 northernstranglethorn 0 0 +poi_tele_760 landmark 1 4633.51 627.215 7.05298 5.68533 1 RemtravelsExcavation RemtravelsExcavation game_tele 760 450 148 darkshore 0 1 +poi_tele_761 landmark 0 -9654.98 -3097.37 49.9266 5.39445 1 RendersValley RendersValley game_tele 761 997 44 redridgemountains 0 0 +poi_tele_762 ruins 0 -8977.54 -2013.25 136.611 1.06612 1 RethbanCaverns RethbanCaverns game_tele 762 98 44 redridgemountains 0 0 +poi_tele_763 settlement 0 -557.226 -4581.27 9.5884 1.01724 1 RevantuskVillage RevantuskVillage game_tele 763 3317 47 thehinterlands 0 0 +poi_tele_764 landmark 389 3.81 -14.82 -17.84 4.23745 1 RFC RFC game_tele 764 2437 2437 ragefirechasm 0 2 +poi_tele_765 landmark 129 2592.55 1107.5 51.29 4.74 1 RFD RFD game_tele 765 722 722 razorfendowns 0 0 +poi_tele_766 landmark 47 1943 1544.63 82 1.38 1 RFK RFK game_tele 766 491 491 razorfenkraul 0 2 +poi_tele_767 landmark 0 -9759.42 -1370.87 57.8966 4.14011 1 RidgepointTower RidgepointTower game_tele 767 798 12 elwynn 0 1 +poi_tele_768 landmark 530 -3314.47 4942.72 -101.176 3.47559 1 RingOfObservance RingOfObservance game_tele 768 3893 3519 terokkarforest 0 0 +poi_tele_769 landmark 0 -11240.9 -2842.69 157.925 1.47842 1 RiseOfTheDefiler RiseOfTheDefiler game_tele 769 2517 4 blasted_lands 0 0 +poi_tele_77 ruins 0 -12019.5 363.339 2.1088 5.11095 1 BallalRuins BallalRuins game_tele 77 123 33 northernstranglethorn 0 0 +poi_tele_770 landmark 530 2081.75 7384.85 372.481 4.04039 1 RivendarksPerch RivendarksPerch game_tele 770 3969 3522 bladesedgemountains 0 0 +poi_tele_771 landmark 1 -5485.38 -1628.67 27.7119 2.85653 1 RoguefeatherDen RoguefeatherDen game_tele 771 5590 400 thousandneedles 0 0 +poi_tele_772 landmark 0 1458.68 106.137 -61.3152 3.93673 1 RoguesQuarter RoguesQuarter game_tele 772 1497 1497 undercity 0 2 +poi_tele_773 landmark 0 1303.13 361.856 -67.2945 4.43312 1 RoyalQuarter RoyalQuarter game_tele 773 1497 1497 undercity 0 2 +poi_tele_774 ruins 0 -13688.9 -309.139 6.95504 6.11545 1 RuinsOfAboraz RuinsOfAboraz game_tele 774 311 5287 thecapeofstranglethorn 0 0 +poi_tele_775 ruins 0 629.684 -348.068 151.105 2.85588 1 RuinsOfAlterac RuinsOfAlterac game_tele 775 281 267 hillsbradfoothills 0 0 +poi_tele_776 ruins 0 1400.61 -1493.87 54.7844 4.08661 1 RuinsOfAndorhal RuinsOfAndorhal game_tele 776 193 28 westernplaguelands 0 0 +poi_tele_777 ruins 530 -3258.09 1165.62 60.1821 3.18338 1 RuinsOfBaaRi RuinsOfBaaRi game_tele 777 3753 3520 shadowmoonvalley 0 0 +poi_tele_778 ruins 1 4567.97 -492.526 300.884 5.2189 1 RuinsOfConstellas RuinsOfConstellas game_tele 778 2481 361 felwood 0 0 +poi_tele_779 ruins 1 4004.29 -5411.78 114.943 4.03446 1 RuinsOfEldarath RuinsOfEldarath game_tele 779 16 16 azshara 0 2 +poi_tele_78 landmark 0 1996.05 -374.731 35.4522 5.19636 1 BalnirFarmstead BalnirFarmstead game_tele 78 165 85 tirisfalglades 0 2 +poi_tele_780 ruins 530 3443.76 3680.31 149.409 3.34755 1 RuinsOfEnkaat RuinsOfEnkaat game_tele 780 3725 3523 netherstorm 0 0 +poi_tele_781 ruins 530 4639.58 2593.03 210.931 2.71213 1 RuinsOfFarahlon RuinsOfFarahlon game_tele 781 3741 3523 netherstorm 0 0 +poi_tele_782 ruins 1 -5628.76 1443.64 54.1252 5.72722 1 RuinsOfIsildien RuinsOfIsildien game_tele 782 2522 357 feralas 0 0 +poi_tele_783 ruins 0 -13353.7 0.40638 21.6159 3.28725 1 RuinsOfJubuwal RuinsOfJubuwal game_tele 783 477 5287 thecapeofstranglethorn 0 0 +poi_tele_784 ruins 530 -3732.7 456.872 104.143 4.0858 1 RuinsOfKarabor RuinsOfKarabor game_tele 784 3756 3520 shadowmoonvalley 0 0 +poi_tele_785 ruins 0 1923.69 234.217 49.0664 3.16311 1 RuinsOfLordaeron RuinsOfLordaeron game_tele 785 153 85 tirisfalglades 0 2 +poi_tele_786 ruins 530 -1832.47 -12078.2 31.9203 5.82134 1 RuinsOfLorethAran RuinsOfLorethAran game_tele 786 3591 3525 bloodmystisle 0 1 +poi_tele_787 ruins 1 7344.01 -914.641 32.6207 2.18634 1 RuinsOfMathystra RuinsOfMathystra game_tele 787 443 148 darkshore 0 1 +poi_tele_788 ruins 1 -2877.75 2346 39.7117 0.306187 1 RuinsOfRavenwind RuinsOfRavenwind game_tele 788 1114 357 feralas 0 0 +poi_tele_789 ruins 530 -588.564 4803.37 35.1991 2.89915 1 RuinsOfShaNaar RuinsOfShaNaar game_tele 789 3551 3483 hellfirepeninsula 0 0 +poi_tele_79 landmark 1 9863.43 1558.24 1329.33 2.35456 1 BanEthilBarrowDen BanEthilBarrowDen game_tele 79 736 141 teldrassil 0 1 +poi_tele_790 ruins 530 9738.47 -6678.72 0.626843 1.08358 1 RuinsOfSilvermoon RuinsOfSilvermoon game_tele 790 3533 3430 eversongwoods 0 2 +poi_tele_791 ruins 1 -4934.06 3590.1 10.8445 0.100452 1 RuinsOfSolarsal RuinsOfSolarsal game_tele 791 1117 357 feralas 0 0 +poi_tele_792 ruins 0 -7842.54 -2159.07 133.439 6.05649 1 RuinsOfThaurissan RuinsOfThaurissan game_tele 792 250 46 burningsteppes 0 0 +poi_tele_793 ruins 0 -11651.4 647.492 50.5754 1.50754 1 RuinsOfZulKunda RuinsOfZulKunda game_tele 793 102 33 northernstranglethorn 0 0 +poi_tele_794 ruins 0 -12952.2 -800.204 63.3924 2.07461 1 RuinsOfZulMamwe RuinsOfZulMamwe game_tele 794 103 33 northernstranglethorn 0 0 +poi_tele_795 ruins 0 -12901.5 -653.396 51.3323 4.29414 1 RuinsOfZulManwe RuinsOfZulManwe game_tele 795 103 33 northernstranglethorn 0 0 +poi_tele_796 landmark 530 8222.45 -6684.93 86.2016 1.2383 1 RunestoneFalithas RunestoneFalithas game_tele 796 3913 3430 eversongwoods 0 2 +poi_tele_797 landmark 530 8270.72 -7208.74 141.199 5.58077 1 RunestoneShandor RunestoneShandor game_tele 797 3914 3430 eversongwoods 0 2 +poi_tele_798 workshop 1 8704.53 944.683 13.5177 2.99385 1 RutTheranVillage RutTheranVillage game_tele 798 141 141 teldrassil 0 1 +poi_tele_799 landmark 530 2964.84 5663.43 146.879 5.89082 1 RuuanWeald RuuanWeald game_tele 799 3828 3522 bladesedgemountains 0 0 +poi_tele_8 landmark 530 -2059.85 8550.89 24.0587 1.944 1 AerisLanding AerisLanding game_tele 8 3623 3518 nagrand 0 0 +poi_tele_80 landmark 1 9952.24 1538.42 1312.13 3.28133 1 BanEthilHollow BanEthilHollow game_tele 80 736 141 teldrassil 0 1 +poi_tele_800 landmark 0 -10165.8 1099.65 36.7546 5.35127 1 SaldeansFarm SaldeansFarm game_tele 800 107 40 westfall 0 1 +poi_tele_801 landmark 530 8664.16 -6357.99 55.1721 2.0504 1 SaltherilsHaven SaltherilsHaven game_tele 801 3468 3430 eversongwoods 0 2 +poi_tele_802 landmark 0 -2723.47 -1626.34 12.0927 4.1374 1 SaltsprayGlen SaltsprayGlen game_tele 802 1023 11 wetlands 0 0 +poi_tele_803 landmark 530 7534.77 -6413.43 13.0591 2.45016 1 SanctumOfTheMoon SanctumOfTheMoon game_tele 803 3494 3433 ghostlands 0 2 +poi_tele_804 landmark 530 -4115.51 1120.54 44.5242 2.6318 1 SanctumOfTheStars SanctumOfTheStars game_tele 804 3938 3520 shadowmoonvalley 0 0 +poi_tele_805 landmark 530 7169.99 -7082.62 56.1741 5.68364 1 SanctumOfTheSun SanctumOfTheSun game_tele 805 3493 3433 ghostlands 0 2 +poi_tele_806 landmark 1 -7244.39 -2950.49 8.88702 5.65329 1 SandsorrowWatch SandsorrowWatch game_tele 806 979 440 tanaris 0 0 +poi_tele_807 landmark 1 -4677.53 3178.37 4.88728 4.77121 1 SardorIsle SardorIsle game_tele 807 1120 357 feralas 0 0 +poi_tele_808 landmark 1 -52.4961 1009.64 93.8872 4.40432 1 Sargeron Sargeron game_tele 808 603 405 desolace 0 0 +poi_tele_809 landmark 1 -1886.8 2888.14 49.9161 1.48894 1 SarTherisStrand SarTherisStrand game_tele 809 598 405 desolace 0 0 +poi_tele_81 landmark 0 -2537.88 -1692.24 4.30329 0.08867 1 BaradinBay BaradinBay game_tele 81 298 11 wetlands 0 0 +poi_tele_810 landmark 1 2745.04 -2957.47 141.707 3.80433 1 Satyrnaar Satyrnaar game_tele 810 430 331 ashenvale 0 0 +poi_tele_811 ruins 1 3704.1 -6063.61 1.4207 4.81044 1 ScalebeardsCave ScalebeardsCave game_tele 811 1227 16 azshara 0 2 +poi_tele_812 landmark 530 1994.43 5139.17 265.058 3.07523 1 ScalewingShelf ScalewingShelf game_tele 812 3953 3522 bladesedgemountains 0 0 +poi_tele_813 settlement 0 1654.25 -4791.25 83.2546 4.22248 1 ScarletBaseCamp ScarletBaseCamp game_tele 813 2265 139 easternplaguelands 0 0 +poi_tele_814 zone 0 2872.6 -764.398 160.332 5.05735 1 ScarletMonastery ScarletMonastery game_tele 814 796 796 scarletmonastery 1 2 +poi_tele_815 landmark 0 2837.12 -511.285 105.317 5.81304 1 ScarletWatchPost ScarletWatchPost game_tele 815 459 85 tirisfalglades 0 2 +poi_tele_816 zone 0 1269.64 -2556.21 93.6088 0.620623 1 Scholomance Scholomance game_tele 816 2057 2057 scholomance 1 0 +poi_tele_817 landmark 13 -0.310414 0.107129 -100.538 2.94612 1 ScottTest ScottTest game_tele 817 3817 3817 testing 0 0 +poi_tele_818 settlement 1 -1414.71 1469.51 59.498 1.05066 1 ScrabblescrewsCamp ScrabblescrewsCamp game_tele 818 2617 405 desolace 0 0 +poi_tele_819 landmark 530 -2185.93 5538.97 64.0729 2.82446 1 ScryersTier ScryersTier game_tele 819 3703 3703 shattrathcity 0 0 +poi_tele_82 landmark 1 48.9976 -2715.55 91.6677 0.158612 1 Barrens Barrens game_tele 82 458 17 northernbarrens 0 2 +poi_tele_820 landmark 1 175.996 -5142.55 0.778698 4.49423 1 ScuttleCoast ScuttleCoast game_tele 820 373 14 durotar 0 2 +poi_tele_821 zone 0 -7012.47 -1065.13 241.786 5.63162 1 SearingGorge SearingGorge game_tele 821 51 51 searinggorge 1 0 +poi_tele_822 landmark 530 -3955.23 -11727.3 -138.878 0.981744 1 SeatOfTheNaaru SeatOfTheNaaru game_tele 822 3557 3557 theexodar 0 1 +poi_tele_823 settlement 1 -813.097 -4880.08 18.995 4.42647 1 SenjinVillage SenjinVillage game_tele 823 367 14 durotar 0 2 +poi_tele_824 landmark 0 -10624.5 1096.66 33.7641 1.31041 1 SentinelHill SentinelHill game_tele 824 108 40 westfall 0 1 +poi_tele_825 landmark 0 -10511.6 1053.2 59.0454 5.07245 1 SentinelTower SentinelTower game_tele 825 108 40 westfall 0 1 +poi_tele_826 landmark 1 -3461.11 -4125.85 17.099 2.25408 1 SentryPoint SentryPoint game_tele 826 503 15 dustwallowmarsh 0 0 +poi_tele_827 landmark 0 799.721 -3995.68 122.007 3.77399 1 Seradane Seradane game_tele 827 356 47 thehinterlands 0 0 +poi_tele_828 landmark 0 -11311.5 -3407.92 7.4681 5.30724 1 SerpentsCoil SerpentsCoil game_tele 828 1440 4 blasted_lands 0 0 +poi_tele_829 ruins 530 820.025 6864.93 -66.7556 6.28127 1 SerpentshrineCavern SerpentshrineCavern game_tele 829 3905 3521 zangarmarsh 0 0 +poi_tele_83 landmark 1 6712.31 -21.5758 42.8535 1.15594 1 BashalAran BashalAran game_tele 83 446 148 darkshore 0 1 +poi_tele_830 landmark 556 -4.6811 -0.09308 0.0062 0.035342 1 Sethekk Sethekk game_tele 830 3791 3791 sethekkhalls 0 0 +poi_tele_831 landmark 530 -3362.2 4664.12 -101.049 4.6605 1 SethekkHalls SethekkHalls game_tele 831 3688 3519 terokkarforest 0 0 +poi_tele_832 landmark 0 1609.4 728.543 68.0957 4.05141 1 Sewers Sewers game_tele 832 1497 1497 undercity 0 2 +poi_tele_833 landmark 33 -229.135 2109.18 76.8898 1.267 1 SFK SFK game_tele 833 209 209 shadowfangkeep 0 2 +poi_tele_834 landmark 540 -40.8716 -19.7538 -13.8065 1.11133 1 SH SH game_tele 834 3714 3714 theshatteredhalls 0 0 +poi_tele_835 landmark 1 -1866.38 655.098 107.241 3.87731 1 ShadowbreakRavine ShadowbreakRavine game_tele 835 2198 405 desolace 0 0 +poi_tele_836 landmark 0 -234.675 1561.63 76.8921 1.24031 1 ShadowFangKeep ShadowFangKeep game_tele 836 236 130 silverpineforest 0 2 +poi_tele_837 landmark 1 10334 833.902 1326.11 3.62142 1 Shadowglen Shadowglen game_tele 837 188 141 teldrassil 0 1 +poi_tele_838 landmark 0 1664.29 1679.34 120.53 3.2093 1 ShadowGrave ShadowGrave game_tele 838 2117 85 tirisfalglades 0 2 +poi_tele_839 landmark 1 4895.81 -392.013 351.471 5.9611 1 ShadowHold ShadowHold game_tele 839 1763 361 felwood 0 0 +poi_tele_84 landmark 530 3815.16 6110.93 265.862 1.15472 1 BashirLanding BashirLanding game_tele 84 3864 3522 bladesedgemountains 0 0 +poi_tele_840 landmark 530 -3627.9 4941.98 -101.049 3.16039 1 ShadowLabyrinth ShadowLabyrinth game_tele 840 3688 3519 terokkarforest 0 0 +poi_tele_841 settlement 530 -2998.66 2568.9 76.6306 0.551303 1 ShadowmoonVillage ShadowmoonVillage game_tele 841 3744 3520 shadowmoonvalley 0 0 +poi_tele_842 settlement 1 -1664.79 3091.67 30.5552 6.07818 1 ShadowpreyVillage ShadowpreyVillage game_tele 842 2408 405 desolace 0 0 +poi_tele_843 landmark 1 2890.66 -4019.71 138.135 3.34097 1 ShadowsongShrine ShadowsongShrine game_tele 843 3137 16 azshara 0 2 +poi_tele_844 ruins 1 10746.2 926.841 1336.47 6.24541 1 ShadowthreadCave ShadowthreadCave game_tele 844 188 141 teldrassil 0 1 +poi_tele_845 ruins 530 -2896.28 5394.74 -8.88803 1.60241 1 ShadowTomb ShadowTomb game_tele 845 3888 3519 terokkarforest 0 0 +poi_tele_846 landmark 0 -324.286 -2900.4 77.795 2.67714 1 ShadraAlor ShadraAlor game_tele 846 353 47 thehinterlands 0 0 +poi_tele_847 tavern 1 -3707.79 -2530.37 68.2635 3.31945 1 ShadyRestInn ShadyRestInn game_tele 847 403 15 dustwallowmarsh 0 0 +poi_tele_848 landmark 530 7702.12 -5708.67 3.11034 3.51184 1 ShalandisIsle ShalandisIsle game_tele 848 3503 3433 ghostlands 0 2 +poi_tele_849 landmark 1 -5486.8 3630.93 2.10077 3.84603 1 ShalzarusLair ShalzarusLair game_tele 849 1121 357 feralas 0 0 +poi_tele_85 landmark 1 3825.87 -120.149 -0.200964 5.18504 1 BathransHaunt BathransHaunt game_tele 85 411 331 ashenvale 0 0 +poi_tele_850 landmark 530 -385.521 4797.07 19.9065 3.15127 1 ShaNaariWastes ShaNaariWastes game_tele 850 3795 3483 hellfirepeninsula 0 0 +poi_tele_851 landmark 0 98.8545 -4379.69 121.322 0.049959 1 ShaolWatha ShaolWatha game_tele 851 1917 47 thehinterlands 0 0 +poi_tele_852 landmark 530 2693.44 7110.67 365.1 0.37965 1 ShartuulsTransporter ShartuulsTransporter game_tele 852 4008 3522 bladesedgemountains 0 0 +poi_tele_853 settlement 530 -3747.08 5393.6 -3.99659 1.34873 1 ShaTariBaseCamp ShaTariBaseCamp game_tele 853 3958 3519 terokkarforest 0 0 +poi_tele_854 landmark 530 -2607.52 1401.71 79.9574 5.04617 1 ShatteredPlains ShatteredPlains game_tele 854 3926 3520 shadowmoonvalley 0 0 +poi_tele_855 landmark 530 12947.4 -6893.31 5.68398 3.09154 1 ShatteredSunStaging ShatteredSunStaging game_tele 855 4085 4080 isleofqueldanas 0 0 +poi_tele_856 landmark 530 286.357 1469.6 -11.4535 2.41453 1 ShatterPoint ShatterPoint game_tele 856 3483 3483 hellfirepeninsula 0 0 +poi_tele_857 landmark 1 5654.65 -883.661 377.91 2.25167 1 ShatterScarVale ShatterScarVale game_tele 857 1766 361 felwood 0 0 +poi_tele_858 settlement 1 7367.77 -1560.74 163.446 2.55011 1 ShatterspearVillage ShatterspearVillage game_tele 858 4664 148 darkshore 0 1 +poi_tele_859 landmark 530 -1838.16 5301.79 -12.428 5.9517 1 Shattrath Shattrath game_tele 859 3703 3703 shattrathcity 0 0 +poi_tele_86 landmark 0 -13210.4 294.518 21.8575 4.92246 1 BattleRing BattleRing game_tele 86 2177 5287 thecapeofstranglethorn 0 0 +poi_tele_860 landmark 0 -5316.24 -215.783 440.907 3.74507 1 ShimmerRidge ShimmerRidge game_tele 860 802 1 dun_morogh 0 1 +poi_tele_861 settlement 0 227.928 -2604.95 159.771 3.53715 1 ShindiggersCamp ShindiggersCamp game_tele 861 1881 47 thehinterlands 0 0 +poi_tele_862 landmark 0 -14140.4 458.677 3.71587 0.997797 1 ShouthernSavageCoast ShouthernSavageCoast game_tele 862 1578 5287 thecapeofstranglethorn 0 0 +poi_tele_863 landmark 530 10400.1 -5956.19 40.7994 0.977561 1 ShrineOfDathremar ShrineOfDathremar game_tele 863 3432 3430 eversongwoods 0 2 +poi_tele_864 landmark 1 7841.73 -2209.34 471.118 5.23693 1 ShrineOfRemulos ShrineOfRemulos game_tele 864 2362 493 moonglade 0 0 +poi_tele_865 landmark 1 4844.91 -602.987 308.754 2.21868 1 ShrineOfTheDeceiver ShrineOfTheDeceiver game_tele 865 1771 361 felwood 0 0 +poi_tele_866 landmark 1 -240.214 -4013.38 187.304 2.54097 1 ShrineOfTheDormantFlame ShrineOfTheDormantFlame game_tele 866 640 14 durotar 0 2 +poi_tele_867 zone 1 -7426.87 1005.31 1.13359 2.96086 1 Silithus Silithus game_tele 867 1377 1377 silithus 1 0 +poi_tele_868 landmark 530 -3126.44 -11957.6 4.28641 1.8119 1 SiltingShore SiltingShore game_tele 868 3575 3524 azuremystisle 0 1 +poi_tele_869 zone 530 9487.69 -7279.2 14.2866 6.16478 1 SilvermoonCity SilvermoonCity game_tele 869 3487 3487 silvermooncity 1 2 +poi_tele_87 landmark 1 3665.57 -6014.97 5.71029 5.4152 1 BayOfStorms BayOfStorms game_tele 87 1227 16 azshara 0 2 +poi_tele_870 landmark 530 -5094.34 -11129.6 25.058 2.78659 1 SilvermystIsle SilvermystIsle game_tele 870 3566 3524 azuremystisle 0 1 +poi_tele_871 zone 0 878.74 1359.33 53.05 5.89929 1 SilverpineForest SilverpineForest game_tele 871 130 130 silverpineforest 1 2 +poi_tele_872 mine 0 -4813.81 -2970.08 320.757 3.14151 1 SilverStreamMine SilverStreamMine game_tele 872 149 38 lochmodan 0 1 +poi_tele_873 landmark 1 2137.3 -1189.05 98.308 3.23488 1 SilverwindRefuge SilverwindRefuge game_tele 873 420 331 ashenvale 0 0 +poi_tele_874 landmark 1 1486.44 -1866 113.941 2.75186 1 SilverwingGrove SilverwingGrove game_tele 874 3319 331 ashenvale 0 0 +poi_tele_875 landmark 1 1810.07 -2001.61 103.117 3.68491 1 SilverwingOutpost SilverwingOutpost game_tele 875 2360 331 ashenvale 0 0 +poi_tele_876 landmark 530 1617.43 5337.21 265.469 1.44789 1 SingingRidge SingingRidge game_tele 876 3919 3522 bladesedgemountains 0 0 +poi_tele_877 landmark 1 428.398 467.608 97.4092 1.555 1 SishirCanyon SishirCanyon game_tele 877 4930 406 stonetalonmountains 0 0 +poi_tele_878 landmark 530 3604.04 4963.59 267.724 0.788938 1 Skald Skald game_tele 878 3866 3522 bladesedgemountains 0 0 +poi_tele_879 settlement 530 -4089.38 1787.12 100.382 5.96761 1 SkethLonBaseCamp SkethLonBaseCamp game_tele 879 3932 3520 shadowmoonvalley 0 0 +poi_tele_88 landmark 1 3872.82 -4755.78 268.5 3.94022 1 BearsHead BearsHead game_tele 88 1224 16 azshara 0 2 +poi_tele_880 landmark 530 -3055.5 2210.29 66.5523 5.54036 1 SkethLonWreckage SkethLonWreckage game_tele 880 3933 3520 shadowmoonvalley 0 0 +poi_tele_881 landmark 530 -3674.85 3912.42 298.476 5.27651 1 SkethylMountains SkethylMountains game_tele 881 3693 3519 terokkarforest 0 0 +poi_tele_882 landmark 530 -3770.72 3684.42 277.236 4.34424 1 Skettis Skettis game_tele 882 3679 3519 terokkarforest 0 0 +poi_tele_883 landmark 530 9519.69 -6531.37 21.9874 3.06352 1 SkulkingRow SkulkingRow game_tele 883 3531 3430 eversongwoods 0 2 +poi_tele_884 landmark 0 369.856 -3802.84 170.093 3.58942 1 SkulkRock SkulkRock game_tele 884 351 47 thehinterlands 0 0 +poi_tele_885 landmark 1 1446.31 -4879.79 11.3317 0.477731 1 SkullRock SkullRock game_tele 885 817 14 durotar 0 2 +poi_tele_886 landmark 530 2509.9 7322.28 374.229 1.60016 1 SkyguardOutpost SkyguardOutpost game_tele 886 3964 3522 bladesedgemountains 0 0 +poi_tele_887 landmark 555 -5.10147 0.126865 -1.12788 3.08034 1 SL SL game_tele 887 3789 3789 shadowlabyrinth 0 0 +poi_tele_888 landmark 530 -3345.84 2112.94 102.374 4.71491 1 SlagWatch SlagWatch game_tele 888 3937 3520 shadowmoonvalley 0 0 +poi_tele_889 landmark 0 846.782 -566.79 142.518 0.268342 1 SlaughterHollow SlaughterHollow game_tele 889 283 267 hillsbradfoothills 0 0 +poi_tele_89 landmark 1 -3974.75 -3814.87 37.7727 3.30494 1 BeezilsWreck BeezilsWreck game_tele 89 501 15 dustwallowmarsh 0 0 +poi_tele_890 landmark 0 -10639.3 -2092.15 101.664 2.48375 1 SleepingGorge SleepingGorge game_tele 890 2938 41 deadwindpass 0 0 +poi_tele_891 landmark 0 -7660.35 -3011.37 132.992 5.02368 1 SlitherRock SlitherRock game_tele 891 2419 46 burningsteppes 0 0 +poi_tele_892 landmark 189 1610.83 -323.433 18.6738 6.28022 1 SMArmory SMArmory game_tele 892 796 796 scarletmonastery 0 2 +poi_tele_893 landmark 189 855.683 1321.5 18.6709 0.001747 1 SMCath SMCath game_tele 893 796 796 scarletmonastery 0 2 +poi_tele_894 landmark 189 1702.01 1053.5 18.4922 1.46594 1 SMGY SMGY game_tele 894 796 796 scarletmonastery 0 2 +poi_tele_895 landmark 189 255.346 -209.09 18.6773 6.26656 1 SMLib SMLib game_tele 895 796 796 scarletmonastery 0 2 +poi_tele_896 landmark 530 4810.01 3843.66 223.376 6.06345 1 SocretharsSeat SocretharsSeat game_tele 896 3742 3523 netherstorm 0 0 +poi_tele_897 landmark 0 2312.13 1405.46 33.3337 1.15155 1 SollidenFarmstead SollidenFarmstead game_tele 897 156 85 tirisfalglades 0 2 +poi_tele_898 landmark 0 1257.8 -1705.34 60.6843 3.72296 1 SorrowHill SorrowHill game_tele 898 197 28 westernplaguelands 0 0 +poi_tele_899 landmark 0 -10498.9 -4189.17 23.3262 4.97345 1 Sorrowmurk Sorrowmurk game_tele 899 74 8 swampofsorrows 0 0 +poi_tele_9 landmark 1 -2020.72 -2107.58 91.9626 5.49717 1 FieldsOfBlood FieldsOfBlood game_tele 9 4850 4709 southernbarrens 0 0 +poi_tele_90 landmark 0 -10361.1 -1529.87 91.4594 5.96075 1 BeggarsHaunt BeggarsHaunt game_tele 90 576 10 duskwood 0 0 +poi_tele_900 landmark 530 -4357.47 4612.63 -39.8305 1.7972 1 SorrowWingPoint SorrowWingPoint game_tele 900 3961 3519 terokkarforest 0 0 +poi_tele_901 landmark 530 3549.42 5593.04 -3.47566 3.88262 1 SoulgrindersBarrow SoulgrindersBarrow game_tele 901 3960 3522 bladesedgemountains 0 0 +poi_tele_902 landmark 1 -8665.15 -4725.35 0.656339 4.02044 1 SouthbreakShore SouthbreakShore game_tele 902 1940 440 tanaris 0 0 +poi_tele_903 zone 1 -2333.57 -2295.55 92.6909 4.76754 1 SouthernBarrens SouthernBarrens game_tele 903 4709 4709 southernbarrens 1 0 +poi_tele_904 landmark 1 -1696.57 -2553.96 91.2953 3.2423 1 SouthernGoldRoad SouthernGoldRoad game_tele 904 4709 4709 southernbarrens 0 0 +poi_tele_905 landmark 530 -823.97 3345 97.486 5.93392 1 SouthernRampart SouthernRampart game_tele 905 3809 3483 hellfirepeninsula 0 0 +poi_tele_906 landmark 0 -13668.6 471.263 37.4754 1.95598 1 SouthernSavageCoast SouthernSavageCoast game_tele 906 1578 5287 thecapeofstranglethorn 0 0 +poi_tele_907 landmark 1 2815.68 -3790.07 88.207 2.8713 1 SouthfuryRiver SouthfuryRiver game_tele 907 879 331 ashenvale 0 0 +poi_tele_908 landmark 0 -5438.02 -2441.87 400.492 2.49866 1 SouthGateOutpost SouthGateOutpost game_tele 908 806 38 lochmodan 0 1 +poi_tele_909 landmark 0 -5645.3 -2540 373.388 0.840292 1 SouthGatePass SouthGatePass game_tele 909 839 38 lochmodan 0 1 +poi_tele_91 landmark 0 -370.444 897.319 132.97 1.03222 1 BerensPeril BerensPeril game_tele 91 231 130 silverpineforest 0 2 +poi_tele_910 ruins 1 -9317.12 -3016.24 9.98814 0.142927 1 SouthmoonRuins SouthmoonRuins game_tele 910 992 440 tanaris 0 0 +poi_tele_911 landmark 0 -694.861 406.638 74.9142 6.13966 1 SouthpointTower SouthpointTower game_tele 911 285 267 hillsbradfoothills 0 0 +poi_tele_912 landmark 1 3166.38 -5784.64 6.85091 5.34844 1 SouthridgeBeach SouthridgeBeach game_tele 912 1228 16 azshara 0 2 +poi_tele_913 ruins 0 -853.221 -533.529 9.98556 0.242866 1 RuinsOfSouthshore RuinsOfSouthshore game_tele 913 271 267 hillsbradfoothills 0 0 +poi_tele_914 landmark 530 -2033.15 7551.71 -92.349 4.13842 1 SouthwindCleft SouthwindCleft game_tele 914 3629 3518 nagrand 0 0 +poi_tele_915 settlement 1 -7108.06 320.415 18.0411 2.87455 1 SouthwindVillage SouthwindVillage game_tele 915 2738 1377 silithus 0 0 +poi_tele_916 landmark 547 130.446 -127.482 -1.59053 1.86731 1 SP SP game_tele 916 3717 3717 theslavepens 0 0 +poi_tele_917 landmark 530 -1326.36 2371.99 88.9503 6.19165 1 SpinebreakerPost SpinebreakerPost game_tele 917 3812 3483 hellfirepeninsula 0 0 +poi_tele_918 landmark 0 -13772.4 -3.7118 41.9401 5.65521 1 SpiritDen SpiritDen game_tele 918 1742 5287 thecapeofstranglethorn 0 0 +poi_tele_919 landmark 530 -2423.72 8040.33 -43.698 1.98013 1 SpiritFields SpiritFields game_tele 919 3631 3518 nagrand 0 0 +poi_tele_92 landmark 530 -2626.6 -12430.8 2.59312 3.08502 1 BerylCoast BerylCoast game_tele 92 3583 3525 bloodmystisle 0 1 +poi_tele_920 landmark 1 -1013.67 224.643 134.661 1.12784 1 SpiritRise SpiritRise game_tele 920 1640 1638 thunderbluff 0 2 +poi_tele_921 landmark 1 -866.113 -4284.06 76.167 3.62166 1 SpiritRock SpiritRock game_tele 921 639 14 durotar 0 2 +poi_tele_922 landmark 0 -10385.2 -2600.12 21.7007 4.60431 1 SplinterspearJunction SplinterspearJunction game_tele 922 1780 8 swampofsorrows 0 0 +poi_tele_923 landmark 1 2270.94 -2538.19 93.9198 0.060429 1 SplintertreePost SplintertreePost game_tele 923 431 331 ashenvale 0 0 +poi_tele_924 landmark 1 -4998.14 -2219.52 -53.2078 2.3798 1 SplithoofCrag SplithoofCrag game_tele 924 481 400 thousandneedles 0 0 +poi_tele_925 landmark 1 -5037.83 -2381.29 -54.2846 5.10748 1 SplithoofHold SplithoofHold game_tele 925 1557 400 thousandneedles 0 0 +poi_tele_926 landmark 530 209.095 8547.4 23.1083 5.33054 1 Sporeggar Sporeggar game_tele 926 3649 3521 zangarmarsh 0 0 +poi_tele_927 landmark 548 9.83957 2.74496 822.096 0.106614 1 SSC SSC game_tele 927 3607 3607 serpentshrinecavern 0 0 +poi_tele_928 landmark 109 -319.24 99.9 -131.85 3.19 1 ST ST game_tele 928 1477 1477 thetempleofatalhakkar 0 0 +poi_tele_929 ruins 0 -10786.7 -3743.04 24.4991 3.0021 1 StagalbogCave StagalbogCave game_tele 929 1817 8 swampofsorrows 0 0 +poi_tele_93 landmark 542 -3.9967 14.6363 -44.8009 1.21574 1 Bf Bf game_tele 93 3713 3713 thebloodfurnace 0 0 +poi_tele_930 landmark 1 -6446.24 211.361 4.05948 4.18068 1 StaghelmPoint StaghelmPoint game_tele 930 3426 1377 silithus 0 0 +poi_tele_931 settlement 1 9838.87 385.538 1307.78 0.769623 1 StarbreezeVillage StarbreezeVillage game_tele 931 260 141 teldrassil 0 1 +poi_tele_932 settlement 1 7165.69 -4054.54 724.251 1.31543 1 StarfallVillage StarfallVillage game_tele 932 2253 618 winterspring 0 0 +poi_tele_933 landmark 1 -6908.08 -4801.39 8.15214 5.07916 1 SteamwheedlePort SteamwheedlePort game_tele 933 977 440 tanaris 0 0 +poi_tele_934 landmark 0 -5476.73 -666.917 392.674 3.48888 1 SteelgrillsDepot SteelgrillsDepot game_tele 934 189 1 dun_morogh 0 1 +poi_tele_935 landmark 0 -10798.9 1381.56 31.0576 0.622382 1 StendelsPond StendelsPond game_tele 935 919 40 westfall 0 1 +poi_tele_936 landmark 530 -3378.24 -12347.1 22.5696 0.068326 1 StillpineHold StillpineHold game_tele 936 3572 3524 azuremystisle 0 1 +poi_tele_937 landmark 0 2296.74 825.657 33.764 4.40704 1 StillwaterPond StillwaterPond game_tele 937 810 85 tirisfalglades 0 2 +poi_tele_938 landmark 530 9266.84 -7240.15 16.4273 2.81695 1 StillwhisperPond StillwhisperPond game_tele 938 3470 3430 eversongwoods 0 2 +poi_tele_939 landmark 0 -10446.9 -3261.91 20.1795 5.02142 1 Stonard Stonard game_tele 939 75 8 swampofsorrows 0 0 +poi_tele_94 landmark 48 -151.89 106.96 -39.87 4.53 1 Bfd Bfd game_tele 94 719 719 blackfathomdeeps 0 0 +poi_tele_940 landmark 530 -2640.08 4404.38 35.1 4.14529 1 StonebreakerHold StonebreakerHold game_tele 940 3683 3519 terokkarforest 0 0 +poi_tele_941 landmark 1 -1951.33 -537.594 -13.1229 3.48631 1 StonebullLake StonebullLake game_tele 941 223 215 mulgore 0 2 +poi_tele_942 landmark 0 -8982.69 -1206.38 72.206 3.0602 1 StoneCairnLake StoneCairnLake game_tele 942 86 12 elwynn 0 1 +poi_tele_943 ruins 1 -4339.1 -3318.75 34.2536 2.30041 1 StonemaulRuins StonemaulRuins game_tele 943 508 15 dustwallowmarsh 0 0 +poi_tele_944 landmark 0 -5882.25 -2921.18 366.988 2.04588 1 StonesplinterValley StonesplinterValley game_tele 944 923 38 lochmodan 0 1 +poi_tele_945 zone 1 1570.92 1031.52 138.276 3.33006 1 StonetalonMountains StonetalonMountains game_tele 945 406 406 stonetalonmountains 1 0 +poi_tele_946 landmark 1 2678.38 1497.46 233.869 6.26038 1 StonetalonPeak StonetalonPeak game_tele 946 467 406 stonetalonmountains 0 0 +poi_tele_947 landmark 530 346.86 3069.39 23.6589 3.0193 1 StonewallCanyon StonewallCanyon game_tele 947 3799 3483 hellfirepeninsula 0 0 +poi_tele_948 landmark 0 -9323.5 -3030.84 132.559 2.94713 1 Stonewatch Stonewatch game_tele 948 70 44 redridgemountains 0 0 +poi_tele_949 landmark 0 -9477.04 -3353.42 27.419 1.65792 1 StonewatchFalls StonewatchFalls game_tele 949 71 44 redridgemountains 0 0 +poi_tele_95 landmark 1 4869.55 -7058.97 105.579 4.8442 1 BitterReaches BitterReaches game_tele 95 4814 16 azshara 0 2 +poi_tele_950 landmark 0 -9386.59 -3039.03 139.437 4.8054 1 StonewatchKeep StonewatchKeep game_tele 950 2099 44 redridgemountains 0 0 +poi_tele_951 landmark 0 -9298.19 -2972.84 124.909 1.3418 1 StonewatchTower StonewatchTower game_tele 951 999 44 redridgemountains 0 0 +poi_tele_952 landmark 0 -4750.07 -3328.02 310.257 4.61609 1 StonewroughtDam StonewroughtDam game_tele 952 146 38 lochmodan 0 1 +poi_tele_953 landmark 1 7612.5 -2906.39 463.678 3.8829 1 StormrageBarrowDens StormrageBarrowDens game_tele 953 2363 493 moonglade 0 0 +poi_tele_954 landmark 0 -8833.07 622.778 93.9317 0.6771 1 Stormwind Stormwind game_tele 954 5148 1519 stormwind 0 1 +poi_tele_955 landmark 0 659.762 -959.316 164.404 0.433716 1 Strahnbrad Strahnbrad game_tele 955 280 267 hillsbradfoothills 0 0 +poi_tele_956 zone 0 -12644.3 -377.411 10.1021 6.09978 1 StranglethornVale StranglethornVale game_tele 956 5339 5339 stranglethornvale 1 0 +poi_tele_957 landmark 329 3387.95 -3380.34 142.76 0.005913 1 Strat Strat game_tele 957 2017 2017 stratholme 0 0 +poi_tele_958 zone 0 3352.92 -3379.03 144.782 6.25978 1 Stratholme Stratholme game_tele 958 2017 2017 stratholme 1 0 +poi_tele_959 landmark 0 -1551.2 -1808.1 67.5219 3.119 1 StromgardeKeep StromgardeKeep game_tele 959 324 45 arathihighlands 0 0 +poi_tele_96 wilderness 0 -3528.34 -1339.17 10.2396 3.07711 1 BlackChannelMarsh BlackChannelMarsh game_tele 96 1018 11 wetlands 0 0 +poi_tele_960 settlement 530 7960.27 -7257.01 136.908 0.234555 1 SuncrownVillage SuncrownVillage game_tele 960 3489 3433 ghostlands 0 2 +poi_tele_961 landmark 530 7154.17 -7070.49 54.9794 5.56207 1 SunctumOfTheSun SunctumOfTheSun game_tele 961 3493 3433 ghostlands 0 2 +poi_tele_962 wilderness 0 -2873.95 -1496.04 9.47361 1.04607 1 SundownMarsh SundownMarsh game_tele 962 5304 11 wetlands 0 0 +poi_tele_963 landmark 530 2498.92 2368.74 134.379 4.71414 1 SunfuryHold SunfuryHold game_tele 963 3837 3523 netherstorm 0 0 +poi_tele_964 landmark 530 9982.85 -7062.83 45.3625 0.873881 1 SunfurySpire SunfurySpire game_tele 964 3487 3487 silvermooncity 0 2 +poi_tele_965 landmark 530 7631.29 -7338.48 272.726 3.43678 1 SungrazePeak SungrazePeak game_tele 965 3509 3433 ghostlands 0 2 +poi_tele_966 landmark 1 966.147 926.499 104.649 1.27231 1 SunRockRetreat SunRockRetreat game_tele 966 460 406 stonetalonmountains 0 0 +poi_tele_967 landmark 530 8715.52 -6101.45 20.1472 0.173306 1 SunsailAnchorage SunsailAnchorage game_tele 967 3461 3430 eversongwoods 0 2 +poi_tele_968 landmark 530 -1520.44 8552.38 7.26028 1.69728 1 SunspringPost SunspringPost game_tele 968 3622 3518 nagrand 0 0 +poi_tele_969 landmark 530 10331.1 -6235.42 26.7759 1.94594 1 SunstriderIsle SunstriderIsle game_tele 969 3431 3430 eversongwoods 0 2 +poi_tele_97 ruins 0 -7270.01 -804.3 295.929 2.43188 1 BlackcharCave BlackcharCave game_tele 97 1957 51 searinggorge 0 0 +poi_tele_970 landmark 530 12574.1 -6774.81 15.0904 3.13788 1 SunwellPlateau SunwellPlateau game_tele 970 4094 4080 isleofqueldanas 0 0 +poi_tele_971 landmark 545 1.60675 8.07684 -4.12796 4.467 1 SV SV game_tele 971 3715 3715 thesteamvault 0 0 +poi_tele_972 wilderness 1 -2959.77 -3881.9 32.9334 5.43104 1 SwamplightManor SwamplightManor game_tele 972 497 15 dustwallowmarsh 0 0 +poi_tele_973 zone 0 -10345.4 -2773.42 21.99 5.08426 1 SwampOfSorrows SwampOfSorrows game_tele 973 8 8 swampofsorrows 1 0 +poi_tele_974 wilderness 530 104.534 5199.31 21.1033 4.22156 1 SwampratPost SwampratPost game_tele 974 3718 3521 zangarmarsh 0 0 +poi_tele_975 landmark 580 1784.23 924.563 15.581 3.5177 1 SWP SWP game_tele 975 4139 4075 sunwellplateau 0 0 +poi_tele_976 landmark 530 2018.91 6854.47 171.409 0.087216 1 Sylvanaar Sylvanaar game_tele 976 3772 3522 bladesedgemountains 0 0 +poi_tele_977 ruins 1 -6547.88 -3855.96 -58.7492 5.31404 1 TahondaRuins TahondaRuins game_tele 977 5025 400 thousandneedles 0 0 +poi_tele_978 landmark 1 6209.51 -1927.01 569.393 3.82137 1 TalonbranchGlade TalonbranchGlade game_tele 978 1998 361 felwood 0 0 +poi_tele_979 landmark 530 -1213.24 -12436.8 94.9062 4.32594 1 TalonStand TalonStand game_tele 979 3599 3525 bloodmystisle 0 1 +poi_tele_98 landmark 1 4249.99 740.102 -25.671 1.34062 1 BlackfathomDeeps BlackfathomDeeps game_tele 98 2077 148 darkshore 0 1 +poi_tele_980 landmark 1 2735.06 -3867.44 98.6548 3.56139 1 TalrendisPoint TalrendisPoint game_tele 980 3137 16 azshara 0 2 +poi_tele_981 zone 1 -7931.2 -3414.28 80.7365 0.66522 1 Tanaris Tanaris game_tele 981 440 440 tanaris 1 0 +poi_tele_982 settlement 0 -7214.21 -1732.2 244.448 3.61783 1 TannerCamp TannerCamp game_tele 982 1444 51 searinggorge 0 0 +poi_tele_983 landmark 0 -34.1467 -923.366 54.5576 0.15019 1 TarrenMill TarrenMill game_tele 983 272 267 hillsbradfoothills 0 0 +poi_tele_984 landmark 530 -2560.76 7300.72 13.9485 2.18422 1 Telaar Telaar game_tele 984 3626 3518 nagrand 0 0 +poi_tele_985 landmark 530 -1953.56 7012.48 -88.5123 4.2248 1 TelaariBasin TelaariBasin game_tele 985 3705 3518 nagrand 0 0 +poi_tele_986 settlement 530 -1664.4 -10916.8 58.8456 5.88417 1 TelathionsCamp TelathionsCamp game_tele 986 3603 3525 bloodmystisle 0 1 +poi_tele_987 zone 1 10111.3 1557.73 1324.33 4.04239 1 Teldrassil Teldrassil game_tele 987 141 141 teldrassil 1 1 +poi_tele_988 landmark 530 278.582 6001.27 144.73 1.53156 1 Telredor Telredor game_tele 988 3644 3521 zangarmarsh 0 0 +poi_tele_989 landmark 530 3099.36 1518.73 190.3 4.72592 1 TempestKeep TempestKeep game_tele 989 3842 3523 netherstorm 0 0 +poi_tele_99 settlement 1 -2462.03 -3157.79 35.5825 4.91817 1 BlackhoofVillage BlackhoofVillage game_tele 99 512 15 dustwallowmarsh 0 0 +poi_tele_990 landmark 1 3967.58 -7219.97 17.0967 2.6396 1 TempleOfArkkoran TempleOfArkkoran game_tele 990 1226 16 azshara 0 2 +poi_tele_991 landmark 0 -10450.3 -3825.44 18.0679 6.03616 1 TempleOfAtalHakkar TempleOfAtalHakkar game_tele 991 1477 1477 thetempleofatalhakkar 0 0 +poi_tele_992 landmark 530 78.9769 4333.58 101.553 0.011347 1 TempleOfTelhamat TempleOfTelhamat game_tele 992 3552 3483 hellfirepeninsula 0 0 +poi_tele_993 landmark 1 9671.4 2524.02 1333.11 3.23265 1 TempleOfTheMoon TempleOfTheMoon game_tele 993 1657 1657 darnassus 0 1 +poi_tele_994 landmark 1 3547.67 -5279.93 107.188 4.80808 1 TempleOfZinMalor TempleOfZinMalor game_tele 994 1221 16 azshara 0 2 +poi_tele_995 zone 530 -2000.47 4451.54 8.37917 4.40447 1 TerokkarForest TerokkarForest game_tele 995 3519 3519 terokkarforest 1 0 +poi_tele_996 landmark 530 -3781.87 3531.08 285.715 4.45498 1 TerokksRest TerokksRest game_tele 996 3975 3519 terokkarforest 0 0 +poi_tele_997 landmark 530 -1874.51 5429.28 -10.4637 0.084994 1 TerraceOfLight TerraceOfLight game_tele 997 3703 3703 shattrathcity 0 0 +poi_tele_998 landmark 0 2844.08 -691.716 139.331 5.27247 1 TerraceOfRepose TerraceOfRepose game_tele 998 796 796 scarletmonastery 0 2 +poi_tele_999 landmark 0 2957.87 -2794.79 110.464 1.19003 1 Terrordale Terrordale game_tele 999 2627 139 easternplaguelands 0 0 +stonefire_tavern tavern 0 -4842.58 -864.531 501.914 0.867185 1 stonefire_tavern manual 0 5719 1537 ironforge 0 0 +stormwind_brewfest festival 0 -9127.34 340.574 93.99 0.407049 1 stormwind_brewfest manual 0 12 12 elwynn 0 0 +stormwind_economy_auction economy_auction 0 -8820.09 657.936 98.116 3.59538 1 Performative economic visit: arrival/withdrawal point in front of native service NPC; no transactions Sturmwind: Auktionshausbesuch manual 0 0 1519 stormwind 0 1 +stormwind_economy_bank economy_bank 0 -8904.74 633.24 98.1516 5.25344 1 Performative economic visit: arrival/withdrawal point in front of native service NPC; no transactions Sturmwind: Bankbesuch manual 0 0 1519 stormwind 0 1 +stormwind_economy_market economy_vendor 0 -8827.64 602.019 95.7618 0.942478 1 Performative economic visit: arrival/withdrawal point in front of native service NPC; no transactions Sturmwind: Waren im Handelsdistrikt manual 0 0 1519 stormwind 0 1 +stormwind_leisure_trade leisure 0 -8835.7 620.485 93.2388 0.772328 1 Leisure anchor at native TradeDistrict ground position; no teleport is performed Sturmwind: Freizeit im Handelsdistrikt manual 0 0 1519 stormwind 0 1 +stormwind_rest_bench rest_seat 0 -8463.46 851.802 105.786 6.12611 1 Rest approach to native Stormwind stone bench spawn 219847 Sturmwind: Bankpause manual 0 0 1519 stormwind 0 1 +the_gilded_rose tavern 0 -8864.73 669.015 97.9031 5.36749 1 the_gilded_rose manual 0 5148 1519 stormwind 0 0 diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-import-catalog-before.tsv b/doc/clientless/checkpoints/2026-10-27-profession/vcore-import-catalog-before.tsv new file mode 100644 index 0000000000..ee96b7b05d --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-import-catalog-before.tsv @@ -0,0 +1,2648 @@ +point_key category map position_x position_y position_z orientation enabled COALESCE(w.comment,'') display_name source_type source_id area_id zone_id region_key is_area faction +big_anvil workshop 0 -4801.83 -1107.5 499.606 5.35259 1 big_anvil manual 0 5342 1537 ironforge 0 0 +gilded_rose_sleep_upstairs rest_sleep 0 -8863.8 685.8 104.932 3.74 1 Designated upstairs Gilded Rose floor sleeping spot; visual acceptance pending Gilded Rose: Ruheplatz im Obergeschoss manual 0 0 1519 stormwind 0 1 +goldshire_sleep_upstairs rest_sleep 0 -9457.2 32.8 63.9322 1.45 1 Designated upstairs tavern floor resting spot; native sleep pose after MMAP arrival Goldhain: Ruheplatz im Obergeschoss manual 0 0 12 elwynn 0 1 +goldshire_tavern tavern 0 -9467.41 24.8997 56.3405 1.56994 1 Lion's Pride Inn interior, Goldshire goldshire_tavern manual 0 5637 12 elwynn 0 0 +ironforge_bank bank 0 -4892.75 -988.721 503.941 1.14443 1 ironforge_bank manual 0 5719 1537 ironforge 0 0 +ironforge_brewfest festival 0 -5157.27 -600.83 398.2 1.49471 1 ironforge_brewfest manual 0 1 1 dun_morogh 0 0 +kharanos_tavern tavern 0 -5590.97 -525.915 399.652 3.29327 1 kharanos_tavern manual 0 2102 1 dun_morogh 0 0 +lakeshire_tavern tavern 0 -9226.34 -2155.01 63.7312 0.021528 1 lakeshire_tavern manual 0 69 44 redridgemountains 0 0 +poi_guard_1 tavern 0 -9459.35 42.0805 64.2891 0 1 Lion's Pride Inn Lion's Pride Inn guard_poi_inferred 1 87 12 elwynn 0 0 +poi_guard_10 landmark 0 -9467 -3.16732 73.8672 0 1 Tomas Tomas guard_poi_inferred 10 87 12 elwynn 0 0 +poi_guard_11 landmark 0 -9456 30.4947 73.3438 0 1 Michelle Belle Michelle Belle guard_poi_inferred 11 87 12 elwynn 0 0 +poi_guard_12 landmark 0 -9386 -118.731 58.8438 0 1 Lee Brown Lee Brown guard_poi_inferred 12 18 12 elwynn 0 0 +poi_guard_13 landmark 0 -8850.78 856.596 116.219 0 1 Stormwind Inscription Stormwind Inscription guard_poi_inferred 13 5154 1519 stormwind 0 0 +poi_guard_14 landmark 0 -9376 -75.2306 76.3828 0 1 Adele Fielder Adele Fielder guard_poi_inferred 14 87 12 elwynn 0 0 +poi_guard_15 landmark 0 -9381 -70.1127 75.5781 0 1 Helene Peltskinner Helene Peltskinner guard_poi_inferred 15 87 12 elwynn 0 0 +poi_guard_16 landmark 0 -9536 -1212.76 57.3047 0 1 Eldrin Eldrin guard_poi_inferred 16 88 12 elwynn 0 0 +poi_guard_17 landmark 0 -9466.62 45.8709 56.776 0 1 Erma Erma guard_poi_inferred 17 87 12 elwynn 0 0 +poi_guard_176 bank 0 1631 -4375.33 107.195 0 1 Bank of Orgrimmar Bank of Orgrimmar guard_poi_inferred 176 2621 139 easternplaguelands 0 0 +poi_guard_177 landmark 0 1676 -4332.72 83.5629 0 1 The Sky Tower The Sky Tower guard_poi_inferred 177 139 139 easternplaguelands 0 0 +poi_guard_178 landmark 0 1611.97 -4345.16 160.318 0 1 Horde Embassy Horde Embassy guard_poi_inferred 178 2621 139 easternplaguelands 0 0 +poi_guard_179 tavern 0 1572.3 -4436.33 121.515 0 1 Orgrimmar Inn Orgrimmar Inn guard_poi_inferred 179 2621 139 easternplaguelands 0 0 +poi_guard_18 landmark 0 -8832.65 652.766 118.5 0 1 Stormwind Auction House Stormwind Auction House guard_poi_inferred 18 5148 1519 stormwind 0 0 +poi_guard_180 landmark 0 1622 -4388.8 113.312 0 1 Orgrimmar Mailbox Orgrimmar Mailbox guard_poi_inferred 180 2621 139 easternplaguelands 0 0 +poi_guard_181 landmark 0 1617.56 -4425.31 96.0345 0 1 Orgrimmar Auction House Orgrimmar Auction House guard_poi_inferred 181 2621 139 easternplaguelands 0 0 +poi_guard_182 landmark 0 1843.63 -4394.62 92.716 0 1 Orgrimmar Eastern Zeppelin Tower Orgrimmar Eastern Zeppelin Tower guard_poi_inferred 182 2621 139 easternplaguelands 0 0 +poi_guard_183 landmark 0 1738.83 -4280.79 98.981 0 1 Orgrimmar Western Zeppelin Tower Orgrimmar Western Zeppelin Tower guard_poi_inferred 183 139 139 easternplaguelands 0 0 +poi_guard_184 landmark 0 2092 -4823.95 74.0839 0 1 Sayoc & Hanashi Sayoc & Hanashi guard_poi_inferred 184 139 139 easternplaguelands 0 0 +poi_guard_185 landmark 0 2133 -4663.93 74.0792 0 1 Xon'cha Xon'cha guard_poi_inferred 185 2264 139 easternplaguelands 0 0 +poi_guard_186 landmark 0 1633 -4249.37 142.203 0 1 Hall of Legends Hall of Legends guard_poi_inferred 186 139 139 easternplaguelands 0 0 +poi_guard_187 landmark 0 1989 -4796.6 93.1749 0 1 Battlemasters Orgrimmar Battlemasters Orgrimmar guard_poi_inferred 187 139 139 easternplaguelands 0 0 +poi_guard_188 landmark 0 1782.49 -4212.75 88.6979 0 1 Orgrimmar Barber Orgrimmar Barber guard_poi_inferred 188 139 139 easternplaguelands 0 0 +poi_guard_189 landmark 0 1842.33 -4477.9 75.7457 0 1 Orgrimmar Inscription Orgrimmar Inscription guard_poi_inferred 189 2621 139 easternplaguelands 0 0 +poi_guard_19 bank 0 -8900.59 632.021 114.812 0 1 Stormwind Bank Stormwind Bank guard_poi_inferred 19 5148 1519 stormwind 0 0 +poi_guard_2 landmark 0 -9471.12 33.4441 74.0703 0 1 Zaldimar Wefhellt Zaldimar Wefhellt guard_poi_inferred 2 87 12 elwynn 0 0 +poi_guard_20 landmark 0 -8573.47 990.095 96.3203 0 1 Stormwind Harbor Stormwind Harbor guard_poi_inferred 20 1519 1519 stormwind 0 0 +poi_guard_21 landmark 0 -8387 565.012 101.688 0 1 The Deeprun Tram The Deeprun Tram guard_poi_inferred 21 5150 1519 stormwind 0 0 +poi_guard_22 tavern 0 -8867 673.634 114.984 0 1 The Gilded Rose The Gilded Rose guard_poi_inferred 22 5148 1519 stormwind 0 0 +poi_guard_23 landmark 0 -8839.34 487.552 138.922 0 1 Stormwind Flight Master Stormwind Flight Master guard_poi_inferred 23 1519 1519 stormwind 0 0 +poi_guard_24 landmark 0 -8886 595.38 94.1406 0 1 Stormwind Visitor's Center Stormwind Visitor's Center guard_poi_inferred 24 5148 1519 stormwind 0 0 +poi_guard_240 landmark 0 -1758.28 5162.92 -514.032 0 1 Shattrath Cantina Shattrath Cantina guard_poi_inferred 240 214 214 thegreatsea 0 0 +poi_guard_243 landmark 0 -1833.51 5300.31 -515.187 0 1 Shattrath Taxi Shattrath Taxi guard_poi_inferred 243 214 214 thegreatsea 0 0 +poi_guard_246 landmark 0 -1770.71 5259.79 -515.187 0 1 Shattrath Battlemasters Alliance Shattrath Battlemasters Alliance guard_poi_inferred 246 214 214 thegreatsea 0 0 +poi_guard_247 landmark 0 -1964.78 5264.26 -515.188 0 1 Shattrath Battlemasters Horde Shattrath Battlemasters Horde guard_poi_inferred 247 214 214 thegreatsea 0 0 +poi_guard_249 landmark 0 -1847.52 5221.92 -514.032 0 1 Shattrath Armor/Weapon Crafter Shattrath Armor/Weapon Crafter guard_poi_inferred 249 214 214 thegreatsea 0 0 +poi_guard_25 workshop 0 -8425.37 627.621 95.7109 0 1 Stormwind Locksmith Stormwind Locksmith guard_poi_inferred 25 5150 1519 stormwind 0 0 +poi_guard_250 landmark 0 -2067.64 5316.79 -515.187 0 1 Shattrath Cook Shattrath Cook guard_poi_inferred 250 214 214 thegreatsea 0 0 +poi_guard_252 landmark 0 -1590.89 5263.1 -515.187 0 1 Shattrath First Aid Shattrath First Aid guard_poi_inferred 252 214 214 thegreatsea 0 0 +poi_guard_254 landmark 0 -2061.01 5256.46 -515.187 0 1 Shattrath Leatherworker Shattrath Leatherworker guard_poi_inferred 254 214 214 thegreatsea 0 0 +poi_guard_255 landmark 0 -2047.96 5299.78 -515.188 0 1 Shattrath Skinner Shattrath Skinner guard_poi_inferred 255 214 214 thegreatsea 0 0 +poi_guard_256 landmark 0 -2074.01 5265.15 -515.187 0 1 Shattrath Mana Loom Shattrath Mana Loom guard_poi_inferred 256 214 214 thegreatsea 0 0 +poi_guard_26 landmark 0 -8432 555.121 95.1172 0 1 Jenova Stoneshield Jenova Stoneshield guard_poi_inferred 26 5150 1519 stormwind 0 0 +poi_guard_262 landmark 0 -1961.79 5175.17 -514.032 0 1 Shattrath Arena Battlemasters Shattrath Arena Battlemasters guard_poi_inferred 262 214 214 thegreatsea 0 0 +poi_guard_269 landmark 0 -9060.71 149.236 124.32 0 1 Herbalist Pomeroy Herbalist Pomeroy guard_poi_inferred 269 12 12 elwynn 0 0 +poi_guard_27 landmark 0 -8796 613.098 111.984 0 1 Woo Ping Woo Ping guard_poi_inferred 27 5148 1519 stormwind 0 0 +poi_guard_275 bank 0 -1257.8 24.1431 -41.9989 0 1 Thunder Bluff Bank Thunder Bluff Bank guard_poi_inferred 275 295 267 hillsbradfoothills 0 0 +poi_guard_276 landmark 0 -1196.44 28.2654 -10.9376 0 1 Wind Rider Roost Wind Rider Roost guard_poi_inferred 276 295 267 hillsbradfoothills 0 0 +poi_guard_277 landmark 0 -1296.5 127.579 -47.7084 0 1 Thunder Bluff Civic Information Thunder Bluff Civic Information guard_poi_inferred 277 295 267 hillsbradfoothills 0 0 +poi_guard_278 tavern 0 -1296.07 39.7075 -52.3851 0 1 Thunder Bluff Inn Thunder Bluff Inn guard_poi_inferred 278 295 267 hillsbradfoothills 0 0 +poi_guard_279 landmark 0 -1263.6 44.3601 -42.8324 0 1 Thunder Bluff Mailbox Thunder Bluff Mailbox guard_poi_inferred 279 295 267 hillsbradfoothills 0 0 +poi_guard_28 landmark 0 -8762 401.972 119 0 1 Champions' Hall Champions' Hall guard_poi_inferred 28 5149 1519 stormwind 0 0 +poi_guard_280 landmark 0 -1198.32 102.054 -6.77838 0 1 Thunder Bluff Auction house Thunder Bluff Auction house guard_poi_inferred 280 295 267 hillsbradfoothills 0 0 +poi_guard_281 landmark 0 -1282.31 89.563 -44.2715 0 1 Ansekhwa Ansekhwa guard_poi_inferred 281 295 267 hillsbradfoothills 0 0 +poi_guard_282 landmark 0 -1270.2 48.8459 -43.4758 0 1 Bulrug Bulrug guard_poi_inferred 282 295 267 hillsbradfoothills 0 0 +poi_guard_283 landmark 0 -1385.74 -85.4147 -190.002 0 1 Battlemasters Thunder Bluff Battlemasters Thunder Bluff guard_poi_inferred 283 2397 267 hillsbradfoothills 0 0 +poi_guard_284 landmark 0 -1027.62 322.681 -8.74415 0 1 Thunder Bluff Zeppelin Thunder Bluff Zeppelin guard_poi_inferred 284 295 267 hillsbradfoothills 0 0 +poi_guard_285 landmark 0 -1057.35 -261.014 5.34723 0 1 Hall of Elders Hall of Elders guard_poi_inferred 285 295 267 hillsbradfoothills 0 0 +poi_guard_286 landmark 0 -1416.33 -114.285 -235.934 0 1 Hunter's Hall Hunter's Hall guard_poi_inferred 286 2397 267 hillsbradfoothills 0 0 +poi_guard_287 landmark 0 -1061.21 195.505 64.734 0 1 Pools of Vision Pools of Vision guard_poi_inferred 287 288 267 hillsbradfoothills 0 0 +poi_guard_288 landmark 0 -989.541 278.253 5.55372 0 1 Hall of Spirits Hall of Spirits guard_poi_inferred 288 295 267 hillsbradfoothills 0 0 +poi_guard_289 landmark 0 -1085.57 27.2931 19.3597 0 1 Bena's Alchemy Bena's Alchemy guard_poi_inferred 289 295 267 hillsbradfoothills 0 0 +poi_guard_29 landmark 0 -8392 272.087 218.633 0 1 Battlemasters Stormwind Battlemasters Stormwind guard_poi_inferred 29 1519 1519 stormwind 0 0 +poi_guard_290 workshop 0 -1239.75 104.888 -20.1116 0 1 Karn's Smithy Karn's Smithy guard_poi_inferred 290 295 267 hillsbradfoothills 0 0 +poi_guard_291 landmark 0 -1214.5 -21.2327 -34.0399 0 1 Aska's Kitchen Aska's Kitchen guard_poi_inferred 291 295 267 hillsbradfoothills 0 0 +poi_guard_292 landmark 0 -1116.56 -45.6337 -4.15417 0 1 Dawnstrider Enchanters Dawnstrider Enchanters guard_poi_inferred 292 295 267 hillsbradfoothills 0 0 +poi_guard_293 landmark 0 -996.586 200.504 46.2518 0 1 Spiritual Healing Spiritual Healing guard_poi_inferred 293 288 267 hillsbradfoothills 0 0 +poi_guard_294 landmark 0 -1169.36 -68.878 -37.1996 0 1 Mountaintop Bait & Tackle Mountaintop Bait & Tackle guard_poi_inferred 294 295 267 hillsbradfoothills 0 0 +poi_guard_295 landmark 0 -1137.71 -1.51698 0.573792 0 1 Holistic Herbalism Holistic Herbalism guard_poi_inferred 295 295 267 hillsbradfoothills 0 0 +poi_guard_296 landmark 0 -999.381 213.664 40.3258 0 1 Thunder Bluff Inscription Thunder Bluff Inscription guard_poi_inferred 296 288 267 hillsbradfoothills 0 0 +poi_guard_297 landmark 0 -1156.23 66.8664 0.352539 0 1 Thunder Bluff Armorers Thunder Bluff Armorers guard_poi_inferred 297 295 267 hillsbradfoothills 0 0 +poi_guard_298 landmark 0 -1249.17 155.028 -41.6266 0 1 Stonehoof Geology Stonehoof Geology guard_poi_inferred 298 295 267 hillsbradfoothills 0 0 +poi_guard_299 landmark 0 -1148.57 51.1842 1.11469 0 1 Mooranta Mooranta guard_poi_inferred 299 295 267 hillsbradfoothills 0 0 +poi_guard_3 landmark 0 -9469 108.053 57.4087 0 1 Brother Wilhelm Brother Wilhelm guard_poi_inferred 3 87 12 elwynn 0 0 +poi_guard_30 landmark 0 -8755.01 657.7 129.055 0 1 Stormwind Barber Stormwind Barber guard_poi_inferred 30 5148 1519 stormwind 0 0 +poi_guard_300 landmark 0 2114.84 -4625.32 74.2183 0 1 Orgrimmar Hunter's Hall Orgrimmar Hunter's Hall guard_poi_inferred 300 2264 139 easternplaguelands 0 0 +poi_guard_301 landmark 0 1451.26 -4223.33 296.333 0 1 Darkbriar Lodge Darkbriar Lodge guard_poi_inferred 301 139 139 easternplaguelands 0 0 +poi_guard_302 landmark 0 1442.22 -4183.24 288.428 0 1 Spirit Lodge Spirit Lodge guard_poi_inferred 302 139 139 easternplaguelands 0 0 +poi_guard_303 landmark 0 1925.35 -4181.89 90.1163 0 1 Thrall's Fortress Thrall's Fortress guard_poi_inferred 303 2623 139 easternplaguelands 0 0 +poi_guard_304 landmark 0 1773.39 -4278.97 83.6693 0 1 Shadowswift Brotherhood Shadowswift Brotherhood guard_poi_inferred 304 139 139 easternplaguelands 0 0 +poi_guard_305 landmark 0 1849.58 -4359.69 99.8047 0 1 Darkfire Enclave Darkfire Enclave guard_poi_inferred 305 139 139 easternplaguelands 0 0 +poi_guard_306 landmark 0 1983.92 -4794.21 93.6059 0 1 Hall of the Brave Hall of the Brave guard_poi_inferred 306 139 139 easternplaguelands 0 0 +poi_guard_307 landmark 0 1955.17 -4475.8 73.7849 0 1 Yelmak's Alchemy and Potions Yelmak's Alchemy and Potions guard_poi_inferred 307 2264 139 easternplaguelands 0 0 +poi_guard_308 workshop 0 2077.39 -4807.91 73.6226 0 1 The Burning Anvil The Burning Anvil guard_poi_inferred 308 139 139 easternplaguelands 0 0 +poi_guard_309 landmark 0 1780.97 -4481.31 62.3892 0 1 Borstan's Firepit Borstan's Firepit guard_poi_inferred 309 2621 139 easternplaguelands 0 0 +poi_guard_31 landmark 0 -8851 856.599 116.266 0 1 Stormwind Inscription Stormwind Inscription guard_poi_inferred 31 5154 1519 stormwind 0 0 +poi_guard_310 landmark 0 1917.5 -4434.95 77.4117 0 1 Godan's Runeworks Godan's Runeworks guard_poi_inferred 310 2264 139 easternplaguelands 0 0 +poi_guard_311 landmark 0 2038.46 -4744.76 85.2469 0 1 Nogg's Machine Shop Nogg's Machine Shop guard_poi_inferred 311 139 139 easternplaguelands 0 0 +poi_guard_312 landmark 0 1472.91 -4148.62 269.707 0 1 Survival of the Fittest Survival of the Fittest guard_poi_inferred 312 139 139 easternplaguelands 0 0 +poi_guard_313 landmark 0 1994.15 -4655.7 89.5033 0 1 Lumak's Fishing Lumak's Fishing guard_poi_inferred 313 2264 139 easternplaguelands 0 0 +poi_guard_314 landmark 0 1898.62 -4454.94 80.1087 0 1 Jandi's Arboretum Jandi's Arboretum guard_poi_inferred 314 2264 139 easternplaguelands 0 0 +poi_guard_315 mine 0 2029.79 -4704.08 88.87 0 1 Red Canyon Mining Red Canyon Mining guard_poi_inferred 315 139 139 easternplaguelands 0 0 +poi_guard_316 landmark 0 1852.83 -4562.32 80.031 0 1 Kodohide Leatherworkers Kodohide Leatherworkers guard_poi_inferred 316 2621 139 easternplaguelands 0 0 +poi_guard_317 landmark 0 1802.66 -4560.66 71.1339 0 1 Magar's Cloth Goods Magar's Cloth Goods guard_poi_inferred 317 2621 139 easternplaguelands 0 0 +poi_guard_318 landmark 0 1650.31 240.191 126.695 0 1 Undercity Auction House Undercity Auction House guard_poi_inferred 318 85 85 tirisfalglades 0 0 +poi_guard_319 bank 0 1595.64 232.456 164.109 0 1 Undercity Bank Undercity Bank guard_poi_inferred 319 85 85 tirisfalglades 0 0 +poi_guard_32 landmark 0 -8749 1075.78 8.3584 0 1 The Park The Park guard_poi_inferred 32 5409 1519 stormwind 0 0 +poi_guard_320 landmark 0 1576.99 195.566 88.3906 0 1 Undercity Barber Undercity Barber guard_poi_inferred 320 85 85 tirisfalglades 0 0 +poi_guard_321 landmark 0 1565.9 271.435 87.4922 0 1 Undercity Bat Handler Undercity Bat Handler guard_poi_inferred 321 85 85 tirisfalglades 0 0 +poi_guard_322 landmark 0 1299.13 347.983 6.37532 0 1 Battlemasters Undercity Battlemasters Undercity guard_poi_inferred 322 1338 130 silverpineforest 0 0 +poi_guard_323 landmark 0 1594.17 205.572 97.0234 0 1 Undercity Guild Master Undercity Guild Master guard_poi_inferred 323 85 85 tirisfalglades 0 0 +poi_guard_324 tavern 0 1639.43 220.998 154.617 0 1 Undercity Inn Undercity Inn guard_poi_inferred 324 85 85 tirisfalglades 0 0 +poi_guard_325 workshop 0 1499.75 53.1442 61.5895 0 1 Undercity Locksmith Undercity Locksmith guard_poi_inferred 325 153 85 tirisfalglades 0 0 +poi_guard_326 landmark 0 1632.69 219.403 159.25 0 1 Undercity Mailbox Undercity Mailbox guard_poi_inferred 326 85 85 tirisfalglades 0 0 +poi_guard_327 landmark 0 1634.18 226.768 164.82 0 1 Anya Maulray Anya Maulray guard_poi_inferred 327 85 85 tirisfalglades 0 0 +poi_guard_328 landmark 0 1670.31 324.666 61.5629 0 1 Archibald Archibald guard_poi_inferred 328 153 85 tirisfalglades 0 0 +poi_guard_329 landmark 0 2059.04 274.869 112.727 0 1 Undercity Zeppelin Undercity Zeppelin guard_poi_inferred 329 85 85 tirisfalglades 0 0 +poi_guard_33 landmark 0 -8430 559.87 94.6797 0 1 Hunter Lodge Hunter Lodge guard_poi_inferred 33 5150 1519 stormwind 0 0 +poi_guard_330 landmark 0 1299.26 316.787 -5.17768 0 1 Champion Cyssa Dawnrose Champion Cyssa Dawnrose guard_poi_inferred 330 1338 130 silverpineforest 0 0 +poi_guard_331 landmark 0 1781.09 53.0096 60.1765 0 1 Undercity Mage Trainers Undercity Mage Trainers guard_poi_inferred 331 153 85 tirisfalglades 0 0 +poi_guard_332 landmark 0 1758.34 401.507 60.6342 0 1 Undercity Priest Trainers Undercity Priest Trainers guard_poi_inferred 332 153 85 tirisfalglades 0 0 +poi_guard_333 landmark 0 1418.56 65.0243 50.4865 0 1 Undercity Rogue Trainers Undercity Rogue Trainers guard_poi_inferred 333 153 85 tirisfalglades 0 0 +poi_guard_334 landmark 0 1780.92 53.1697 60.1907 0 1 Undercity Warlock Trainers Undercity Warlock Trainers guard_poi_inferred 334 153 85 tirisfalglades 0 0 +poi_guard_335 landmark 0 1775.6 418.193 60.2459 0 1 Undercity Warrior Trainers Undercity Warrior Trainers guard_poi_inferred 335 153 85 tirisfalglades 0 0 +poi_guard_336 landmark 0 1419.83 417.197 25.9696 0 1 The Apothecarium The Apothecarium guard_poi_inferred 336 153 85 tirisfalglades 0 0 +poi_guard_337 workshop 0 1696 285.042 61.6903 0 1 Undercity Blacksmithing Trainer Undercity Blacksmithing Trainer guard_poi_inferred 337 153 85 tirisfalglades 0 0 +poi_guard_338 landmark 0 1596.35 274.684 97.0391 0 1 Undercity Cooking Trainer Undercity Cooking Trainer guard_poi_inferred 338 85 85 tirisfalglades 0 0 +poi_guard_339 landmark 0 1488.54 280.194 61.5863 0 1 Undercity Enchanting Trainer Undercity Enchanting Trainer guard_poi_inferred 339 153 85 tirisfalglades 0 0 +poi_guard_34 landmark 0 -9008 857.193 179.422 0 1 Wizard's Sanctum Wizard's Sanctum guard_poi_inferred 34 5154 1519 stormwind 0 0 +poi_guard_340 landmark 0 1408.59 143.431 61.5895 0 1 Undercity Engineering Trainer Undercity Engineering Trainer guard_poi_inferred 340 153 85 tirisfalglades 0 0 +poi_guard_341 landmark 0 1519.65 167.199 150.32 0 1 Undercity First Aid Trainer Undercity First Aid Trainer guard_poi_inferred 341 85 85 tirisfalglades 0 0 +poi_guard_342 landmark 0 1679.9 89.0227 78.875 0 1 Undercity Fishing Trainer Undercity Fishing Trainer guard_poi_inferred 342 85 85 tirisfalglades 0 0 +poi_guard_343 landmark 0 1558.09 349.37 95.7812 0 1 Undercity Herbalism Trainer Undercity Herbalism Trainer guard_poi_inferred 343 85 85 tirisfalglades 0 0 +poi_guard_344 landmark 0 1502.57 285.859 61.3445 0 1 Undercity Inscription Undercity Inscription guard_poi_inferred 344 153 85 tirisfalglades 0 0 +poi_guard_345 landmark 0 1498.76 196.433 74.6641 0 1 Undercity Leatherworking Trainer Undercity Leatherworking Trainer guard_poi_inferred 345 85 85 tirisfalglades 0 0 +poi_guard_346 tavern 0 1498.61 196.466 74.5938 0 1 Undercity Skinning Trainer Undercity Skinning Trainer guard_poi_inferred 346 85 85 tirisfalglades 0 0 +poi_guard_347 mine 0 1642.88 335.588 66.9219 0 1 Undercity Mining Trainer Undercity Mining Trainer guard_poi_inferred 347 85 85 tirisfalglades 0 0 +poi_guard_348 landmark 0 1689.55 193.023 73.3516 0 1 Undercity Tailoring Trainer Undercity Tailoring Trainer guard_poi_inferred 348 85 85 tirisfalglades 0 0 +poi_guard_35 landmark 0 -8621 777.189 96.7328 0 1 Cathedral Of Light Cathedral Of Light guard_poi_inferred 35 5151 1519 stormwind 0 0 +poi_guard_36 landmark 0 -8782 353.099 105.293 0 1 Stormwind - Rogue House Stormwind - Rogue House guard_poi_inferred 36 1519 1519 stormwind 0 0 +poi_guard_37 landmark 0 -9031 549.835 73.0835 0 1 Farseer Umbrua Farseer Umbrua guard_poi_inferred 37 1617 1519 stormwind 0 0 +poi_guard_38 landmark 0 -8938 986.894 121.695 0 1 The Slaughtered Lamb The Slaughtered Lamb guard_poi_inferred 38 5154 1519 stormwind 0 0 +poi_guard_39 landmark 0 -8714 342.761 114.047 0 1 Stormwind Barracks Stormwind Barracks guard_poi_inferred 39 1519 1519 stormwind 0 0 +poi_guard_4 landmark 0 -9461.07 32.996 72.3438 0 1 Priestess Josetta Priestess Josetta guard_poi_inferred 4 87 12 elwynn 0 0 +poi_guard_40 landmark 0 -8975 778.865 96.7801 0 1 Alchemy Needs Alchemy Needs guard_poi_inferred 40 5154 1519 stormwind 0 0 +poi_guard_401 landmark 0 -4799.56 -1250.24 727.256 0 1 Springspindle's Gadgets Springspindle's Gadgets guard_poi_inferred 401 1 1 dun_morogh 0 0 +poi_guard_402 landmark 0 -5529.12 -660.912 412.383 0 1 Yarr Hammerstone Yarr Hammerstone guard_poi_inferred 402 189 1 dun_morogh 0 0 +poi_guard_403 tavern 0 338.709 -4688.87 20.8543 0 1 Razor Hill Inn Razor Hill Inn guard_poi_inferred 403 307 47 thehinterlands 0 0 +poi_guard_404 landmark 0 330.313 -4710.67 6.67053 0 1 Shoja'my Shoja'my guard_poi_inferred 404 307 47 thehinterlands 0 0 +poi_guard_405 landmark 0 276.067 -4706.73 -17.448 0 1 Thotar Thotar guard_poi_inferred 405 307 47 thehinterlands 0 0 +poi_guard_406 landmark 0 -839.33 -4935.61 -46.2021 0 1 Un'Thuwa Un'Thuwa guard_poi_inferred 406 307 47 thehinterlands 0 0 +poi_guard_407 landmark 0 296.225 -4828.11 -20.0023 0 1 Tai'jin Tai'jin guard_poi_inferred 407 307 47 thehinterlands 0 0 +poi_guard_408 landmark 0 265.765 -4709.01 -16.5544 0 1 Kaplak Kaplak guard_poi_inferred 408 307 47 thehinterlands 0 0 +poi_guard_409 landmark 0 307.797 -4836.97 -23.9276 0 1 Swart Swart guard_poi_inferred 409 307 47 thehinterlands 0 0 +poi_guard_41 workshop 0 -8433 610.413 95.1406 0 1 Therum Deepforge Therum Deepforge guard_poi_inferred 41 5150 1519 stormwind 0 0 +poi_guard_410 landmark 0 355.88 -4836.46 -27.7221 0 1 Dhugru Gorelust Dhugru Gorelust guard_poi_inferred 410 307 47 thehinterlands 0 0 +poi_guard_411 landmark 0 312.308 -4824.66 -21.9155 0 1 Tarshaw Jaggedscar Tarshaw Jaggedscar guard_poi_inferred 411 307 47 thehinterlands 0 0 +poi_guard_412 landmark 0 -800.253 -4894.34 -35.7962 0 1 Miao'zan Miao'zan guard_poi_inferred 412 307 47 thehinterlands 0 0 +poi_guard_413 landmark 0 373.248 -4716.45 4.67879 0 1 Dwukk Dwukk guard_poi_inferred 413 307 47 thehinterlands 0 0 +poi_guard_414 landmark 0 368.96 -4723.96 2.71208 0 1 Mukdrak Mukdrak guard_poi_inferred 414 307 47 thehinterlands 0 0 +poi_guard_415 landmark 0 327.175 -4825.62 -30.4387 0 1 Rawrk Rawrk guard_poi_inferred 415 307 47 thehinterlands 0 0 +poi_guard_416 landmark 0 -1065.49 -4777.43 -299.364 0 1 Lau'Tiki Lau'Tiki guard_poi_inferred 416 2400 47 thehinterlands 0 0 +poi_guard_417 landmark 0 -836.254 -4896.9 -44.81 0 1 Mishiki Mishiki guard_poi_inferred 417 307 47 thehinterlands 0 0 +poi_guard_418 landmark 0 366.941 -4705.09 8.30994 0 1 Krunn Krunn guard_poi_inferred 418 307 47 thehinterlands 0 0 +poi_guard_419 tavern 0 -2361.39 -349.193 -515.189 0 1 Bloodhoof Village Inn Bloodhoof Village Inn guard_poi_inferred 419 2365 11 wetlands 0 0 +poi_guard_42 tavern 0 -8641 423.502 101.961 0 1 Pig and Whistle Tavern Pig and Whistle Tavern guard_poi_inferred 42 5149 1519 stormwind 0 0 +poi_guard_420 landmark 0 -2338.86 -357.564 -515.189 0 1 Seikwa Seikwa guard_poi_inferred 420 2365 11 wetlands 0 0 +poi_guard_421 landmark 0 -2312.16 -443.693 -515.189 0 1 Gennia Runetotem Gennia Runetotem guard_poi_inferred 421 2365 11 wetlands 0 0 +poi_guard_422 landmark 0 -2178.15 -406.144 -515.189 0 1 Yaw Sharpmane Yaw Sharpmane guard_poi_inferred 422 2365 11 wetlands 0 0 +poi_guard_423 landmark 0 -2301.5 -439.871 -515.189 0 1 Narm Skychaser Narm Skychaser guard_poi_inferred 423 2365 11 wetlands 0 0 +poi_guard_424 landmark 0 -2345.44 -494.114 -515.189 0 1 Krang Stonehoof Krang Stonehoof guard_poi_inferred 424 2365 11 wetlands 0 0 +poi_guard_425 landmark 0 -2263.34 -287.91 -515.563 0 1 Pyall Silentstride Pyall Silentstride guard_poi_inferred 425 2365 11 wetlands 0 0 +poi_guard_426 landmark 0 -2353.52 -355.821 -515.189 0 1 Vira Younghoof Vira Younghoof guard_poi_inferred 426 2365 11 wetlands 0 0 +poi_guard_427 landmark 0 -2349.22 -241.376 -515.572 0 1 Uthan Stillwater Uthan Stillwater guard_poi_inferred 427 2365 11 wetlands 0 0 +poi_guard_428 landmark 0 -2257.12 -288.633 -515.563 0 1 Chaw Stronghide Chaw Stronghide guard_poi_inferred 428 2365 11 wetlands 0 0 +poi_guard_429 landmark 0 -2252.95 -291.324 -515.563 0 1 Yonn Deepcut Yonn Deepcut guard_poi_inferred 429 2365 11 wetlands 0 0 +poi_guard_43 landmark 0 -8838 782.35 96.2838 0 1 Lucan Cordell Lucan Cordell guard_poi_inferred 43 5390 1519 stormwind 0 0 +poi_guard_433 landmark 0 2235.25 317.696 70.6797 0 1 Cain Firesong Cain Firesong guard_poi_inferred 433 159 85 tirisfalglades 0 0 +poi_guard_434 landmark 0 2264.43 248.158 33.3918 0 1 Dark Cleric Beryl Dark Cleric Beryl guard_poi_inferred 434 159 85 tirisfalglades 0 0 +poi_guard_435 landmark 0 2267.61 243.924 33.461 0 1 Marion Call Marion Call guard_poi_inferred 435 159 85 tirisfalglades 0 0 +poi_guard_436 landmark 0 2257.46 247.402 33.6407 0 1 Rupert Boch Rupert Boch guard_poi_inferred 436 159 85 tirisfalglades 0 0 +poi_guard_437 landmark 0 2257.99 240.487 33.6904 0 1 Austil de Mon Austil de Mon guard_poi_inferred 437 159 85 tirisfalglades 0 0 +poi_guard_438 landmark 0 2264.81 344.257 33.5738 0 1 Carolai Anise Carolai Anise guard_poi_inferred 438 159 85 tirisfalglades 0 0 +poi_guard_439 landmark 0 2280.69 244.714 33.6906 0 1 Vance Undergloom Vance Undergloom guard_poi_inferred 439 159 85 tirisfalglades 0 0 +poi_guard_44 landmark 0 -8348 640.412 95.3282 0 1 Lilliam Sparkspindle Lilliam Sparkspindle guard_poi_inferred 44 5150 1519 stormwind 0 0 +poi_guard_440 landmark 0 2247.01 242.789 57.125 0 1 Nurse Neela Nurse Neela guard_poi_inferred 440 159 85 tirisfalglades 0 0 +poi_guard_441 landmark 0 2299.92 1.16547 23.8804 0 1 Clyde Kellen Clyde Kellen guard_poi_inferred 441 85 85 tirisfalglades 0 0 +poi_guard_442 landmark 0 2270.57 329.97 33.5735 0 1 Faruza Faruza guard_poi_inferred 442 159 85 tirisfalglades 0 0 +poi_guard_443 landmark 0 2027.81 80.1105 34.9131 0 1 Shelene Rhobart Shelene Rhobart guard_poi_inferred 443 4919 85 tirisfalglades 0 0 +poi_guard_444 landmark 0 2031.33 71.8599 34.0871 0 1 Rand Rhobart Rand Rhobart guard_poi_inferred 444 4919 85 tirisfalglades 0 0 +poi_guard_445 landmark 0 2161.7 658.172 44.0625 0 1 Bowen Brisboise Bowen Brisboise guard_poi_inferred 445 166 85 tirisfalglades 0 0 +poi_guard_446 tavern 0 2281.68 283.71 70.4062 0 1 Gallows' End Tavern Gallows' End Tavern guard_poi_inferred 446 159 85 tirisfalglades 0 0 +poi_guard_447 landmark 0 2265.61 240.149 33.6906 0 1 Morganus Morganus guard_poi_inferred 447 159 85 tirisfalglades 0 0 +poi_guard_448 landmark 0 -5176.78 -623.99 397.175 0 1 Brewfest Souvenirs Brewfest Souvenirs guard_poi_inferred 448 1 1 dun_morogh 0 0 +poi_guard_449 landmark 0 -5200.93 -484.682 388.806 0 1 Brewfest Ram Racing Brewfest Ram Racing guard_poi_inferred 449 1 1 dun_morogh 0 0 +poi_guard_45 landmark 0 -8515 804.505 130.508 0 1 Shaina Fuller Shaina Fuller guard_poi_inferred 45 5151 1519 stormwind 0 0 +poi_guard_450 workshop 0 -4847.83 -862.606 822.987 0 1 Brew of the Month Club, Ironforge Brew of the Month Club, Ironforge guard_poi_inferred 450 1 1 dun_morogh 0 0 +poi_guard_451 landmark 0 1174.56 -4292.92 220.509 0 1 Goblin Brewfest Souvenirs Goblin Brewfest Souvenirs guard_poi_inferred 451 356 47 thehinterlands 0 0 +poi_guard_452 landmark 0 1282.99 -4410.59 334.243 0 1 Goblin Brewfest Ram Racing Goblin Brewfest Ram Racing guard_poi_inferred 452 47 47 thehinterlands 0 0 +poi_guard_453 landmark 0 1473.56 -4211.43 261.619 0 1 Brew of the Month Club, Orgrimmar Brew of the Month Club, Orgrimmar guard_poi_inferred 453 139 139 easternplaguelands 0 0 +poi_guard_455 workshop 0 -5081.34 -780.465 495.187 0 1 Ironforge Druid Trainer Ironforge Druid Trainer guard_poi_inferred 455 809 1 dun_morogh 0 0 +poi_guard_456 workshop 0 -4627.94 -1311.17 608.776 0 1 Ironforge Archaeology Ironforge Archaeology guard_poi_inferred 456 1 1 dun_morogh 0 0 +poi_guard_457 landmark 0 -8282.65 716.852 84.2969 0 1 Stormwind Druid Trainer Stormwind Druid Trainer guard_poi_inferred 457 1519 1519 stormwind 0 0 +poi_guard_458 landmark 0 1731.28 -4510.06 56.2901 0 1 Orgrimmar Ethereals Orgrimmar Ethereals guard_poi_inferred 458 2621 139 easternplaguelands 0 0 +poi_guard_459 landmark 0 1961.85 -4801.29 93.9694 0 1 Orgrimmar Battlemasters Orgrimmar Battlemasters guard_poi_inferred 459 139 139 easternplaguelands 0 0 +poi_guard_46 landmark 0 -8793 741.886 98.762 0 1 Arnold Leland Arnold Leland guard_poi_inferred 46 5390 1519 stormwind 0 0 +poi_guard_460 landmark 0 -4088.89 6359.15 -1630.13 0 1 Darkmoon Game Tokens Darkmoon Game Tokens guard_poi_inferred 460 5146 5146 vashjir 0 0 +poi_guard_461 landmark 0 2231.17 241.611 33.5735 0 1 Dedlow Wormwood Dedlow Wormwood guard_poi_inferred 461 159 85 tirisfalglades 0 0 +poi_guard_463 landmark 0 -4128.34 6324.93 -1630.13 0 1 AAA Tonk Arena AAA Tonk Arena guard_poi_inferred 463 5146 5146 vashjir 0 0 +poi_guard_464 landmark 0 -4018.02 6292.56 -1630.13 0 1 AAA Cannon AAA Cannon guard_poi_inferred 464 5146 5146 vashjir 0 0 +poi_guard_465 landmark 0 -3998.5 6280.14 -1630.13 0 1 AAA Whack-a-Gnoll AAA Whack-a-Gnoll guard_poi_inferred 465 5146 5146 vashjir 0 0 +poi_guard_466 landmark 0 -4290.16 6308.55 -1630.13 0 1 AAA Ring Toss AAA Ring Toss guard_poi_inferred 466 5146 5146 vashjir 0 0 +poi_guard_467 landmark 0 -4076.42 6351.4 -1630.13 0 1 AAA Shooting Gallery AAA Shooting Gallery guard_poi_inferred 467 5146 5146 vashjir 0 0 +poi_guard_468 landmark 0 -4263.25 6281.23 -1630.13 0 1 AAA Fortune Teller AAA Fortune Teller guard_poi_inferred 468 5146 5146 vashjir 0 0 +poi_guard_469 bank 0 -3721.33 -4538.39 171.884 0 1 Theramore Banker Theramore Banker guard_poi_inferred 469 5641 4922 twilighthighlands 0 0 +poi_guard_47 landmark 0 -8707 462.037 96.642 0 1 The Protective Hide The Protective Hide guard_poi_inferred 47 5149 1519 stormwind 0 0 +poi_guard_470 landmark 0 -3779.58 -4542.24 161.233 0 1 Theramore Hunter Theramore Hunter guard_poi_inferred 470 5641 4922 twilighthighlands 0 0 +poi_guard_471 landmark 0 -3760.57 -4458.26 192.692 0 1 Theramore Mage Theramore Mage guard_poi_inferred 471 5641 4922 twilighthighlands 0 0 +poi_guard_472 landmark 0 -3692.57 -4513.23 176.222 0 1 Theramore Paladin Theramore Paladin guard_poi_inferred 472 5641 4922 twilighthighlands 0 0 +poi_guard_473 landmark 0 -3651.75 -4501.25 178.887 0 1 Theramore Priest Theramore Priest guard_poi_inferred 473 4922 4922 twilighthighlands 0 0 +poi_guard_474 landmark 0 -3819.24 -4563.96 160.446 0 1 Theramore Rogue Theramore Rogue guard_poi_inferred 474 5641 4922 twilighthighlands 0 0 +poi_guard_475 landmark 0 -3616.1 -4471.28 191.943 0 1 Theramore Shaman Theramore Shaman guard_poi_inferred 475 4922 4922 twilighthighlands 0 0 +poi_guard_476 landmark 0 -3744.52 -4435.25 197.89 0 1 Theramore Warlock Theramore Warlock guard_poi_inferred 476 5641 4922 twilighthighlands 0 0 +poi_guard_477 landmark 0 -3727.55 -4538.48 172.73 0 1 Theramore Warrior Theramore Warrior guard_poi_inferred 477 5641 4922 twilighthighlands 0 0 +poi_guard_478 landmark 0 -3700.83 -4331.73 313.577 0 1 Theramore Alchemy Theramore Alchemy guard_poi_inferred 478 4922 4922 twilighthighlands 0 0 +poi_guard_479 landmark 0 -3618.91 -4454.21 197.929 0 1 Theramore Archaeology Theramore Archaeology guard_poi_inferred 479 4922 4922 twilighthighlands 0 0 +poi_guard_48 landmark 0 -8416 672.791 95.0327 0 1 Gelman Stonehand Gelman Stonehand guard_poi_inferred 48 5150 1519 stormwind 0 0 +poi_guard_480 workshop 0 -3785.93 -4366.83 220.314 0 1 Theramore Blacksmithing Theramore Blacksmithing guard_poi_inferred 480 4922 4922 twilighthighlands 0 0 +poi_guard_481 landmark 0 -3617.13 -4486.98 191.656 0 1 Theramore Cooking Theramore Cooking guard_poi_inferred 481 4922 4922 twilighthighlands 0 0 +poi_guard_482 landmark 0 -3772.04 -4441.66 197.067 0 1 Theramore Enchanting Theramore Enchanting guard_poi_inferred 482 5641 4922 twilighthighlands 0 0 +poi_guard_483 landmark 0 -3798.24 -4374.75 214.799 0 1 Theramore Engineering Theramore Engineering guard_poi_inferred 483 4922 4922 twilighthighlands 0 0 +poi_guard_484 landmark 0 -3747.08 -4532.17 168.559 0 1 Theramore First Aid Theramore First Aid guard_poi_inferred 484 5641 4922 twilighthighlands 0 0 +poi_guard_485 landmark 0 -3849.29 -4610.17 164.943 0 1 Theramore Fishing Theramore Fishing guard_poi_inferred 485 5641 4922 twilighthighlands 0 0 +poi_guard_486 landmark 0 -3697.02 -4335.25 313.227 0 1 Theramore Herbalism Theramore Herbalism guard_poi_inferred 486 4922 4922 twilighthighlands 0 0 +poi_guard_487 landmark 0 -3774.65 -4448.43 195.669 0 1 Theramore Inscription Theramore Inscription guard_poi_inferred 487 5641 4922 twilighthighlands 0 0 +poi_guard_488 landmark 0 -3612.54 -4456.31 196.676 0 1 Theramore Jewelcrafting Theramore Jewelcrafting guard_poi_inferred 488 4922 4922 twilighthighlands 0 0 +poi_guard_489 landmark 0 -3613.03 -4461.91 195.126 0 1 Theramore Leatherworking Theramore Leatherworking guard_poi_inferred 489 4922 4922 twilighthighlands 0 0 +poi_guard_49 landmark 0 -8940 771.346 89.7395 0 1 Duncan's Textiles Duncan's Textiles guard_poi_inferred 49 5154 1519 stormwind 0 0 +poi_guard_490 mine 0 -3777.12 -4366.25 221.344 0 1 Theramore Mining Theramore Mining guard_poi_inferred 490 4922 4922 twilighthighlands 0 0 +poi_guard_491 landmark 0 -3843.38 -4405.83 197.482 0 1 Theramore Riding Theramore Riding guard_poi_inferred 491 5641 4922 twilighthighlands 0 0 +poi_guard_492 tavern 0 -3612.49 -4458.98 195.991 0 1 Theramore Skinning Theramore Skinning guard_poi_inferred 492 4922 4922 twilighthighlands 0 0 +poi_guard_493 landmark 0 -3846.47 -4449.22 187.93 0 1 Theramore Tailoring Theramore Tailoring guard_poi_inferred 493 5641 4922 twilighthighlands 0 0 +poi_guard_5 landmark 0 -9465.14 13.2936 73.6953 0 1 Keryn Sylvius Keryn Sylvius guard_poi_inferred 5 87 12 elwynn 0 0 +poi_guard_50 workshop 0 -4957.39 -911.604 718.722 0 1 Ironforge Auction House Ironforge Auction House guard_poi_inferred 50 1 1 dun_morogh 0 0 +poi_guard_500 landmark 0 -1404.26 -130.934 -216.04 0 1 Sunwalker Lodge Sunwalker Lodge guard_poi_inferred 500 2397 267 hillsbradfoothills 0 0 +poi_guard_501 landmark 0 -1045.52 -266.559 8.53357 0 1 Thunder Bluff Archaeology Thunder Bluff Archaeology guard_poi_inferred 501 295 267 hillsbradfoothills 0 0 +poi_guard_502 landmark 0 -1266.26 139.432 -36.7257 0 1 Thunder Bluff Engineering Thunder Bluff Engineering guard_poi_inferred 502 295 267 hillsbradfoothills 0 0 +poi_guard_503 landmark 0 -1224.13 150.967 -25.6804 0 1 Thunder Bluff Jewelcrafting Thunder Bluff Jewelcrafting guard_poi_inferred 503 295 267 hillsbradfoothills 0 0 +poi_guard_504 landmark 0 2041.32 -4674.58 82.5901 0 1 Orgrimmar Auction House Orgrimmar Auction House guard_poi_inferred 504 2264 139 easternplaguelands 0 0 +poi_guard_505 bank 0 1537.41 -4364.21 200.725 0 1 Orgrimmar Bank Orgrimmar Bank guard_poi_inferred 505 2621 139 easternplaguelands 0 0 +poi_guard_506 bank 0 1898.15 -4683.27 92.3498 0 1 Orgrimmar Bank Orgrimmar Bank guard_poi_inferred 506 139 139 easternplaguelands 0 0 +poi_guard_507 landmark 0 1800.22 -4369.74 88.9777 0 1 Orgrimmar Flight Master Orgrimmar Flight Master guard_poi_inferred 507 2621 139 easternplaguelands 0 0 +poi_guard_508 tavern 0 1918.09 -4730.69 106.326 0 1 Orgrimmar Inn Orgrimmar Inn guard_poi_inferred 508 139 139 easternplaguelands 0 0 +poi_guard_509 landmark 0 1650.37 -4225.17 159.569 0 1 Orgrimmar Hall of Legends Orgrimmar Hall of Legends guard_poi_inferred 509 139 139 easternplaguelands 0 0 +poi_guard_51 landmark 0 -4891.91 -991.48 816.686 0 1 The Vault The Vault guard_poi_inferred 51 1 1 dun_morogh 0 0 +poi_guard_510 landmark 0 2047.94 -4377.4 73.9541 0 1 Orgrimmar Portals Orgrimmar Portals guard_poi_inferred 510 2623 139 easternplaguelands 0 0 +poi_guard_511 landmark 0 2077.64 -4587.13 74.85 0 1 Orgrimmar Stable Master Orgrimmar Stable Master guard_poi_inferred 511 2264 139 easternplaguelands 0 0 +poi_guard_512 landmark 0 2109.26 -4630.1 74.2284 0 1 Orgrimmar Hunter Trainer Orgrimmar Hunter Trainer guard_poi_inferred 512 2264 139 easternplaguelands 0 0 +poi_guard_513 landmark 0 1767.12 -4343.18 79.2333 0 1 Orgrimmar Mage Trainer Orgrimmar Mage Trainer guard_poi_inferred 513 2621 139 easternplaguelands 0 0 +poi_guard_514 landmark 0 1863.97 -4292.82 84.3615 0 1 Orgrimmar Paladin Trainer Orgrimmar Paladin Trainer guard_poi_inferred 514 139 139 easternplaguelands 0 0 +poi_guard_515 landmark 0 1664.37 -4361.8 89.5486 0 1 Orgrimmar Priest Trainer Orgrimmar Priest Trainer guard_poi_inferred 515 2621 139 easternplaguelands 0 0 +poi_guard_516 wilderness 0 1884.11 -4282.45 84.2885 0 1 Orgrimmar Shaman Trainer Orgrimmar Shaman Trainer guard_poi_inferred 516 139 139 easternplaguelands 0 0 +poi_guard_517 landmark 0 1962.52 -4766.58 98.7004 0 1 Orgrimmar Warrior Trainer Orgrimmar Warrior Trainer guard_poi_inferred 517 139 139 easternplaguelands 0 0 +poi_guard_518 landmark 0 1888.89 -4285.24 99.5 0 1 Orgrimmar Druid Trainer Orgrimmar Druid Trainer guard_poi_inferred 518 139 139 easternplaguelands 0 0 +poi_guard_519 landmark 0 1946.59 -4472.42 74.8655 0 1 Orgrimmar Alchemy Orgrimmar Alchemy guard_poi_inferred 519 2264 139 easternplaguelands 0 0 +poi_guard_52 landmark 0 -4835.28 -1294.7 731.933 0 1 Deeprun Tram Deeprun Tram guard_poi_inferred 52 1 1 dun_morogh 0 0 +poi_guard_520 landmark 0 1668.48 -4359.67 87.6604 0 1 Orgrimmar Archaeology Orgrimmar Archaeology guard_poi_inferred 520 2621 139 easternplaguelands 0 0 +poi_guard_521 landmark 0 1773.28 -4493.09 58.0907 0 1 Orgrimmar Cooking Orgrimmar Cooking guard_poi_inferred 521 2621 139 easternplaguelands 0 0 +poi_guard_522 landmark 0 1926.54 -4430.92 77.6171 0 1 Orgrimmar Enchanting Orgrimmar Enchanting guard_poi_inferred 522 2264 139 easternplaguelands 0 0 +poi_guard_523 landmark 0 1833.67 -4497.54 71.177 0 1 Orgrimmar Engineering Orgrimmar Engineering guard_poi_inferred 523 2621 139 easternplaguelands 0 0 +poi_guard_524 landmark 0 2000.15 -4664.54 88.5166 0 1 Orgrimmar Fishing Orgrimmar Fishing guard_poi_inferred 524 2264 139 easternplaguelands 0 0 +poi_guard_525 landmark 0 1799.54 -4357.02 91.5655 0 1 Orgrimmar Flying Trainer Orgrimmar Flying Trainer guard_poi_inferred 525 2621 139 easternplaguelands 0 0 +poi_guard_526 landmark 0 1896.35 -4450.83 79.7116 0 1 Orgrimmar Herbalism Orgrimmar Herbalism guard_poi_inferred 526 2264 139 easternplaguelands 0 0 +poi_guard_527 landmark 0 1842.33 -4477.9 75.7457 0 1 Orgrimmar Inscription Orgrimmar Inscription guard_poi_inferred 527 2621 139 easternplaguelands 0 0 +poi_guard_528 landmark 0 2088.82 -4767.18 73.8592 0 1 Orgrimmar Jewelcrafting Orgrimmar Jewelcrafting guard_poi_inferred 528 139 139 easternplaguelands 0 0 +poi_guard_529 landmark 0 1848 -4555.32 77.2297 0 1 Orgrimmar Leatherworking Orgrimmar Leatherworking guard_poi_inferred 529 2621 139 easternplaguelands 0 0 +poi_guard_53 workshop 0 -4821.52 -1152.3 770.751 0 1 Ironforge Gryphon Master Ironforge Gryphon Master guard_poi_inferred 53 1 1 dun_morogh 0 0 +poi_guard_530 mine 0 2081.97 -4764.09 73.6226 0 1 Orgrimmar Mining Orgrimmar Mining guard_poi_inferred 530 139 139 easternplaguelands 0 0 +poi_guard_531 landmark 0 2085.34 -4572.83 74.885 0 1 Orgrimmar Riding Trainer Orgrimmar Riding Trainer guard_poi_inferred 531 2264 139 easternplaguelands 0 0 +poi_guard_532 landmark 0 1803.03 -4547.34 67.6863 0 1 Orgrimmar Tailoring Orgrimmar Tailoring guard_poi_inferred 532 2621 139 easternplaguelands 0 0 +poi_guard_533 landmark 0 -9010.27 852.878 171.352 0 1 Stormwind Mage Trainer Stormwind Mage Trainer guard_poi_inferred 533 5154 1519 stormwind 0 0 +poi_guard_534 landmark 0 -8582.43 806.635 126.312 0 1 Stormwind Cathedral Stormwind Cathedral guard_poi_inferred 534 5151 1519 stormwind 0 0 +poi_guard_535 landmark 0 -8716.23 328.47 135.102 0 1 Stormwind Rogue Trainer Stormwind Rogue Trainer guard_poi_inferred 535 1519 1519 stormwind 0 0 +poi_guard_536 landmark 0 -8356.92 574.814 140.023 0 1 Stormwind Shaman Trainer Stormwind Shaman Trainer guard_poi_inferred 536 1519 1519 stormwind 0 0 +poi_guard_537 landmark 0 -8945.1 991.033 148.383 0 1 Stormwind Warlock Trainer Stormwind Warlock Trainer guard_poi_inferred 537 5154 1519 stormwind 0 0 +poi_guard_538 landmark 0 -8788.16 344.498 128.828 0 1 Stormwind Warrior & Hunter Trainer Stormwind Warrior & Hunter Trainer guard_poi_inferred 538 1519 1519 stormwind 0 0 +poi_guard_539 landmark 0 -8979.49 763.873 117.406 0 1 Stormwind Alchemy & Herbalism Stormwind Alchemy & Herbalism guard_poi_inferred 539 5154 1519 stormwind 0 0 +poi_guard_54 workshop 0 -5021.06 -996.453 695.672 0 1 Ironforge Visitor's Center Ironforge Visitor's Center guard_poi_inferred 54 1 1 dun_morogh 0 0 +poi_guard_540 landmark 0 -8294.95 233.033 170.656 0 1 Stormwind Archaeology Stormwind Archaeology guard_poi_inferred 540 1519 1519 stormwind 0 0 +poi_guard_541 workshop 0 -8424.52 616.797 100.109 0 1 Stormwind Blacksmithing Stormwind Blacksmithing guard_poi_inferred 541 5150 1519 stormwind 0 0 +poi_guard_542 tavern 0 -8634.73 415.613 126.281 0 1 Stormwind Inn Stormwind Inn guard_poi_inferred 542 5149 1519 stormwind 0 0 +poi_guard_543 landmark 0 -8854.98 800.08 111.031 0 1 Stormwind Enchanting Stormwind Enchanting guard_poi_inferred 543 5154 1519 stormwind 0 0 +poi_guard_544 landmark 0 -8365.68 631.149 95.1439 0 1 Stormwind Engineering Stormwind Engineering guard_poi_inferred 544 5150 1519 stormwind 0 0 +poi_guard_545 landmark 0 -8521.81 816.241 129.281 0 1 Stormwind First Aid Stormwind First Aid guard_poi_inferred 545 5151 1519 stormwind 0 0 +poi_guard_546 landmark 0 -8801.98 770.842 96.3281 0 1 Stormwind Fishing Stormwind Fishing guard_poi_inferred 546 5390 1519 stormwind 0 0 +poi_guard_547 landmark 0 -8709.56 621.618 123.891 0 1 Stormwind Jewelcrafting Stormwind Jewelcrafting guard_poi_inferred 547 5148 1519 stormwind 0 0 +poi_guard_548 tavern 0 -8717.89 464.542 115.203 0 1 Stormwind Leatherworking & Skinning Stormwind Leatherworking & Skinning guard_poi_inferred 548 5149 1519 stormwind 0 0 +poi_guard_549 mine 0 -8431.96 687.125 117.336 0 1 Stormwind Mining Stormwind Mining guard_poi_inferred 549 5150 1519 stormwind 0 0 +poi_guard_55 tavern 0 -4850.48 -872.571 823.849 0 1 Stonefire Tavern Stonefire Tavern guard_poi_inferred 55 1 1 dun_morogh 0 0 +poi_guard_550 landmark 0 -8780.08 378.651 100.816 0 1 Stormwind Riding Trainer & Mounts Stormwind Riding Trainer & Mounts guard_poi_inferred 550 1519 1519 stormwind 0 0 +poi_guard_551 landmark 0 -8941.56 783.764 108.961 0 1 Stormwind Tailoring Stormwind Tailoring guard_poi_inferred 551 5154 1519 stormwind 0 0 +poi_guard_552 landmark 0 -8697.18 847.646 113.828 0 1 The Three Winds The Three Winds guard_poi_inferred 552 5704 1519 stormwind 0 0 +poi_guard_553 landmark 0 -8887.54 602.309 114.383 0 1 Stormwind Guild Master Stormwind Guild Master guard_poi_inferred 553 5148 1519 stormwind 0 0 +poi_guard_554 landmark 0 -8209.47 428.528 118.07 0 1 Stormwind Portals Stormwind Portals guard_poi_inferred 554 5428 1519 stormwind 0 0 +poi_guard_555 landmark 0 -8363.9 658.161 117.453 0 1 Stormwind Auction House Stormwind Auction House guard_poi_inferred 555 5150 1519 stormwind 0 0 +poi_guard_556 bank 0 -8327.83 598.797 128.672 0 1 Stormwind Bank Stormwind Bank guard_poi_inferred 556 5150 1519 stormwind 0 0 +poi_guard_557 tavern 0 -8862.7 665.363 114.516 0 1 Stormwind Inn Stormwind Inn guard_poi_inferred 557 5148 1519 stormwind 0 0 +poi_guard_558 tavern 0 -8371.78 604.283 121.188 0 1 Stormwind Inn Stormwind Inn guard_poi_inferred 558 5150 1519 stormwind 0 0 +poi_guard_559 landmark 0 -8764.14 404.2 120.484 0 1 Stormwind Champions' Hall Stormwind Champions' Hall guard_poi_inferred 559 5149 1519 stormwind 0 0 +poi_guard_56 workshop 0 -4845.7 -880.552 824.155 0 1 Ironforge Mailbox Ironforge Mailbox guard_poi_inferred 56 1 1 dun_morogh 0 0 +poi_guard_560 landmark 0 -8394.28 560.927 105.859 0 1 Stormwind Tram Stormwind Tram guard_poi_inferred 560 5150 1519 stormwind 0 0 +poi_guard_561 landmark 0 -8766.67 1033.05 -3.94332 0 1 Lion's Rest Lion's Rest guard_poi_inferred 561 5409 1519 stormwind 0 0 +poi_guard_562 landmark 0 -8789.09 827.214 154.461 0 1 Stormwind Stockade Stormwind Stockade guard_poi_inferred 562 5390 1519 stormwind 0 0 +poi_guard_563 landmark 0 -8432.65 319.663 201.383 0 1 Stormwind Keep Stormwind Keep guard_poi_inferred 563 1519 1519 stormwind 0 0 +poi_guard_564 landmark 0 -8775.39 371.104 100.843 0 1 Stormwind Stable Master Stormwind Stable Master guard_poi_inferred 564 1519 1519 stormwind 0 0 +poi_guard_565 landmark 0 -8432.87 555.121 95.1797 0 1 Stormwind Stable Master Stormwind Stable Master guard_poi_inferred 565 5150 1519 stormwind 0 0 +poi_guard_566 landmark 0 -8849.51 500.269 138.93 0 1 Stormwind Flying Trainer & Mounts Stormwind Flying Trainer & Mounts guard_poi_inferred 566 1519 1519 stormwind 0 0 +poi_guard_567 landmark 0 -8804.8 348.023 125.164 0 1 Stormwind Heroism & Valor Quartermasters Stormwind Heroism & Valor Quartermasters guard_poi_inferred 567 1519 1519 stormwind 0 0 +poi_guard_568 landmark 0 -8767.48 408.564 123.852 0 1 Stormwind Honor & Conquest Quartermasters Stormwind Honor & Conquest Quartermasters guard_poi_inferred 568 5149 1519 stormwind 0 0 +poi_guard_569 landmark 0 -8780.08 378.651 100.816 0 1 Stormwind Riding Trainer & Mounts Stormwind Riding Trainer & Mounts guard_poi_inferred 569 1519 1519 stormwind 0 0 +poi_guard_57 landmark 0 -5010.21 -1262.03 666.119 0 1 Ulbrek Firehand Ulbrek Firehand guard_poi_inferred 57 1 1 dun_morogh 0 0 +poi_guard_570 landmark 0 -8424.14 551.444 112.055 0 1 Stormwind Hunter Trainer Stormwind Hunter Trainer guard_poi_inferred 570 5150 1519 stormwind 0 0 +poi_guard_580 landmark 0 -5637.17 -497.804 399.812 0 1 Wembil Taskwidget Wembil Taskwidget guard_poi_inferred 580 131 1 dun_morogh 0 0 +poi_guard_581 landmark 0 -5581.79 -535.559 419.062 0 1 Halbin Frosthammer Halbin Frosthammer guard_poi_inferred 581 2102 1 dun_morogh 0 0 +poi_guard_582 landmark 0 -9494 79.2847 56.2036 0 1 Lien Farner Lien Farner guard_poi_inferred 582 87 12 elwynn 0 0 +poi_guard_583 landmark 0 -9465.14 117.868 57.9777 0 1 Benjamin Foxworthy Benjamin Foxworthy guard_poi_inferred 583 87 12 elwynn 0 0 +poi_guard_584 landmark 0 2248.02 229.082 62.1719 0 1 Dark Cleric Beryl Dark Cleric Beryl guard_poi_inferred 584 159 85 tirisfalglades 0 0 +poi_guard_588 landmark 0 -2309.59 -452.521 -515.189 0 1 Sunwalker Iopi Sunwalker Iopi guard_poi_inferred 588 2365 11 wetlands 0 0 +poi_guard_589 landmark 0 -2301.43 -451.816 -515.189 0 1 Seer Alsoomse Seer Alsoomse guard_poi_inferred 589 2365 11 wetlands 0 0 +poi_guard_59 workshop 0 -5042.66 -1269.78 655.93 0 1 Battlemasters Ironforge Battlemasters Ironforge guard_poi_inferred 59 1 1 dun_morogh 0 0 +poi_guard_591 bank 0 1733.24 -4089.69 103.545 0 1 Darkspear Auction House & Bank Darkspear Auction House & Bank guard_poi_inferred 591 139 139 easternplaguelands 0 0 +poi_guard_592 landmark 0 1726.39 -4085.98 108.113 0 1 Darkspear General & Trade Goods Darkspear General & Trade Goods guard_poi_inferred 592 139 139 easternplaguelands 0 0 +poi_guard_593 landmark 0 1753.65 -4112.32 96.8036 0 1 Darkspear Poisons & Reagents Darkspear Poisons & Reagents guard_poi_inferred 593 139 139 easternplaguelands 0 0 +poi_guard_594 landmark 0 1696.89 -4096.98 114.336 0 1 The Valley of Spirits The Valley of Spirits guard_poi_inferred 594 139 139 easternplaguelands 0 0 +poi_guard_595 tavern 0 1733.42 -4074.05 106.647 0 1 Darkspear Inn Darkspear Inn guard_poi_inferred 595 139 139 easternplaguelands 0 0 +poi_guard_596 landmark 0 1679.31 -4067.36 140.665 0 1 Darkspear Cooking Darkspear Cooking guard_poi_inferred 596 139 139 easternplaguelands 0 0 +poi_guard_597 landmark 0 1757.87 -4112.13 96.8838 0 1 Darkspear Herbalism Darkspear Herbalism guard_poi_inferred 597 139 139 easternplaguelands 0 0 +poi_guard_598 landmark 0 1684.94 -4134.64 123.813 0 1 Darkspear Inscription Darkspear Inscription guard_poi_inferred 598 139 139 easternplaguelands 0 0 +poi_guard_599 landmark 0 1705.78 -4118.1 103.391 0 1 Darkspear Fishing Darkspear Fishing guard_poi_inferred 599 139 139 easternplaguelands 0 0 +poi_guard_6 landmark 0 -9473.22 -4.08464 67.5625 0 1 Maximillian Crowe Maximillian Crowe guard_poi_inferred 6 87 12 elwynn 0 0 +poi_guard_60 workshop 0 -4839.48 -917.295 835.223 0 1 Ironforge Barber Ironforge Barber guard_poi_inferred 60 1 1 dun_morogh 0 0 +poi_guard_600 landmark 0 1700.05 -4115.41 104.227 0 1 Darkspear Druid Trainer Darkspear Druid Trainer guard_poi_inferred 600 139 139 easternplaguelands 0 0 +poi_guard_601 landmark 0 1621.03 -4106.84 151.256 0 1 Darkspear Hunter & Warrior Trainer Darkspear Hunter & Warrior Trainer guard_poi_inferred 601 139 139 easternplaguelands 0 0 +poi_guard_602 landmark 0 1688.41 -4125.67 115.909 0 1 Darkspear Mage & Portal Trainers Darkspear Mage & Portal Trainers guard_poi_inferred 602 139 139 easternplaguelands 0 0 +poi_guard_603 landmark 0 1685.26 -4125.07 118.208 0 1 Darkspear Priest Trainer Darkspear Priest Trainer guard_poi_inferred 603 139 139 easternplaguelands 0 0 +poi_guard_604 landmark 0 1758.06 -4069.06 107.304 0 1 Darkspear Rogue Trainer Darkspear Rogue Trainer guard_poi_inferred 604 139 139 easternplaguelands 0 0 +poi_guard_605 landmark 0 1674.01 -4132.76 141.197 0 1 Darkspear Warlock Trainer Darkspear Warlock Trainer guard_poi_inferred 605 139 139 easternplaguelands 0 0 +poi_guard_607 landmark 0 1926.54 -4430.92 77.6171 0 1 Orgrimmar Reforging Orgrimmar Reforging guard_poi_inferred 607 2264 139 easternplaguelands 0 0 +poi_guard_608 landmark 0 -8399.8 225.806 221.711 0 1 Stormwind Battlemasters Stormwind Battlemasters guard_poi_inferred 608 1519 1519 stormwind 0 0 +poi_guard_609 landmark 0 -8766.67 1033.05 -3.94332 0 1 Stormwind Park Stormwind Park guard_poi_inferred 609 5409 1519 stormwind 0 0 +poi_guard_61 landmark 0 -5023.08 -1253.68 662.423 0 1 Hall of Arms Hall of Arms guard_poi_inferred 61 1 1 dun_morogh 0 0 +poi_guard_610 landmark 0 -8854.98 800.08 111.031 0 1 Stormwind Reforging Stormwind Reforging guard_poi_inferred 610 5154 1519 stormwind 0 0 +poi_guard_62 landmark 0 -4627.02 -926.459 728.38 0 1 Hall of Mysteries Hall of Mysteries guard_poi_inferred 62 1 1 dun_morogh 0 0 +poi_guard_63 workshop 0 -4647.83 -1124 718.566 0 1 Ironforge Rogue Trainer Ironforge Rogue Trainer guard_poi_inferred 63 1 1 dun_morogh 0 0 +poi_guard_64 workshop 0 -4605.03 -1110.46 713.906 0 1 Ironforge Warlock Trainer Ironforge Warlock Trainer guard_poi_inferred 64 1 1 dun_morogh 0 0 +poi_guard_65 workshop 0 -4722.59 -1151.39 764.142 0 1 Ironforge Shaman Trainer Ironforge Shaman Trainer guard_poi_inferred 65 1 1 dun_morogh 0 0 +poi_guard_66 landmark 0 -4858.5 -1241.84 726.66 0 1 Berryfizz's Potions and Mixed Drinks Berryfizz's Potions and Mixed Drinks guard_poi_inferred 66 1 1 dun_morogh 0 0 +poi_guard_67 workshop 0 -4796.98 -1110.17 791.37 0 1 The Great Forge The Great Forge guard_poi_inferred 67 1 1 dun_morogh 0 0 +poi_guard_68 landmark 0 -4767.83 -1184.6 745.296 0 1 The Bronze Kettle The Bronze Kettle guard_poi_inferred 68 1 1 dun_morogh 0 0 +poi_guard_69 landmark 0 -4803.72 -1196.53 759.074 0 1 Thistlefuzz Arcanery Thistlefuzz Arcanery guard_poi_inferred 69 1 1 dun_morogh 0 0 +poi_guard_7 landmark 0 -9461.82 109.505 57.7044 0 1 Lyria Du Lac Lyria Du Lac guard_poi_inferred 7 87 12 elwynn 0 0 +poi_guard_70 workshop 0 -4881.6 -1153.13 794.812 0 1 Ironforge Physician Ironforge Physician guard_poi_inferred 70 1 1 dun_morogh 0 0 +poi_guard_71 landmark 0 -4597.91 -1091.93 711.275 0 1 Traveling Fisherman Traveling Fisherman guard_poi_inferred 71 1 1 dun_morogh 0 0 +poi_guard_72 workshop 0 -4801.79 -1189.09 775.774 0 1 Ironforge Inscription Ironforge Inscription guard_poi_inferred 72 1 1 dun_morogh 0 0 +poi_guard_73 landmark 0 -4745.01 -1027.58 803.903 0 1 Finespindle's Leather Goods Finespindle's Leather Goods guard_poi_inferred 73 1 1 dun_morogh 0 0 +poi_guard_74 mine 0 -4705.06 -1116.43 764.768 0 1 Deepmountain Mining & Jewelcrafting Deepmountain Mining & Jewelcrafting guard_poi_inferred 74 1 1 dun_morogh 0 0 +poi_guard_75 landmark 0 -4719.61 -1056.97 785.533 0 1 Stonebrow's Clothier Stonebrow's Clothier guard_poi_inferred 75 1 1 dun_morogh 0 0 +poi_guard_76 landmark 0 -5584.11 -510.862 421.133 0 1 Thunderbrew Distillery Thunderbrew Distillery guard_poi_inferred 76 2102 1 dun_morogh 0 0 +poi_guard_77 landmark 0 -5606.17 -513.008 413.328 0 1 Shelby Stoneflint Shelby Stoneflint guard_poi_inferred 77 2102 1 dun_morogh 0 0 +poi_guard_78 landmark 0 -5618.73 -453.72 407.612 0 1 Grif Wildheart Grif Wildheart guard_poi_inferred 78 131 1 dun_morogh 0 0 +poi_guard_79 landmark 0 -5587.37 -539.037 423.781 0 1 Magis Sparkmantle Magis Sparkmantle guard_poi_inferred 79 2102 1 dun_morogh 0 0 +poi_guard_8 landmark 0 -9057 153.637 123.219 0 1 Alchemist Mallory Alchemist Mallory guard_poi_inferred 8 12 12 elwynn 0 0 +poi_guard_80 landmark 0 -5584.69 -542.492 422.258 0 1 Azar Stronghammer Azar Stronghammer guard_poi_inferred 80 2102 1 dun_morogh 0 0 +poi_guard_81 landmark 0 -5589.19 -530.288 424.609 0 1 Maxan Anvol Maxan Anvol guard_poi_inferred 81 2102 1 dun_morogh 0 0 +poi_guard_82 landmark 0 -5604.48 -540.089 424.383 0 1 Hogral Bakkan Hogral Bakkan guard_poi_inferred 82 2102 1 dun_morogh 0 0 +poi_guard_83 landmark 0 -5639.5 -528.501 404.237 0 1 Gimrizz Shadowcog Gimrizz Shadowcog guard_poi_inferred 83 131 1 dun_morogh 0 0 +poi_guard_84 landmark 0 -5605.01 -530.145 425.867 0 1 Granis Swiftaxe Granis Swiftaxe guard_poi_inferred 84 2102 1 dun_morogh 0 0 +poi_guard_85 landmark 0 -5582.17 -430.441 430.258 0 1 Tognus Flintfire Tognus Flintfire guard_poi_inferred 85 131 1 dun_morogh 0 0 +poi_guard_86 landmark 0 -5594.46 -544.573 425.023 0 1 Gremlock Pilsnor Gremlock Pilsnor guard_poi_inferred 86 2102 1 dun_morogh 0 0 +poi_guard_87 landmark 0 -5604.89 -521.037 416.812 0 1 Thamner Pol Thamner Pol guard_poi_inferred 87 2102 1 dun_morogh 0 0 +poi_guard_88 landmark 0 -5198.56 53.3649 385.497 0 1 Paxton Ganter Paxton Ganter guard_poi_inferred 88 211 1 dun_morogh 0 0 +poi_guard_9 workshop 0 -9456 87.9022 67.7422 0 1 Smith Argus Smith Argus guard_poi_inferred 9 87 12 elwynn 0 0 +poi_npc_100699 tavern 0 3003.71 4052.13 26.4516 1.16937 1 Caregiver Poallu Innkeeper Caregiver Poallu Innkeeper service_npc 100699 0 0 0 0 +poi_npc_100776 tavern 0 7114.15 -1633.32 820.568 3.28122 1 Lodge-Matron Embla Innkeeper Lodge-Matron Embla Innkeeper service_npc 100776 0 0 0 0 +poi_npc_100936 tavern 0 3875.46 -4544.99 209.406 3.00197 1 Aiyan Coldwind Innkeeper Aiyan Coldwind Innkeeper service_npc 100936 2037 2037 quelthalas 0 0 +poi_npc_102048 service 0 5907.09 675.225 643.496 2.23402 1 Imindril Spearsong Blacksmithing Trainer Imindril Spearsong Blacksmithing Trainer service_npc 102048 0 0 0 0 +poi_npc_102071 service 0 5910.86 683.046 643.496 2.46859 1 Orland Schaeffer Blacksmithing Trainer Orland Schaeffer Blacksmithing Trainer service_npc 102071 0 0 0 0 +poi_npc_102128 service 0 5904.79 771.715 649.083 4.59022 1 Manfred Staller Leatherworking Trainer Manfred Staller Leatherworking Trainer service_npc 102128 0 0 0 0 +poi_npc_102256 service 0 5918.03 767.902 649.084 3.82227 1 Andellion Leatherworking Trainer Andellion Leatherworking Trainer service_npc 102256 0 0 0 0 +poi_npc_102323 tavern 0 5888.69 507.898 641.653 1.8675 1 Uda the Beast Innkeeper Uda the Beast Innkeeper service_npc 102323 0 0 0 0 +poi_npc_102354 service 0 5899.16 753.091 652.777 5.8294 1 Namha Moonwater Leatherworking Trainer Namha Moonwater Leatherworking Trainer service_npc 102354 0 0 0 0 +poi_npc_102399 service 0 5707.31 612.214 646.791 1.69297 1 Marcia Chase Fishing Trainer & Supplies Marcia Chase Fishing Trainer & Supplies service_npc 102399 0 0 0 0 +poi_npc_102435 service 0 1966.66 -6159.23 25.2098 1.18682 1 Wilhelmina Renel Alchemy Trainer Wilhelmina Renel Alchemy Trainer service_npc 102435 4546 139 easternplaguelands 0 0 +poi_npc_102499 service 0 1948.67 -6191.36 24.0498 1.97222 1 Kristen Smythe Blacksmithing Trainer Kristen Smythe Blacksmithing Trainer service_npc 102499 4546 139 easternplaguelands 0 0 +poi_npc_102523 service 0 1927.98 -6150.21 23.0406 5.07891 1 Thomas Kolichio Cooking Trainer Thomas Kolichio Cooking Trainer service_npc 102523 4546 139 easternplaguelands 0 0 +poi_npc_102530 service 0 5927.85 723.428 642.218 0.663225 1 Didi the Wrench Goblin Engineering Trainer Didi the Wrench Goblin Engineering Trainer service_npc 102530 0 0 0 0 +poi_npc_102605 service 0 1975.58 -6155.45 25.2098 2.61799 1 Emil Autumn Enchanting Trainer Emil Autumn Enchanting Trainer service_npc 102605 4546 139 easternplaguelands 0 0 +poi_npc_102606 service 0 5929.62 724.728 642.212 3.735 1 Findle Whistlesteam Gnomish Engineering Trainer Findle Whistlesteam Gnomish Engineering Trainer service_npc 102606 0 0 0 0 +poi_npc_102621 service 0 1904.8 -6137.54 18.1402 5.65487 1 Jamesina Watterly Engineering Trainer Jamesina Watterly Engineering Trainer service_npc 102621 4546 139 easternplaguelands 0 0 +poi_npc_102681 service 0 1933.84 -6199.65 32.1595 3.40339 1 Sally Tompkins First Aid Trainer Sally Tompkins First Aid Trainer service_npc 102681 4546 139 easternplaguelands 0 0 +poi_npc_102702 service 0 2024.24 -6207.31 7.98215 3.21141 1 Angelina Soren Fishing Trainer Angelina Soren Fishing Trainer service_npc 102702 4546 139 easternplaguelands 0 0 +poi_npc_102747 service 0 1973.49 -6143.51 25.2098 3.92699 1 Marjory Kains Herbalism Trainer Marjory Kains Herbalism Trainer service_npc 102747 4546 139 easternplaguelands 0 0 +poi_npc_102850 service 0 1936.11 -6197.33 24.8572 1.8326 1 Booker Kells Inscription Trainer Booker Kells Inscription Trainer service_npc 102850 4546 139 easternplaguelands 0 0 +poi_npc_103040 service 0 1955.86 -6196.06 24.0925 2.28638 1 Carter Tiffens Jewelcrafting Trainer Carter Tiffens Jewelcrafting Trainer service_npc 103040 4546 139 easternplaguelands 0 0 +poi_npc_103242 service 0 1982.36 -6131.68 24.4877 3.03687 1 Gunter Hansen Leatherworking Trainer Gunter Hansen Leatherworking Trainer service_npc 103242 4546 139 easternplaguelands 0 0 +poi_npc_103263 service 0 1945.71 -6194.1 23.9348 1.16937 1 Jonathan Lewis Mining Trainer Jonathan Lewis Mining Trainer service_npc 103263 4546 139 easternplaguelands 0 0 +poi_npc_103297 service 0 1983.1 -6129.26 24.4877 2.9147 1 Roberta Jacks Skinning Trainer Roberta Jacks Skinning Trainer service_npc 103297 4546 139 easternplaguelands 0 0 +poi_npc_103364 service 0 1875.43 -6198.47 23.8265 0.226893 1 Alexandra McQueen Tailoring Trainer Alexandra McQueen Tailoring Trainer service_npc 103364 4546 139 easternplaguelands 0 0 +poi_npc_103484 tavern 0 3468.64 4175.04 17.2764 4.20624 1 Pahu Frosthoof Innkeeper Pahu Frosthoof Innkeeper service_npc 103484 0 0 0 0 +poi_npc_103487 tavern 0 439.533 -4550.71 245.709 4.34587 1 Basil Osgood Innkeeper Basil Osgood Innkeeper service_npc 103487 307 47 thehinterlands 0 0 +poi_npc_104225 tavern 0 5759.18 716.138 618.635 5.58505 1 Ajay Green Innkeeper Ajay Green Innkeeper service_npc 104225 0 0 0 0 +poi_npc_10497 service 0 -773.806 2751.21 146.535 0.595788 1 Michael Schwan Inscription Trainer Michael Schwan Inscription Trainer service_npc 10497 4706 4706 ruinsofgilneas 0 0 +poi_npc_105361 tavern 0 3830.37 1485.49 92.0606 0.837758 1 Barracks Master Harga Innkeeper Barracks Master Harga Innkeeper service_npc 105361 214 214 thegreatsea 0 0 +poi_npc_105483 service 0 3455.75 4178.84 17.2764 4.59022 1 Tiponi Stormwhisper Skinning Trainer Tiponi Stormwhisper Skinning Trainer service_npc 105483 0 0 0 0 +poi_npc_105533 service 0 2132.07 5238.43 19.5292 0.802851 1 Falorn Nightwhisper Alchemy Trainer Falorn Nightwhisper Alchemy Trainer service_npc 105533 0 0 0 0 +poi_npc_105659 service 0 2338.17 5275.62 7.90438 5.28835 1 Argo Strongstout Blacksmithing Trainer Argo Strongstout Blacksmithing Trainer service_npc 105659 0 0 0 0 +poi_npc_105875 service 0 2148 5231.63 19.5292 1.15192 1 Rollick MacKreel Cooking Trainer Rollick MacKreel Cooking Trainer service_npc 105875 0 0 0 0 +poi_npc_105993 service 0 2147.52 5251.18 19.6081 4.11898 1 Alexis Marlowe Enchanting Trainer Alexis Marlowe Enchanting Trainer service_npc 105993 0 0 0 0 +poi_npc_106187 service 0 2121.9 5242.18 19.5292 1.29154 1 Sock Brightbolt Engineering Trainer Sock Brightbolt Engineering Trainer service_npc 106187 0 0 0 0 +poi_npc_106237 service 0 2346.57 5237.85 7.74866 5.67232 1 Brynna Wilson First Aid Trainer Brynna Wilson First Aid Trainer service_npc 106237 0 0 0 0 +poi_npc_106323 service 0 2144.24 5234.32 19.5292 0.837758 1 Old Man Robert Fishing Trainer Old Man Robert Fishing Trainer service_npc 106323 0 0 0 0 +poi_npc_106510 service 0 2135.37 5236.9 19.5292 1.5708 1 Kirea Moondancer Herbalism Trainer Kirea Moondancer Herbalism Trainer service_npc 106510 0 0 0 0 +poi_npc_106632 service 0 2141.77 5252.78 19.5573 4.95674 1 Tink Brightbolt Inscription Trainer Tink Brightbolt Inscription Trainer service_npc 106632 0 0 0 0 +poi_npc_106815 service 0 3478.23 4177.74 17.2764 4.64258 1 Awan Iceborn Leatherworking Trainer Awan Iceborn Leatherworking Trainer service_npc 106815 0 0 0 0 +poi_npc_106833 service 0 2120.8 5259.82 19.55 3.90954 1 Alestos Jewelcrafting Trainer Alestos Jewelcrafting Trainer service_npc 106833 0 0 0 0 +poi_npc_106880 service 0 2132.72 5255.87 19.5305 4.86947 1 Rosemary Bovard Leatherworking Trainer Rosemary Bovard Leatherworking Trainer service_npc 106880 0 0 0 0 +poi_npc_106961 service 0 2356.65 5258.93 7.87818 4.11898 1 Fendrig Redbeard Mining Trainer Fendrig Redbeard Mining Trainer service_npc 106961 0 0 0 0 +poi_npc_106963 tavern 0 5462.97 -2639.05 306.634 2.77507 1 Marissa Everwatch Innkeeper Marissa Everwatch Innkeeper service_npc 106963 214 214 thegreatsea 0 0 +poi_npc_107019 service 0 2136.1 5255.88 19.5315 4.17134 1 Trapper Jack Skinning Trainer Trapper Jack Skinning Trainer service_npc 107019 0 0 0 0 +poi_npc_107129 service 0 2117.3 5261.07 19.5305 4.81711 1 Darin Goodstitch Tailoring Trainer Darin Goodstitch Tailoring Trainer service_npc 107129 0 0 0 0 +poi_npc_107673 tavern 0 1445.72 -3263.48 167.387 2.47837 1 Innkeeper Celeste Goodhutch Innkeeper Innkeeper Celeste Goodhutch Innkeeper service_npc 107673 2261 139 easternplaguelands 0 0 +poi_npc_108031 tavern 0 5566.25 5763.71 -75.1425 6.23082 1 Purser Boulian Innkeeper Purser Boulian Innkeeper service_npc 108031 0 0 0 0 +poi_npc_109003 service 0 3749.03 1596.74 87.1133 0.506145 1 Apothecary Bressa Alchemy Trainer Apothecary Bressa Alchemy Trainer service_npc 109003 214 214 thegreatsea 0 0 +poi_npc_109008 tavern 0 5761.11 -3562.79 387.133 1.41372 1 Pan'ya Innkeeper Pan'ya Innkeeper service_npc 109008 214 214 thegreatsea 0 0 +poi_npc_109733 tavern 0 3214.17 -684.083 167.62 0.017453 1 Mrs. Winterby Innkeeper Mrs. Winterby Innkeeper service_npc 109733 168 85 tirisfalglades 0 0 +poi_npc_109907 service 0 3252.76 -684.58 168.15 0.959931 1 Apothecary Wormwick Alchemy Trainer Apothecary Wormwick Alchemy Trainer service_npc 109907 214 214 thegreatsea 0 0 +poi_npc_110374 service 0 3209.26 -629.828 160.252 0.506145 1 Josric Fame Blacksmithing Trainer Josric Fame Blacksmithing Trainer service_npc 110374 168 85 tirisfalglades 0 0 +poi_npc_110511 tavern 0 5837.25 634.072 656.735 4.11215 1 Afsaneh Asrar Assistant Innkeeper Afsaneh Asrar Assistant Innkeeper service_npc 110511 0 0 0 0 +poi_npc_110585 tavern 0 5716.2 681.837 645.834 6.23082 1 Isirami Fairwind Innkeeper Isirami Fairwind Innkeeper service_npc 110585 0 0 0 0 +poi_npc_110613 tavern 0 2282.29 5210.83 12.5771 4.2586 1 James Deacon Innkeeper James Deacon Innkeeper service_npc 110613 0 0 0 0 +poi_npc_111224 tavern 0 5871.04 493.264 655.527 5.35816 1 Abohba Assistant Innkeeper Abohba Assistant Innkeeper service_npc 111224 0 0 0 0 +poi_npc_112195 tavern 0 3477.54 2006.68 64.9457 5.34071 1 Naohain Innkeeper Naohain Innkeeper service_npc 112195 214 214 thegreatsea 0 0 +poi_npc_112850 tavern 0 599.04 -4928.18 19.0865 4.99164 1 Innkeeper Hazel Lagras Innkeeper Innkeeper Hazel Lagras Innkeeper service_npc 112850 307 47 thehinterlands 0 0 +poi_npc_113117 service 0 625.177 -5026.14 2.4039 0.247913 1 Anchorite Yazmina First Aid Trainer Anchorite Yazmina First Aid Trainer service_npc 113117 307 47 thehinterlands 0 0 +poi_npc_113475 tavern 0 3406.96 -2788.63 201.604 5.48033 1 Jennifer Bell Innkeeper Jennifer Bell Innkeeper service_npc 113475 2037 2037 quelthalas 0 0 +poi_npc_113774 tavern 0 4506.36 5707.32 81.6039 0.767945 1 Matron Magah Innkeeper Matron Magah Innkeeper service_npc 113774 0 0 0 0 +poi_npc_113884 service 0 5850.81 471.807 639.872 1.93731 1 Awilo Lon'gomba Cooking Trainer Awilo Lon'gomba Cooking Trainer service_npc 113884 0 0 0 0 +poi_npc_114374 service 0 3810.3 1574.13 89.3065 5.45068 1 Borus Ironbender Blacksmithing Trainer Borus Ironbender Blacksmithing Trainer service_npc 114374 214 214 thegreatsea 0 0 +poi_npc_115502 tavern 0 6124.42 -1080.96 402.624 2.49582 1 Smilin' Slirk Brassknob Innkeeper Smilin' Slirk Brassknob Innkeeper service_npc 115502 0 0 0 0 +poi_npc_117436 tavern 0 2681.94 -4390.98 284.543 2.26893 1 Bori Wintertotem Innkeeper Bori Wintertotem Innkeeper service_npc 117436 139 139 easternplaguelands 0 0 +poi_npc_117740 service 0 6643.61 -210.399 951.851 0.855211 1 Brandig Blacksmithing Trainer Brandig Blacksmithing Trainer service_npc 117740 0 0 0 0 +poi_npc_117745 tavern 0 4178.47 5278.22 26.7764 2.42601 1 "Charlie" Northtop Innkeeper "Charlie" Northtop Innkeeper service_npc 117745 0 0 0 0 +poi_npc_117818 tavern 0 6671.16 -200.357 951.07 2.98451 1 Gunda Boldhammer Innkeeper Gunda Boldhammer Innkeeper service_npc 117818 0 0 0 0 +poi_npc_118869 tavern 0 3256.43 -2202.08 117.112 5.79449 1 Barracks Master Rhekku Innkeeper Barracks Master Rhekku Innkeeper service_npc 118869 2037 2037 quelthalas 0 0 +poi_npc_122465 tavern 0 8499.73 2685.31 652.437 2.84489 1 Initiate Brenners Innkeeper Initiate Brenners Innkeeper service_npc 122465 0 0 0 0 +poi_npc_125393 service 0 2809.35 6169.41 104.993 3.57792 1 Nurse Applewood First Aid Trainer Nurse Applewood First Aid Trainer service_npc 125393 0 0 0 0 +poi_npc_125423 service 0 2842.94 6170.93 104.895 1.11701 1 Raenah Tailoring Trainer Raenah Tailoring Trainer service_npc 125423 0 0 0 0 +poi_npc_125424 service 0 2818.32 6151.04 85.4053 3.1765 1 Orn Tenderhoof Cooking Trainer Orn Tenderhoof Cooking Trainer service_npc 125424 0 0 0 0 +poi_npc_125425 service 0 2836.99 6148.09 105.088 4.76475 1 Tansy Wildmane Herbalism Trainer Tansy Wildmane Herbalism Trainer service_npc 125425 0 0 0 0 +poi_npc_125426 service 0 2813.49 6163.41 105.04 3.94444 1 Arthur Henslowe Alchemy Trainer Arthur Henslowe Alchemy Trainer service_npc 125426 0 0 0 0 +poi_npc_125427 service 0 2853.53 6116 83.5814 0.069813 1 Brunna Ironaxe Mining Trainer Brunna Ironaxe Mining Trainer service_npc 125427 0 0 0 0 +poi_npc_125428 service 0 2823.59 6192.59 104.888 0.10472 1 Adelene Sunlance Inscription Trainer Adelene Sunlance Inscription Trainer service_npc 125428 0 0 0 0 +poi_npc_125429 service 0 2824.46 6199.23 104.922 5.72468 1 Eorain Dawnstrike Enchanting Trainer Eorain Dawnstrike Enchanting Trainer service_npc 125429 0 0 0 0 +poi_npc_125430 service 0 2772.04 6222.61 83.4657 5.14872 1 Crog Steelspine Blacksmithing Trainer Crog Steelspine Blacksmithing Trainer service_npc 125430 0 0 0 0 +poi_npc_125431 service 0 2847.77 6170.94 104.921 1.98968 1 Geba'li Jewelcrafting Trainer Geba'li Jewelcrafting Trainer service_npc 125431 0 0 0 0 +poi_npc_125569 service 0 2847.77 6110.22 83.4355 2.9671 1 Chief Engineer Leveny Engineering Trainer Chief Engineer Leveny Engineering Trainer service_npc 125569 0 0 0 0 +poi_npc_125570 tavern 0 2803.7 6154.5 85.2464 3.90954 1 Williamson Innkeeper Williamson Innkeeper service_npc 125570 0 0 0 0 +poi_npc_125585 service 0 2804.14 6165.57 85.3861 4.81711 1 Fishy Ser'ji Fishing Trainer Fishy Ser'ji Fishing Trainer service_npc 125585 0 0 0 0 +poi_npc_125645 service 0 9958.94 -7250.08 32.0774 2.27023 1 Zantasia Inscription Trainer Zantasia Inscription Trainer service_npc 125645 0 0 0 0 +poi_npc_125648 service 0 -3890.05 -11494.8 -136.216 0.455529 1 Thoth Inscription Trainer Thoth Inscription Trainer service_npc 125648 0 0 0 0 +poi_npc_12717 service 0 -3963.75 2203.92 101.867 1.92275 1 Niobe Whizzlespark Engineering Trainer Niobe Whizzlespark Engineering Trainer service_npc 12717 214 214 thegreatsea 0 0 +poi_npc_131010 tavern 0 3546.74 273.062 45.6634 1.81514 1 Demestrasz Innkeeper Demestrasz Innkeeper service_npc 131010 214 214 thegreatsea 0 0 +poi_npc_133617 tavern 0 3647.95 -717.195 215.034 3.01298 1 Illusia Lune Innkeeper Illusia Lune Innkeeper service_npc 133617 214 214 thegreatsea 0 0 +poi_npc_138371 service 0 -3957.89 -11863 0.778528 3.47713 1 Alnar Whitebough Cooking Trainer Alnar Whitebough Cooking Trainer service_npc 138371 0 0 0 0 +poi_npc_138400 service 0 9282.31 -7206.7 16.6141 5.7094 1 Alice Rigsdale Cooking Trainer Alice Rigsdale Cooking Trainer service_npc 138400 0 0 0 0 +poi_npc_150150 tavern 0 4596.14 -4237.28 178.738 2.40775 1 Quartermaster McCarty Innkeeper Quartermaster McCarty Innkeeper service_npc 150150 2037 2037 quelthalas 0 0 +poi_npc_15654 service 0 -2086.39 5316.66 -37.2403 0.017453 1 Boduro the Seeker Archaeology Trainer Boduro the Seeker Archaeology Trainer service_npc 15654 214 214 thegreatsea 0 0 +poi_npc_203226 tavern 0 2477.39 -5054.49 284.47 4.53786 1 Christina Daniels Innkeeper Christina Daniels Innkeeper service_npc 203226 139 139 easternplaguelands 0 0 +poi_npc_250010 service 0 9638.43 -7387.58 15.8111 1.37881 1 Elynara Archaeology Trainer Elynara Archaeology Trainer service_npc 250010 0 0 0 0 +poi_npc_250316 tavern 0 -4891.31 -6599.86 10.9166 0.610865 1 Innkeeper Teresa Innkeeper Innkeeper Teresa Innkeeper service_npc 250316 5140 4922 twilighthighlands 0 0 +poi_npc_250317 tavern 0 -4916.22 -6621.26 10.9166 3.87463 1 Innkeeper Francis Innkeeper Innkeeper Francis Innkeeper service_npc 250317 5140 4922 twilighthighlands 0 0 +poi_npc_255439 service 0 -1858.44 2264.81 44.3006 3.08923 1 Jack "All-Trades" Derrington Profession Trainer Jack "All-Trades" Derrington Profession Trainer service_npc 255439 4706 4706 ruinsofgilneas 0 0 +poi_npc_255478 service 0 -1911.94 2288.18 44.1762 4.57276 1 Fielding Chesterhill Cooking Trainer Fielding Chesterhill Cooking Trainer service_npc 255478 4706 4706 ruinsofgilneas 0 0 +poi_npc_255479 service 0 -1911.14 2280.33 52.7609 2.26893 1 Amelia Atherton First Aid Trainer Amelia Atherton First Aid Trainer service_npc 255479 4706 4706 ruinsofgilneas 0 0 +poi_npc_255480 tavern 0 -1911.98 2281.89 44.1508 5.48033 1 Willa Arnes Innkeeper Willa Arnes Innkeeper service_npc 255480 4706 4706 ruinsofgilneas 0 0 +poi_npc_256126 tavern 0 -2456.3 1550.22 18.775 2.02458 1 Willa Arnes Innkeeper Willa Arnes Innkeeper service_npc 256126 5714 4706 ruinsofgilneas 0 0 +poi_npc_256130 service 0 -2480.76 1575.95 16.5748 1.46608 1 Jack "All-Trades" Derrington Profession Trainer Jack "All-Trades" Derrington Profession Trainer service_npc 256130 5714 4706 ruinsofgilneas 0 0 +poi_npc_256183 service 0 -2529.28 1434.71 1.12616 1.23918 1 Whilsey Bottomtooth Fishing Trainer Whilsey Bottomtooth Fishing Trainer service_npc 256183 5714 4706 ruinsofgilneas 0 0 +poi_npc_258341 service 0 -1319.47 2133.14 5.71432 4.13643 1 Jack "All-Trades" Derrington Profession Trainer Jack "All-Trades" Derrington Profession Trainer service_npc 258341 4706 4706 ruinsofgilneas 0 0 +poi_npc_259275 tavern 0 -4009.87 -6439.9 41.4245 1.67552 1 Innkeeper Lutz Innkeeper Innkeeper Lutz Innkeeper service_npc 259275 5136 4922 twilighthighlands 0 0 +poi_npc_260545 service 0 7329.51 -264.988 8.07923 0.959931 1 Jenna Lemkenilli Engineering Trainer Jenna Lemkenilli Engineering Trainer service_npc 260545 0 0 0 0 +poi_npc_260685 service 0 -3763.51 -723.533 2.08669 5.09636 1 Harold Riggs Fishing Trainer Harold Riggs Fishing Trainer service_npc 260685 150 11 wetlands 0 0 +poi_npc_260756 service 0 -3808.11 -824.064 0.735098 5.58505 1 Fremal Doohickey First Aid Trainer Fremal Doohickey First Aid Trainer service_npc 260756 2104 11 wetlands 0 0 +poi_npc_260762 tavern 0 -3825.19 -833.29 0.731596 0.925025 1 Innkeeper Helbrek Innkeeper Innkeeper Helbrek Innkeeper service_npc 260762 2104 11 wetlands 0 0 +poi_npc_260790 service 0 -3584.83 -854.755 3.84314 4.39823 1 Telurinon Moonshadow Herbalism Trainer Telurinon Moonshadow Herbalism Trainer service_npc 260790 150 11 wetlands 0 0 +poi_npc_261241 tavern 0 -2866.25 -1451.4 8.35576 5.96903 1 Innkeeper Daughny Innkeeper Innkeeper Daughny Innkeeper service_npc 261241 1024 11 wetlands 0 0 +poi_npc_262180 tavern 0 -3226.31 -2795.98 21.2108 2.19912 1 Innkeeper Larisal Innkeeper Innkeeper Larisal Innkeeper service_npc 262180 5305 11 wetlands 0 0 +poi_npc_263884 tavern 0 -9389.1 -944.342 113.847 4.7822 1 Kazemde Innkeeper Kazemde Innkeeper service_npc 263884 12 12 elwynn 0 0 +poi_npc_264191 tavern 0 -8328.1 793.085 152.512 3.35103 1 Yasmin Innkeeper Yasmin Innkeeper service_npc 264191 5314 1519 stormwind 0 0 +poi_npc_266608 tavern 0 -10691.1 1079.78 27.6228 3.87463 1 Arcane Guest Registry Arcane Guest Registry service_npc 266608 108 40 westfall 0 0 +poi_npc_266922 tavern 0 2781.16 -432.997 116.664 2.58309 1 Innkeeper Kimlya Innkeeper Innkeeper Kimlya Innkeeper service_npc 266922 459 85 tirisfalglades 0 0 +poi_npc_266924 service 0 2151.04 -1080.37 99.487 5.98648 1 Jayla Skinning Trainer Jayla Skinning Trainer service_npc 266924 812 85 tirisfalglades 0 0 +poi_npc_267312 tavern 0 -6584.51 -3923.13 379.625 3.47321 1 Sally Gearwell Innkeeper Sally Gearwell Innkeeper service_npc 267312 5496 3 badlands 0 0 +poi_npc_267372 tavern 0 2091.67 -1208.05 101.876 0.820305 1 Innkeeper Chin'toka Innkeeper Innkeeper Chin'toka Innkeeper service_npc 267372 28 28 westernplaguelands 0 0 +poi_npc_267375 tavern 0 3051.23 -526.09 205.722 3.07178 1 Innkeeper Linkasa Innkeeper Innkeeper Linkasa Innkeeper service_npc 267375 459 85 tirisfalglades 0 0 +poi_npc_267380 tavern 0 3360.08 950.816 7.4876 1.39626 1 Innkeeper Duras Innkeeper Innkeeper Duras Innkeeper service_npc 267380 214 214 thegreatsea 0 0 +poi_npc_267779 service 0 2670.32 -374.732 110.811 1.37881 1 Aayndia Floralwind Leatherworking Trainer Aayndia Floralwind Leatherworking Trainer service_npc 267779 85 85 tirisfalglades 0 0 +poi_npc_267780 service 0 2141.11 -1128.64 99.6612 1.69297 1 Cylania Rootstalker Herbalism Trainer Cylania Rootstalker Herbalism Trainer service_npc 267780 85 85 tirisfalglades 0 0 +poi_npc_267781 service 0 2138.62 -1179.02 98.599 1.32645 1 Kylanna Alchemy Trainer Kylanna Alchemy Trainer service_npc 267781 85 85 tirisfalglades 0 0 +poi_npc_270964 service 0 3377.75 1074.24 2.27957 1.65806 1 Kil'Hiwana Fishing Trainer Kil'Hiwana Fishing Trainer service_npc 270964 214 214 thegreatsea 0 0 +poi_npc_271100 tavern 0 2341.86 -2566.99 103.177 2.28638 1 Innkeeper Kaylisk Innkeeper Innkeeper Kaylisk Innkeeper service_npc 271100 2619 139 easternplaguelands 0 0 +poi_npc_271993 tavern 0 -8703.13 -4077.16 40.5545 0 1 Carmen Ibanozzle Innkeeper Carmen Ibanozzle Innkeeper service_npc 271993 44 44 redridgemountains 0 0 +poi_npc_273383 service 0 -7230.32 -3793.36 9.10525 0.680678 1 Buzzek Bracketswing Engineering Trainer Buzzek Bracketswing Engineering Trainer service_npc 273383 3 3 badlands 0 0 +poi_npc_273485 service 0 -7167.72 -3743.08 8.83408 5.49779 1 Pikkle Mining Trainer Pikkle Mining Trainer service_npc 273485 3 3 badlands 0 0 +poi_npc_273529 service 0 -7131.99 -3839.67 9.01717 1.39626 1 Nixx Sprocketspring Goblin Engineering Trainer Nixx Sprocketspring Goblin Engineering Trainer service_npc 273529 339 3 badlands 0 0 +poi_npc_273915 tavern 0 -7069.17 -3854.53 9.93303 3.68265 1 Innkeeper Fizzgrimble Innkeeper Innkeeper Fizzgrimble Innkeeper service_npc 273915 339 3 badlands 0 0 +poi_npc_275002 tavern 0 -10653.3 1166.43 34.9278 5.77704 1 Innkeeper Heather Innkeeper Innkeeper Heather Innkeeper service_npc 275002 108 40 westfall 0 0 +poi_npc_277015 tavern 0 6695.15 -4673.04 721.65 0.541052 1 Innkeeper Vizzie Innkeeper Innkeeper Vizzie Innkeeper service_npc 277015 0 0 0 0 +poi_npc_278360 tavern 0 -622.033 -4583.4 11.7704 5.51524 1 Lard Innkeeper Lard Innkeeper service_npc 278360 3317 47 thehinterlands 0 0 +poi_npc_278379 service 0 -626.071 -4667.71 6.50807 2.75762 1 Katoom the Angler Fishing Trainer & Supplies Katoom the Angler Fishing Trainer & Supplies service_npc 278379 3317 47 thehinterlands 0 0 +poi_npc_278612 tavern 0 328.227 -4122.65 117.284 4.13643 1 Innkeeper Keirnan Innkeeper Innkeeper Keirnan Innkeeper service_npc 278612 5323 47 thehinterlands 0 0 +poi_npc_279314 tavern 0 -21.6719 -2799.42 121.814 5.044 1 Bitsy Innkeeper Bitsy Innkeeper service_npc 279314 1885 47 thehinterlands 0 0 +poi_npc_279447 service 0 350.42 -2090.4 113.868 6.26573 1 Drakk Stonehand Leatherworking Trainer Drakk Stonehand Leatherworking Trainer service_npc 279447 349 47 thehinterlands 0 0 +poi_npc_279448 tavern 0 320.059 -2119.22 121.922 3.40339 1 Innkeeper Thulfram Innkeeper Innkeeper Thulfram Innkeeper service_npc 279448 349 47 thehinterlands 0 0 +poi_npc_280039 service 0 -9375.68 -74.4761 64.5206 3.45575 1 Adele Fielder Leatherworking Trainer Adele Fielder Leatherworking Trainer service_npc 280039 87 12 elwynn 0 0 +poi_npc_280085 service 0 -9059.67 148.566 115.222 1.6057 1 Herbalist Pomeroy Herbalism Trainer Herbalist Pomeroy Herbalism Trainer service_npc 280085 12 12 elwynn 0 0 +poi_npc_280685 service 0 -9456.65 87.8553 58.4271 2.40855 1 Smith Argus Blacksmithing Trainer Smith Argus Blacksmithing Trainer service_npc 280685 87 12 elwynn 0 0 +poi_npc_280690 service 0 -9494.04 79.2656 56.2886 0.925025 1 Lien Farner Profession Trainer Lien Farner Profession Trainer service_npc 280690 87 12 elwynn 0 0 +poi_npc_280695 service 0 -9380.23 -69.5295 64.5206 4.55531 1 Helene Peltskinner Skinning Trainer Helene Peltskinner Skinning Trainer service_npc 280695 87 12 elwynn 0 0 +poi_npc_280703 service 0 -9456.81 29.361 63.9038 2.96706 1 Michelle Belle First Aid Trainer Michelle Belle First Aid Trainer service_npc 280703 5637 12 elwynn 0 0 +poi_npc_280710 tavern 0 -9462.66 16.1915 57.0459 3.03687 1 Innkeeper Farley Innkeeper Innkeeper Farley Innkeeper service_npc 280710 5637 12 elwynn 0 0 +poi_npc_280717 service 0 -9466.99 -4.53396 57.033 1.64061 1 Tomas Cooking Trainer Tomas Cooking Trainer service_npc 280717 5637 12 elwynn 0 0 +poi_npc_281152 service 0 -9537.24 -1214.05 48.2341 4.90438 1 Eldrin Tailoring Trainer Eldrin Tailoring Trainer service_npc 281152 88 12 elwynn 0 0 +poi_npc_281488 service 0 -9576.3 -718.125 99.2704 3.05433 1 Kitta Firewind Enchanting Trainer Kitta Firewind Enchanting Trainer service_npc 281488 91 12 elwynn 0 0 +poi_npc_281595 service 0 -9382.08 -117.005 58.9841 4.43314 1 Lee Brown Fishing Trainer Lee Brown Fishing Trainer service_npc 281595 18 12 elwynn 0 0 +poi_npc_281939 service 0 3516.72 -6520.23 56.1618 1.48353 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 281939 308 308 theforbiddingsea 0 0 +poi_npc_281941 tavern 0 3527.24 -6518.98 43.5854 0.122173 1 Mixi Innkeeper Mixi Innkeeper service_npc 281941 308 308 theforbiddingsea 0 0 +poi_npc_281946 tavern 0 3529.67 -6518.78 43.5852 3.28122 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 281946 308 308 theforbiddingsea 0 0 +poi_npc_285352 service 0 -1215.47 -1884.28 87.6511 0.15708 1 Brumn Winterhoof Leatherworking Trainer Brumn Winterhoof Leatherworking Trainer service_npc 285352 45 45 arathihighlands 0 0 +poi_npc_285694 tavern 0 -1278.7 -2514.56 21.5273 5.44543 1 Vikki Lonsav Innkeeper Vikki Lonsav Innkeeper service_npc 285694 320 45 arathihighlands 0 0 +poi_npc_286042 tavern 0 -912.374 -3524.92 72.7679 3.14159 1 Innkeeper Adegwa Innkeeper Innkeeper Adegwa Innkeeper service_npc 286042 321 45 arathihighlands 0 0 +poi_npc_286048 service 0 -944.927 -3533.55 71.533 2.3911 1 Slagg Superior Butcher Slagg Superior Butcher service_npc 286048 321 45 arathihighlands 0 0 +poi_npc_286493 service 0 2097.17 -4826.23 27.9627 3.1765 1 Borgosh Corebender Blacksmithing Trainer Borgosh Corebender Blacksmithing Trainer service_npc 286493 139 139 easternplaguelands 0 0 +poi_npc_286494 service 0 2086.36 -4837.17 27.8338 4.69494 1 Saru Steelfury Blacksmithing Trainer Saru Steelfury Blacksmithing Trainer service_npc 286494 139 139 easternplaguelands 0 0 +poi_npc_286497 service 0 2092.53 -4816.99 27.9775 4.2237 1 Okothos Ironrager Blacksmithing Trainer Okothos Ironrager Blacksmithing Trainer service_npc 286497 139 139 easternplaguelands 0 0 +poi_npc_286505 service 0 2056.53 -4826.79 27.5544 5.60251 1 Shayis Steelfury Blacksmithing Trainer Shayis Steelfury Blacksmithing Trainer service_npc 286505 139 139 easternplaguelands 0 0 +poi_npc_286508 service 0 2056.6 -4834.38 27.6174 5.86431 1 Kelgruk Bloodaxe Blacksmithing Trainer Kelgruk Bloodaxe Blacksmithing Trainer service_npc 286508 139 139 easternplaguelands 0 0 +poi_npc_286514 service 0 2081.98 -4764.08 28.0087 3.4383 1 Makaru Mining Trainer Makaru Mining Trainer service_npc 286514 139 139 easternplaguelands 0 0 +poi_npc_286595 tavern 0 1916.46 -4732.79 39.0197 1.01229 1 Innkeeper Nufa Innkeeper Innkeeper Nufa Innkeeper service_npc 286595 139 139 easternplaguelands 0 0 +poi_npc_286597 service 0 2000.46 -4662.07 28.5751 1.50098 1 Lumak Fishing Trainer Lumak Fishing Trainer service_npc 286597 2264 139 easternplaguelands 0 0 +poi_npc_286646 service 0 1852.91 -4570.06 25.0641 4.55531 1 Thuwd Skinning Trainer Thuwd Skinning Trainer service_npc 286646 2621 139 easternplaguelands 0 0 +poi_npc_286647 service 0 1850.18 -4565.55 25.0641 3.19395 1 Karolek Leatherworking Trainer Karolek Leatherworking Trainer service_npc 286647 2621 139 easternplaguelands 0 0 +poi_npc_286670 service 0 1830.8 -4494.98 23.6838 0.890118 1 Roxxik Engineering Trainer Roxxik Engineering Trainer service_npc 286670 2621 139 easternplaguelands 0 0 +poi_npc_286684 service 0 1838.72 -4464.13 47.6899 0 1 Nerog Inscription Trainer Nerog Inscription Trainer service_npc 286684 2621 139 easternplaguelands 0 0 +poi_npc_286703 service 0 1963.26 -4468.53 25.8766 2.86234 1 Yelmak Alchemy Trainer Yelmak Alchemy Trainer service_npc 286703 2264 139 easternplaguelands 0 0 +poi_npc_286706 service 0 1912 -4436.75 24.8761 2.86234 1 Godan Enchanting Trainer Godan Enchanting Trainer service_npc 286706 2264 139 easternplaguelands 0 0 +poi_npc_286708 service 0 1902.69 -4450.71 53.4044 4.34104 1 Muraga Herbalism Trainer Muraga Herbalism Trainer service_npc 286708 2264 139 easternplaguelands 0 0 +poi_npc_286760 service 0 1899.82 -4181.78 37.967 0.296706 1 Hiwahi Three-Feathers Tailoring Trainer Hiwahi Three-Feathers Tailoring Trainer service_npc 286760 139 139 easternplaguelands 0 0 +poi_npc_286763 tavern 0 1922.61 -4182.53 37.967 5.11381 1 Miwana Innkeeper Miwana Innkeeper service_npc 286763 2623 139 easternplaguelands 0 0 +poi_npc_286768 service 0 1910.17 -4191.3 37.2747 5.16617 1 Rento Skinning Trainer Rento Skinning Trainer service_npc 286768 2623 139 easternplaguelands 0 0 +poi_npc_286890 service 0 1758.03 -4112.26 51.7814 2.40855 1 Jandi Herbalism Trainer Jandi Herbalism Trainer service_npc 286890 139 139 easternplaguelands 0 0 +poi_npc_286903 tavern 0 1734.55 -4077.61 50.6273 1.98968 1 Sijambi Innkeeper Sijambi Innkeeper service_npc 286903 139 139 easternplaguelands 0 0 +poi_npc_286920 service 0 1678.85 -4067.18 51.5161 3.05433 1 Zamja Cooking Trainer Zamja Cooking Trainer service_npc 286920 139 139 easternplaguelands 0 0 +poi_npc_286921 service 0 1705.74 -4118.14 48.3627 1.23918 1 Old Umbehto Fishing Trainer & Supplies Old Umbehto Fishing Trainer & Supplies service_npc 286921 139 139 easternplaguelands 0 0 +poi_npc_286933 service 0 1689.63 -4127.82 66.3357 5.88176 1 Jo'mah Inscription Trainer Jo'mah Inscription Trainer service_npc 286933 139 139 easternplaguelands 0 0 +poi_npc_286980 service 0 1474.88 -4149.25 52.9052 2.67528 1 Krenk Choplimb First Aid Trainer Krenk Choplimb First Aid Trainer service_npc 286980 139 139 easternplaguelands 0 0 +poi_npc_286991 service 0 1483.09 -4142.57 52.436 6.19592 1 "Jack" Pisarek Slamfix Engineering Trainer "Jack" Pisarek Slamfix Engineering Trainer service_npc 286991 139 139 easternplaguelands 0 0 +poi_npc_287001 service 0 1526.54 -4130.65 51.3357 0.959931 1 Kark Helmbreaker Blacksmithing Trainer Kark Helmbreaker Blacksmithing Trainer service_npc 287001 139 139 easternplaguelands 0 0 +poi_npc_287004 service 0 1487.83 -4187.19 53.4039 1.13446 1 Zarbo Porkpatty Cooking Trainer Zarbo Porkpatty Cooking Trainer service_npc 287004 139 139 easternplaguelands 0 0 +poi_npc_287005 service 0 1529.12 -4133.45 51.1367 1.64061 1 Gizzik Oregrab Mining Trainer Gizzik Oregrab Mining Trainer service_npc 287005 139 139 easternplaguelands 0 0 +poi_npc_287033 tavern 0 1545.31 -4195.52 52.7315 4.62512 1 Tinza Silvermug Innkeeper Tinza Silvermug Innkeeper service_npc 287033 139 139 easternplaguelands 0 0 +poi_npc_287101 service 0 1562.72 -4223.45 54.2681 1.309 1 Nivi Weavewell Tailoring Trainer Nivi Weavewell Tailoring Trainer service_npc 287101 139 139 easternplaguelands 0 0 +poi_npc_287122 service 0 1591.39 -4275.7 21.5463 1.0472 1 Rogg Blacksmithing Trainer Rogg Blacksmithing Trainer service_npc 287122 139 139 easternplaguelands 0 0 +poi_npc_287214 tavern 0 1573.27 -4439.16 16.1397 1.90241 1 Innkeeper Gryshka Innkeeper Innkeeper Gryshka Innkeeper service_npc 287214 2621 139 easternplaguelands 0 0 +poi_npc_287315 tavern 0 -5676.2 -4253.09 407.092 5.68977 1 Vyrin Swiftwind Innkeeper Vyrin Swiftwind Innkeeper service_npc 287315 147 38 lochmodan 0 0 +poi_npc_287981 service 0 -4670.76 -3174.55 312.89 3.21141 1 Deek Fizzlebizz Engineering Trainer Deek Fizzlebizz Engineering Trainer service_npc 287981 146 38 lochmodan 0 0 +poi_npc_288215 service 0 -5217.33 -3112.92 300.988 0.861592 1 Warg Deepwater Fishing Trainer Warg Deepwater Fishing Trainer service_npc 288215 556 38 lochmodan 0 0 +poi_npc_288275 tavern 0 -5377.91 -2973.91 323.252 1.78024 1 Innkeeper Hearthstove Innkeeper Innkeeper Hearthstove Innkeeper service_npc 288275 2101 38 lochmodan 0 0 +poi_npc_288296 service 0 -5350.7 -3021.61 326.415 1.06465 1 Brock Stoneseeker Mining Trainer Brock Stoneseeker Mining Trainer service_npc 288296 144 38 lochmodan 0 0 +poi_npc_288305 service 0 -5380.46 -2999.76 330.719 0.226893 1 Kali Healtouch Herbalism Trainer Kali Healtouch Herbalism Trainer service_npc 288305 144 38 lochmodan 0 0 +poi_npc_288308 service 0 -5395.86 -3016.18 327.663 0.436332 1 Ghak Healtouch Alchemy Trainer Ghak Healtouch Alchemy Trainer service_npc 288308 144 38 lochmodan 0 0 +poi_npc_289405 tavern 0 -7006.62 -2537.2 241.796 0 1 Ivan Zypher Innkeeper Ivan Zypher Innkeeper service_npc 289405 5564 3 badlands 0 0 +poi_npc_289967 service 0 9503.18 -6897.75 28.4305 2.70526 1 Saren Profession Trainer Saren Profession Trainer service_npc 289967 0 0 0 0 +poi_npc_290189 service 0 7768.57 -2429.68 487.31 4.85202 1 Malvor Herbalism Trainer Malvor Herbalism Trainer service_npc 290189 0 0 0 0 +poi_npc_290562 service 0 -4421.53 6289.18 13.9276 0.191986 1 Steven Stagnaro Fishing Trainer Steven Stagnaro Fishing Trainer service_npc 290562 5146 5146 vashjir 0 0 +poi_npc_292982 tavern 0 -10077 -2809.17 24.2052 2.80998 1 Verad Innkeeper Verad Innkeeper service_npc 292982 657 8 swampofsorrows 0 0 +poi_npc_293071 service 0 -10474.9 -3335.97 25.5542 0.261799 1 Rogvar Alchemy Trainer Rogvar Alchemy Trainer service_npc 293071 75 8 swampofsorrows 0 0 +poi_npc_293076 tavern 0 -10487.3 -3258.83 21.2236 6.17846 1 Innkeeper Karakul Innkeeper Innkeeper Karakul Innkeeper service_npc 293076 75 8 swampofsorrows 0 0 +poi_npc_293698 tavern 0 -9766.99 -3879.23 22.0179 3.4383 1 Cap'n Geech Innkeeper Cap'n Geech Innkeeper service_npc 293698 5458 8 swampofsorrows 0 0 +poi_npc_293973 service 0 -997.349 206.727 136.221 1.78024 1 Pand Stonebinder First Aid Trainer Pand Stonebinder First Aid Trainer service_npc 293973 288 267 hillsbradfoothills 0 0 +poi_npc_293974 service 0 -995.053 217.069 104.743 0.506145 1 Poshken Hardbinder Inscription Trainer Poshken Hardbinder Inscription Trainer service_npc 293974 288 267 hillsbradfoothills 0 0 +poi_npc_294059 service 0 -1045.32 -266.444 159.113 3.87463 1 Otoh Greyhide Archaeology Trainer Otoh Greyhide Archaeology Trainer service_npc 294059 295 267 hillsbradfoothills 0 0 +poi_npc_294086 service 0 -1172.76 -69.2332 162.284 3.26377 1 Kah Mistrunner Fishing Trainer Kah Mistrunner Fishing Trainer service_npc 294086 295 267 hillsbradfoothills 0 0 +poi_npc_294097 service 0 -1219.57 -12.6973 165.945 5.37561 1 Aska Mistrunner Cooking Trainer Aska Mistrunner Cooking Trainer service_npc 294097 295 267 hillsbradfoothills 0 0 +poi_npc_294103 service 0 -1131.19 -4.70871 143.644 0.087266 1 Komin Winterhoof Herbalism Trainer Komin Winterhoof Herbalism Trainer service_npc 294103 295 267 hillsbradfoothills 0 0 +poi_npc_294107 service 0 -1080.81 30.1093 140.91 3.68265 1 Bena Winterhoof Alchemy Trainer Bena Winterhoof Alchemy Trainer service_npc 294107 295 267 hillsbradfoothills 0 0 +poi_npc_294224 service 0 -2350.51 -238.716 -8.30635 2.44346 1 Uthan Stillwater Fishing Trainer Uthan Stillwater Fishing Trainer service_npc 294224 2365 11 wetlands 0 0 +poi_npc_294590 tavern 0 -6726.68 -2464.54 274.661 2.28638 1 Innkeeper Shul'kar Innkeeper Innkeeper Shul'kar Innkeeper service_npc 294590 5565 3 badlands 0 0 +poi_npc_294701 tavern 0 -2365.37 -347.31 -8.87365 5.84685 1 Innkeeper Kauth Innkeeper Innkeeper Kauth Innkeeper service_npc 294701 2365 11 wetlands 0 0 +poi_npc_296052 service 0 -2263.26 -284.941 -9.29335 4.72984 1 Pyall Silentstride Cooking Trainer Pyall Silentstride Cooking Trainer service_npc 296052 2365 11 wetlands 0 0 +poi_npc_296072 service 0 -2357.02 -356.585 -8.87365 1.15192 1 Vira Younghoof First Aid Trainer Vira Younghoof First Aid Trainer service_npc 296072 2365 11 wetlands 0 0 +poi_npc_296074 service 0 -2263.98 -324.861 -9.34158 2.96706 1 Lalum Darkmane Profession Trainer Lalum Darkmane Profession Trainer service_npc 296074 2365 11 wetlands 0 0 +poi_npc_296075 service 0 -2251.83 -288.483 -9.34156 3.92699 1 Yonn Deepcut Skinning Trainer Yonn Deepcut Skinning Trainer service_npc 296075 2365 11 wetlands 0 0 +poi_npc_296077 service 0 -2254.65 -286.531 -9.34156 4.20624 1 Chaw Stronghide Leatherworking Trainer Chaw Stronghide Leatherworking Trainer service_npc 296077 2365 11 wetlands 0 0 +poi_npc_296156 tavern 0 -1300.28 38.4858 129.292 0.558505 1 Innkeeper Pala Innkeeper Innkeeper Pala Innkeeper service_npc 296156 295 267 hillsbradfoothills 0 0 +poi_npc_296219 service 0 -1117.48 43.783 141.194 2.35619 1 Teg Dawnstrider Enchanting Trainer Teg Dawnstrider Enchanting Trainer service_npc 296219 295 267 hillsbradfoothills 0 0 +poi_npc_296223 service 0 -1146.21 83.4766 145.949 4.24115 1 Una Leatherworking Trainer Una Leatherworking Trainer service_npc 296223 295 267 hillsbradfoothills 0 0 +poi_npc_296227 service 0 -1150.26 52.8149 144.92 5.65487 1 Mooranta Skinning Trainer Mooranta Skinning Trainer service_npc 296227 295 267 hillsbradfoothills 0 0 +poi_npc_296235 service 0 -1165.59 51.9393 145.878 0.750492 1 Tepa Tailoring Trainer Tepa Tailoring Trainer service_npc 296235 295 267 hillsbradfoothills 0 0 +poi_npc_296248 service 0 -1225.76 153.337 133.357 5.09636 1 Nahari Cloudchaser Jewelcrafting Trainer Nahari Cloudchaser Jewelcrafting Trainer service_npc 296248 295 267 hillsbradfoothills 0 0 +poi_npc_296255 service 0 -1233.33 105.637 129.456 5.61996 1 Karn Stonehoof Blacksmithing Trainer Karn Stonehoof Blacksmithing Trainer service_npc 296255 295 267 hillsbradfoothills 0 0 +poi_npc_296258 service 0 -1252.9 157.965 133.63 5.8294 1 Brek Stonehoof Mining Trainer Brek Stonehoof Mining Trainer service_npc 296258 295 267 hillsbradfoothills 0 0 +poi_npc_296262 service 0 -1264.73 140.592 132.629 4.85202 1 Engineer Palehoof Engineering Trainer Engineer Palehoof Engineering Trainer service_npc 296262 295 267 hillsbradfoothills 0 0 +poi_npc_296314 service 0 -3777.25 -4366.21 15.0269 0.20944 1 "Kobold" Kerik Mining Trainer & Supplies "Kobold" Kerik Mining Trainer & Supplies service_npc 296314 4922 4922 twilighthighlands 0 0 +poi_npc_296315 service 0 -3785.93 -4366.85 16.8761 4.18879 1 Marie Holdston Blacksmithing Trainer Marie Holdston Blacksmithing Trainer service_npc 296315 4922 4922 twilighthighlands 0 0 +poi_npc_296316 service 0 -3798.24 -4374.62 16.8704 1.85005 1 Caz Twosprocket Engineering Trainer Caz Twosprocket Engineering Trainer service_npc 296316 4922 4922 twilighthighlands 0 0 +poi_npc_296346 service 0 -3846.73 -4449.22 17.3393 0.017453 1 Timothy Worthington Tailoring Trainer Timothy Worthington Tailoring Trainer service_npc 296346 5641 4922 twilighthighlands 0 0 +poi_npc_296458 service 0 -3849.32 -4610.15 8.75931 4.55531 1 "Dirty" Michael Crowe Fishing Trainer & Supplies "Dirty" Michael Crowe Fishing Trainer & Supplies service_npc 296458 5641 4922 twilighthighlands 0 0 +poi_npc_296499 service 0 -3747.27 -4532.25 11.9802 0.418879 1 Doctor Gustaf VanHowzen First Aid Trainer Doctor Gustaf VanHowzen First Aid Trainer service_npc 296499 5641 4922 twilighthighlands 0 0 +poi_npc_296531 service 0 -3774.62 -4448.33 65.1081 3.19395 1 Theoden Manners Inscription Trainer & Supplies Theoden Manners Inscription Trainer & Supplies service_npc 296531 5641 4922 twilighthighlands 0 0 +poi_npc_296538 service 0 -3772.04 -4441.65 65.1081 4.74729 1 Lissah Spellwick Enchanting Trainer & Supplies Lissah Spellwick Enchanting Trainer & Supplies service_npc 296538 5641 4922 twilighthighlands 0 0 +poi_npc_296555 service 0 -3617.13 -4487.07 14.3148 1.72788 1 Craig Nollward Cooking Trainer Craig Nollward Cooking Trainer service_npc 296555 4922 4922 twilighthighlands 0 0 +poi_npc_296566 service 0 -3613.09 -4461.89 13.7046 0.331613 1 Eustace Tanwell Leatherworking Trainer & Supplies Eustace Tanwell Leatherworking Trainer & Supplies service_npc 296566 4922 4922 twilighthighlands 0 0 +poi_npc_296567 service 0 -3612.22 -4458.99 13.7046 3.24631 1 Humbert Tanwell Skinning Trainer Humbert Tanwell Skinning Trainer service_npc 296567 4922 4922 twilighthighlands 0 0 +poi_npc_296569 tavern 0 -3619.51 -4462.25 13.7046 1.8326 1 Innkeeper Janene Innkeeper Innkeeper Janene Innkeeper service_npc 296569 4922 4922 twilighthighlands 0 0 +poi_npc_296570 service 0 -3612.48 -4456.34 21.1856 3.47321 1 Ingo Woolybush Jewelcrafting Trainer & Supplies Ingo Woolybush Jewelcrafting Trainer & Supplies service_npc 296570 4922 4922 twilighthighlands 0 0 +poi_npc_296572 service 0 -3618.92 -4454.05 21.1856 4.7822 1 Faena Woolybush Archaeology Trainer Faena Woolybush Archaeology Trainer service_npc 296572 4922 4922 twilighthighlands 0 0 +poi_npc_296590 service 0 -3700.84 -4331.73 11.5004 4.46804 1 Alchemist Narett Alchemy Trainer Alchemist Narett Alchemy Trainer service_npc 296590 4922 4922 twilighthighlands 0 0 +poi_npc_296592 service 0 -3697.02 -4335.27 11.5014 3.33358 1 Brant Jasperbloom Herbalism Trainer Brant Jasperbloom Herbalism Trainer service_npc 296592 4922 4922 twilighthighlands 0 0 +poi_npc_296954 tavern 0 -2096.83 -3504.85 95.0771 3.64774 1 Keep Watcher Kerry Innkeeper Keep Watcher Kerry Innkeeper service_npc 296954 45 45 arathihighlands 0 0 +poi_npc_297587 tavern 0 -3165.61 -2911.76 35.1392 0.733038 1 "Little" Logok Innkeeper "Little" Logok Innkeeper service_npc 297587 1016 11 wetlands 0 0 +poi_npc_298285 tavern 0 -4629.94 -3176.12 41.2235 6.26344 1 Axle Innkeeper Axle Innkeeper service_npc 298285 146 38 lochmodan 0 0 +poi_npc_298845 tavern 0 -3220.69 -1663.86 99.9925 3.9968 1 Innkeeper Lhakadd Innkeeper Innkeeper Lhakadd Innkeeper service_npc 298845 1024 11 wetlands 0 0 +poi_npc_299015 tavern 0 -3183.29 -2279.11 93.3642 4.81711 1 Logistics Officer Salista Innkeeper Logistics Officer Salista Innkeeper service_npc 299015 11 11 wetlands 0 0 +poi_npc_299136 service 0 -2113.46 -1707.55 99.5747 0.17012 1 Mahani Tailoring Trainer Mahani Tailoring Trainer service_npc 299136 328 45 arathihighlands 0 0 +poi_npc_299174 service 0 -2310.22 -1930.83 96.0966 4.66003 1 Krulmoo Fullmoon Leatherworking Trainer Krulmoo Fullmoon Leatherworking Trainer service_npc 299174 45 45 arathihighlands 0 0 +poi_npc_299219 service 0 -2375.17 -1945.64 96.1441 1.01229 1 Dranh Skinning Trainer Dranh Skinning Trainer service_npc 299219 11 11 wetlands 0 0 +poi_npc_300050 tavern 0 -785.29 -1552.46 140.49 4.50295 1 Innkeeper Hurnahet Innkeeper Innkeeper Hurnahet Innkeeper service_npc 300050 1057 267 hillsbradfoothills 0 0 +poi_npc_300229 tavern 0 -341.958 -1538.93 87.3201 2.19912 1 Logistics Officer Renaldo Innkeeper Logistics Officer Renaldo Innkeeper service_npc 300229 275 267 hillsbradfoothills 0 0 +poi_npc_300584 tavern 0 -12723.6 -2817.64 7.62432 4.72984 1 Donna Berrymore Innkeeper Donna Berrymore Innkeeper service_npc 300584 5084 4 blasted_lands 0 0 +poi_npc_301269 tavern 0 -10925.3 -3417.68 66.5808 3.75246 1 Mama Morton Innkeeper Mama Morton Innkeeper service_npc 301269 1438 4 blasted_lands 0 0 +poi_npc_301439 tavern 0 -10859.7 -2674.27 9.89103 3.59538 1 Innkeeper Grak Innkeeper Innkeeper Grak Innkeeper service_npc 301439 1437 4 blasted_lands 0 0 +poi_npc_302189 tavern 0 -1050.04 -3664.8 23.9685 6.00393 1 Innkeeper Wiley Innkeeper Innkeeper Wiley Innkeeper service_npc 302189 321 45 arathihighlands 0 0 +poi_npc_302322 service 0 -534.552 -2979.56 93.147 5.91667 1 Duhng Cooking Trainer Duhng Cooking Trainer service_npc 302322 353 47 thehinterlands 0 0 +poi_npc_302345 service 0 -340.694 -2575.09 97.6699 3.03687 1 Traugh Blacksmithing Trainer Traugh Blacksmithing Trainer service_npc 302345 47 47 thehinterlands 0 0 +poi_npc_302365 tavern 0 -407.123 -2645.23 96.3063 3.4383 1 Innkeeper Boorand Plainswind Innkeeper Innkeeper Boorand Plainswind Innkeeper service_npc 302365 47 47 thehinterlands 0 0 +poi_npc_302388 service 0 -529.43 -2667.07 95.8709 3.28122 1 Kil'hala Tailoring Trainer Kil'hala Tailoring Trainer service_npc 302388 353 47 thehinterlands 0 0 +poi_npc_303484 tavern 0 1175.09 -3390.79 91.9889 3.24631 1 Innkeeper Kritzle Innkeeper Innkeeper Kritzle Innkeeper service_npc 303484 139 139 easternplaguelands 0 0 +poi_npc_303746 tavern 0 278.771 -3029.59 97.4772 3.80482 1 Innkeeper Kerntis Innkeeper Innkeeper Kerntis Innkeeper service_npc 303746 47 47 thehinterlands 0 0 +poi_npc_303968 service 0 -840.882 -3727.2 19.9711 4.7822 1 Tinkerwiz Engineering Trainer Tinkerwiz Engineering Trainer service_npc 303968 45 45 arathihighlands 0 0 +poi_npc_303969 service 0 -836.957 -3729.89 19.9708 4.13643 1 Vazario Linkgrease Goblin Engineering Trainer Vazario Linkgrease Goblin Engineering Trainer service_npc 303969 45 45 arathihighlands 0 0 +poi_npc_305396 service 0 -5197.73 54.8182 385.752 4.95674 1 Paxton Ganter Fishing Trainer Paxton Ganter Fishing Trainer service_npc 305396 211 1 dun_morogh 0 0 +poi_npc_306229 service 0 -5581.89 -429.616 397.568 1.20418 1 Tognus Flintfire Blacksmithing Trainer Tognus Flintfire Blacksmithing Trainer service_npc 306229 131 1 dun_morogh 0 0 +poi_npc_306357 service 0 -5593.35 -543.233 398.77 0.011483 1 Gremlock Pilsnor Cooking Trainer Gremlock Pilsnor Cooking Trainer service_npc 306357 2102 1 dun_morogh 0 0 +poi_npc_306359 service 0 -5604.49 -521.427 399.741 5.32325 1 Thamner Pol First Aid Trainer Thamner Pol First Aid Trainer service_npc 306359 2102 1 dun_morogh 0 0 +poi_npc_306360 tavern 0 -5601.6 -531.203 399.736 2.1293 1 Innkeeper Belm Innkeeper Innkeeper Belm Innkeeper service_npc 306360 2102 1 dun_morogh 0 0 +poi_npc_306368 service 0 -5637.13 -497.88 396.752 2.21657 1 Wembil Taskwidget Profession Trainer Wembil Taskwidget Profession Trainer service_npc 306368 131 1 dun_morogh 0 0 +poi_npc_306497 service 0 -5528.87 -660.74 393.413 5.11381 1 Yarr Hammerstone Mining Trainer Yarr Hammerstone Mining Trainer service_npc 306497 189 1 dun_morogh 0 0 +poi_npc_306507 service 0 -5531.22 -670.668 393.413 1.98968 1 Bronk Guzzlegear Engineering Trainer Bronk Guzzlegear Engineering Trainer service_npc 306507 189 1 dun_morogh 0 0 +poi_npc_306842 service 0 -5665.97 -1565.55 383.275 2.32129 1 Cook Ghilm Cooking Trainer Cook Ghilm Cooking Trainer service_npc 306842 134 1 dun_morogh 0 0 +poi_npc_306897 service 0 -5697.9 -1612.16 383.388 1.09956 1 Dank Drizzlecut Mining Trainer Dank Drizzlecut Mining Trainer service_npc 306897 134 1 dun_morogh 0 0 +poi_npc_307486 service 0 -4740.69 -1028.76 504.515 2.49582 1 Balthus Stoneflayer Skinning Trainer Balthus Stoneflayer Skinning Trainer service_npc 307486 5342 1537 ironforge 0 0 +poi_npc_307487 service 0 -4746.93 -1031.74 504.515 2.54818 1 Fimble Finespindle Leatherworking Trainer Fimble Finespindle Leatherworking Trainer service_npc 307487 5342 1537 ironforge 0 0 +poi_npc_307490 service 0 -4724.12 -1054.71 504.28 2.14675 1 Jormund Stonebrow Tailoring Trainer Jormund Stonebrow Tailoring Trainer service_npc 307490 5342 1537 ironforge 0 0 +poi_npc_307495 service 0 -4795.11 -1108.57 498.89 5.28835 1 Grumnus Steelshaper Blacksmithing Trainer Grumnus Steelshaper Blacksmithing Trainer service_npc 307495 5342 1537 ironforge 0 0 +poi_npc_307498 service 0 -4787.96 -1129.03 498.889 2.84489 1 Bengus Deepforge Blacksmithing Trainer Bengus Deepforge Blacksmithing Trainer service_npc 307498 5342 1537 ironforge 0 0 +poi_npc_307500 service 0 -4799.05 -1111.48 498.89 5.58505 1 Ironus Coldsteel Blacksmith Trainer Ironus Coldsteel Blacksmith Trainer service_npc 307500 5342 1537 ironforge 0 0 +poi_npc_307565 service 0 -4709.06 -1109.88 504.529 6.0912 1 Geofram Bouldertoe Mining Trainer Geofram Bouldertoe Mining Trainer service_npc 307565 5342 1537 ironforge 0 0 +poi_npc_307567 service 0 -4706.71 -1110.23 504.527 3.01942 1 Hanner Gembold Jewelcrafting Trainer Hanner Gembold Jewelcrafting Trainer service_npc 307567 5342 1537 ironforge 0 0 +poi_npc_307570 service 0 -4609.25 -1093.96 505.086 3.1765 1 Grimnur Stonebrand Fishing Trainer Grimnur Stonebrand Fishing Trainer service_npc 307570 4679 1537 ironforge 0 0 +poi_npc_307592 service 0 -4807.64 -1196.03 505.897 0.122173 1 Elise Brightletter Inscription Trainer Elise Brightletter Inscription Trainer service_npc 307592 5342 1537 ironforge 0 0 +poi_npc_307600 service 0 -4808.33 -1188.84 512.563 5.58505 1 Gimble Thistlefuzz Enchanting Trainer Gimble Thistlefuzz Enchanting Trainer service_npc 307600 5342 1537 ironforge 0 0 +poi_npc_307604 service 0 -4761.46 -1188.56 509.479 0.558505 1 Daryl Riknussun Cooking Trainer Daryl Riknussun Cooking Trainer service_npc 307604 5342 1537 ironforge 0 0 +poi_npc_307612 service 0 -4798.97 -1254.84 502.086 5.21853 1 Springspindle Fizzlegear Engineering Trainer Springspindle Fizzlegear Engineering Trainer service_npc 307612 1537 1537 ironforge 0 0 +poi_npc_307616 service 0 -4834.77 -1263.45 501.951 4.72984 1 Tinkmaster Overspark Gnomish Engineering Trainer Tinkmaster Overspark Gnomish Engineering Trainer service_npc 307616 1537 1537 ironforge 0 0 +poi_npc_307643 service 0 -4863.04 -1240.3 501.807 3.75246 1 Tally Berryfizz Alchemy Trainer Tally Berryfizz Alchemy Trainer service_npc 307643 1537 1537 ironforge 0 0 +poi_npc_307661 service 0 -4881.24 -1155.52 505.853 5.34071 1 Reyna Stonebranch Herbalism Trainer Reyna Stonebranch Herbalism Trainer service_npc 307661 5342 1537 ironforge 0 0 +poi_npc_307667 service 0 -4876.62 -1149.14 512.52 3.57792 1 Nissa Firestone First Aid Trainer Nissa Firestone First Aid Trainer service_npc 307667 5342 1537 ironforge 0 0 +poi_npc_307710 tavern 0 -4840.67 -857.094 501.997 4.86947 1 Innkeeper Firebrew Innkeeper Innkeeper Firebrew Innkeeper service_npc 307710 5719 1537 ironforge 0 0 +poi_npc_307758 service 0 -4627.8 -1311.3 502.076 2.23402 1 Doktor Professor Ironpants Archaeology Trainer Doktor Professor Ironpants Archaeology Trainer service_npc 307758 5341 1537 ironforge 0 0 +poi_npc_309540 service 0 -849.71 -4903.71 21.9105 5.13127 1 Mishiki Herbalism Trainer Mishiki Herbalism Trainer service_npc 309540 307 47 thehinterlands 0 0 +poi_npc_309560 service 0 -911.42 -4993.25 12.2295 4.32842 1 Lau'Tiki Fishing Trainer Lau'Tiki Fishing Trainer service_npc 309560 307 47 thehinterlands 0 0 +poi_npc_309592 service 0 -798.274 -4892.27 22.983 3.90954 1 Miao'zan Alchemy Trainer Miao'zan Alchemy Trainer service_npc 309592 307 47 thehinterlands 0 0 +poi_npc_310295 service 0 330.355 -4826.93 10.6074 2.79253 1 Rawrk First Aid Trainer Rawrk First Aid Trainer service_npc 310295 307 47 thehinterlands 0 0 +poi_npc_310320 service 0 329.035 -4762.35 12.639 2.47837 1 Runda Profession Trainer Runda Profession Trainer service_npc 310320 307 47 thehinterlands 0 0 +poi_npc_310323 tavern 0 340.363 -4686.29 16.5725 1.01229 1 Innkeeper Grosk Innkeeper Innkeeper Grosk Innkeeper service_npc 310323 307 47 thehinterlands 0 0 +poi_npc_310332 service 0 367.181 -4702.14 16.3944 3.85718 1 Krunn Mining Trainer Krunn Mining Trainer service_npc 310332 307 47 thehinterlands 0 0 +poi_npc_310336 service 0 370.195 -4721.57 13.359 4.67748 1 Mukdrak Engineering Trainer Mukdrak Engineering Trainer service_npc 310336 307 47 thehinterlands 0 0 +poi_npc_310337 service 0 373.106 -4713.63 15.8902 5.18363 1 Dwukk Blacksmithing Trainer Dwukk Blacksmithing Trainer service_npc 310337 307 47 thehinterlands 0 0 +poi_npc_310846 service 0 1574.99 -4281.41 21.476 5.93412 1 Gonto Mining Trainer Gonto Mining Trainer service_npc 310846 139 139 easternplaguelands 0 0 +poi_npc_310902 service 0 1668.57 -4359.84 26.8577 2.51327 1 Belloc Brightblade Archaeology Trainer Belloc Brightblade Archaeology Trainer service_npc 310902 2621 139 easternplaguelands 0 0 +poi_npc_310986 service 0 1904.11 -4211.94 37.0629 2.82743 1 Opuno Ironhorn Blacksmithing Trainer Opuno Ironhorn Blacksmithing Trainer service_npc 310986 139 139 easternplaguelands 0 0 +poi_npc_311314 service 0 10671.9 1945.49 1335.3 3.56047 1 Alanna Raveneye Enchanting Trainer Alanna Raveneye Enchanting Trainer service_npc 311314 0 0 0 0 +poi_npc_311607 service 0 10153.3 1682.3 1326.09 2.67035 1 Nadyia Maneweaver Leatherworking Trainer Nadyia Maneweaver Leatherworking Trainer service_npc 311607 0 0 0 0 +poi_npc_311636 service 0 9838.5 2431.55 1315.81 5.58505 1 Astaia Fishing Trainer Astaia Fishing Trainer service_npc 311636 0 0 0 0 +poi_npc_311675 service 0 9608.44 2531.11 1331.75 1.22173 1 Hammon the Jaded Archaeology Trainer Hammon the Jaded Archaeology Trainer service_npc 311675 0 0 0 0 +poi_npc_311707 service 0 9758.26 2430.93 1334 1.58825 1 Firodren Mooncaller Herbalism Trainer Firodren Mooncaller Herbalism Trainer service_npc 311707 0 0 0 0 +poi_npc_311800 service 0 9923.4 2309.81 1330.87 2.53073 1 Rolf Karner Blacksmithing Trainer Rolf Karner Blacksmithing Trainer service_npc 311800 0 0 0 0 +poi_npc_311850 tavern 0 10310.7 2442.08 1330.1 3.54302 1 Gwen Armstead Innkeeper Gwen Armstead Innkeeper service_npc 311850 0 0 0 0 +poi_npc_311913 service 0 10146.1 2318.98 1333.08 2.77507 1 Taladan Enchanting Trainer Taladan Enchanting Trainer service_npc 311913 0 0 0 0 +poi_npc_311922 service 0 10145 2356.48 1332.05 6.07375 1 Aessa Silverdew Jewelcrafting Trainer Aessa Silverdew Jewelcrafting Trainer service_npc 311922 0 0 0 0 +poi_npc_311927 service 0 10152.1 2391.06 1323.55 3.35103 1 Dannelor First Aid Trainer Dannelor First Aid Trainer service_npc 311927 0 0 0 0 +poi_npc_311928 service 0 10119.8 2416.36 1321.73 4.59022 1 Foreman Pernic Mining Trainer Foreman Pernic Mining Trainer service_npc 311928 0 0 0 0 +poi_npc_311954 service 0 10132 2423.56 1332.04 4.01426 1 Tana Lentner Engineering Trainer Tana Lentner Engineering Trainer service_npc 311954 0 0 0 0 +poi_npc_312109 service 0 10088.4 2419.45 1321.73 2.00713 1 Alegorn Cooking Trainer Alegorn Cooking Trainer service_npc 312109 0 0 0 0 +poi_npc_312132 service 0 10068.9 2357.55 1321.66 5.96903 1 Ainethil Alchemy Trainer Ainethil Alchemy Trainer service_npc 312132 0 0 0 0 +poi_npc_312155 service 0 10139.7 2313 1343.39 3.22886 1 Feyden Darkin Inscription Trainer Feyden Darkin Inscription Trainer service_npc 312155 0 0 0 0 +poi_npc_312176 service 0 10080.4 2267.32 1333.08 1.91986 1 Me'lynn Tailoring Trainer Me'lynn Tailoring Trainer service_npc 312176 0 0 0 0 +poi_npc_312180 service 0 10081.2 2259.56 1343.39 4.81711 1 Eladriel Skinning Trainer Eladriel Skinning Trainer service_npc 312180 0 0 0 0 +poi_npc_312183 service 0 10086.4 2256.49 1343.38 0.488692 1 Telonis Leatherworking Trainer Telonis Leatherworking Trainer service_npc 312183 0 0 0 0 +poi_npc_312188 tavern 0 10127.9 2224.79 1328.81 2.21657 1 Innkeeper Saelienne Innkeeper Innkeeper Saelienne Innkeeper service_npc 312188 0 0 0 0 +poi_npc_312256 service 0 10135.7 1671.48 1325.15 3.00197 1 Radnaal Maneweaver Skinning Trainer Radnaal Maneweaver Skinning Trainer service_npc 312256 0 0 0 0 +poi_npc_312721 service 0 9767.76 879.807 1297.78 0.453786 1 Cyndra Kindwhisper Alchemy Trainer Cyndra Kindwhisper Alchemy Trainer service_npc 312721 0 0 0 0 +poi_npc_312722 service 0 9751.02 906.196 1295.6 6.02139 1 Zarrin Cooking Trainer Zarrin Cooking Trainer service_npc 312722 0 0 0 0 +poi_npc_312741 service 0 9902.94 999.576 1313.92 4.08407 1 Byancie First Aid Trainer Byancie First Aid Trainer service_npc 312741 0 0 0 0 +poi_npc_312743 tavern 0 9802.21 982.608 1313.98 4.79965 1 Innkeeper Keldamyr Innkeeper Innkeeper Keldamyr Innkeeper service_npc 312743 0 0 0 0 +poi_npc_312771 service 0 9803.2 945.681 1308.85 2.58309 1 Iranis Shadebloom Profession Trainer Iranis Shadebloom Profession Trainer service_npc 312771 0 0 0 0 +poi_npc_312790 service 0 9773.23 875.643 1297.78 1.88496 1 Malorne Bladeleaf Herbalism Trainer Malorne Bladeleaf Herbalism Trainer service_npc 312790 0 0 0 0 +poi_npc_313797 service 0 -8975.62 1021.77 101.487 1.29154 1 Jalane Ayrole Tailoring Trainer Jalane Ayrole Tailoring Trainer service_npc 313797 1519 1519 stormwind 0 0 +poi_npc_313808 tavern 0 -9083.99 823.965 108.503 0.401426 1 Steven Lohan Innkeeper Steven Lohan Innkeeper service_npc 313808 5154 1519 stormwind 0 0 +poi_npc_313815 service 0 -8993.05 755.79 98.4145 0.296706 1 Lilyssia Nightbreeze Alchemy Trainer Lilyssia Nightbreeze Alchemy Trainer service_npc 313815 5154 1519 stormwind 0 0 +poi_npc_313878 service 0 -8969.99 779.66 96.3329 4.10152 1 Tannysa Herbalism Trainer Tannysa Herbalism Trainer service_npc 313878 5154 1519 stormwind 0 0 +poi_npc_313880 service 0 -8862.5 857.196 99.6931 4.06662 1 Catarina Stanford Inscription Trainer Catarina Stanford Inscription Trainer service_npc 313880 5154 1519 stormwind 0 0 +poi_npc_313886 service 0 -8938.1 800.706 91.0251 4.34587 1 Georgio Bolero Tailoring Trainer Georgio Bolero Tailoring Trainer service_npc 313886 5154 1519 stormwind 0 0 +poi_npc_314029 service 0 -8858.31 803.734 96.5175 5.35816 1 Lucan Cordell Enchanting Trainer Lucan Cordell Enchanting Trainer service_npc 314029 5154 1519 stormwind 0 0 +poi_npc_314039 tavern 0 -8867.79 673.673 97.9864 5.20108 1 Innkeeper Allison Innkeeper Innkeeper Allison Innkeeper service_npc 314039 5148 1519 stormwind 0 0 +poi_npc_314053 service 0 -8802.01 770.922 96.4214 1.6057 1 Arnold Leland Fishing Trainer Arnold Leland Fishing Trainer service_npc 314053 5390 1519 stormwind 0 0 +poi_npc_314116 service 0 -8712.15 620.003 101.589 0.244346 1 Theresa Denman Jewelcrafting Trainer Theresa Denman Jewelcrafting Trainer service_npc 314116 5148 1519 stormwind 0 0 +poi_npc_314235 service 0 -8725.55 477.415 98.6964 5.24827 1 Simon Tanner Leatherworking Trainer Simon Tanner Leatherworking Trainer service_npc 314235 5149 1519 stormwind 0 0 +poi_npc_314241 service 0 -8716.41 469.414 98.6964 2.60054 1 Maris Granger Skinning Trainer Maris Granger Skinning Trainer service_npc 314241 5149 1519 stormwind 0 0 +poi_npc_314268 service 0 -8296.46 231.802 155.43 0.680678 1 Harrison Jones Archaeology Trainer Harrison Jones Archaeology Trainer service_npc 314268 1519 1519 stormwind 0 0 +poi_npc_314307 service 0 -8612.18 380.115 99.7062 0.785398 1 Stephen Ryback Cooking Trainer Stephen Ryback Cooking Trainer service_npc 314307 5149 1519 stormwind 0 0 +poi_npc_314313 tavern 0 -8622.47 407.783 103.007 1.91986 1 Maegan Tillman Innkeeper Maegan Tillman Innkeeper service_npc 314313 5149 1519 stormwind 0 0 +poi_npc_314423 service 0 -8557.13 593.646 104.682 1.16937 1 Jordan Smith Blacksmithing Trainer & Supplies Jordan Smith Blacksmithing Trainer & Supplies service_npc 314423 5150 1519 stormwind 0 0 +poi_npc_314470 tavern 0 -8365.76 594.658 97.0827 2.9147 1 Thaegra Tillstone Innkeeper Thaegra Tillstone Innkeeper service_npc 314470 5150 1519 stormwind 0 0 +poi_npc_314478 service 0 -8366.05 630.964 95.2242 2.84489 1 Lilliam Sparkspindle Engineering Trainer Lilliam Sparkspindle Engineering Trainer service_npc 314478 5150 1519 stormwind 0 0 +poi_npc_314493 service 0 -8424.52 616.828 95.4669 2.23402 1 Therum Deepforge Blacksmithing Trainer Therum Deepforge Blacksmithing Trainer service_npc 314493 5150 1519 stormwind 0 0 +poi_npc_314504 service 0 -8521.53 816.257 106.602 2.87979 1 Angela Leifeld First Aid Trainer Angela Leifeld First Aid Trainer service_npc 314504 5704 1519 stormwind 0 0 +poi_npc_314511 service 0 -8392.69 690.845 95.3568 5.35816 1 Borgus Steelhand Blacksmithing Trainer Borgus Steelhand Blacksmithing Trainer service_npc 314511 5150 1519 stormwind 0 0 +poi_npc_314621 service 0 -8433.48 688.922 96.401 5.72468 1 Gelman Stonehand Mining Trainer Gelman Stonehand Mining Trainer service_npc 314621 5150 1519 stormwind 0 0 +poi_npc_315309 tavern 0 -6621.65 -4667.51 9.19187 5.11381 1 The Great Pisani Mayor of Fuselight-by-the-Sea The Great Pisani Mayor of Fuselight-by-the-Sea service_npc 315309 5497 3 badlands 0 0 +poi_npc_316476 tavern 0 7423.12 -277.925 7.74319 3.15905 1 Innkeeper Kyteran Innkeeper Innkeeper Kyteran Innkeeper service_npc 316476 0 0 0 0 +poi_npc_316479 service 0 7324.59 -257.325 8.07923 0 1 Faeyrin Willowmoon Tailoring Trainer Faeyrin Willowmoon Tailoring Trainer service_npc 316479 0 0 0 0 +poi_npc_316480 service 0 7396.44 -266.717 5.06044 3.56047 1 Taryel Firestrike Blacksmithing Trainer Taryel Firestrike Blacksmithing Trainer service_npc 316480 0 0 0 0 +poi_npc_316481 service 0 7401.43 -302.811 5.03694 3.68265 1 Periale Mining Trainer Periale Mining Trainer service_npc 316481 0 0 0 0 +poi_npc_316615 service 0 7331.69 -265.641 7.98124 1.46608 1 Stephanie Krutsick Archaeology Trainer Stephanie Krutsick Archaeology Trainer service_npc 316615 0 0 0 0 +poi_npc_317686 service 0 -10591.3 -1166.02 30.1429 0.942478 1 Clarise Gnarltree Blacksmithing Trainer Clarise Gnarltree Blacksmithing Trainer service_npc 317686 42 10 duskwood 0 0 +poi_npc_317687 service 0 -10610.8 -1165.19 26.9799 3.89424 1 Matt Johnson Mining Trainer Matt Johnson Mining Trainer service_npc 317687 42 10 duskwood 0 0 +poi_npc_317765 service 0 -10595 -1256.12 37.5532 1.309 1 Finbus Geargrind Engineering Trainer Finbus Geargrind Engineering Trainer service_npc 317765 42 10 duskwood 0 0 +poi_npc_317772 tavern 0 -10516 -1161.21 28.1161 4.03171 1 Innkeeper Trelayne Innkeeper Innkeeper Trelayne Innkeeper service_npc 317772 42 10 duskwood 0 0 +poi_npc_320407 tavern 0 2295.74 -5336.82 90.8352 2.19912 1 Jessica Chambers Innkeeper Jessica Chambers Innkeeper service_npc 320407 2268 139 easternplaguelands 0 0 +poi_npc_321247 tavern 0 471.135 1500.55 135.605 1.0821 1 Innkeeper Bates Innkeeper Innkeeper Bates Innkeeper service_npc 321247 228 130 silverpineforest 0 0 +poi_npc_321326 service 0 520.043 1649.03 125.747 4.95674 1 Guillaume Sorouy Blacksmithing Trainer Guillaume Sorouy Blacksmithing Trainer service_npc 321326 228 130 silverpineforest 0 0 +poi_npc_321330 service 0 534.024 1626.95 104.895 2.54818 1 Johan Focht Mining Trainer Johan Focht Mining Trainer service_npc 321330 228 130 silverpineforest 0 0 +poi_npc_321922 tavern 0 1097.57 1587.29 28.6136 3.24631 1 Commander Hickley Innkeeper Commander Hickley Innkeeper service_npc 321922 5386 130 silverpineforest 0 0 +poi_npc_322648 tavern 0 -612.373 -1045.95 65.8329 0.490246 1 Innkeeper Durgens Innkeeper Innkeeper Durgens Innkeeper service_npc 322648 5603 267 hillsbradfoothills 0 0 +poi_npc_322909 tavern 0 -51.9497 -967.899 53.5347 0.942478 1 Innkeeper Shay Innkeeper Innkeeper Shay Innkeeper service_npc 322909 272 267 hillsbradfoothills 0 0 +poi_npc_322914 service 0 -73.8368 -974.957 53.645 6.0912 1 Daryl Stack Tailoring Trainer Daryl Stack Tailoring Trainer service_npc 322914 272 267 hillsbradfoothills 0 0 +poi_npc_322935 service 0 -62.3958 -930.988 56.4027 5.88176 1 Aranae Venomblood Herbalism Trainer Aranae Venomblood Herbalism Trainer service_npc 322935 272 267 hillsbradfoothills 0 0 +poi_npc_322986 service 0 -669.767 -537.396 28.3103 6.14356 1 Serge Hinott Alchemy Trainer Serge Hinott Alchemy Trainer service_npc 322986 271 267 hillsbradfoothills 0 0 +poi_npc_324205 tavern 0 -498.934 103.806 57.095 5.74642 1 Innkeeper Hershberg Innkeeper Innkeeper Hershberg Innkeeper service_npc 324205 286 267 hillsbradfoothills 0 0 +poi_npc_325633 service 0 2238.02 1019.64 36.679 1.0821 1 Therisa Sallow Profession Trainer Therisa Sallow Profession Trainer service_npc 325633 4916 85 tirisfalglades 0 0 +poi_npc_325910 service 0 2164.95 656.903 34.6258 3.10669 1 Bowen Brisboise Tailoring Trainer Bowen Brisboise Tailoring Trainer service_npc 325910 166 85 tirisfalglades 0 0 +poi_npc_326177 service 0 1560.8 355.098 -62.0798 3.97935 1 Martha Alliestar Herbalism Trainer Martha Alliestar Herbalism Trainer service_npc 326177 1497 1497 undercity 0 0 +poi_npc_326226 service 0 1638.21 335.638 -62.0999 0.628318 1 Brom Killian Mining Trainer Brom Killian Mining Trainer service_npc 326226 1497 1497 undercity 0 0 +poi_npc_326231 service 0 1645.46 331.009 -62.0967 1.95477 1 Neller Fayne Jewelcrafting Trainer Neller Fayne Jewelcrafting Trainer service_npc 326231 1497 1497 undercity 0 0 +poi_npc_326245 service 0 1408.49 414.871 -84.8822 3.64774 1 Doctor Herbert Halsey Alchemy Trainer Doctor Herbert Halsey Alchemy Trainer service_npc 326245 1497 1497 undercity 0 0 +poi_npc_326397 service 0 2269.6 349.53 33.6679 6.24828 1 Faruza Herbalism Trainer Faruza Herbalism Trainer service_npc 326397 159 85 tirisfalglades 0 0 +poi_npc_326398 service 0 2266.3 344.069 33.6572 5.58505 1 Carolai Anise Alchemy Trainer Carolai Anise Alchemy Trainer service_npc 326398 159 85 tirisfalglades 0 0 +poi_npc_326401 service 0 2265.2 328.677 33.6569 0.314159 1 Nurse Neela First Aid Trainer Nurse Neela First Aid Trainer service_npc 326401 159 85 tirisfalglades 0 0 +poi_npc_326403 service 0 2234.27 329.905 34.3167 5.46288 1 Vance Undergloom Enchanting Trainer Vance Undergloom Enchanting Trainer service_npc 326403 159 85 tirisfalglades 0 0 +poi_npc_326454 service 0 1506.95 287.438 -62.0883 3.61283 1 Margaux Parchley Inscription Trainer Margaux Parchley Inscription Trainer service_npc 326454 1497 1497 undercity 0 0 +poi_npc_326457 service 0 1485.01 279.667 -62.076 2.1293 1 Lavinia Crowe Enchanting Trainer Lavinia Crowe Enchanting Trainer service_npc 326457 1497 1497 undercity 0 0 +poi_npc_326511 service 0 1590.47 277.014 -55.2596 5.44543 1 Eunice Burch Cooking Trainer Eunice Burch Cooking Trainer service_npc 326511 1497 1497 undercity 0 0 +poi_npc_326570 service 0 1681.91 285.452 -62.0549 1.74533 1 James Van Brunt Blacksmithing Trainer James Van Brunt Blacksmithing Trainer service_npc 326570 1497 1497 undercity 0 0 +poi_npc_326619 tavern 0 2285.95 282.613 33.334 2.86234 1 Innkeeper Renee Innkeeper Innkeeper Renee Innkeeper service_npc 326619 159 85 tirisfalglades 0 0 +poi_npc_326623 service 0 2299.31 270.543 33.4403 1.5708 1 Nedric Sallow Profession Trainer Nedric Sallow Profession Trainer service_npc 326623 159 85 tirisfalglades 0 0 +poi_npc_326674 service 0 2271.92 268.179 33.7738 3.80482 1 William Saldean Grain & Feed Vendor William Saldean Grain & Feed Vendor service_npc 326674 159 85 tirisfalglades 0 0 +poi_npc_326679 service 0 2257.22 269.019 33.7537 3.1765 1 The Chef Cooking Trainer The Chef Cooking Trainer service_npc 326679 159 85 tirisfalglades 0 0 +poi_npc_326722 service 0 1499.16 200.116 -62.0551 4.34587 1 Killian Hagey Skinning Trainer Killian Hagey Skinning Trainer service_npc 326722 1497 1497 undercity 0 0 +poi_npc_326726 tavern 0 1635.4 223.331 -43.0198 2.84489 1 Innkeeper Norman Innkeeper Innkeeper Norman Innkeeper service_npc 326726 1497 1497 undercity 0 0 +poi_npc_326818 service 0 1681.49 194.356 -62.0865 6.03884 1 Josef Gregorian Tailoring Trainer Josef Gregorian Tailoring Trainer service_npc 326818 1497 1497 undercity 0 0 +poi_npc_326838 service 0 1510.37 199.943 -62.0539 3.89208 1 Arthur Moore Leatherworking Trainer Arthur Moore Leatherworking Trainer service_npc 326838 1497 1497 undercity 0 0 +poi_npc_326845 service 0 1524.95 171.353 -62.0668 3.90954 1 Mary Edras First Aid Trainer Mary Edras First Aid Trainer service_npc 326845 1497 1497 undercity 0 0 +poi_npc_326861 service 0 1404.08 142.911 -62.2217 0.017453 1 Franklin Lloyd Engineering Trainer Franklin Lloyd Engineering Trainer service_npc 326861 1497 1497 undercity 0 0 +poi_npc_326897 service 0 1636.61 149.648 -62.0584 5.23599 1 Adam Hossack Archaeology Trainer Adam Hossack Archaeology Trainer service_npc 326897 1497 1497 undercity 0 0 +poi_npc_326992 service 0 1677.83 99.0023 -61.9458 2.11185 1 Armand Cromwell Fishing Trainer Armand Cromwell Fishing Trainer service_npc 326992 1497 1497 undercity 0 0 +poi_npc_327059 service 0 2029.08 69.7176 34.4594 0.820305 1 Rand Rhobart Skinning Trainer Rand Rhobart Skinning Trainer service_npc 327059 4919 85 tirisfalglades 0 0 +poi_npc_327060 service 0 2026.51 76.9985 35.5106 3.82985 1 Shelene Rhobart Leatherworking Trainer Shelene Rhobart Leatherworking Trainer service_npc 327060 4919 85 tirisfalglades 0 0 +poi_npc_327090 service 0 1736.6 41.8543 -59.2337 2.05949 1 Josephine Lister Tailoring Trainer Josephine Lister Tailoring Trainer service_npc 327090 1497 1497 undercity 0 0 +poi_npc_327104 service 0 2301.52 -1.88889 23.258 5.60251 1 Clyde Kellen Fishing Trainer Clyde Kellen Fishing Trainer service_npc 327104 162 85 tirisfalglades 0 0 +poi_npc_327601 tavern 0 1668.34 -720.995 58.9988 1.11701 1 Provisioner Elda Innkeeper Provisioner Elda Innkeeper service_npc 327601 152 85 tirisfalglades 0 0 +poi_npc_328015 tavern 0 942.109 -1446.09 63.4805 5.46288 1 Mother Matterly Innkeeper Mother Matterly Innkeeper service_npc 328015 3197 28 westernplaguelands 0 0 +poi_npc_328422 tavern 0 1537.4 -1661.51 67.9856 1.62316 1 Roman Garner Innkeeper Roman Garner Innkeeper service_npc 328422 193 28 westernplaguelands 0 0 +poi_npc_328550 tavern 0 1537.42 -1661.55 68.1146 1.62316 1 Roman Garner Innkeeper Roman Garner Innkeeper service_npc 328550 193 28 westernplaguelands 0 0 +poi_npc_330689 tavern 0 -6160.77 -3797.82 6.26469 4.95674 1 Daisy Innkeeper Daisy Innkeeper service_npc 330689 3 3 badlands 0 0 +poi_npc_331818 tavern 0 1021.73 2039.16 130.053 1.71042 1 Innkeeper Bernice Innkeeper Innkeeper Bernice Innkeeper service_npc 331818 305 130 silverpineforest 0 0 +poi_npc_332148 tavern 0 2113.13 1575.49 343.445 3.97935 1 Valos Shadowrest Innkeeper Valos Shadowrest Innkeeper service_npc 332148 154 85 tirisfalglades 0 0 +poi_npc_332783 tavern 0 893.652 927.946 106.364 5.70723 1 Innkeeper Jayka Innkeeper Innkeeper Jayka Innkeeper service_npc 332783 1338 130 silverpineforest 0 0 +poi_npc_332788 service 0 1054.63 844.314 165.124 5.07891 1 Hgarth Enchanting Trainer Hgarth Enchanting Trainer service_npc 332788 1338 130 silverpineforest 0 0 +poi_npc_333027 tavern 0 1187.24 422.464 79.3147 4.11898 1 Alithia Fallowmere Innkeeper Alithia Fallowmere Innkeeper service_npc 333027 232 130 silverpineforest 0 0 +poi_npc_333518 tavern 0 877.288 -20.309 92.7581 0.802851 1 Felonius Stark Innkeeper Felonius Stark Innkeeper service_npc 333518 1339 267 hillsbradfoothills 0 0 +poi_npc_333854 tavern 0 293.974 -290.26 92.1589 3.15905 1 Lyanath Innkeeper Lyanath Innkeeper service_npc 333854 1683 267 hillsbradfoothills 0 0 +poi_npc_334687 service 0 -9237.78 -2041.65 78.1678 4.64611 1 Alma Jainrose Herbalism Trainer Alma Jainrose Herbalism Trainer service_npc 334687 69 44 redridgemountains 0 0 +poi_npc_334703 service 0 -9205.49 -2066.1 78.0905 3.67749 1 Crystal Boughman Cooking Trainer Crystal Boughman Cooking Trainer service_npc 334703 69 44 redridgemountains 0 0 +poi_npc_334777 tavern 0 -9223.98 -2157.12 64.0168 3.05433 1 Innkeeper Brianna Innkeeper Innkeeper Brianna Innkeeper service_npc 334777 69 44 redridgemountains 0 0 +poi_npc_334782 service 0 -9315.38 -2156.7 63.4833 3.74939 1 Matthew Hooper Fishing Trainer Matthew Hooper Fishing Trainer service_npc 334782 68 44 redridgemountains 0 0 +poi_npc_335473 service 0 -9607.35 -3499.28 122.039 0.575959 1 Wilma Ranthal Skinning Trainer Wilma Ranthal Skinning Trainer service_npc 335473 5324 44 redridgemountains 0 0 +poi_npc_335533 tavern 0 -13232.2 724.248 3.43888 2.98451 1 Innkeeper Draxle Innkeeper Innkeeper Draxle Innkeeper service_npc 335533 1739 5287 thecapeofstranglethorn 0 0 +poi_npc_336272 service 0 -14383 370.766 24.006 5.39307 1 Brikk Keencraft Blacksmithing Trainer Brikk Keencraft Blacksmithing Trainer service_npc 336272 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336325 service 0 -14417 411.288 22.7815 0.453786 1 Oglethorpe Obnoticus Gnomish Engineering Trainer Oglethorpe Obnoticus Gnomish Engineering Trainer service_npc 336325 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336327 service 0 -14429.8 423.762 4.24357 2.63545 1 Mrs. Gant Cooking Trainer & Supplies Mrs. Gant Cooking Trainer & Supplies service_npc 336327 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336353 service 0 -14437.8 384.766 32.398 1.39626 1 Grarnik Goodstitch Tailoring Trainer Grarnik Goodstitch Tailoring Trainer service_npc 336353 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336359 service 0 -14449.2 468.424 15.3566 0.087266 1 Myizz Luckycatch Fishing Trainer Myizz Luckycatch Fishing Trainer service_npc 336359 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336402 service 0 -14486.7 431.512 34.6682 4.7822 1 Jaxin Chong Alchemy Trainer Jaxin Chong Alchemy Trainer service_npc 336402 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336407 service 0 -14481.1 451.732 30.6957 6.03884 1 Flora Silverwind Herbalism Trainer Flora Silverwind Herbalism Trainer service_npc 336407 35 5287 thecapeofstranglethorn 0 0 +poi_npc_336420 tavern 0 -14457.7 495.348 15.2128 3.97935 1 Innkeeper Skindle Innkeeper Innkeeper Skindle Innkeeper service_npc 336420 35 5287 thecapeofstranglethorn 0 0 +poi_npc_337953 service 0 -12358.8 220.811 4.14172 5.0091 1 Mudduk Cooking Trainer Mudduk Cooking Trainer service_npc 337953 117 33 northernstranglethorn 0 0 +poi_npc_337955 service 0 -12335.5 163.184 3.06546 2.70526 1 Angrun Herbalism Trainer Angrun Herbalism Trainer service_npc 337955 117 33 northernstranglethorn 0 0 +poi_npc_338039 service 0 -12396.7 194.965 2.35694 0.017453 1 Brawn Leatherworking Trainer Brawn Leatherworking Trainer service_npc 338039 117 33 northernstranglethorn 0 0 +poi_npc_338118 tavern 0 -12434.4 211.559 2.44848 0.907571 1 Innkeeper Thulbek Innkeeper Innkeeper Thulbek Innkeeper service_npc 338118 117 33 northernstranglethorn 0 0 +poi_npc_338235 service 0 -12619 -111.229 18.5832 3.49066 1 Se'Jib Leatherworking Trainer Se'Jib Leatherworking Trainer service_npc 338235 33 5339 stranglethornvale 0 0 +poi_npc_338369 tavern 0 -12846.1 -437.988 13.05 0.715585 1 Livingston Marshal Innkeeper Livingston Marshal Innkeeper service_npc 338369 5320 33 northernstranglethorn 0 0 +poi_npc_34034 service 0 238.399 2840.97 145.087 5.46581 1 Neferatti Inscription Trainer Neferatti Inscription Trainer service_npc 34034 2398 130 silverpineforest 0 0 +poi_npc_341693 service 0 8325.19 1068.18 10.575 1.51844 1 Androl Oakhand Fishing Trainer Androl Oakhand Fishing Trainer service_npc 341693 0 0 0 0 +poi_npc_343395 tavern 0 -6112.93 4298.62 -348.321 4.79965 1 Caretaker Movra The Earthen Ring Caretaker Movra The Earthen Ring service_npc 343395 5005 5144 shimmeringexpanse 0 0 +poi_npc_344191 tavern 0 -6612.7 4271.42 -562.875 1.16937 1 Anissa Matherly Innkeeper Anissa Matherly Innkeeper service_npc 344191 4969 5144 shimmeringexpanse 0 0 +poi_npc_344468 tavern 0 -6780.43 4176.16 -480.069 3.1765 1 Zun'ja Innkeeper Zun'ja Innkeeper service_npc 344468 4970 5144 shimmeringexpanse 0 0 +poi_npc_346525 tavern 0 -6866.14 6002.43 -763.704 3.90954 1 Barracks Officer Milson Innkeeper Barracks Officer Milson Innkeeper service_npc 346525 4976 5145 abyssaldepths 0 0 +poi_npc_347125 tavern 0 -6550.66 6145.27 -669.737 4.01426 1 Innkeeper Nerius Innkeeper Innkeeper Nerius Innkeeper service_npc 347125 4975 5145 abyssaldepths 0 0 +poi_npc_349255 tavern 0 -4455.17 3803.01 -81.9119 1.51844 1 Erunak Stonespeaker The Earthen Ring Erunak Stonespeaker The Earthen Ring service_npc 349255 5051 4815 kelptharforest 0 0 +poi_npc_349589 tavern 0 -4611.18 3985.19 -70.4378 5.35816 1 Erunak Stonespeaker The Earthen Ring Erunak Stonespeaker The Earthen Ring service_npc 349589 5056 4815 kelptharforest 0 0 +poi_npc_350029 tavern 0 -10501.9 1028.54 60.6054 1.97222 1 Innkeeper Heather Innkeeper Innkeeper Heather Innkeeper service_npc 350029 108 40 westfall 0 0 +poi_npc_350080 tavern 0 1032.42 542.142 -49.3207 3.9968 1 Caretaker Nuunwa Innkeeper Caretaker Nuunwa Innkeeper service_npc 350080 172 130 silverpineforest 0 0 +poi_npc_356868 tavern 0 1032.42 542.142 -49.2515 3.9968 1 Caretaker Nuunwa Innkeeper Caretaker Nuunwa Innkeeper service_npc 356868 172 130 silverpineforest 0 0 +poi_npc_357012 tavern 0 1032.42 542.142 -49.2515 3.9968 1 Caretaker Nuunwa Innkeeper Caretaker Nuunwa Innkeeper service_npc 357012 172 130 silverpineforest 0 0 +poi_npc_359801 tavern 0 -7085.53 -1202.19 323.987 3.24631 1 Velma Rockslide Innkeeper Velma Rockslide Innkeeper service_npc 359801 5628 51 searinggorge 0 0 +poi_npc_360867 service 0 7025.63 -2135.69 590.38 2.32 1 Meilosh Meilosh service_npc 360867 0 0 0 0 +poi_npc_361186 tavern 0 6155.55 -1950.85 568.13 0.93 1 Denmother Ulrica Innkeeper Denmother Ulrica Innkeeper service_npc 361186 214 214 thegreatsea 0 0 +poi_npc_361275 tavern 0 6051.78 -931.899 414.771 1.1 1 Innkeeper Wylaria Innkeeper Innkeeper Wylaria Innkeeper service_npc 361275 0 0 0 0 +poi_npc_361492 tavern 0 4735.21 -866.35 343.55 5.1 1 Innkeeper Teenycaugh Innkeeper Innkeeper Teenycaugh Innkeeper service_npc 361492 214 214 thegreatsea 0 0 +poi_npc_362563 tavern 0 -6868.04 729.914 45.7454 0.488692 1 Calandrath Innkeeper Calandrath Innkeeper service_npc 362563 1 1 dun_morogh 0 0 +poi_npc_364703 tavern 0 -7502.37 -1515.66 -265.847 3.68265 1 Innkeeper Dreedle Marshal Expeditions Innkeeper Dreedle Marshal Expeditions service_npc 364703 252 46 burningsteppes 0 0 +poi_npc_365328 service 0 -1637.97 3188.65 29.9849 2.42601 1 Malux Skinning Trainer Malux Skinning Trainer service_npc 365328 214 214 thegreatsea 0 0 +poi_npc_365340 tavern 0 -1592.84 3150.27 47.0414 4.18879 1 Innkeeper Sikewa Innkeeper Innkeeper Sikewa Innkeeper service_npc 365340 214 214 thegreatsea 0 0 +poi_npc_365355 service 0 -1719.02 3212.89 4.38054 4.59022 1 Lui'Mala Fishing Trainer Lui'Mala Fishing Trainer service_npc 365355 214 214 thegreatsea 0 0 +poi_npc_366483 service 0 -1236.88 1749.59 90.2457 5.46288 1 Narv Hidecrafter Leatherworking Trainer Narv Hidecrafter Leatherworking Trainer service_npc 366483 5440 4706 ruinsofgilneas 0 0 +poi_npc_366595 tavern 0 -1047.23 1683.57 60.2219 5.18363 1 Innkeeper Dessina Innkeeper Innkeeper Dessina Innkeeper service_npc 366595 5434 4706 ruinsofgilneas 0 0 +poi_npc_367660 tavern 0 255.615 1253.76 192.224 3.24631 1 Innkeeper Lyshaerya Innkeeper Innkeeper Lyshaerya Innkeeper service_npc 367660 130 130 silverpineforest 0 0 +poi_npc_368537 tavern 0 -4460.1 242.722 39.1908 0.506145 1 Innkeeper Greul Innkeeper Innkeeper Greul Innkeeper service_npc 368537 1 1 dun_morogh 0 0 +poi_npc_368566 service 0 -4374.44 161.097 25.6168 3.64774 1 Ruw Herbalism Trainer Ruw Herbalism Trainer service_npc 368566 1 1 dun_morogh 0 0 +poi_npc_368589 service 0 -4360.9 266.103 26.4007 5.81195 1 Kulleg Stonehorn Skinning Trainer Kulleg Stonehorn Skinning Trainer service_npc 368589 1 1 dun_morogh 0 0 +poi_npc_368598 service 0 -4364.53 273.484 26.4007 5.48033 1 Hahrana Ironhide Leatherworking Trainer Hahrana Ironhide Leatherworking Trainer service_npc 368598 1 1 dun_morogh 0 0 +poi_npc_369649 tavern 0 -4564.63 1835.27 87.5203 3.1765 1 Chonk Innkeeper Chonk Innkeeper service_npc 369649 1 1 dun_morogh 0 0 +poi_npc_369856 service 0 -4286.39 2297.86 9.56436 3.76991 1 Brannock Fishing Trainer Brannock Fishing Trainer service_npc 369856 214 214 thegreatsea 0 0 +poi_npc_369866 service 0 -4350.15 2196.19 13.5877 2.82743 1 Xylinnia Starshine Enchanting Trainer Xylinnia Starshine Enchanting Trainer service_npc 369866 214 214 thegreatsea 0 0 +poi_npc_369879 service 0 -4367.92 2208.53 13.5192 5.49779 1 Kylanna Windwhisper Alchemy Trainer Kylanna Windwhisper Alchemy Trainer service_npc 369879 214 214 thegreatsea 0 0 +poi_npc_369903 tavern 0 -4467.06 2237.16 27.6743 2.12483 1 Innkeeper Shyria Innkeeper Innkeeper Shyria Innkeeper service_npc 369903 214 214 thegreatsea 0 0 +poi_npc_370013 tavern 0 -3197.8 1893.23 49.4171 0.750492 1 Andoril Innkeeper Andoril Innkeeper service_npc 370013 2365 11 wetlands 0 0 +poi_npc_370242 tavern 0 -3097.09 2563.18 50.2624 0.506145 1 Adene Treetotem Innkeeper Adene Treetotem Innkeeper service_npc 370242 214 214 thegreatsea 0 0 +poi_npc_370875 service 0 1801.01 -4563.08 23.0834 1.55334 1 Magar Tailoring Trainer Magar Tailoring Trainer service_npc 370875 2621 139 easternplaguelands 0 0 +poi_npc_370886 service 0 1772.08 -4485.13 45.6412 0.879462 1 Arugi Cooking Trainer Arugi Cooking Trainer service_npc 370886 2621 139 easternplaguelands 0 0 +poi_npc_371342 service 0 5855.3 651.028 647.595 0 1 Dariness the Learned Archaeology Trainer Dariness the Learned Archaeology Trainer service_npc 371342 0 0 0 0 +poi_npc_375512 service 0 2088.8 -4767.27 28.0121 4.15388 1 Lugrah Jewelcrafting Trainer Lugrah Jewelcrafting Trainer service_npc 375512 139 139 easternplaguelands 0 0 +poi_npc_379433 tavern 0 -2736.68 -6409.73 242.184 3.05433 1 Innkeeper Geno Innkeeper Innkeeper Geno Innkeeper service_npc 379433 5137 4922 twilighthighlands 0 0 +poi_npc_379884 tavern 0 -2788.93 -5316.01 173.936 5.42797 1 Vaughn Blusterbeard Innkeeper Vaughn Blusterbeard Innkeeper service_npc 379884 5143 4922 twilighthighlands 0 0 +poi_npc_380629 tavern 0 -3226.32 -5048.93 120.713 0.436332 1 Naveen Tendernose Innkeeper Naveen Tendernose Innkeeper service_npc 380629 5142 4922 twilighthighlands 0 0 +poi_npc_380996 tavern 0 -3663.24 -5246.88 42.2213 4.43314 1 Innkeeper Turk Innkeeper Innkeeper Turk Innkeeper service_npc 380996 5138 4922 twilighthighlands 0 0 +poi_npc_381441 tavern 0 -4199.51 -5621.03 23.5936 0.890118 1 Innkeeper Corlin Innkeeper Innkeeper Corlin Innkeeper service_npc 381441 5141 4922 twilighthighlands 0 0 +poi_npc_381608 tavern 0 -4167.39 -4736.9 126.875 3.14159 1 Ben Mora Innkeeper Ben Mora Innkeeper service_npc 381608 5470 4922 twilighthighlands 0 0 +poi_npc_382837 tavern 0 -4853.6 -4812.93 196.659 5.74213 1 Innkeeper Krum Innkeeper Innkeeper Krum Innkeeper service_npc 382837 5471 4922 twilighthighlands 0 0 +poi_npc_383966 tavern 0 5513.63 -3608.03 1570.13 1.11701 1 Sebelia Innkeeper Sebelia Innkeeper service_npc 383966 214 214 thegreatsea 0 0 +poi_npc_385926 tavern 0 4900.89 -2739.06 1437.68 5.63741 1 Isara Riverstride Innkeeper Isara Riverstride Innkeeper service_npc 385926 214 214 thegreatsea 0 0 +poi_npc_386132 tavern 0 5140.66 -1721.69 1336.1 4.66003 1 Salirn Moonbear Innkeeper Salirn Moonbear Innkeeper service_npc 386132 214 214 thegreatsea 0 0 +poi_npc_387464 tavern 0 5140.66 -1721.69 1336.1 4.66003 1 Salirn Moonbear Innkeeper Salirn Moonbear Innkeeper service_npc 387464 214 214 thegreatsea 0 0 +poi_npc_389403 tavern 0 599.734 3118.63 3.65963 1.64061 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 389403 2398 130 silverpineforest 0 0 +poi_npc_389415 service 0 581.295 3099.3 3.1594 1.64061 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 389415 2398 130 silverpineforest 0 0 +poi_npc_391425 service 0 848.686 2770.77 113.709 4.90438 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 391425 2398 130 silverpineforest 0 0 +poi_npc_392276 service 0 903.945 2322.3 5.64735 0.907571 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 392276 2398 130 silverpineforest 0 0 +poi_npc_392287 service 0 901.587 2319.55 5.58772 0.872665 1 KTC Train-a-Tron Deluxe Professions Trainer & Vendor KTC Train-a-Tron Deluxe Professions Trainer & Vendor service_npc 392287 2398 130 silverpineforest 0 0 +poi_npc_392300 tavern 0 913.408 2354.65 5.44061 4.50295 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 392300 2398 130 silverpineforest 0 0 +poi_npc_393087 service 0 903.945 2322.3 5.64735 0.935639 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 393087 2398 130 silverpineforest 0 0 +poi_npc_393102 tavern 0 913.408 2354.65 5.44061 4.49098 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 393102 2398 130 silverpineforest 0 0 +poi_npc_393561 tavern 0 913.408 2354.65 5.44061 4.5204 1 Grimy Greasefingers Innkeeper Grimy Greasefingers Innkeeper service_npc 393561 2398 130 silverpineforest 0 0 +poi_npc_394031 service 0 1438.79 1284.25 116.102 2.11834 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 394031 130 130 silverpineforest 0 0 +poi_npc_394398 service 0 1805.15 1985.63 221.493 5.51524 1 KTC Train-a-Tron Deluxe Professions Trainer & Vendor KTC Train-a-Tron Deluxe Professions Trainer & Vendor service_npc 394398 85 85 tirisfalglades 0 0 +poi_npc_394826 service 0 2042.33 2588.39 10.2111 1.65806 1 KTC Train-a-Tron Deluxe Professions Trainer & Vendor KTC Train-a-Tron Deluxe Professions Trainer & Vendor service_npc 394826 5838 85 tirisfalglades 0 0 +poi_npc_394832 service 0 2042.78 2594.01 10.2111 4.41568 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 394832 5838 85 tirisfalglades 0 0 +poi_npc_395047 service 0 2388.1 2448.5 10.9595 2.1293 1 KTC Train-a-Tron Deluxe Professions Trainer & Vendor KTC Train-a-Tron Deluxe Professions Trainer & Vendor service_npc 395047 85 85 tirisfalglades 0 0 +poi_npc_395048 service 0 2389.23 2453.16 11.21 1.85005 1 Doc Zapnozzle First Aid Trainer Doc Zapnozzle First Aid Trainer service_npc 395048 85 85 tirisfalglades 0 0 +poi_npc_40266 service 0 -2263.63 5559.49 67.0918 5.91667 1 Alchemy Alchemy service_npc 40266 0 0 0 0 +poi_npc_40510 service 0 -2262.64 5561.96 67.0948 5.89921 1 Blacksmithing Blacksmithing service_npc 40510 0 0 0 0 +poi_npc_40516 service 0 -2261.59 5564.54 67.095 5.93412 1 Enchanting Enchanting service_npc 40516 0 0 0 0 +poi_npc_40517 service 0 -2260.64 5567.08 67.092 5.93412 1 Engineering Engineering service_npc 40517 0 0 0 0 +poi_npc_40518 service 0 -2264.54 5562.77 67.0939 2.79253 1 Leatherworking Leatherworking service_npc 40518 0 0 0 0 +poi_npc_40601 service 0 -2265.57 5560.32 67.0911 2.80998 1 Tailoring Tailoring service_npc 40601 0 0 0 0 +poi_npc_40602 service 0 -2263.47 5565.35 67.0937 2.80998 1 Jewelcrafting Jewelcrafting service_npc 40602 0 0 0 0 +poi_npc_40603 service 0 -2262.36 5567.8 67.0909 2.79253 1 Inscription Inscription service_npc 40603 0 0 0 0 +poi_npc_41320 service 0 -2268.1 5563.18 67.0919 5.89921 1 Herbalism Herbalism service_npc 41320 0 0 0 0 +poi_npc_41674 service 0 -2266.98 5565.78 67.0927 5.89921 1 Mining Mining service_npc 41674 0 0 0 0 +poi_npc_41723 service 0 -2265.86 5568.36 67.0911 5.84685 1 Skinning Skinning service_npc 41723 0 0 0 0 +poi_npc_41775 service 0 -2267.52 5569.19 67.0896 2.74017 1 Cooking Cooking service_npc 41775 0 0 0 0 +poi_npc_41779 service 0 -2269.93 5564.2 67.09 2.75762 1 First Aid First Aid service_npc 41779 0 0 0 0 +poi_npc_41780 service 0 -2268.81 5566.68 67.0905 2.74017 1 Fishing Fishing service_npc 41780 0 0 0 0 +poi_npc_41791 service 0 -2999.68 2619.98 76.6582 4.83569 1 Jonathan Garrett Engineering Trainer Jonathan Garrett Engineering Trainer service_npc 41791 214 214 thegreatsea 0 0 +poi_npc_47642 service 0 -2121.53 5405.8 53.808 4.49468 1 Scribe Lanloer Inscription Trainer Scribe Lanloer Inscription Trainer service_npc 47642 0 0 0 0 +poi_npc_47646 service 0 -1853.15 5663.53 128.521 3.4658 1 Recorder Lidio Inscription Trainer Recorder Lidio Inscription Trainer service_npc 47646 0 0 0 0 +poi_npc_52882 service 0 -159.803 196.172 -49.5849 1.74533 1 Annora Enchanting Trainer Annora Enchanting Trainer service_npc 52882 278 267 hillsbradfoothills 0 0 +poi_npc_532 service 0 -4216.73 -12481.6 45.3254 6.05629 1 Valn Profession Trainer Valn Profession Trainer service_npc 532 0 0 0 0 +poi_npc_55353 tavern 0 8700.38 -6638.36 72.8276 5.51524 1 Marniel Amberlight Innkeeper Marniel Amberlight Innkeeper service_npc 55353 0 0 0 0 +poi_npc_55356 service 0 8986.43 -7419.07 89.4855 2.21657 1 Arathel Sunforge Blacksmithing Trainer Arathel Sunforge Blacksmithing Trainer service_npc 55356 0 0 0 0 +poi_npc_55372 tavern 0 9476.91 -6859.21 17.4246 1.72788 1 Innkeeper Delaniel Innkeeper Innkeeper Delaniel Innkeeper service_npc 55372 0 0 0 0 +poi_npc_55420 service 0 9484.79 -6876.58 17.5029 1.27409 1 Aleinia Jewelcrafting Trainer Aleinia Jewelcrafting Trainer service_npc 55420 0 0 0 0 +poi_npc_56753 service 0 8657.6 -6366.7 53.5858 0.139626 1 Magistrix Eredania Enchanting Trainer Magistrix Eredania Enchanting Trainer service_npc 56753 0 0 0 0 +poi_npc_56754 service 0 8661.36 -6367 53.6323 3.07178 1 Arcanist Sheynathren Alchemy Trainer Arcanist Sheynathren Alchemy Trainer service_npc 56754 0 0 0 0 +poi_npc_56981 service 0 9479.53 -6880.07 28.4266 1.36136 1 Kanaria First Aid Trainer Kanaria First Aid Trainer service_npc 56981 0 0 0 0 +poi_npc_56982 service 0 9362.89 -7134.58 8.66731 1.46608 1 Mathreyn Skinning Trainer Mathreyn Skinning Trainer service_npc 56982 0 0 0 0 +poi_npc_56985 service 0 9494.86 -6879.45 28.4306 4.55531 1 Quarelestra Cooking Trainer Quarelestra Cooking Trainer service_npc 56985 0 0 0 0 +poi_npc_56986 service 0 9363.75 -7130.75 8.68478 4.39823 1 Sathein Leatherworking Trainer Sathein Leatherworking Trainer service_npc 56986 0 0 0 0 +poi_npc_57022 service 0 8680.36 -6327.51 56.0313 3.9619 1 Sempstress Ambershine Tailoring Trainer Sempstress Ambershine Tailoring Trainer service_npc 57022 0 0 0 0 +poi_npc_57023 service 0 8678.92 -6329.09 56.0269 0.837758 1 Botanist Tyniarrel Herbalism Trainer & Supplies Botanist Tyniarrel Herbalism Trainer & Supplies service_npc 57023 0 0 0 0 +poi_npc_57556 service 0 167.278 2795.67 113.449 2.61799 1 Rohok Blacksmithing Trainer Rohok Blacksmithing Trainer service_npc 57556 2398 130 silverpineforest 0 0 +poi_npc_57561 service 0 225.656 2839.38 131.424 2.00713 1 Apothecary Antonivich Alchemy Trainer Apothecary Antonivich Alchemy Trainer service_npc 57561 2398 130 silverpineforest 0 0 +poi_npc_57606 tavern 0 190.876 2610.93 87.3669 2.42601 1 Floyd Pinkus Innkeeper Floyd Pinkus Innkeeper service_npc 57606 2398 130 silverpineforest 0 0 +poi_npc_57614 tavern 0 9684.1 -7363.6 12.0145 4.4855 1 Innkeeper Velandra Innkeeper Innkeeper Velandra Innkeeper service_npc 57614 0 0 0 0 +poi_npc_57617 service 0 9841.1 -7506.1 15.0275 1.65806 1 Ileda Ileda service_npc 57617 0 0 0 0 +poi_npc_57627 service 0 9962.51 -7247.43 32.1599 2.42601 1 Sedana Enchanting Trainer Sedana Enchanting Trainer service_npc 57627 0 0 0 0 +poi_npc_57634 service 0 9749.56 -7095.87 16.7743 1.71042 1 Keelen Sheets Tailoring Trainer Keelen Sheets Tailoring Trainer service_npc 57634 0 0 0 0 +poi_npc_57636 service 0 10018.3 -7209.14 32.1599 2.63545 1 Camberon Alchemy Trainer Camberon Alchemy Trainer service_npc 57636 0 0 0 0 +poi_npc_57638 service 0 10005.3 -7217.5 32.1598 0.942478 1 Botanist Nathera Herbalism Trainer Botanist Nathera Herbalism Trainer service_npc 57638 0 0 0 0 +poi_npc_57653 service 0 9580.31 -7343.42 14.5367 0.907571 1 Alestus First Aid Trainer Alestus First Aid Trainer service_npc 57653 0 0 0 0 +poi_npc_57654 service 0 9804.84 -7356.56 20.7757 6.10865 1 Belil Mining Trainer Belil Mining Trainer service_npc 57654 0 0 0 0 +poi_npc_57657 service 0 9822.16 -7333.16 26.3 0.8303 1 Danwe Engineering Trainer Danwe Engineering Trainer service_npc 57657 0 0 0 0 +poi_npc_57659 service 0 9841.98 -7362.39 18.5945 4.79965 1 Bemarrin Blacksmithing Trainer Bemarrin Blacksmithing Trainer service_npc 57659 0 0 0 0 +poi_npc_57666 service 0 9576.28 -7244.55 27.1145 0.733038 1 Sylann Cooking Trainer Sylann Cooking Trainer service_npc 57666 0 0 0 0 +poi_npc_57677 service 0 9503.61 -7430.97 14.2317 1.39626 1 Lynalis Leatherworking Trainer Lynalis Leatherworking Trainer service_npc 57677 0 0 0 0 +poi_npc_57681 service 0 9520.33 -7433.28 14.1588 0.902319 1 Tyn Skinning Trainer Tyn Skinning Trainer service_npc 57681 0 0 0 0 +poi_npc_57710 service 0 -4037.06 -11361 -138.836 4.79965 1 Lucc Alchemy Trainer Lucc Alchemy Trainer service_npc 57710 0 0 0 0 +poi_npc_57711 service 0 -4095.78 -11747 -139.578 3.68265 1 Refik Tailoring Trainer Refik Tailoring Trainer service_npc 57711 0 0 0 0 +poi_npc_57744 service 0 -4228.17 -11697.1 -143.465 5.25344 1 Muaat Mining Trainer Muaat Mining Trainer service_npc 57744 0 0 0 0 +poi_npc_57790 service 0 9607.08 -7324.33 15.0517 3.80482 1 Drathen Fishing Trainer Drathen Fishing Trainer service_npc 57790 0 0 0 0 +poi_npc_57881 service 0 -717.317 2607.58 91.0112 2.04204 1 Humphry Blacksmithing Trainer Humphry Blacksmithing Trainer service_npc 57881 4706 4706 ruinsofgilneas 0 0 +poi_npc_57884 tavern 0 -708.871 2739.13 94.8168 5.044 1 Sid Limbardi Innkeeper Sid Limbardi Innkeeper service_npc 57884 4706 4706 ruinsofgilneas 0 0 +poi_npc_61738 service 0 -4199.11 -12469.9 45.7105 3.29055 1 Anchorite Fateema First Aid Trainer Anchorite Fateema First Aid Trainer service_npc 61738 0 0 0 0 +poi_npc_61739 service 0 -4191.15 -12470 45.6375 3.80482 1 Daedal Alchemy Trainer Daedal Alchemy Trainer service_npc 61739 0 0 0 0 +poi_npc_61975 service 0 -4726.29 -12387 11.1737 3.24631 1 Blacksmith Calypso Blacksmithing Trainer & Supplies Blacksmith Calypso Blacksmithing Trainer & Supplies service_npc 61975 0 0 0 0 +poi_npc_61976 service 0 -4710.87 -12400.6 12.1142 1.1577 1 "Cookie" McWeaksauce Cooking Trainer & Supplies "Cookie" McWeaksauce Cooking Trainer & Supplies service_npc 61976 0 0 0 0 +poi_npc_62870 service 0 -1931.62 -11858.3 51.4339 2.77507 1 Anchorite Paetheus First Aid Trainer Anchorite Paetheus First Aid Trainer service_npc 62870 0 0 0 0 +poi_npc_62897 service 0 -2014.22 -11812.1 53.9252 4.88692 1 Morae Herbalism Trainer Morae Herbalism Trainer service_npc 62897 0 0 0 0 +poi_npc_62916 service 0 -3431.17 -12316.5 14.2924 4.53786 1 Gurf Skinning Trainer Gurf Skinning Trainer service_npc 62916 0 0 0 0 +poi_npc_62917 service 0 -3442.68 -12322.2 14.1547 6.12611 1 Moordo Leatherworking Trainer Moordo Leatherworking Trainer service_npc 62917 0 0 0 0 +poi_npc_62999 service 0 -4711.54 -12386.7 11.9356 3.89208 1 Erin Kelly Tailoring Trainer Erin Kelly Tailoring Trainer service_npc 62999 0 0 0 0 +poi_npc_63162 tavern 0 -2059.2 -11897 45.7415 0.959931 1 Caregiver Topher Loaal Innkeeper Caregiver Topher Loaal Innkeeper service_npc 63162 0 0 0 0 +poi_npc_63362 tavern 0 9565.68 -7222.8 16.4272 5.2709 1 Innkeeper Jovia Innkeeper Innkeeper Jovia Innkeeper service_npc 63362 0 0 0 0 +poi_npc_63366 service 0 252.251 6023.74 131.693 1.0472 1 K. Lee Smallfry Engineering Trainer K. Lee Smallfry Engineering Trainer service_npc 63366 0 0 0 0 +poi_npc_63368 service 0 228.256 7764.29 17.5397 4.7822 1 Mack Diver Engineering Trainer Mack Diver Engineering Trainer service_npc 63368 0 0 0 0 +poi_npc_63689 service 0 -4189.43 -12459.4 45.4232 5.95157 1 Heur Herbalism Trainer Heur Herbalism Trainer service_npc 63689 0 0 0 0 +poi_npc_63720 service 0 272.576 7853.82 24.0883 0.191986 1 Zurjaya Fishing Trainer Zurjaya Fishing Trainer service_npc 63720 0 0 0 0 +poi_npc_65514 tavern 0 228.163 7933.88 25.1611 5.13127 1 Merajit Innkeeper Merajit Innkeeper service_npc 65514 0 0 0 0 +poi_npc_65520 tavern 0 282.266 6098.17 132.571 4.66003 1 Caregiver Abidaar Innkeeper Caregiver Abidaar Innkeeper service_npc 65520 0 0 0 0 +poi_npc_66688 tavern 0 3023.56 5435.18 146.617 2.21423 1 Innkeeper Aelerya Innkeeper Innkeeper Aelerya Innkeeper service_npc 66688 0 0 0 0 +poi_npc_67006 service 0 186.755 2676.36 89.0101 3.15905 1 Krugosh Mining Trainer Krugosh Mining Trainer service_npc 67006 2398 130 silverpineforest 0 0 +poi_npc_67007 service 0 232.844 2842.46 131.424 4.15388 1 Ruak Stronghorn Herbalism Trainer Ruak Stronghorn Herbalism Trainer service_npc 67007 2398 130 silverpineforest 0 0 +poi_npc_67008 service 0 204.177 2617.73 87.3669 3.97935 1 Dalinna Tailoring Trainer Dalinna Tailoring Trainer service_npc 67008 2398 130 silverpineforest 0 0 +poi_npc_67024 service 0 179.75 2607.09 87.3669 0.226893 1 Kalaen Jewelcrafting Trainer Kalaen Jewelcrafting Trainer service_npc 67024 2398 130 silverpineforest 0 0 +poi_npc_67025 service 0 154.993 2710.45 88.1616 5.044 1 Zebig Engineering Trainer Zebig Engineering Trainer service_npc 67025 2398 130 silverpineforest 0 0 +poi_npc_67026 service 0 242.253 2836.55 145.176 0.872665 1 Felannia Enchanting Trainer Felannia Enchanting Trainer service_npc 67026 2398 130 silverpineforest 0 0 +poi_npc_67027 service 0 148.588 2636.02 86.018 1.27409 1 Barim Spilthoof Leatherworking Trainer Barim Spilthoof Leatherworking Trainer service_npc 67027 2398 130 silverpineforest 0 0 +poi_npc_67028 service 0 151.239 2633.32 86.627 0.15708 1 Moorutu Skinning Trainer Moorutu Skinning Trainer service_npc 67028 2398 130 silverpineforest 0 0 +poi_npc_67046 service 0 -721.657 2745.26 94.0548 3.45575 1 Brumman Leatherworking Trainer Brumman Leatherworking Trainer service_npc 67046 4706 4706 ruinsofgilneas 0 0 +poi_npc_67047 service 0 -712.816 2718.37 101.675 6.14356 1 Hama Tailoring Trainer Hama Tailoring Trainer service_npc 67047 4706 4706 ruinsofgilneas 0 0 +poi_npc_67048 service 0 -796.387 2769.96 146.618 2.25148 1 Johan Barnes Enchanting Trainer Johan Barnes Enchanting Trainer service_npc 67048 4706 4706 ruinsofgilneas 0 0 +poi_npc_67049 service 0 -711.68 2717.99 94.8203 6.21337 1 Tatiana Jewelcrafting Trainer Tatiana Jewelcrafting Trainer service_npc 67049 4706 4706 ruinsofgilneas 0 0 +poi_npc_67050 service 0 -777.6 2661.83 108.252 0.20944 1 Lebowski Engineering Trainer Lebowski Engineering Trainer service_npc 67050 4706 4706 ruinsofgilneas 0 0 +poi_npc_67051 service 0 -784.479 2771.25 120.93 4.43314 1 Rorelien Herbalism Trainer Rorelien Herbalism Trainer service_npc 67051 4706 4706 ruinsofgilneas 0 0 +poi_npc_67052 service 0 -693.831 2724.7 94.1936 3.1765 1 Jelena Nightsky Skinning Trainer Jelena Nightsky Skinning Trainer service_npc 67052 4706 4706 ruinsofgilneas 0 0 +poi_npc_67053 service 0 -717.806 2611.67 91.0945 5.88176 1 Hurnak Grimmord Mining Trainer Hurnak Grimmord Mining Trainer service_npc 67053 4706 4706 ruinsofgilneas 0 0 +poi_npc_67159 service 0 -785.352 2760.92 122.006 5.39307 1 Alchemist Gribble Alchemy Trainer Alchemist Gribble Alchemy Trainer service_npc 67159 4706 4706 ruinsofgilneas 0 0 +poi_npc_67161 service 0 -1937.86 -11912.5 48.1426 1.90241 1 Prospector Nachlan Explorers' League Prospector Nachlan Explorers' League service_npc 67161 0 0 0 0 +poi_npc_67878 tavern 0 -568.976 4151.49 68.217 3.735 1 Innkeeper Bazil Olof'tazun Innkeeper Innkeeper Bazil Olof'tazun Innkeeper service_npc 67878 214 214 thegreatsea 0 0 +poi_npc_67879 tavern 0 229.118 4333.73 119.083 3.07178 1 Caregiver Ophera Windfury Innkeeper Caregiver Ophera Windfury Innkeeper service_npc 67879 0 0 0 0 +poi_npc_67880 tavern 0 -174.478 5529.21 29.4909 3.33358 1 Innkeeper Coryth Stoktron Innkeeper Innkeeper Coryth Stoktron Innkeeper service_npc 67880 0 0 0 0 +poi_npc_67881 tavern 0 1056.38 7370.99 39.6667 3.85718 1 Innkeeper Kerp Innkeeper Innkeeper Kerp Innkeeper service_npc 67881 0 0 0 0 +poi_npc_67911 service 0 -279.86 5551.56 22.5139 2.05949 1 Juno Dufrain Fishing Trainer Juno Dufrain Fishing Trainer service_npc 67911 0 0 0 0 +poi_npc_67932 tavern 0 -1229.58 7161.33 57.3484 2.47837 1 Matron Tikkit Innkeeper Matron Tikkit Innkeeper service_npc 67932 0 0 0 0 +poi_npc_67933 tavern 0 -2761.41 7300.42 43.5535 1.72788 1 Caregiver Isel Innkeeper Caregiver Isel Innkeeper service_npc 67933 214 214 thegreatsea 0 0 +poi_npc_68097 tavern 0 -2621.78 4450.3 36.1768 4.62512 1 Innkeeper Grilka Innkeeper Innkeeper Grilka Innkeeper service_npc 68097 214 214 thegreatsea 0 0 +poi_npc_68268 service 0 -707.75 2749.15 94.805 2.96706 1 Gaston Cooking Trainer Gaston Cooking Trainer service_npc 68268 4706 4706 ruinsofgilneas 0 0 +poi_npc_68269 service 0 194.006 2605.81 87.3669 1.85005 1 Baxter Cooking Trainer Baxter Cooking Trainer service_npc 68269 2398 130 silverpineforest 0 0 +poi_npc_68270 service 0 123.621 4386.27 114.782 5.58505 1 Burko First Aid Trainer Burko First Aid Trainer service_npc 68270 0 0 0 0 +poi_npc_68271 service 0 -655.603 4187.3 68.632 4.60767 1 Aresella First Aid Trainer Aresella First Aid Trainer service_npc 68271 214 214 thegreatsea 0 0 +poi_npc_68273 service 0 -178.006 5527.99 29.4909 0.331613 1 Naka Cooking Trainer & Supplies Naka Cooking Trainer & Supplies service_npc 68273 0 0 0 0 +poi_npc_68349 tavern 0 -1904.29 5765.5 131.296 0.314159 1 Minalei Innkeeper Minalei Innkeeper service_npc 68349 0 0 0 0 +poi_npc_68361 service 0 -1661.06 5539.73 -4.87096 5.32325 1 Lorokeem Alchemy Trainer Lorokeem Alchemy Trainer service_npc 68361 0 0 0 0 +poi_npc_68364 service 0 -1654.68 5664.69 132.774 1.11701 1 Hamanar Jewelcrafting Trainer Hamanar Jewelcrafting Trainer service_npc 68364 0 0 0 0 +poi_npc_68625 service 0 -2047.99 5299.68 -38.5085 5.67232 1 Seymour Skinning Trainer Seymour Skinning Trainer service_npc 68625 214 214 thegreatsea 0 0 +poi_npc_68633 service 0 -1592.02 5263.72 -13.9117 1.15192 1 Mildred Fletcher First Aid Trainer Mildred Fletcher First Aid Trainer service_npc 68633 214 214 thegreatsea 0 0 +poi_npc_68634 service 0 -2067.41 5316.57 -37.3236 1.26899 1 Jack Trapper Cooking Trainer Jack Trapper Cooking Trainer service_npc 68634 214 214 thegreatsea 0 0 +poi_npc_68635 service 0 -1767.14 5135.39 -37.2049 3.67627 1 Kylene Barmaid Kylene Barmaid service_npc 68635 214 214 thegreatsea 0 0 +poi_npc_68636 service 0 -2060.92 5256.68 -38.3819 0.767945 1 Darmari Leatherworking Trainer Darmari Leatherworking Trainer service_npc 68636 214 214 thegreatsea 0 0 +poi_npc_68760 tavern 0 -2184.04 5399.62 51.9658 1.23918 1 Innkeeper Haelthol Innkeeper Innkeeper Haelthol Innkeeper service_npc 68760 0 0 0 0 +poi_npc_68775 service 0 -2277.57 5570.21 79.9269 4.31096 1 Enchantress Volali Enchanting Trainer Enchantress Volali Enchanting Trainer service_npc 68775 0 0 0 0 +poi_npc_68776 service 0 -2278.56 5567.73 79.9171 1.23918 1 High Enchanter Bardolan Enchanting Trainer High Enchanter Bardolan Enchanting Trainer service_npc 68776 0 0 0 0 +poi_npc_68872 tavern 0 -2917.88 4021.48 0.51079 3.66519 1 Innkeeper Biribi Innkeeper Innkeeper Biribi Innkeeper service_npc 68872 214 214 thegreatsea 0 0 +poi_npc_68904 tavern 0 -2965 2562 78.6 2 1 Innkeeper Darg Bloodclaw Innkeeper Innkeeper Darg Bloodclaw Innkeeper service_npc 68904 214 214 thegreatsea 0 0 +poi_npc_68957 service 0 -3103 2595 63 0 1 Grutah Blacksmithing Trainer Grutah Blacksmithing Trainer service_npc 68957 214 214 thegreatsea 0 0 +poi_npc_69013 tavern 0 -4084.32 2186.97 107.585 0.139626 1 Dreg Cloudsweeper Innkeeper Dreg Cloudsweeper Innkeeper service_npc 69013 214 214 thegreatsea 0 0 +poi_npc_69100 service 0 -4093.06 2178.5 107.03 0.802851 1 Celie Steelwing Cooking Trainer Celie Steelwing Cooking Trainer service_npc 69100 214 214 thegreatsea 0 0 +poi_npc_69731 tavern 0 2404.13 5950.76 152.192 1.76278 1 Gholah Innkeeper Gholah Innkeeper service_npc 69731 0 0 0 0 +poi_npc_69738 service 0 2415.58 5915.76 152.4 2.02458 1 Fera Palerunner First Aid Trainer Fera Palerunner First Aid Trainer service_npc 69738 0 0 0 0 +poi_npc_69856 tavern 0 2098.18 6903.92 183.313 3.75246 1 Innkeeper Shaunessy Innkeeper Innkeeper Shaunessy Innkeeper service_npc 69856 0 0 0 0 +poi_npc_69936 tavern 0 4113.01 3066.12 339.548 5.18363 1 Eyonix Innkeeper Eyonix Innkeeper service_npc 69936 214 214 thegreatsea 0 0 +poi_npc_69944 service 0 4191.23 3001.25 339.392 2.33874 1 Jazdalaad Jewelcrafting Trainer Jazdalaad Jewelcrafting Trainer service_npc 69944 214 214 thegreatsea 0 0 +poi_npc_69945 service 0 4205.09 3017.44 339.392 4.06662 1 Asarnan Enchanting Trainer Asarnan Enchanting Trainer service_npc 69945 214 214 thegreatsea 0 0 +poi_npc_70010 tavern 0 3062.15 3701.82 142.562 4.79965 1 Innkeeper Remi Dodoso Innkeeper Innkeeper Remi Dodoso Innkeeper service_npc 70010 214 214 thegreatsea 0 0 +poi_npc_70015 service 0 2974 3672.69 143.634 0 1 Xyrol Engineering Trainer Xyrol Engineering Trainer service_npc 70015 214 214 thegreatsea 0 0 +poi_npc_70730 service 0 9558.09 -7495.16 16.3403 3.9619 1 Kalinda Jewelcrafting Trainer Kalinda Jewelcrafting Trainer service_npc 70730 0 0 0 0 +poi_npc_71625 service 0 -1847.61 5230.97 -38.0452 4.77226 1 Kradu Grimblade Blacksmithing Trainer Kradu Grimblade Blacksmithing Trainer service_npc 71625 214 214 thegreatsea 0 0 +poi_npc_71626 service 0 -1839.5 5223.18 -37.9621 3.42085 1 Zula Slagfury Blacksmithing Trainer Zula Slagfury Blacksmithing Trainer service_npc 71626 214 214 thegreatsea 0 0 +poi_npc_74113 service 0 2039.82 4675.43 150.074 0.977384 1 Grikka Leatherworking Trainer Grikka Leatherworking Trainer service_npc 74113 0 0 0 0 +poi_npc_74114 tavern 0 2227.13 4717.91 162.075 2.00713 1 Matron Varah Innkeeper Matron Varah Innkeeper service_npc 74114 0 0 0 0 +poi_npc_74143 tavern 0 1944.85 5537.87 266.734 2.14675 1 Fizit "Doc" Clocktock Innkeeper Fizit "Doc" Clocktock Innkeeper service_npc 74143 0 0 0 0 +poi_npc_74397 service 0 -595.426 2899.24 59.2054 2.37375 1 Dumphry Blacksmithing Trainer Dumphry Blacksmithing Trainer service_npc 74397 4706 4706 ruinsofgilneas 0 0 +poi_npc_74480 service 0 8553.96 863.632 547.436 0.942478 1 Dustin Vail Tailoring Trainer Dustin Vail Tailoring Trainer service_npc 74480 0 0 0 0 +poi_npc_74701 service 0 8556.13 942.075 547.664 0 1 Kul'de Leatherworking Trainer Kul'de Leatherworking Trainer service_npc 74701 0 0 0 0 +poi_npc_74975 service 0 8569.21 863.483 547.652 2.00713 1 Fael Morningsong Enchanting Trainer Fael Morningsong Enchanting Trainer service_npc 74975 0 0 0 0 +poi_npc_75088 service 0 -2091.98 5634.98 50.3112 2.84489 1 Aelthin Alchemy Trainer Aelthin Alchemy Trainer service_npc 75088 0 0 0 0 +poi_npc_75089 service 0 -2093.76 5632.88 50.3112 2.51327 1 Botanist Alaenra Herbalism Trainer Botanist Alaenra Herbalism Trainer service_npc 75089 0 0 0 0 +poi_npc_75402 service 0 3088.5 3645.93 142.639 6.10865 1 Kablamm Farflinger Transportation Engineer Kablamm Farflinger Transportation Engineer service_npc 75402 214 214 thegreatsea 0 0 +poi_npc_75471 service 0 8551.09 917.832 547.379 0.820305 1 Binkie Brightgear Engineering Trainer Binkie Brightgear Engineering Trainer service_npc 75471 0 0 0 0 +poi_npc_75712 service 0 8549.81 906.748 547.438 0 1 Bethany Cromwell Cooking Trainer Bethany Cromwell Cooking Trainer service_npc 75712 0 0 0 0 +poi_npc_75903 service 0 8546.45 953.047 547.377 5.79449 1 Crystal Brightspark Alchemy Trainer Crystal Brightspark Alchemy Trainer service_npc 75903 0 0 0 0 +poi_npc_75904 service 0 8489.46 964.667 547.293 3.19395 1 Joseph Wilson First Aid Trainer Joseph Wilson First Aid Trainer service_npc 75904 0 0 0 0 +poi_npc_75906 service 0 8553.32 962.42 547.562 0.366519 1 Oluros Jewelcrafting Trainer Oluros Jewelcrafting Trainer service_npc 75906 0 0 0 0 +poi_npc_75910 service 0 8550.03 936.91 547.377 5.5676 1 Rekka the Hammer Blacksmithing Trainer Rekka the Hammer Blacksmithing Trainer service_npc 75910 0 0 0 0 +poi_npc_75998 tavern 0 -4141.9 1127.26 44.6148 0.436332 1 Roldemar Innkeeper Roldemar Innkeeper service_npc 75998 2365 11 wetlands 0 0 +poi_npc_75999 tavern 0 -2983.52 863.391 -7.48924 3.08923 1 Caretaker Aluuro Innkeeper Caretaker Aluuro Innkeeper service_npc 75999 2365 11 wetlands 0 0 +poi_npc_78918 service 0 -3739.92 5418.41 -3.31487 4.38078 1 Anchorite Ensham First Aid Trainer Anchorite Ensham First Aid Trainer service_npc 78918 5146 5146 vashjir 0 0 +poi_npc_81741 tavern 0 7553.37 -6897.35 96.11 1.09956 1 Innkeeper Kalarin Innkeeper Innkeeper Kalarin Innkeeper service_npc 81741 0 0 0 0 +poi_npc_82940 tavern 0 -3746.37 -11696.1 -105.87 3.14578 1 Caregiver Breel Innkeeper Caregiver Breel Innkeeper service_npc 82940 0 0 0 0 +poi_npc_82941 service 0 -3781.55 -11541.8 -134.744 1.93941 1 Farii Jewelcrafting Trainer Farii Jewelcrafting Trainer service_npc 82941 0 0 0 0 +poi_npc_82946 service 0 -4214.06 -11630.2 -98.8992 5.66455 1 Handiir Handiir service_npc 82946 0 0 0 0 +poi_npc_82948 tavern 0 -4129.43 -12469 44.0842 3.90528 1 Caregiver Chellan Innkeeper Caregiver Chellan Innkeeper service_npc 82948 0 0 0 0 +poi_npc_82949 service 0 -4266.38 -12985.1 2.29031 5.5232 1 Diktynna Fishing Trainer & Supplies Diktynna Fishing Trainer & Supplies service_npc 82949 0 0 0 0 +poi_npc_84408 service 0 -3797.98 -11655.5 -106.063 4.08407 1 Mumman Cooking Trainer Mumman Cooking Trainer service_npc 84408 0 0 0 0 +poi_npc_84579 service 0 -4179.89 -12493.1 44.4446 1.72788 1 Dulvi Mining Trainer Dulvi Mining Trainer service_npc 84579 0 0 0 0 +poi_npc_84582 service 0 -4157.57 -12470.2 44.9803 2.23402 1 Artificer Daelo Engineering Trainer Artificer Daelo Engineering Trainer service_npc 84582 0 0 0 0 +poi_npc_84990 tavern 0 8605.13 665.765 550.375 5.61996 1 Caris Sunlance Innkeeper Caris Sunlance Innkeeper service_npc 84990 0 0 0 0 +poi_npc_84992 tavern 0 8425.18 671.476 550.458 4.01426 1 Jarin Dawnglow Innkeeper Jarin Dawnglow Innkeeper service_npc 84992 0 0 0 0 +poi_npc_85320 service 0 533.751 -5048.23 10.3191 1.39626 1 Byron Welwick Fishing Trainer Byron Welwick Fishing Trainer service_npc 85320 307 47 thehinterlands 0 0 +poi_npc_85588 service 0 -4263.95 -11638.5 -142.013 5.16617 1 Ockil Engineering Trainer Ockil Engineering Trainer service_npc 85588 0 0 0 0 +poi_npc_85595 service 0 -4243.9 -11706.7 -143.99 0.645772 1 Miall Blacksmithing Trainer Miall Blacksmithing Trainer service_npc 85595 0 0 0 0 +poi_npc_85596 service 0 -4135.28 -11760.2 -136.734 3.735 1 Remere Skinning Trainer Remere Skinning Trainer service_npc 85596 0 0 0 0 +poi_npc_85597 service 0 -4135.17 -11779.7 -136.806 1.74533 1 Akham Leatherworking Trainer Akham Leatherworking Trainer service_npc 85597 0 0 0 0 +poi_npc_85614 service 0 -3766.05 -11481.8 -134.338 3.19956 1 Nus First Aid Trainer Nus First Aid Trainer service_npc 85614 0 0 0 0 +poi_npc_85615 service 0 -3712.96 -11404 -133.865 1.85005 1 Erett Fishing Trainer Erett Fishing Trainer service_npc 85615 0 0 0 0 +poi_npc_85619 service 0 -3882.85 -11496.7 -136.057 1.67552 1 Nahogg Enchanting Trainer Nahogg Enchanting Trainer service_npc 85619 0 0 0 0 +poi_npc_85630 service 0 -4052.46 -11356.4 -138.998 4.69494 1 Cemmorhan Herbalism Trainer Cemmorhan Herbalism Trainer service_npc 85630 0 0 0 0 +poi_npc_85881 service 0 7586.1 -6881.42 95.1048 1.23918 1 Master Chef Mouldier Cooking Trainer & Supplies Master Chef Mouldier Cooking Trainer & Supplies service_npc 85881 0 0 0 0 +poi_npc_88255 service 0 -1858.61 5658.11 127.459 2.79598 1 Zurii Enchanting Trainer Zurii Enchanting Trainer service_npc 88255 0 0 0 0 +poi_npc_88256 service 0 -1892.28 5662.67 127.459 0.45548 1 Nemiha Jewelcrafting Trainer Nemiha Jewelcrafting Trainer service_npc 88256 0 0 0 0 +poi_npc_88257 service 0 -1897.77 5663.99 128.514 0.125614 1 Fono Mining Trainer Fono Mining Trainer service_npc 88257 0 0 0 0 +poi_npc_88259 service 0 -1737.53 5629.11 128.023 0.142108 1 Alchemist Kanhu Alchemy Trainer Alchemist Kanhu Alchemy Trainer service_npc 88259 0 0 0 0 +poi_npc_88260 service 0 -1738.27 5636.08 128.023 6.27607 1 Jijia Herbalism Trainer Jijia Herbalism Trainer service_npc 88260 0 0 0 0 +poi_npc_88261 service 0 -1747.66 5643.65 128.023 0.000734 1 Onodo Blacksmithing Trainer Onodo Blacksmithing Trainer service_npc 88261 0 0 0 0 +poi_npc_88262 service 0 -1751.24 5641.23 129.071 0.845039 1 Technician Mihila Engineering Trainer Technician Mihila Engineering Trainer service_npc 88262 0 0 0 0 +poi_npc_88263 service 0 -1707.45 5651.2 129.081 3.67248 1 Dremm Skinning Trainer Dremm Skinning Trainer service_npc 88263 0 0 0 0 +poi_npc_88264 service 0 -1708.82 5642.69 129.071 2.76141 1 Weaver Aoa Tailoring Trainer Weaver Aoa Tailoring Trainer service_npc 88264 0 0 0 0 +poi_npc_88265 service 0 -1714.82 5645.47 128.024 3.64106 1 Korim Leatherworking Trainer Korim Leatherworking Trainer service_npc 88265 0 0 0 0 +poi_npc_88266 service 0 -2128.29 5366.55 54.8629 1.63907 1 Hanlir Mining Trainer Hanlir Mining Trainer service_npc 88266 0 0 0 0 +poi_npc_88267 service 0 -2128.67 5372.53 53.8087 1.38618 1 Kirembri Silvermane Jewelcrafting Trainer Kirembri Silvermane Jewelcrafting Trainer service_npc 88267 0 0 0 0 +poi_npc_88268 service 0 -2124.96 5410.95 54.8625 5.16159 1 Enchantress Andiala Enchanting Trainer Enchantress Andiala Enchanting Trainer service_npc 88268 0 0 0 0 +poi_npc_88269 service 0 -2040.66 5567.97 53.384 0.992695 1 Barien Blacksmithing Trainer Barien Blacksmithing Trainer service_npc 88269 0 0 0 0 +poi_npc_88270 service 0 -2041.29 5561.97 54.4371 1.56054 1 Engineer Sinbei Engineering Trainer Engineer Sinbei Engineering Trainer service_npc 88270 0 0 0 0 +poi_npc_88271 service 0 -2023.51 5596.42 53.3846 4.12487 1 Daenril Leatherworking Trainer Daenril Leatherworking Trainer service_npc 88271 0 0 0 0 +poi_npc_88272 service 0 -2026.79 5598.05 53.3846 4.81601 1 Miralisse Tailoring Trainer Miralisse Tailoring Trainer service_npc 88272 0 0 0 0 +poi_npc_88273 service 0 -2027.25 5604.75 54.444 4.83956 1 Irduil Skinning Trainer Irduil Skinning Trainer service_npc 88273 0 0 0 0 +poi_npc_94379 tavern 0 12817 -7004.92 18.5937 2.21166 1 Caregiver Inaara Innkeeper Caregiver Inaara Innkeeper service_npc 94379 0 0 0 0 +poi_npc_97428 tavern 0 8426.41 -355.584 906.485 0.820305 1 Magorn Innkeeper Magorn Innkeeper service_npc 97428 0 0 0 0 +poi_npc_97509 tavern 0 704.029 -2932.88 -2.98511 0.20944 1 Caregiver Iqniq Innkeeper Caregiver Iqniq Innkeeper service_npc 97509 47 47 thehinterlands 0 0 +poi_npc_97654 tavern 0 5671.43 724.478 653.412 2.08769 1 Caliel Brightwillow Assistant Innkeeper Caliel Brightwillow Assistant Innkeeper service_npc 97654 0 0 0 0 +poi_npc_97714 tavern 0 5847.97 635.435 647.574 1.0472 1 Amisi Azuregaze Innkeeper Amisi Azuregaze Innkeeper service_npc 97714 0 0 0 0 +poi_npc_97928 tavern 0 7798.31 -2967.05 1258.92 1.11701 1 Wabada Whiteflower Innkeeper Wabada Whiteflower Innkeeper service_npc 97928 0 0 0 0 +poi_npc_98040 service 0 5846.42 728.394 642.08 3.66519 1 Enchanter Nalthanis Enchanting Trainer Enchanter Nalthanis Enchanting Trainer service_npc 98040 0 0 0 0 +poi_npc_98070 service 0 5913.41 676.299 643.579 2.9147 1 Alard Schmied Blacksmithing Trainer Alard Schmied Blacksmithing Trainer service_npc 98070 0 0 0 0 +poi_npc_98071 tavern 0 1873.32 -6218.15 13.1841 1.3439 1 Timothy Holland Innkeeper Timothy Holland Innkeeper service_npc 98071 4546 139 easternplaguelands 0 0 +poi_npc_98087 service 0 608.451 -4925.96 17.9667 3.42085 1 Lanolis Dewdrop Alchemy Trainer Lanolis Dewdrop Alchemy Trainer service_npc 98087 307 47 thehinterlands 0 0 +poi_npc_98110 service 0 545.083 -5000.47 10.6208 6.19592 1 Rosina Rivet Blacksmithing Trainer Rosina Rivet Blacksmithing Trainer service_npc 98110 307 47 thehinterlands 0 0 +poi_npc_98120 service 0 5910.78 763.743 641.18 4.50295 1 Derik Marks Skinning Trainer Derik Marks Skinning Trainer service_npc 98120 0 0 0 0 +poi_npc_98178 service 0 5923.3 733.456 642.212 4.59022 1 Timofey Oshenko Engineering Trainer Timofey Oshenko Engineering Trainer service_npc 98178 0 0 0 0 +poi_npc_98184 service 0 615.058 -4916.97 18.7611 3.28122 1 Brom Brewbaster Cooking Trainer Brom Brewbaster Cooking Trainer service_npc 98184 307 47 thehinterlands 0 0 +poi_npc_98236 service 0 588.048 -4940.85 28.177 1.13446 1 Elizabeth Jackson Enchanting Trainer Elizabeth Jackson Enchanting Trainer service_npc 98236 307 47 thehinterlands 0 0 +poi_npc_98239 service 0 5924.54 708.256 642.621 2.9147 1 Jedidiah Handers Mining Trainer Jedidiah Handers Mining Trainer service_npc 98239 0 0 0 0 +poi_npc_98344 service 0 534.039 -5006.6 10.6165 5.89921 1 Tisha Longbridge Engineering Trainer Tisha Longbridge Engineering Trainer service_npc 98344 307 47 thehinterlands 0 0 +poi_npc_98346 service 0 5881.01 752.591 640.486 4.93928 1 Charles Worth Tailoring Trainer Charles Worth Tailoring Trainer service_npc 98346 0 0 0 0 +poi_npc_98421 service 0 5908.16 764.413 641.169 4.62512 1 Diane Cannings Leatherworking Trainer Diane Cannings Leatherworking Trainer service_npc 98421 0 0 0 0 +poi_npc_98589 service 0 5871.05 714.891 643.176 1.29154 1 Timothy Jones Jewelcrafting Trainer Timothy Jones Jewelcrafting Trainer service_npc 98589 0 0 0 0 +poi_npc_98803 service 0 5860.99 707.239 643.355 4.39823 1 Professor Pallin Inscription Trainer Professor Pallin Inscription Trainer service_npc 98803 0 0 0 0 +poi_npc_98806 service 0 577.173 -4950.83 18.0981 3.33358 1 Fayin Whisperleaf Herbalism Trainer Fayin Whisperleaf Herbalism Trainer service_npc 98806 307 47 thehinterlands 0 0 +poi_npc_98841 service 0 554.88 -5018.89 11.5043 1.8326 1 Bernadette Dexter Leatherworking Trainer Bernadette Dexter Leatherworking Trainer service_npc 98841 307 47 thehinterlands 0 0 +poi_npc_98842 service 0 5889.27 698.529 643.266 1.6057 1 Linzy Blackbolt Alchemy Trainer Linzy Blackbolt Alchemy Trainer service_npc 98842 0 0 0 0 +poi_npc_98860 service 0 537.788 -5020.13 10.6239 0.907571 1 Grumbol Stoutpick Mining Trainer Grumbol Stoutpick Mining Trainer service_npc 98860 307 47 thehinterlands 0 0 +poi_npc_98866 service 0 5878.11 696.354 644.913 4.06662 1 Dorothy Egan Herbalism Trainer Dorothy Egan Herbalism Trainer service_npc 98866 0 0 0 0 +poi_npc_98952 service 0 5707.61 715.535 642.472 0.837758 1 Katherine Lee Cooking Trainer Katherine Lee Cooking Trainer service_npc 98952 0 0 0 0 +poi_npc_98959 service 0 548.9 -5021.24 11.0368 1.71042 1 Frederic Burrhus Skinning Trainer Frederic Burrhus Skinning Trainer service_npc 98959 307 47 thehinterlands 0 0 +poi_npc_99018 service 0 588.854 -4938.71 28.1742 4.45059 1 Benjamin Clegg Tailoring Trainer Benjamin Clegg Tailoring Trainer service_npc 99018 307 47 thehinterlands 0 0 +poi_npc_99029 service 0 5860.29 749.055 640.564 5.13127 1 Olisarra the Kind First Aid Trainer Olisarra the Kind First Aid Trainer service_npc 99029 0 0 0 0 +poi_npc_99181 service 0 542.818 -5020.94 10.6891 0.925025 1 Ounhulo Jewelcrafting Trainer Ounhulo Jewelcrafting Trainer service_npc 99181 307 47 thehinterlands 0 0 +poi_npc_99197 service 0 599.037 -4920.18 29.7398 5.02655 1 Mindri Dinkles Inscription Trainer Mindri Dinkles Inscription Trainer service_npc 99197 307 47 thehinterlands 0 0 +poi_npc_99371 tavern 0 2779.23 927.021 22.6099 5.23599 1 Caregiver Mumik Innkeeper Caregiver Mumik Innkeeper service_npc 99371 157 85 tirisfalglades 0 0 +poi_tele_1 landmark 0 1054.94 1055.23 -48.2358 0.313367 1 AB AB game_tele 1 1338 130 silverpineforest 0 0 +poi_tele_10 landmark 0 2799.46 847.549 111.842 0.509892 1 AgamandMills AgamandMills game_tele 10 157 85 tirisfalglades 0 0 +poi_tele_100 landmark 0 -7179.34 -921.212 165.821 5.09599 1 BlackrockDepths BlackrockDepths game_tele 100 25 25 blackrockmountain 0 0 +poi_tele_1000 landmark 0 -8243.79 -1081.22 -201.915 2.1135 1 TerrorRun TerrorRun game_tele 1000 5650 46 burningsteppes 0 0 +poi_tele_1001 landmark 0 2739.7 -2465.84 73.5058 5.39901 1 TerrorwebTunnel TerrorwebTunnel game_tele 1001 2626 139 easternplaguelands 0 0 +poi_tele_1002 landmark 0 -7585.46 -2720.35 134.451 5.65201 1 TerrorWingPath TerrorWingPath game_tele 1002 2420 46 burningsteppes 0 0 +poi_tele_1003 landmark 0 43.7346 1785.5 110.983 2.83589 1 TethrisAran TethrisAran game_tele 1003 130 130 silverpineforest 0 0 +poi_tele_1004 landmark 0 -4525.63 -791.364 -42.3639 1.09938 1 Thalanaar Thalanaar game_tele 1004 1 1 dun_morogh 0 0 +poi_tele_1005 settlement 0 4337.93 -6105.19 122.737 4.99736 1 ThalassianBaseCamp ThalassianBaseCamp game_tele 1005 214 214 thegreatsea 0 0 +poi_tele_1006 landmark 0 6480.81 -6851.1 100.15 3.10746 1 ThalassianPass ThalassianPass game_tele 1006 0 0 0 0 +poi_tele_1007 landmark 0 -2363.54 -2503.22 88.3441 1.25443 1 ThandolSpan ThandolSpan game_tele 1007 880 45 arathihighlands 0 0 +poi_tele_1008 landmark 0 -3597.86 1879.9 47.2408 4.94268 1 TheAltarOfDamnation TheAltarOfDamnation game_tele 1008 2365 11 wetlands 0 0 +poi_tele_1009 landmark 0 -4559.69 1014.4 10.9432 0.447663 1 TheAltarOfShadows TheAltarOfShadows game_tele 1009 1 1 dun_morogh 0 0 +poi_tele_101 zone 0 -7494.94 -1123.49 265.547 3.3092 1 BlackrockMountain BlackrockMountain game_tele 101 25 25 blackrockmountain 1 0 +poi_tele_1010 landmark 0 -271.689 -3438.52 187.18 3.93027 1 TheAltarOfZul TheAltarOfZul game_tele 1010 355 47 thehinterlands 0 0 +poi_tele_1011 landmark 0 1514.38 323.128 -62.1661 2.31096 1 TheApothecarium TheApothecarium game_tele 1011 1497 1497 undercity 0 0 +poi_tele_1012 landmark 0 3308.92 1340.72 505.56 4.94686 1 TheArcatraz TheArcatraz game_tele 1012 214 214 thegreatsea 0 0 +poi_tele_1013 landmark 0 884.54 -3548.45 91.8532 2.95957 1 TheBarrens TheBarrens game_tele 1013 47 47 thehinterlands 0 0 +poi_tele_1014 landmark 0 -1366.97 5905.97 191.618 5.17124 1 TheBarrierHills TheBarrierHills game_tele 1014 0 0 0 0 +poi_tele_1015 landmark 0 9687.22 -7175.47 13.9257 1.37183 1 TheBazaar TheBazaar game_tele 1015 0 0 0 0 +poi_tele_1016 landmark 0 -8734.3 -4230.11 -209.5 2.16212 1 TheBlackMorass TheBlackMorass game_tele 1016 44 44 redridgemountains 0 0 +poi_tele_1017 landmark 0 -1218.3 -12837.2 0.001255 3.77931 1 TheBloodcursedReff TheBloodcursedReff game_tele 1017 0 0 0 0 +poi_tele_1018 landmark 0 -291.324 3149.1 31.5541 2.27147 1 TheBloodFurnace TheBloodFurnace game_tele 1018 2398 130 silverpineforest 0 0 +poi_tele_1019 landmark 0 -3537.02 4572.27 -20.9226 3.55964 1 TheBoneWastes TheBoneWastes game_tele 1019 5146 5146 vashjir 0 0 +poi_tele_102 landmark 0 -8520.94 -2559.99 133.334 3.27225 1 BlackrockPass BlackrockPass game_tele 102 2417 46 burningsteppes 0 0 +poi_tele_1020 landmark 0 3407.11 1488.48 182.838 5.59559 1 TheBotanica TheBotanica game_tele 1020 214 214 thegreatsea 0 0 +poi_tele_1021 landmark 0 1711.99 -719.761 54.3351 4.66387 1 TheBulwark TheBulwark game_tele 1021 152 85 tirisfalglades 0 0 +poi_tele_1022 zone 0 -14087 290.316 15.7614 3.9234 1 TheCapeOfStranglethorn TheCapeOfStranglethorn game_tele 1022 5287 5287 thecapeofstranglethorn 1 0 +poi_tele_1023 landmark 0 -6939.52 -1263.21 179.709 0.200595 1 TheCauldron TheCauldron game_tele 1023 246 51 searinggorge 0 0 +poi_tele_1024 landmark 0 721.568 1494.15 -18.1516 1.85895 1 TheCharredValed TheCharredValed game_tele 1024 130 130 silverpineforest 0 0 +poi_tele_1025 landmark 0 10303.8 1198.57 1457.46 3.0779 1 TheCleft TheCleft game_tele 1025 0 0 0 0 +poi_tele_1026 landmark 0 -9498.58 -1921.71 78.7092 0.662431 1 TheCorners TheCorners game_tele 1026 1002 44 redridgemountains 0 0 +poi_tele_1027 ruins 0 120.332 -3456.52 108.157 4.37088 1 TheCreepingRuin TheCreepingRuin game_tele 1027 1886 47 thehinterlands 0 0 +poi_tele_1028 landmark 0 -2510.36 -12488.4 2.03858 4.73043 1 TheCrimsonReach TheCrimsonReach game_tele 1028 0 0 0 0 +poi_tele_1029 landmark 0 -452.84 -2650.76 95.5209 0.241081 1 TheCrossroads TheCrossroads game_tele 1029 47 47 thehinterlands 0 0 +poi_tele_103 landmark 0 -7527.05 -1226.77 285.732 5.29626 1 BlackrockSpire BlackrockSpire game_tele 103 25 25 blackrockmountain 0 0 +poi_tele_1030 landmark 0 -2054.45 -11389.9 61.4746 2.05143 1 TheCryocore TheCryocore game_tele 1030 0 0 0 0 +poi_tele_1031 landmark 0 -3821.99 -11489.4 -138.564 1.09563 1 TheCrystalHall TheCrystalHall game_tele 1031 0 0 0 0 +poi_tele_1032 landmark 0 -14081.3 -144.113 3.68835 4.61063 1 TheCrystalShore TheCrystalShore game_tele 1032 302 5287 thecapeofstranglethorn 0 0 +poi_tele_1033 landmark 0 -6248.2 1695.54 6.3349 3.55227 1 TheCrystalVale TheCrystalVale game_tele 1033 214 214 thegreatsea 0 0 +poi_tele_1034 landmark 0 -11276.9 1428.07 89.7866 1.29233 1 TheDaggerHills TheDaggerHills game_tele 1034 920 40 westfall 0 0 +poi_tele_1035 bank 0 -9966.63 -614.729 34.8066 5.94737 1 TheDarkenedBank TheDarkenedBank game_tele 1035 799 10 duskwood 0 0 +poi_tele_1036 landmark 0 -11840.1 -3196.63 -29.6059 3.3391 1 TheDarkPortal TheDarkPortal game_tele 1036 72 4 blasted_lands 0 0 +poi_tele_1037 landmark 0 -247.29 910.638 84.3798 1.49341 1 TheDarkPortalOutland TheDarkPortalOutland game_tele 1037 233 130 silverpineforest 0 0 +poi_tele_1038 landmark 0 1173.43 372.651 33.9918 4.07796 1 TheDawningIsles TheDawningIsles game_tele 1038 232 130 silverpineforest 0 0 +poi_tele_1039 landmark 0 -10821.8 869.442 33.0338 0.631022 1 TheDeadAcre TheDeadAcre game_tele 1039 917 40 westfall 0 0 +poi_tele_104 landmark 0 -7733.43 -1510.24 132.792 1.01584 1 BlackrockStronghold BlackrockStronghold game_tele 104 5653 46 burningsteppes 0 0 +poi_tele_1040 landmark 0 1064.64 1551.05 28.3425 3.01297 1 TheDeadField TheDeadField game_tele 1040 5386 130 silverpineforest 0 0 +poi_tele_1041 zone 0 -11208.7 1673.52 24.6361 1.51067 1 TheDeadmines TheDeadmines game_tele 1041 1581 1581 thedeadmines 1 0 +poi_tele_1042 landmark 0 664.515 5349.82 -23.1373 0.875759 1 TheDeadMire TheDeadMire game_tele 1042 0 0 0 0 +poi_tele_1043 landmark 0 9013.29 -6930.75 17.8158 2.99131 1 TheDeadScar TheDeadScar game_tele 1043 0 0 0 0 +poi_tele_1044 workshop 0 -3435.61 2044.34 79.0861 5.47439 1 TheDeathforge TheDeathforge game_tele 1044 2365 11 wetlands 0 0 +poi_tele_1045 landmark 0 658.574 1011.34 44.6068 5.4367 1 TheDecrepitFerry TheDecrepitFerry game_tele 1045 237 130 silverpineforest 0 0 +poi_tele_1046 landmark 0 -603.88 -4191.68 41.0998 1.55607 1 TheDen TheDen game_tele 1046 354 47 thehinterlands 0 0 +poi_tele_1047 landmark 0 -4303.61 -3041.87 29.9607 1.55428 1 TheDenOfFlame TheDenOfFlame game_tele 1047 11 11 wetlands 0 0 +poi_tele_1048 landmark 0 1775.99 -2663.07 109.366 4.96353 1 TheDorDanilBarrowDen TheDorDanilBarrowDen game_tele 1048 2619 139 easternplaguelands 0 0 +poi_tele_1049 landmark 0 1913.54 -4490.07 23.16 4.13223 1 TheDrag TheDrag game_tele 1049 2264 139 easternplaguelands 0 0 +poi_tele_105 landmark 0 -2348.01 -11059.3 0.530463 2.53917 1 BlacksiltShore BlacksiltShore game_tele 105 0 0 0 0 +poi_tele_1050 landmark 0 -4558.57 -2934.04 35.306 4.21758 1 TheDragonmurk TheDragonmurk game_tele 1050 11 11 wetlands 0 0 +poi_tele_1051 landmark 0 -2273.25 -1723.87 -56.5399 1.61234 1 TheDrownedReef TheDrownedReef game_tele 1051 328 45 arathihighlands 0 0 +poi_tele_1052 landmark 0 748.603 -1348.11 92.6076 0.122718 1 TheDryHills TheDryHills game_tele 1052 36 267 hillsbradfoothills 0 0 +poi_tele_1053 landmark 0 -6614.72 -2629.53 265.833 0.843023 1 TheDustbowl TheDustbowl game_tele 1053 1878 3 badlands 0 0 +poi_tele_1054 landmark 0 -11110.5 600.244 36.5205 4.15746 1 TheDustPlains TheDustPlains game_tele 1054 922 40 westfall 0 0 +poi_tele_1055 landmark 0 -3965.7 -11653.6 -138.844 0.852154 1 TheExodar TheExodar game_tele 1055 0 0 0 0 +poi_tele_1056 landmark 0 3088.49 1381.57 184.863 4.61973 1 TheEye TheEye game_tele 1056 169 85 tirisfalglades 0 0 +poi_tele_1057 landmark 0 -3536.55 1631.94 45.0453 4.57511 1 TheFelPits TheFelPits game_tele 1057 2365 11 wetlands 0 0 +poi_tele_1058 landmark 0 -3452.24 2747.76 127.219 1.28272 1 TheFetidPool TheFetidPool game_tele 1058 214 214 thegreatsea 0 0 +poi_tele_1059 landmark 0 -4347.46 2415.11 8.00515 1.52603 1 TheForgottenCoast TheForgottenCoast game_tele 1059 214 214 thegreatsea 0 0 +poi_tele_106 landmark 0 -3649.92 317.469 35.2827 2.94285 1 BlackTemple BlackTemple game_tele 106 2365 11 wetlands 0 0 +poi_tele_1060 landmark 0 141.278 -1948.08 94.318 3.13864 1 TheForgottenPools TheForgottenPools game_tele 1060 47 47 thehinterlands 0 0 +poi_tele_1061 ruins 0 -4624.25 -1097.17 501.273 3.00102 1 TheForlornCavern TheForlornCavern game_tele 1061 4679 1537 ironforge 0 0 +poi_tele_1062 landmark 0 2448.89 -3708.71 177.867 5.66288 1 TheFungalVale TheFungalVale game_tele 1062 2258 139 easternplaguelands 0 0 +poi_tele_1063 landmark 0 -8877.71 -3953.51 9.90049 4.17595 1 TheGapingChasm TheGapingChasm game_tele 1063 44 44 redridgemountains 0 0 +poi_tele_1064 landmark 0 -1059.43 -678.757 -53.0876 3.4738 1 TheGoldenPlains TheGoldenPlains game_tele 1064 294 267 hillsbradfoothills 0 0 +poi_tele_1065 landmark 0 2874.85 -765.215 160.333 5.09183 1 TheGrandVestibule TheGrandVestibule game_tele 1065 796 796 scarletmonastery 0 0 +poi_tele_1066 landmark 0 -13226.2 228.625 33.1421 1.37088 1 TheGreatArena TheGreatArena game_tele 1066 1741 5287 thecapeofstranglethorn 0 0 +poi_tele_1067 landmark 0 -630.013 3967.65 28.9957 5.30639 1 TheGreatFissure TheGreatFissure game_tele 1067 214 214 thegreatsea 0 0 +poi_tele_1068 workshop 0 -4792.95 -1119.12 498.806 2.17085 1 TheGreatForge TheGreatForge game_tele 1068 5342 1537 ironforge 0 0 +poi_tele_1069 landmark 0 -4608.03 -1851.45 86.1002 3.08268 1 TheGreatLift TheGreatLift game_tele 1069 1 1 dun_morogh 0 0 +poi_tele_107 landmark 0 -3945.67 -1776.91 91.6706 0.595491 1 BlackthornRidge BlackthornRidge game_tele 107 1 1 dun_morogh 0 0 +poi_tele_1070 landmark 0 -3372.12 -3082.42 22.0718 2.24279 1 TheGreenBelt TheGreenBelt game_tele 1070 1025 11 wetlands 0 0 +poi_tele_1071 landmark 0 -715.077 1503.82 11.4471 2.58024 1 TheGreymaneWall TheGreymaneWall game_tele 1071 5456 130 silverpineforest 0 0 +poi_tele_1072 mine 0 -7390.69 -941.553 169.43 3.90454 1 TheGrindingQuarry TheGrindingQuarry game_tele 1072 25 25 blackrockmountain 0 0 +poi_tele_1073 landmark 0 -5679.22 -294.234 369.284 0.35122 1 TheGrizzledDen TheGrizzledDen game_tele 1073 136 1 dun_morogh 0 0 +poi_tele_1074 landmark 0 -3674.68 1344.99 275.705 3.38664 1 TheHandOfGulDan TheHandOfGulDan game_tele 1074 2365 11 wetlands 0 0 +poi_tele_1075 landmark 0 -10126 -2834.73 22.2157 0.674244 1 TheHarborage TheHarborage game_tele 1075 657 8 swampofsorrows 0 0 +poi_tele_1076 landmark 0 -16.6821 -333.396 131.146 0.8126 1 TheHeadland TheHeadland game_tele 1076 1680 267 hillsbradfoothills 0 0 +poi_tele_1077 landmark 0 2662.78 3766.07 143.16 2.69827 1 TheHeap TheHeap game_tele 1077 0 0 0 0 +poi_tele_1078 landmark 0 7645.61 -4931 697.11 0.777426 1 TheHiddenCove TheHiddenCove game_tele 1078 0 0 0 0 +poi_tele_1079 zone 0 119.387 -3190.37 117.331 2.34064 1 TheHinterlands TheHinterlands game_tele 1079 47 47 thehinterlands 1 0 +poi_tele_108 landmark 0 -3663.45 3577.09 259.226 3.19599 1 BlackwindLake BlackwindLake game_tele 108 5146 5146 vashjir 0 0 +poi_tele_1080 landmark 0 3156.34 -1176.21 216.451 4.79547 1 TheHowlingVale TheHowlingVale game_tele 1080 2037 2037 quelthalas 0 0 +poi_tele_1081 bank 0 -10322.3 635.42 26.6725 4.82819 1 TheHushedBank TheHushedBank game_tele 1081 1097 10 duskwood 0 0 +poi_tele_1082 landmark 0 1918.81 -4104.45 67.9526 5.43984 1 TheInfectisScar TheInfectisScar game_tele 1082 2623 139 easternplaguelands 0 0 +poi_tele_1083 landmark 0 1258.38 1207.68 52.6055 0.010372 1 TheIvarPatch TheIvarPatch game_tele 1083 239 130 silverpineforest 0 0 +poi_tele_1084 landmark 0 -9824.42 991.59 29.1302 1.81697 1 TheJansenStead TheJansenStead game_tele 1084 916 40 westfall 0 0 +poi_tele_1085 landmark 0 -212.967 6697.84 21.9545 4.46685 1 TheLagoon TheLagoon game_tele 1085 0 0 0 0 +poi_tele_1086 landmark 0 -469.406 1769.22 48.8923 5.22312 1 TheLegionFront TheLegionFront game_tele 1086 306 130 silverpineforest 0 0 +poi_tele_1087 landmark 0 -3911.04 -2581.19 44.066 1.00735 1 ThelgenRock ThelgenRock game_tele 1087 1021 11 wetlands 0 0 +poi_tele_1088 landmark 0 1835.86 6820.31 139.508 4.81166 1 TheLivingGrove TheLivingGrove game_tele 1088 0 0 0 0 +poi_tele_1089 landmark 0 8702.12 -7557.77 89.7481 4.17962 1 TheLivingWood TheLivingWood game_tele 1089 0 0 0 0 +poi_tele_109 landmark 0 -3636.25 3191.57 312.961 4.99533 1 BlackwindValley BlackwindValley game_tele 109 5146 5146 vashjir 0 0 +poi_tele_1090 landmark 0 -5289.82 -3482.56 297.605 6.2238 1 TheLoch TheLoch game_tele 1090 38 38 lochmodan 0 0 +poi_tele_1091 landmark 0 5937.02 523.751 1.58805 3.17606 1 TheLongWash TheLongWash game_tele 1091 0 0 0 0 +poi_tele_1092 landmark 0 -2795.41 -1020.59 6.67844 2.57838 1 TheLostFleet TheLostFleet game_tele 1092 1039 11 wetlands 0 0 +poi_tele_1093 landmark 0 -2739.5 6042.77 35.8899 0.681148 1 TheLowPath TheLowPath game_tele 1093 214 214 thegreatsea 0 0 +poi_tele_1094 landmark 0 -5352.54 -2948.53 323.78 5.34258 1 Thelsamar Thelsamar game_tele 1094 144 38 lochmodan 0 0 +poi_tele_1095 landmark 0 -9935.13 86.7215 32.9021 4.73231 1 TheMaclureVineyards TheMaclureVineyards game_tele 1095 64 12 elwynn 0 0 +poi_tele_1096 landmark 0 -6049.42 -3305.28 257.85 2.26108 1 TheMakersTerrace TheMakersTerrace game_tele 1096 1897 3 badlands 0 0 +poi_tele_1097 landmark 0 1869.13 -3213.89 124.624 1.9126 1 TheMarrisStead TheMarrisStead game_tele 1097 2260 139 easternplaguelands 0 0 +poi_tele_1098 wilderness 0 -7775.56 -1923.59 -272.806 2.71513 1 TheMarshlands TheMarshlands game_tele 1098 250 46 burningsteppes 0 0 +poi_tele_1099 landmark 0 4572.2 430.013 33.6399 3.80203 1 TheMastersGlaive TheMastersGlaive game_tele 1099 214 214 thegreatsea 0 0 +poi_tele_11 landmark 0 -7040.08 -3342.15 241.667 0.82338 1 AgmondsEnd AgmondsEnd game_tele 11 345 3 badlands 0 0 +poi_tele_110 landmark 0 3202.45 7117.62 173.86 3.63041 1 BlackwingCoven BlackwingCoven game_tele 110 0 0 0 0 +poi_tele_1100 landmark 0 -3739.86 1093.8 131.969 3.09301 1 TheMaul TheMaul game_tele 1100 2365 11 wetlands 0 0 +poi_tele_1101 landmark 0 2867.12 1549.42 252.159 3.82218 1 TheMechanar TheMechanar game_tele 1101 169 85 tirisfalglades 0 0 +poi_tele_1102 landmark 0 -855.206 -4072.39 1.35044 1.88279 1 TheMerchantCoast TheMerchantCoast game_tele 1102 47 47 thehinterlands 0 0 +poi_tele_1103 landmark 0 -4968.86 -1225.49 501.669 1.30248 1 TheMilitaryWard TheMilitaryWard game_tele 1103 5343 1537 ironforge 0 0 +poi_tele_1104 landmark 0 -4662.07 -952.721 500.378 3.64898 1 TheMistyWard TheMistyWard game_tele 1104 5344 1537 ironforge 0 0 +poi_tele_1105 landmark 0 -10247.5 1440.7 40.7233 3.92498 1 TheMolsenFarm TheMolsenFarm game_tele 1105 918 40 westfall 0 0 +poi_tele_1106 landmark 0 -7538.51 -1063.45 180.981 0.03409 1 TheMoltenSpan TheMoltenSpan game_tele 1106 25 25 blackrockmountain 0 0 +poi_tele_1107 landmark 0 1242.82 -2236.11 91.9476 3.83099 1 TheMorShanRampart TheMorShanRampart game_tele 1107 2297 28 westernplaguelands 0 0 +poi_tele_1108 landmark 0 3021.37 -236.555 7.38714 0.881534 1 TheNorthCoast TheNorthCoast game_tele 1108 168 85 tirisfalglades 0 0 +poi_tele_1109 landmark 0 2677.02 -5303.72 153.226 5.25368 1 TheNoxiousGlade TheNoxiousGlade game_tele 1109 2270 139 easternplaguelands 0 0 +poi_tele_111 landmark 0 164.789 -475.305 116.842 0.022714 1 BlackwingLair BlackwingLair game_tele 111 1679 267 hillsbradfoothills 0 0 +poi_tele_1110 landmark 0 -7833.72 -2713.72 10.0944 1.12939 1 TheNoxiousLair TheNoxiousLair game_tele 1110 249 46 burningsteppes 0 0 +poi_tele_1111 landmark 0 10658.2 1930.28 1332.89 0.27247 1 TheOracleGlade TheOracleGlade game_tele 1111 0 0 0 0 +poi_tele_1112 landmark 0 -157.561 3437.57 60.4541 2.3525 1 TheOverlook TheOverlook game_tele 1112 2398 130 silverpineforest 0 0 +poi_tele_1113 landmark 0 -0.750207 -4657.33 11.0567 6.12818 1 TheOverlookCliffs TheOverlookCliffs game_tele 1113 307 47 thehinterlands 0 0 +poi_tele_1114 landmark 0 -8778.04 1066.56 90.781 1.2262 1 ThePark ThePark game_tele 1114 5409 1519 stormwind 0 0 +poi_tele_1115 landmark 0 -4311.8 1381.19 144.269 3.19908 1 ThePathOfConquest ThePathOfConquest game_tele 1115 1 1 dun_morogh 0 0 +poi_tele_1116 landmark 0 -199.545 1657.92 43.6863 4.76602 1 ThePathOfGlory ThePathOfGlory game_tele 1116 236 130 silverpineforest 0 0 +poi_tele_1117 landmark 0 -8075.47 -1686.41 131.836 1.28519 1 ThePillarOfAsh ThePillarOfAsh game_tele 1117 5652 46 burningsteppes 0 0 +poi_tele_1118 landmark 0 -1026.6 221.11 108.998 1.07758 1 ThePoolsOfVision ThePoolsOfVision game_tele 1118 288 267 hillsbradfoothills 0 0 +poi_tele_1119 landmark 0 3073.95 3398.27 105.141 0.249392 1 TheProvingGrounds TheProvingGrounds game_tele 1119 214 214 thegreatsea 0 0 +poi_tele_112 landmark 0 1398.08 179.4 12.3398 1.81183 1 BlackwolfRiver BlackwolfRiver game_tele 112 153 85 tirisfalglades 0 0 +poi_tele_1120 landmark 0 -3743.96 -2933.6 35.9061 4.8082 1 TheQuagmire TheQuagmire game_tele 1120 1020 11 wetlands 0 0 +poi_tele_1121 landmark 0 -3641.3 -4358.93 8.35467 3.81559 1 Theramore Theramore game_tele 1121 4922 4922 twilighthighlands 0 0 +poi_tele_1122 landmark 0 -3711.95 -4404.3 21.3729 4.03694 1 TheramoreIsle TheramoreIsle game_tele 1122 4922 4922 twilighthighlands 0 0 +poi_tele_1123 landmark 0 -717.31 7930.72 58.5098 4.77929 1 TheRingOfBlood TheRingOfBlood game_tele 1123 0 0 0 0 +poi_tele_1124 landmark 0 -1999.94 6581.71 11.32 2.36528 1 TheRingOfTrials TheRingOfTrials game_tele 1124 0 0 0 0 +poi_tele_1125 landmark 0 2136.95 -4739.25 50.4957 0.299454 1 TheRingOfValor TheRingOfValor game_tele 1125 139 139 easternplaguelands 0 0 +poi_tele_1126 landmark 0 -2590.98 -1056.52 -3.74557 5.09009 1 TheRollingPlains TheRollingPlains game_tele 1126 298 11 wetlands 0 0 +poi_tele_1127 landmark 0 -11028.6 -883.618 61.4453 4.14486 1 TheRottingOrchard TheRottingOrchard game_tele 1127 241 10 duskwood 0 0 +poi_tele_1128 landmark 0 9619.83 -7449.09 13.5847 6.04494 1 TheRoyalExchange TheRoyalExchange game_tele 1128 0 0 0 0 +poi_tele_1129 ruins 0 2374.69 -5904.33 11.4691 2.12828 1 TheRuinedReaches TheRuinedReaches game_tele 1129 4546 139 easternplaguelands 0 0 +poi_tele_113 landmark 0 4621.7 33.6288 69.6487 4.35643 1 BlackwoodDen BlackwoodDen game_tele 113 214 214 thegreatsea 0 0 +poi_tele_1130 ruins 0 -8409.82 1499.06 27.7179 2.51868 1 TheRuinsOfAhnQiraj TheRuinsOfAhnQiraj game_tele 1130 4411 1519 stormwind 0 0 +poi_tele_1131 ruins 0 6440.9 -4289.75 666.743 0.780563 1 TheRuinsOfKelTheril TheRuinsOfKelTheril game_tele 1131 0 0 0 0 +poi_tele_1132 ruins 0 3508.82 -109.892 0.824844 3.53256 1 TheRuinsOfOrdilAran TheRuinsOfOrdilAran game_tele 1132 214 214 thegreatsea 0 0 +poi_tele_1133 ruins 0 2104.12 -226.389 97.064 5.19053 1 TheRuinsOfStardust TheRuinsOfStardust game_tele 1133 85 85 tirisfalglades 0 0 +poi_tele_1134 landmark 0 -6453.01 -3497.6 -58.8657 3.69926 1 TheRustmaulDigSite TheRustmaulDigSite game_tele 1134 346 3 badlands 0 0 +poi_tele_1135 landmark 0 9788.65 -7293.19 13.3877 3.41072 1 TheSanctum TheSanctum game_tele 1135 0 0 0 0 +poi_tele_1136 landmark 0 -12619.3 -40.9729 28.0657 1.30488 1 TheSavageCoast TheSavageCoast game_tele 1136 301 33 northernstranglethorn 0 0 +poi_tele_1137 landmark 0 -8066.33 1634.51 24.3409 1.55029 1 TheScarabDais TheScarabDais game_tele 1137 4411 1519 stormwind 0 0 +poi_tele_1138 landmark 0 -8098.67 1525.15 2.77194 3.01977 1 TheScarabWall TheScarabWall game_tele 1138 4411 1519 stormwind 0 0 +poi_tele_1139 landmark 0 -8097.76 1502.46 2.60945 4.17432 1 TheScaradWalp TheScaradWalp game_tele 1139 4411 1519 stormwind 0 0 +poi_tele_114 landmark 0 2493.53 -4222.79 74.027 1.21046 1 BlackwoodLake BlackwoodLake game_tele 114 2624 139 easternplaguelands 0 0 +poi_tele_1140 landmark 0 1616.01 -5519.79 109.33 4.16042 1 TheScarletBasilica TheScarletBasilica game_tele 1140 2266 139 easternplaguelands 0 0 +poi_tele_1141 landmark 0 8158.19 -6340.32 66.7171 0.029571 1 TheScorchedGrove TheScorchedGrove game_tele 1141 0 0 0 0 +poi_tele_1142 landmark 0 3223.19 2677.41 144.211 0.984536 1 TheScrapField TheScrapField game_tele 1142 214 214 thegreatsea 0 0 +poi_tele_1143 landmark 0 -5394.77 -1662.67 -54.1244 3.08822 1 TheScreechingCanyon TheScreechingCanyon game_tele 1143 1 1 dun_morogh 0 0 +poi_tele_1144 landmark 0 -7048.17 -1493.56 241.598 0.319151 1 TheSeaOfCinders TheSeaOfCinders game_tele 1144 1444 51 searinggorge 0 0 +poi_tele_1145 landmark 0 504.534 1539.08 129.502 1.35812 1 TheSepulcher TheSepulcher game_tele 1145 228 130 silverpineforest 0 0 +poi_tele_1146 landmark 0 -3106.88 4946.71 -22.5348 3.21013 1 TheShadowStair TheShadowStair game_tele 1146 214 214 thegreatsea 0 0 +poi_tele_1147 landmark 0 2312.29 -1893.78 68.3491 5.94215 1 TheShadyNook TheShadyNook game_tele 1147 28 28 westernplaguelands 0 0 +poi_tele_1148 landmark 0 -305.79 3061.63 -2.53847 1.88888 1 TheShatteredHalls TheShatteredHalls game_tele 1148 2398 130 silverpineforest 0 0 +poi_tele_1149 landmark 0 3858.59 -5663.59 13.7294 4.55518 1 TheShatteredStrand TheShatteredStrand game_tele 1149 2037 2037 quelthalas 0 0 +poi_tele_115 landmark 0 2899.4 5081.33 264.302 1.15416 1 BladedGulch BladedGulch game_tele 115 0 0 0 0 +poi_tele_1150 landmark 0 -10197.5 -3222.68 20.3199 2.60154 1 TheShiftingMire TheShiftingMire game_tele 1150 1798 8 swampofsorrows 0 0 +poi_tele_1151 landmark 0 -5588.82 -3752.19 -58.7494 4.1972 1 TheShimmeringFlats TheShimmeringFlats game_tele 1151 142 38 lochmodan 0 0 +poi_tele_1152 landmark 0 1338.49 712.097 33.2729 3.49676 1 TheShiningStrand TheShiningStrand game_tele 1152 927 130 silverpineforest 0 0 +poi_tele_1153 landmark 0 2622.09 448.504 73.5894 5.07272 1 TheShrineOfAessina TheShrineOfAessina game_tele 1153 85 85 tirisfalglades 0 0 +poi_tele_1154 landmark 0 1247.04 1944.64 12.595 0.200456 1 TheSkitteringDark TheSkitteringDark game_tele 1154 226 130 silverpineforest 0 0 +poi_tele_1155 landmark 0 -6767.57 -1421.64 210.383 0.609748 1 TheSlagPit TheSlagPit game_tele 1155 1443 51 searinggorge 0 0 +poi_tele_1156 landmark 0 717.282 6979.87 -73.0281 1.50287 1 TheSlavePens TheSlavePens game_tele 1156 0 0 0 0 +poi_tele_1157 landmark 0 -7884.39 -1338.18 -279.648 2.89812 1 TheSlitheringScar TheSlitheringScar game_tele 1157 5653 46 burningsteppes 0 0 +poi_tele_1158 landmark 0 1058.98 -3169.91 103.805 1.80111 1 TheSludgeFen TheSludgeFen game_tele 1158 139 139 easternplaguelands 0 0 +poi_tele_1159 landmark 0 -100.415 8775 18.7677 0.508193 1 TheSpawningGlen TheSpawningGlen game_tele 1159 0 0 0 0 +poi_tele_116 landmark 0 1324.36 -5005.13 0.814836 5.04482 1 BladefistBay BladefistBay game_tele 116 139 139 easternplaguelands 0 0 +poi_tele_1160 landmark 0 -296.918 3661.74 70.3319 1.55139 1 TheStadium TheStadium game_tele 1160 2398 130 silverpineforest 0 0 +poi_tele_1161 landmark 0 -1332.03 -3009.5 90.8255 0.266427 1 TheStagnantOasis TheStagnantOasis game_tele 1161 45 45 arathihighlands 0 0 +poi_tele_1162 landmark 0 -248 956 84.3628 1.58766 1 TheStairOfDestiny TheStairOfDestiny game_tele 1162 233 130 silverpineforest 0 0 +poi_tele_1163 landmark 0 794.537 6927.81 -80.4757 0.159089 1 TheSteamvault TheSteamvault game_tele 1163 0 0 0 0 +poi_tele_1164 landmark 0 -11511 -703.088 35.6861 5.22091 1 TheStockpile TheStockpile game_tele 1164 106 33 northernstranglethorn 0 0 +poi_tele_1165 landmark 0 -9917.83 384.428 35.0559 5.35278 1 THeStonefieldFarm THeStonefieldFarm game_tele 1165 63 12 elwynn 0 0 +poi_tele_1166 landmark 0 4150.19 3015.92 339.188 4.0499 1 TheStormspire TheStormspire game_tele 1166 214 214 thegreatsea 0 0 +poi_tele_1167 landmark 0 -10177.9 -3994.9 -111.239 6.01885 1 TheSunkenTemple TheSunkenTemple game_tele 1167 1477 1477 thetempleofatalhakkar 0 0 +poi_tele_1168 landmark 0 10353.4 -6395.35 38.5292 1.45664 1 TheSunspire TheSunspire game_tele 1168 0 0 0 0 +poi_tele_1169 landmark 0 -7136.04 586.608 9.01752 1.21736 1 TheSwarmingPillar TheSwarmingPillar game_tele 1169 1 1 dun_morogh 0 0 +poi_tele_117 landmark 0 3037.67 5962.86 130.774 1.27253 1 BladesEdgeMountains BladesEdgeMountains game_tele 117 0 0 0 0 +poi_tele_1170 landmark 0 -11892.7 -2647.08 -4.68415 3.69096 1 TheTaintedScar TheTaintedScar game_tele 1170 5044 4 blasted_lands 0 0 +poi_tele_1171 landmark 0 1945.42 -742.68 112.78 2.76364 1 TheTalondeepPath TheTalondeepPath game_tele 1171 152 85 tirisfalglades 0 0 +poi_tele_1172 landmark 0 2417.77 1790.01 393.666 2.00589 1 TheTalonDen TheTalonDen game_tele 1172 85 85 tirisfalglades 0 0 +poi_tele_1173 landmark 0 9826.5 2533.55 1321.09 3.1706 1 TheTempleGardens TheTempleGardens game_tele 1173 0 0 0 0 +poi_tele_1174 landmark 0 -8240.09 1991.32 129.072 0.941603 1 TheTempleOfAhnQiraj TheTempleOfAhnQiraj game_tele 1174 4411 1519 stormwind 0 0 +poi_tele_1175 zone 0 -10449.5 -3827.47 18.0675 6.04945 1 TheTempleOfAtalHakkar TheTempleOfAtalHakkar game_tele 1175 1477 1477 thetempleofatalhakkar 1 0 +poi_tele_1176 landmark 0 -10447.1 -3824.83 18.0678 6.07301 1 TheTempleOfTears TheTempleOfTears game_tele 1176 1477 1477 thetempleofatalhakkar 0 0 +poi_tele_1177 landmark 0 -5812.99 -1180.16 378.179 5.84509 1 TheTundridHills TheTundridHills game_tele 1177 804 1 dun_morogh 0 0 +poi_tele_1178 landmark 0 -1376.82 9616.71 201.301 2.64604 1 TheTwilightRidge TheTwilightRidge game_tele 1178 0 0 0 0 +poi_tele_1179 landmark 0 -3183.13 2402.97 254.1 4.02663 1 TheTwinColossals TheTwinColossals game_tele 1179 214 214 thegreatsea 0 0 +poi_tele_118 landmark 0 2209.1 6376.61 -10.338 3.27783 1 BladespireGrounds BladespireGrounds game_tele 118 0 0 0 0 +poi_tele_1180 landmark 0 763.307 6767.81 -67.7695 5.99726 1 TheUnderbog TheUnderbog game_tele 1180 0 0 0 0 +poi_tele_1181 landmark 0 1655.1 -3258.48 84.1786 3.27451 1 TheUndercroft TheUndercroft game_tele 1181 2261 139 easternplaguelands 0 0 +poi_tele_1182 landmark 0 1093.26 -684.829 82.0192 5.18414 1 TheUplands TheUplands game_tele 1182 284 267 hillsbradfoothills 0 0 +poi_tele_1183 landmark 0 -4073.9 -11426.1 -141.433 2.05381 1 TheVaultOfLights TheVaultOfLights game_tele 1183 0 0 0 0 +poi_tele_1184 landmark 0 -1897.51 -10710.7 110.708 1.17888 1 TheVectorCoil TheVectorCoil game_tele 1184 0 0 0 0 +poi_tele_1185 landmark 0 -4263.27 -11338 5.59938 1.67446 1 TheVeiledSea TheVeiledSea game_tele 1185 0 0 0 0 +poi_tele_1186 mine 0 -1896.77 -1104.8 88.4923 5.78989 1 TheVentureCoMine TheVentureCoMine game_tele 1186 2397 267 hillsbradfoothills 0 0 +poi_tele_1187 landmark 0 -10879.6 -2206.99 122.514 3.74515 1 TheVice TheVice game_tele 1187 2561 41 deadwindpass 0 0 +poi_tele_1188 landmark 0 -12163.2 551.904 12.1557 4.11665 1 TheVileReef TheVileReef game_tele 1188 104 33 northernstranglethorn 0 0 +poi_tele_1189 landmark 0 2242.67 2240.95 101.525 4.06407 1 TheVioletTower TheVioletTower game_tele 1189 85 85 tirisfalglades 0 0 +poi_tele_119 landmark 0 2639.37 6526.93 0.818903 6.17248 1 BladespireHold BladespireHold game_tele 119 0 0 0 0 +poi_tele_1190 landmark 0 3142.74 1895.54 144.578 1.53825 1 TheVortexFields TheVortexFields game_tele 1190 214 214 thegreatsea 0 0 +poi_tele_1191 ruins 0 -805.049 -2032.03 95.8796 6.18912 1 TheWailingCaverns TheWailingCaverns game_tele 1191 313 45 arathihighlands 0 0 +poi_tele_1192 landmark 0 -1408.9 3321.58 34.6189 4.03089 1 TheWarpFields TheWarpFields game_tele 1192 214 214 thegreatsea 0 0 +poi_tele_1193 landmark 0 -1230.03 -11808.4 6.76926 6.23447 1 TheWarpPiston TheWarpPiston game_tele 1193 0 0 0 0 +poi_tele_1194 landmark 0 -5209.65 -2795.71 -7.20066 5.88581 1 TheWeatheredNook TheWeatheredNook game_tele 1194 38 38 lochmodan 0 0 +poi_tele_1195 ruins 0 2244.95 -2401.97 60.6771 1.16648 1 TheWeepingCave TheWeepingCave game_tele 1195 198 28 westernplaguelands 0 0 +poi_tele_1196 landmark 0 -5154.02 214.92 52.8355 3.86268 1 TheWrithingDeep TheWrithingDeep game_tele 1196 211 1 dun_morogh 0 0 +poi_tele_1197 landmark 0 1453.28 -1864.44 58.7015 5.81604 1 TheWrithingHaunt TheWrithingHaunt game_tele 1197 202 28 westernplaguelands 0 0 +poi_tele_1198 landmark 0 -11049.3 -488.388 30.2968 3.20631 1 TheYorgenFarmstead TheYorgenFarmstead game_tele 1198 245 10 duskwood 0 0 +poi_tele_1199 landmark 0 3579.08 904.851 3.41642 1.04992 1 TheZoramStrand TheZoramStrand game_tele 1199 214 214 thegreatsea 0 0 +poi_tele_12 landmark 0 451.572 -3342.23 119.689 0.772541 1 AgolWatha AgolWatha game_tele 12 1884 47 thehinterlands 0 0 +poi_tele_120 landmark 0 933.847 5948.09 121.211 0.641137 1 BladesRun BladesRun game_tele 120 0 0 0 0 +poi_tele_1200 landmark 0 -8970.3 -2192.9 8.89688 5.57003 1 ThistleshrubValley ThistleshrubValley game_tele 1200 95 44 redridgemountains 0 0 +poi_tele_1201 landmark 0 1925.08 -2621.31 62.2875 4.65288 1 ThondrorilRiver ThondrorilRiver game_tele 1201 2619 139 easternplaguelands 0 0 +poi_tele_1202 landmark 0 -820.219 -1562.88 54.1671 4.06022 1 ThoradinsWall ThoradinsWall game_tele 1202 1057 267 hillsbradfoothills 0 0 +poi_tele_1203 landmark 0 -6506.47 -1149.95 307.708 4.18256 1 ThoriumPoint ThoriumPoint game_tele 1203 1446 51 searinggorge 0 0 +poi_tele_1204 landmark 0 -247.65 5170.55 83.1052 4.97103 1 ThornfangHill ThornfangHill game_tele 1204 0 0 0 0 +poi_tele_1205 landmark 0 -449.553 -3476.24 94.5329 0.871187 1 ThornHill ThornHill game_tele 1205 47 47 thehinterlands 0 0 +poi_tele_1206 landmark 0 -4969.02 -1726.89 -62.1269 3.7933 1 ThousandNeedles ThousandNeedles game_tele 1206 5115 1 dun_morogh 0 0 +poi_tele_1207 landmark 0 156.251 2673.45 85.1587 0.382074 1 Thrallmar Thrallmar game_tele 1207 2398 130 silverpineforest 0 0 +poi_tele_1208 mine 0 385.93 2881.01 53.2777 5.09746 1 ThrallmarMine ThrallmarMine game_tele 1208 2398 130 silverpineforest 0 0 +poi_tele_1209 landmark 0 809.937 2332.9 281.37 5.77383 1 ThroneOfKiljaeden ThroneOfKiljaeden game_tele 1209 2398 130 silverpineforest 0 0 +poi_tele_121 landmark 0 1059.17 7087.83 118.027 0.112612 1 BladeToothCanyon BladeToothCanyon game_tele 121 0 0 0 0 +poi_tele_1210 landmark 0 -781.295 6943.52 33.3343 2.62259 1 ThroneOfTheElements ThroneOfTheElements game_tele 1210 0 0 0 0 +poi_tele_1211 landmark 0 -309.085 1666.33 116.017 2.09605 1 ThunderAxeFortress ThunderAxeFortress game_tele 1211 204 130 silverpineforest 0 0 +poi_tele_1212 landmark 0 -1277.37 124.804 131.287 5.22274 1 ThunderBluff ThunderBluff game_tele 1212 295 267 hillsbradfoothills 0 0 +poi_tele_1213 landmark 0 -9305.71 671.617 133.138 0.165219 1 ThunderFalls ThunderFalls game_tele 1213 61 12 elwynn 0 0 +poi_tele_1214 landmark 0 -1813.19 -251.665 -9.42466 2.30507 1 ThunderhornWaterWell ThunderhornWaterWell game_tele 1214 2397 267 hillsbradfoothills 0 0 +poi_tele_1215 landmark 0 2314.75 6041.96 142.417 6.24317 1 ThunderlordStronghold ThunderlordStronghold game_tele 1215 0 0 0 0 +poi_tele_1216 landmark 0 808.307 -4084.94 -12.8768 1.03222 1 ThunderRidge ThunderRidge game_tele 1216 356 47 thehinterlands 0 0 +poi_tele_1217 landmark 0 9259.11 -7482.08 35.529 5.02965 1 ThuronsLivery ThuronsLivery game_tele 1217 0 0 0 0 +poi_tele_1218 landmark 0 -4437.22 -4134.71 2.21481 0.98565 1 TidefuryCove TidefuryCove game_tele 1218 5563 4922 twilighthighlands 0 0 +poi_tele_1219 landmark 0 6808.73 -2091.08 624.962 5.93802 1 TimbermawHold TimbermawHold game_tele 1219 0 0 0 0 +poi_tele_122 landmark 0 -1772.53 -11581.4 35.9727 2.16531 1 Bladewood Bladewood game_tele 122 0 0 0 0 +poi_tele_1220 landmark 0 6474.08 -3142.89 570.406 2.14401 1 TimbermawPost TimbermawPost game_tele 1220 0 0 0 0 +poi_tele_1221 settlement 0 -4831.62 -1279.2 501.869 1.44385 1 TinkerTown TinkerTown game_tele 1221 1537 1537 ironforge 0 0 +poi_tele_1222 landmark 0 -202.191 -5025.83 21.631 5.30633 1 TiragardeKeep TiragardeKeep game_tele 1222 307 47 thehinterlands 0 0 +poi_tele_1223 zone 0 2036.02 161.331 33.8674 0.143896 1 TirisfalGlades TirisfalGlades game_tele 1223 85 85 tirisfalglades 1 0 +poi_tele_1224 landmark 0 2063.35 273.607 94.1076 5.30632 1 TirisfalGladesZeppelin TirisfalGladesZeppelin game_tele 1224 85 85 tirisfalglades 0 0 +poi_tele_1225 ruins 0 -11834.4 64.8268 14.1722 2.65266 1 TkashiRuins TkashiRuins game_tele 1225 126 33 northernstranglethorn 0 0 +poi_tele_1226 ruins 0 -2998.41 4545.29 -21.8414 0.066171 1 TombOfLights TombOfLights game_tele 1226 214 214 thegreatsea 0 0 +poi_tele_1227 landmark 0 726.529 -4244.99 17.3731 0.66858 1 TorKrenFarm TorKrenFarm game_tele 1227 356 47 thehinterlands 0 0 +poi_tele_1228 landmark 0 8561.26 -7920.25 154.912 3.21279 1 TorWatha TorWatha game_tele 1228 0 0 0 0 +poi_tele_1229 landmark 0 1910.63 5556.25 263.017 6.25981 1 ToshleysStation ToshleysStation game_tele 1229 0 0 0 0 +poi_tele_123 landmark 0 2211.66 5712.69 272.876 0.564311 1 BladspireOutpost BladspireOutpost game_tele 123 0 0 0 0 +poi_tele_1230 landmark 0 7165.92 -772.39 54.9534 0.847262 1 TowerOfAlthalaxx TowerOfAlthalaxx game_tele 1230 0 0 0 0 +poi_tele_1231 landmark 0 4231.66 -7812.84 6.72805 3.74308 1 TowerOfEldara TowerOfEldara game_tele 1231 0 0 0 0 +poi_tele_1232 landmark 0 -9284.76 -3346.89 109.759 1.52871 1 TowerOfIlgalar TowerOfIlgalar game_tele 1232 96 44 redridgemountains 0 0 +poi_tele_1233 landmark 0 -9281.56 -3341.22 111.243 1.50594 1 TowerOfLlgalar TowerOfLlgalar game_tele 1233 96 44 redridgemountains 0 0 +poi_tele_1234 settlement 0 2265.88 2270.97 97.4046 4.06565 1 TownSquare TownSquare game_tele 1234 85 85 tirisfalglades 0 0 +poi_tele_1235 landmark 0 -8835.7 620.485 93.2388 0.772328 1 TradeDistrict TradeDistrict game_tele 1235 5148 1519 stormwind 0 0 +poi_tele_1236 landmark 0 1563.81 238.463 -43.4301 0.104772 1 TradeQuarter TradeQuarter game_tele 1236 1497 1497 undercity 0 0 +poi_tele_1237 landmark 0 -4109.67 -11683.9 -142.705 3.22799 1 TradersTier TradersTier game_tele 1237 0 0 0 0 +poi_tele_1238 landmark 0 -5073.41 -11252.9 0.820152 4.43198 1 TraitorsCove TraitorsCove game_tele 1238 0 0 0 0 +poi_tele_1239 landmark 0 -10965.2 -1271.56 52.4084 4.05062 1 TranquilGardensCemetery TranquilGardensCemetery game_tele 1239 121 10 duskwood 0 0 +poi_tele_124 zone 0 -11182.5 -3016.67 7.42235 4.0004 1 BlastedLands BlastedLands game_tele 124 4 4 blasted_lands 1 0 +poi_tele_1240 landmark 0 7564.25 -6872.23 96.0413 4.3579 1 Tranquillien Tranquillien game_tele 1240 0 0 0 0 +poi_tele_1241 landmark 0 9010.64 -5825.39 0.507373 3.72724 1 TranquilShore TranquilShore game_tele 1241 0 0 0 0 +poi_tele_1242 mine 0 3799.23 4014.57 121.147 6.17891 1 TrelleumMine TrelleumMine game_tele 1242 0 0 0 0 +poi_tele_1243 landmark 0 1718.35 4964.6 171.722 1.68743 1 TrogmasClaim TrogmasClaim game_tele 1243 0 0 0 0 +poi_tele_1244 landmark 0 4053 3551.25 120.964 2.73676 1 TulumansLanding TulumansLanding game_tele 1244 214 214 thegreatsea 0 0 +poi_tele_1245 landmark 0 -2162.03 4218.48 6.33299 5.20557 1 Tuurem Tuurem game_tele 1245 214 214 thegreatsea 0 0 +poi_tele_1246 settlement 0 -6989.36 1156.02 10.2789 1.12618 1 TwilightBaseCamp TwilightBaseCamp game_tele 1246 1 1 dun_morogh 0 0 +poi_tele_1247 landmark 0 -10384.3 -421.588 63.6179 3.23856 1 TwilightGrove TwilightGrove game_tele 1247 856 10 duskwood 0 0 +poi_tele_1248 landmark 0 -7895.48 1862.03 3.00047 0.438955 1 TwilightOutpost TwilightOutpost game_tele 1248 214 214 thegreatsea 0 0 +poi_tele_1249 landmark 0 -6685.63 1563.55 7.60951 4.43192 1 TwilightPost TwilightPost game_tele 1249 1 1 dun_morogh 0 0 +poi_tele_125 ruins 0 -3273.56 5988.13 -2.58558 1.14452 1 BleedingHollowRuins BleedingHollowRuins game_tele 125 214 214 thegreatsea 0 0 +poi_tele_1250 landmark 0 5712.85 571.447 1.39422 3.39362 1 TwilightShore TwilightShore game_tele 1250 0 0 0 0 +poi_tele_1251 landmark 0 -6307.77 138.391 15.5158 5.19777 1 TwilightsRun TwilightsRun game_tele 1251 800 1 dun_morogh 0 0 +poi_tele_1252 landmark 0 4768.02 220.04 49.0354 6.12288 1 TwilightVale TwilightVale game_tele 1252 214 214 thegreatsea 0 0 +poi_tele_1253 ruins 0 223.846 7085.71 35.2267 6.21829 1 TwinSpireRuins TwinSpireRuins game_tele 1253 0 0 0 0 +poi_tele_1254 landmark 0 1684.77 -5320.44 73.6126 4.52641 1 TyrsHand TyrsHand game_tele 1254 2266 139 easternplaguelands 0 0 +poi_tele_1255 landmark 0 1736.53 -5388.97 82.5741 5.26784 1 TyrsHandAbbey TyrsHandAbbey game_tele 1255 2266 139 easternplaguelands 0 0 +poi_tele_1256 landmark 0 138.726 -318.182 70.9562 0.116645 1 UBRS UBRS game_tele 1256 1683 267 hillsbradfoothills 0 0 +poi_tele_1257 landmark 0 -226.8 49.09 -46.03 1.39 1 Ulda Ulda game_tele 1257 5604 267 hillsbradfoothills 0 0 +poi_tele_1258 landmark 0 -6071.37 -2955.16 209.782 0.015708 1 Uldaman Uldaman game_tele 1258 1517 3 badlands 0 0 +poi_tele_1259 landmark 0 -9574.83 -924.954 100.272 3.13119 1 Uldum Uldum game_tele 1259 12 12 elwynn 0 0 +poi_tele_126 landmark 0 7171.91 -6397.79 49.1227 5.62946 1 BleedingZiggurat BleedingZiggurat game_tele 126 0 0 0 0 +poi_tele_1260 landmark 0 -427.677 5856.72 20.6041 5.04097 1 UmbrafenLake UmbrafenLake game_tele 1260 0 0 0 0 +poi_tele_1261 settlement 0 -804.516 5258.08 19.2276 5.67557 1 UmbrafenVillage UmbrafenVillage game_tele 1261 214 214 thegreatsea 0 0 +poi_tele_1262 landmark 0 9.71391 -16.2008 -2.75334 5.62187 1 underbog underbog game_tele 1262 279 267 hillsbradfoothills 0 0 +poi_tele_1263 zone 0 1584.07 241.987 -52.1534 0.049647 1 Undercity Undercity game_tele 1263 1497 1497 undercity 1 0 +poi_tele_1264 mine 0 7185.68 -6205.57 18.986 3.43112 1 UnderlightMines UnderlightMines game_tele 1264 0 0 0 0 +poi_tele_1265 landmark 0 -7943.22 -2119.09 -218.343 6.0727 1 UnGoroCrater UnGoroCrater game_tele 1265 250 46 burningsteppes 0 0 +poi_tele_1266 landmark 0 -3910 3021.99 356.692 4.7927 1 UpperVeilShilAk UpperVeilShilAk game_tele 1266 5146 5146 vashjir 0 0 +poi_tele_1267 landmark 0 4163.63 -5910.48 100.681 3.04329 1 Ursolan Ursolan game_tele 1267 214 214 thegreatsea 0 0 +poi_tele_1268 ruins 0 1025.53 -1807.11 76.9136 3.4245 1 UthersTomb UthersTomb game_tele 1268 5426 28 westernplaguelands 0 0 +poi_tele_1269 landmark 0 928.515 1242.67 46.8493 5.52386 1 ValgansField ValgansField game_tele 1269 227 130 silverpineforest 0 0 +poi_tele_127 landmark 0 -1933.1 -12871.3 85.896 5.32971 1 BloodcurseIsle BloodcurseIsle game_tele 127 0 0 0 0 +poi_tele_1270 landmark 0 -934.43 2474.4 3.88924 5.62132 1 ValleyOfBones ValleyOfBones game_tele 1270 4706 4706 ruinsofgilneas 0 0 +poi_tele_1271 landmark 0 -6773.84 -3155.91 240.745 0.59012 1 ValleyOfFangs ValleyOfFangs game_tele 1271 5322 3 badlands 0 0 +poi_tele_1272 landmark 0 1936.47 -4673.71 26.3522 5.2789 1 ValleyOfHonor ValleyOfHonor game_tele 1272 139 139 easternplaguelands 0 0 +poi_tele_1273 landmark 0 -5805.89 -2610.93 316.609 2.43858 1 ValleyOfKings ValleyOfKings game_tele 1273 924 38 lochmodan 0 0 +poi_tele_1274 landmark 0 -1346.42 2828.24 113.273 2.37881 1 ValleyOfSpears ValleyOfSpears game_tele 1274 4706 4706 ruinsofgilneas 0 0 +poi_tele_1275 landmark 0 1529.69 -4210.23 41.3515 3.31305 1 ValleyOfSpirits ValleyOfSpirits game_tele 1275 139 139 easternplaguelands 0 0 +poi_tele_1276 landmark 0 1548.05 -4417.19 9.50517 0.139761 1 ValleyOfStrength ValleyOfStrength game_tele 1276 2621 139 easternplaguelands 0 0 +poi_tele_1277 landmark 0 -9565.22 -2792.77 7.83946 3.06854 1 ValleyOfTheWatchers ValleyOfTheWatchers game_tele 1277 44 44 redridgemountains 0 0 +poi_tele_1278 landmark 0 -601.294 -4296.76 37.8115 1.65401 1 ValleyOfTrials ValleyOfTrials game_tele 1278 354 47 thehinterlands 0 0 +poi_tele_1279 landmark 0 1931.31 -4284.49 28.3693 1.66609 1 ValleyOfWisdom ValleyOfWisdom game_tele 1279 139 139 easternplaguelands 0 0 +poi_tele_128 landmark 0 -4324.33 -2671.96 32.864 1.86217 1 BloodfenBurrow BloodfenBurrow game_tele 128 11 11 wetlands 0 0 +poi_tele_1280 landmark 0 3608.59 -4414.43 113.047 1.62303 1 Valormok Valormok game_tele 1280 2037 2037 quelthalas 0 0 +poi_tele_1281 landmark 0 -6382.67 -291.916 -3.07818 4.47432 1 ValorsRest ValorsRest game_tele 1281 1 1 dun_morogh 0 0 +poi_tele_1282 landmark 0 -106.365 -3151.74 119.322 0.604897 1 ValorwindLake ValorwindLake game_tele 1282 1883 47 thehinterlands 0 0 +poi_tele_1283 landmark 0 -3683.96 3349.31 284.921 5.27572 1 VeilAlaRak VeilAlaRak game_tele 1283 5146 5146 vashjir 0 0 +poi_tele_1284 landmark 0 -3702.96 3754.15 276.354 3.76069 1 VeilHarrIk VeilHarrIk game_tele 1284 5146 5146 vashjir 0 0 +poi_tele_1285 landmark 0 1669.12 6935.57 167.396 2.60233 1 VeilLashh VeilLashh game_tele 1285 0 0 0 0 +poi_tele_1286 landmark 0 -3590.61 5802.91 -4.29788 0.673285 1 VeilLithic VeilLithic game_tele 1286 5146 5146 vashjir 0 0 +poi_tele_1287 landmark 0 -2999.94 5605.95 -3.92787 1.66524 1 VeilRhaze VeilRhaze game_tele 1287 214 214 thegreatsea 0 0 +poi_tele_1288 landmark 0 3253.49 5333.48 145.558 5.27728 1 VeilRuuan VeilRuuan game_tele 1288 0 0 0 0 +poi_tele_1289 landmark 0 -3544.89 4043.25 68.1842 3.42925 1 VeilShalas VeilShalas game_tele 1289 5146 5146 vashjir 0 0 +poi_tele_129 settlement 0 -2240.91 -399.174 -9.42446 2.53353 1 BloodhoofVillage BloodhoofVillage game_tele 129 2365 11 wetlands 0 0 +poi_tele_1290 landmark 0 -1902.4 3919.57 -1.69338 0.786375 1 VeilShienor VeilShienor game_tele 1290 214 214 thegreatsea 0 0 +poi_tele_1291 landmark 0 -2504.8 5429.98 0.047476 4.09213 1 VeilSkith VeilSkith game_tele 1291 0 0 0 0 +poi_tele_1292 landmark 0 1729.69 4637.52 147.393 4.36564 1 VeilVekh VeilVekh game_tele 1292 0 0 0 0 +poi_tele_1293 landmark 0 1713.82 4920.47 169.989 5.92915 1 VekhaarStand VekhaarStand game_tele 1293 0 0 0 0 +poi_tele_1294 landmark 0 2528 -871.109 53.9863 4.87192 1 VenomwebVale VenomwebVale game_tele 1294 4918 85 tirisfalglades 0 0 +poi_tele_1295 settlement 0 -11988 -582.287 10.0503 1.64342 1 VentureCoBaseCamp VentureCoBaseCamp game_tele 1295 1740 33 northernstranglethorn 0 0 +poi_tele_1296 landmark 0 -4737.16 1077.75 93.5801 1.83556 1 VerdantisRiver VerdantisRiver game_tele 1296 1 1 dun_morogh 0 0 +poi_tele_1297 landmark 0 -1067.77 -12505.2 20.8405 0.379317 1 VeridianPoint VeridianPoint game_tele 1297 0 0 0 0 +poi_tele_1298 landmark 0 3325.01 4608.41 217.521 2.62912 1 VimGolsCircle VimGolsCircle game_tele 1298 0 0 0 0 +poi_tele_1299 landmark 0 -1742.09 -11075.5 76.3923 2.56979 1 VindicatorsRest VindicatorsRest game_tele 1299 0 0 0 0 +poi_tele_13 landmark 0 -2681.4 -4787.21 16.0751 4.69276 1 AlcazIsland AlcazIsland game_tele 13 5439 4922 twilighthighlands 0 0 +poi_tele_130 settlement 0 3526.96 5794.43 1.72332 2.48461 1 BloodmaulCamp BloodmaulCamp game_tele 130 0 0 0 0 +poi_tele_1300 landmark 0 4291.45 2295.64 122.382 3.85881 1 VoidwindPlateau VoidwindPlateau game_tele 1300 214 214 thegreatsea 0 0 +poi_tele_1301 landmark 0 2606.02 7247.71 366.1 3.50082 1 VortexSummit VortexSummit game_tele 1301 0 0 0 0 +poi_tele_1302 landmark 0 -11078.1 -81.2907 16.645 3.36735 1 VulgolOgreMound VulgolOgreMound game_tele 1302 93 10 duskwood 0 0 +poi_tele_1303 ruins 0 -731.607 -2218.39 17.0281 2.78486 1 WailingCaverns WailingCaverns game_tele 1303 45 45 arathihighlands 0 0 +poi_tele_1304 landmark 0 9517.59 -7344.19 14.3582 3.75943 1 WalkOfElders WalkOfElders game_tele 1304 0 0 0 0 +poi_tele_1305 landmark 0 -3750.85 1059.38 70.921 3.49973 1 WardensCage WardensCage game_tele 1305 2365 11 wetlands 0 0 +poi_tele_1306 landmark 0 -735.921 8790.11 184.206 3.10641 1 WarmaulHill WarmaulHill game_tele 1306 0 0 0 0 +poi_tele_1307 landmark 0 1724.8 368.623 -60.4843 0.709539 1 WarQuarter WarQuarter game_tele 1307 1497 1497 undercity 0 0 +poi_tele_1308 landmark 0 9921.22 2346.78 1330.78 6.12055 1 WarriorsTerrace WarriorsTerrace game_tele 1308 0 0 0 0 +poi_tele_1309 landmark 0 1235.54 1427.1 309.715 0.557629 1 WarsongGulch WarsongGulch game_tele 1309 130 130 silverpineforest 0 0 +poi_tele_131 landmark 0 1623.51 6344.2 -2.54653 3.86891 1 BloodmaulOutpost BloodmaulOutpost game_tele 131 0 0 0 0 +poi_tele_1310 landmark 0 1525.95 1481.66 352.001 3.20756 1 WarsongGulchAlliance WarsongGulchAlliance game_tele 1310 130 130 silverpineforest 0 0 +poi_tele_1311 landmark 0 930.851 1431.57 345.537 0.015704 1 WarsongGulchHorde WarsongGulchHorde game_tele 1311 130 130 silverpineforest 0 0 +poi_tele_1312 settlement 0 1572.22 -2460.86 97.991 5.06328 1 WarsongLaborCamp WarsongLaborCamp game_tele 1312 2297 28 westernplaguelands 0 0 +poi_tele_1313 settlement 0 2288.94 -3277.64 101.471 6.11261 1 WarsongLumberCamp WarsongLumberCamp game_tele 1313 139 139 easternplaguelands 0 0 +poi_tele_1314 landmark 0 -7376.95 -4579.41 9.88491 3.184 1 WaterspringField WaterspringField game_tele 1314 3 3 badlands 0 0 +poi_tele_1315 landmark 0 -7221.12 -4892.68 0.553891 4.28199 1 WavestriderBeach WavestriderBeach game_tele 1315 3 3 badlands 0 0 +poi_tele_1316 landmark 0 -163.49 132.9 -73.66 5.83 1 WC WC game_tele 1316 267 267 hillsbradfoothills 0 0 +poi_tele_1317 landmark 0 -5790.12 -3912.32 -91.3618 2.06955 1 WeazelsCrater WeazelsCrater game_tele 1317 142 38 lochmodan 0 0 +poi_tele_1318 landmark 0 817.389 469.891 66.6528 1.40814 1 WebwinderPath WebwinderPath game_tele 1318 1338 130 silverpineforest 0 0 +poi_tele_1319 landmark 0 10410.6 1628.39 1288.2 0.009365 1 WellspringLake WellspringLake game_tele 1319 0 0 0 0 +poi_tele_132 landmark 0 1809.28 6411.22 -10.338 3.25427 1 BloodmaulRavine BloodmaulRavine game_tele 132 0 0 0 0 +poi_tele_1320 landmark 0 10639.6 1625.53 1285.09 1.27385 1 WellspringRiver WellspringRiver game_tele 1320 0 0 0 0 +poi_tele_1321 landmark 0 -9663.01 686.769 37.414 5.88684 1 WestbrookGarrison WestbrookGarrison game_tele 1321 120 12 elwynn 0 0 +poi_tele_1322 zone 0 1728.65 -1602.25 63.429 1.6558 1 WesternPlaguelands WesternPlaguelands game_tele 1322 28 28 westernplaguelands 1 0 +poi_tele_1323 landmark 0 -1073.67 276.526 0.822079 3.35856 1 WesternStrand WesternStrand game_tele 1323 295 267 hillsbradfoothills 0 0 +poi_tele_1324 zone 0 -10235.2 1222.47 43.6252 6.2427 1 Westfall Westfall game_tele 1324 40 40 westfall 1 0 +poi_tele_1325 landmark 0 -11405 1970.07 8.90656 4.10641 1 WestfallLighthouse WestfallLighthouse game_tele 1325 115 40 westfall 0 0 +poi_tele_1326 landmark 0 9144.45 -6273.75 22.6069 5.69229 1 WestSanctum WestSanctum game_tele 1326 0 0 0 0 +poi_tele_1327 zone 0 -3242.81 -2469.04 15.9226 6.03924 1 Wetlands Wetlands game_tele 1327 11 11 wetlands 1 0 +poi_tele_1328 landmark 0 -3446.82 -1818.75 24.1032 3.54812 1 WhelgarsExcavationSite WhelgarsExcavationSite game_tele 1328 118 11 wetlands 0 0 +poi_tele_1329 landmark 0 2812.03 -704.537 136.047 0.37551 1 WhisperingGardens WhisperingGardens game_tele 1329 160 85 tirisfalglades 0 0 +poi_tele_133 landmark 0 -1993.62 -11475.8 63.9657 5.29437 1 BloodmystIsle BloodmystIsle game_tele 133 0 0 0 0 +poi_tele_1330 landmark 0 2508.78 1663.26 3.20579 5.76976 1 WhisperingShore WhisperingShore game_tele 1330 169 85 tirisfalglades 0 0 +poi_tele_1331 landmark 0 -4905.75 -1378.99 -52.6113 2.47564 1 WhitereachPost WhitereachPost game_tele 1331 1 1 dun_morogh 0 0 +poi_tele_1332 landmark 0 5110.28 142.992 42.9436 3.71084 1 WildbendRiver WildbendRiver game_tele 1332 214 214 thegreatsea 0 0 +poi_tele_1333 landmark 0 291.808 -2124.52 121.243 0.276169 1 WildhammerKeep WildhammerKeep game_tele 1333 349 47 thehinterlands 0 0 +poi_tele_1334 landmark 0 -3989.47 2168.39 105.35 3.08422 1 WildhammerStronghold WildhammerStronghold game_tele 1334 214 214 thegreatsea 0 0 +poi_tele_1335 landmark 0 -752.026 -132.783 -28.7924 4.70689 1 WildmaneWaterWell WildmaneWaterWell game_tele 1335 267 267 hillsbradfoothills 0 0 +poi_tele_1336 landmark 0 -14647.1 316.009 3.49004 0.472363 1 WildShore WildShore game_tele 1336 43 5287 thecapeofstranglethorn 0 0 +poi_tele_1337 landmark 0 -5308.52 -2838.5 -55.5527 4.00714 1 WindbreakCanyon WindbreakCanyon game_tele 1337 38 38 lochmodan 0 0 +poi_tele_1338 landmark 0 -556.474 -554.987 16.7506 5.90461 1 WindfuryRidge WindfuryRidge game_tele 1338 267 267 hillsbradfoothills 0 0 +poi_tele_1339 landmark 0 7016.75 -5707.58 106.608 4.71628 1 WindrunnerSpire WindrunnerSpire game_tele 1339 0 0 0 0 +poi_tele_134 landmark 0 -13470 675.488 10.4762 4.9884 1 BloodsailCompound BloodsailCompound game_tele 134 1739 5287 thecapeofstranglethorn 0 0 +poi_tele_1340 settlement 0 7251.69 -5943.03 17.0084 3.32884 1 WindrunnerVillage WindrunnerVillage game_tele 1340 0 0 0 0 +poi_tele_1341 landmark 0 1260.37 393.698 93.3468 4.15782 1 WindshearCrag WindshearCrag game_tele 1341 1338 130 silverpineforest 0 0 +poi_tele_1342 mine 0 982.879 -358.391 14.8563 3.71878 1 WindshearMine WindshearMine game_tele 1342 1682 267 hillsbradfoothills 0 0 +poi_tele_1343 settlement 0 6837.43 -5084.04 691.045 3.19095 1 WinterfallVillage WinterfallVillage game_tele 1343 0 0 0 0 +poi_tele_1344 landmark 0 6759.18 -4419.63 763.214 4.43476 1 Winterspring Winterspring game_tele 1344 0 0 0 0 +poi_tele_1345 landmark 0 -2863.26 -4052.18 37.0607 3.9647 1 WitchHill WitchHill game_tele 1345 5155 4922 twilighthighlands 0 0 +poi_tele_1346 settlement 0 -1675.81 -3461.71 52.4582 3.67737 1 WitherbarkVillage WitherbarkVillage game_tele 1346 317 45 arathihighlands 0 0 +poi_tele_1347 landmark 0 2251.27 2403.09 117.366 2.99201 1 WizardRow WizardRow game_tele 1347 85 85 tirisfalglades 0 0 +poi_tele_1348 landmark 0 -4952.22 471.918 17.6569 3.27362 1 WoodpawHills WoodpawHills game_tele 1348 1 1 dun_morogh 0 0 +poi_tele_1349 tavern 0 -1755.97 5154.3 -37.2047 4.85864 1 WorldsEndTavern WorldsEndTavern game_tele 1349 214 214 thegreatsea 0 0 +poi_tele_135 landmark 0 360.89 8136.18 23.3585 1.1674 1 BloodscaleEnclave BloodscaleEnclave game_tele 135 0 0 0 0 +poi_tele_1350 landmark 0 -2236.79 -12274.6 49.2693 4.68644 1 WrathscaleLair WrathscaleLair game_tele 1350 0 0 0 0 +poi_tele_1351 landmark 0 -4942.25 -11750.1 22.2637 3.90184 1 WrathscalePoint WrathscalePoint game_tele 1351 0 0 0 0 +poi_tele_1352 landmark 0 -3425.33 4455.75 -8.58434 0.530853 1 WrithingMound WrithingMound game_tele 1352 5146 5146 vashjir 0 0 +poi_tele_1353 landmark 0 1304.63 1455.89 317.694 0.08639 1 WSG WSG game_tele 1353 130 130 silverpineforest 0 0 +poi_tele_1354 landmark 0 -4864.84 -3375.2 30.4545 4.34245 1 Wyrmbog Wyrmbog game_tele 1354 5724 38 lochmodan 0 0 +poi_tele_1355 landmark 0 -1205.72 -12428.7 94.8675 6.23292 1 WyrmscarIsland WyrmscarIsland game_tele 1355 0 0 0 0 +poi_tele_1356 landmark 0 3013.53 5909.98 130.699 1.26484 1 WyrmskullBridge WyrmskullBridge game_tele 1356 0 0 0 0 +poi_tele_1357 landmark 0 3117.35 6186.83 138.132 1.31978 1 WyrmskullTunnel WyrmskullTunnel game_tele 1357 0 0 0 0 +poi_tele_1358 landmark 0 2937.28 -2828.3 212.398 0.433398 1 Xavian Xavian game_tele 1358 2627 139 easternplaguelands 0 0 +poi_tele_1359 landmark 0 -11774.3 1266.94 2.99361 3.226 1 YojambaIsle YojambaIsle game_tele 1359 3357 33 northernstranglethorn 0 0 +poi_tele_136 landmark 0 539.523 6226.4 21.2966 0.731476 1 BloodscaleGrounds BloodscaleGrounds game_tele 136 0 0 0 0 +poi_tele_1360 landmark 0 120.7 1776 43.46 4.7713 1 ZA ZA game_tele 1360 130 130 silverpineforest 0 0 +poi_tele_1361 landmark 0 260.28 7860.4 23.3231 3.77545 1 Zabrajin Zabrajin game_tele 1361 0 0 0 0 +poi_tele_1362 landmark 0 -7351.38 -4878.43 3.31332 1.46633 1 ZalashjisDen ZalashjisDen game_tele 1362 3 3 badlands 0 0 +poi_tele_1363 wilderness 0 -54.8621 5813.44 20.9764 0.081722 1 Zangarmarsh Zangarmarsh game_tele 1363 0 0 0 0 +poi_tele_1364 landmark 0 -575.676 8441.21 63.0364 3.12603 1 ZangarRidge ZangarRidge game_tele 1364 0 0 0 0 +poi_tele_1365 landmark 0 7112.27 -7491.7 48.8403 4.39733 1 ZebNowa ZebNowa game_tele 1365 0 0 0 0 +poi_tele_1366 landmark 0 8027.92 -7831.6 174.185 5.34437 1 ZebSora ZebSora game_tele 1366 0 0 0 0 +poi_tele_1367 landmark 0 7435.65 -7837.06 151.305 4.63123 1 ZebTela ZebTela game_tele 1367 0 0 0 0 +poi_tele_1368 landmark 0 8442.72 -7611.23 155.586 1.86819 1 ZebWatha ZebWatha game_tele 1368 0 0 0 0 +poi_tele_1369 landmark 0 -1088.38 2998.27 8.18949 2.73983 1 ZeppelinCrash ZeppelinCrash game_tele 1369 4706 4706 ruinsofgilneas 0 0 +poi_tele_137 settlement 0 1641.62 -1448.83 147.085 2.65133 1 BloodtoothCamp BloodtoothCamp game_tele 137 28 28 westernplaguelands 0 0 +poi_tele_1370 landmark 0 -1005.37 2030.91 67.873 3.12703 1 ZethGor ZethGor game_tele 1370 5440 4706 ruinsofgilneas 0 0 +poi_tele_1372 ruins 0 -12659.8 -458.71 29.312 3.65797 1 ZiatajaiRuins ZiatajaiRuins game_tele 1372 128 33 northernstranglethorn 0 0 +poi_tele_1373 landmark 0 3376.86 1013.05 3.34387 3.81699 1 ZoramgarOutpost ZoramgarOutpost game_tele 1373 214 214 thegreatsea 0 0 +poi_tele_1374 landmark 0 6851.78 -7972.57 179.242 4.64691 1 ZulAman ZulAman game_tele 1374 0 0 0 0 +poi_tele_1375 landmark 0 -6801.19 -2893.02 9.00388 0.158639 1 ZulFarrak ZulFarrak game_tele 1375 5322 3 badlands 0 0 +poi_tele_1376 landmark 0 -11916.7 -1215.72 92.289 4.72454 1 ZulGurub ZulGurub game_tele 1376 19 33 northernstranglethorn 0 0 +poi_tele_1377 landmark 0 3381.52 -4922.54 160.168 5.33458 1 Zulmashar Zulmashar game_tele 1377 2273 139 easternplaguelands 0 0 +poi_tele_1378 landmark 0 -14.5469 -2479.52 120.64 2.32214 1 ZunWatha ZunWatha game_tele 1378 352 47 thehinterlands 0 0 +poi_tele_1379 ruins 0 -11701.7 963.365 3.89563 5.6466 1 ZuuldaiaRuins ZuuldaiaRuins game_tele 1379 122 33 northernstranglethorn 0 0 +poi_tele_138 landmark 0 5282.47 -716.836 346.13 0.216695 1 BloodvenomFalls BloodvenomFalls game_tele 138 214 214 thegreatsea 0 0 +poi_tele_1380 landmark 0 -8419.34 1212.14 5.17277 1.55232 1 StormwindHarbor StormwindHarbor game_tele 1380 4411 1519 stormwind 0 0 +poi_tele_1381 landmark 0 564.401 -4944.94 18.5962 5.36544 1 Valgarde Valgarde game_tele 1381 307 47 thehinterlands 0 0 +poi_tele_1382 landmark 0 424.405 -4548.76 245.652 5.37325 1 NewAgamand NewAgamand game_tele 1382 307 47 thehinterlands 0 0 +poi_tele_1383 landmark 0 774.043 -2940.65 7.36477 1.41719 1 Kamagua Kamagua game_tele 1383 139 139 easternplaguelands 0 0 +poi_tele_1384 landmark 0 1391.04 -3284.63 163.929 1.59391 1 WestguardKeep WestguardKeep game_tele 1384 2261 139 easternplaguelands 0 0 +poi_tele_1385 landmark 0 1942.86 -6167.11 23.724 2.64258 1 VengeanceLanding VengeanceLanding game_tele 1385 4546 139 easternplaguelands 0 0 +poi_tele_1386 landmark 0 2469.09 -5086.4 282.921 2.07711 1 FortWildervar FortWildervar game_tele 1386 2269 139 easternplaguelands 0 0 +poi_tele_1387 settlement 0 2649.82 -4362.69 276.885 5.15979 1 CampWinterhoof CampWinterhoof game_tele 1387 2624 139 easternplaguelands 0 0 +poi_tele_1388 landmark 0 1259.33 -4852.02 215.763 3.48293 1 UtgardePinnacle UtgardePinnacle game_tele 1388 139 139 easternplaguelands 0 0 +poi_tele_1389 landmark 0 1219.72 -4865.28 41.2479 0.313228 1 UtgardeKeep UtgardeKeep game_tele 1389 139 139 easternplaguelands 0 0 +poi_tele_139 landmark 0 5128.91 -343.506 355.035 3.39176 1 BloodvenomPost BloodvenomPost game_tele 139 214 214 thegreatsea 0 0 +poi_tele_1390 landmark 0 2213.95 5273.15 11.2565 5.89294 1 ValianceKeep ValianceKeep game_tele 1390 0 0 0 0 +poi_tele_1391 landmark 0 2741.29 6097.16 76.9055 0.731543 1 WarsongHold WarsongHold game_tele 1391 0 0 0 0 +poi_tele_1392 landmark 0 4147.98 5278.79 24.7334 0.150308 1 FizzcrankAirstrip FizzcrankAirstrip game_tele 1392 0 0 0 0 +poi_tele_1393 landmark 0 3781.81 6953.65 104.82 0.467432 1 TheNexus TheNexus game_tele 1393 0 0 0 0 +poi_tele_1394 landmark 0 4488.76 5736.18 80.0769 5.45078 1 BorgorokOutpost BorgorokOutpost game_tele 1394 0 0 0 0 +poi_tele_1395 landmark 0 3071.85 4791.19 1.13476 5.76654 1 Kaskala Kaskala game_tele 1395 0 0 0 0 +poi_tele_1396 landmark 0 2925.02 4065.63 1.46737 3.56739 1 Unupe Unupe game_tele 1396 0 0 0 0 +poi_tele_1397 settlement 0 3464.17 4087.16 17.0561 2.02607 1 TaunkaleVillage TaunkaleVillage game_tele 1397 0 0 0 0 +poi_tele_1398 landmark 0 5804.15 624.771 647.767 1.64 1 Dalaran Dalaran game_tele 1398 0 0 0 0 +poi_tele_1399 landmark 0 4103.36 264.478 50.5019 3.09349 1 Dragonblight Dragonblight game_tele 1399 214 214 thegreatsea 0 0 +poi_tele_14 landmark 0 -1746.58 5780.03 146.44 1.30629 1 AldorRise AldorRise game_tele 14 0 0 0 0 +poi_tele_140 landmark 0 5277.69 -512.571 322.307 3.04806 1 BloodvenomRiver BloodvenomRiver game_tele 140 214 214 thegreatsea 0 0 +poi_tele_1400 landmark 0 3256.57 5278.23 40.8046 0.246367 1 BoreanTundra BoreanTundra game_tele 1400 0 0 0 0 +poi_tele_1401 landmark 0 1902.15 -4883.91 171.363 3.11537 1 HowlingFjord HowlingFjord game_tele 1401 139 139 easternplaguelands 0 0 +poi_tele_1402 landmark 0 4391.73 -3587.92 238.531 3.57526 1 GrizzlyHills GrizzlyHills game_tele 1402 2037 2037 quelthalas 0 0 +poi_tele_1403 landmark 0 5560.23 -3211.66 371.709 5.55055 1 ZulDrak ZulDrak game_tele 1403 214 214 thegreatsea 0 0 +poi_tele_1404 landmark 0 6898.72 -4584.94 451.12 2.34455 1 Gundrak Gundrak game_tele 1404 0 0 0 0 +poi_tele_1405 landmark 0 7527.14 -1260.89 919.049 2.0696 1 StormPeaks StormPeaks game_tele 1405 0 0 0 0 +poi_tele_1406 landmark 0 9049.37 -1282.35 1060.19 5.8395 1 Ulduar Ulduar game_tele 1406 0 0 0 0 +poi_tele_1407 landmark 0 7253.64 1644.78 433.68 4.83412 1 Icecrown Icecrown game_tele 1407 0 0 0 0 +poi_tele_1408 landmark 0 -8379.79 253.323 155.347 5.38782 1 StormwindKeep StormwindKeep game_tele 1408 1519 1519 stormwind 0 0 +poi_tele_1409 landmark 0 -9003.05 874.064 148.619 3.47324 1 WizardsSanctum WizardsSanctum game_tele 1409 5154 1519 stormwind 0 0 +poi_tele_141 landmark 0 -1944.5 -11873.7 49.3983 6.04835 1 BloodWatch BloodWatch game_tele 141 0 0 0 0 +poi_tele_1410 landmark 0 5453.72 2840.79 421.28 0 1 VaultOfArchavon VaultOfArchavon game_tele 1410 0 0 0 0 +poi_tele_1411 landmark 0 4774.6 -2032.92 229.15 1.59 1 DrakTharonKeep DrakTharonKeep game_tele 1411 214 214 thegreatsea 0 0 +poi_tele_1412 landmark 0 4760.7 2143.7 423 1.13 1 Wintergrasp Wintergrasp game_tele 1412 214 214 thegreatsea 0 0 +poi_tele_1413 landmark 0 5323 4942 -133.5 2.17 1 SholazarBasin SholazarBasin game_tele 1413 0 0 0 0 +poi_tele_1414 landmark 0 8515.89 629.25 547.396 1.5747 1 ArgentTournament ArgentTournament game_tele 1414 0 0 0 0 +poi_tele_1415 landmark 0 5696.73 507.4 652.97 4.03 1 TheVioletHold TheVioletHold game_tele 1415 0 0 0 0 +poi_tele_1416 landmark 0 3412.88 -2791.17 201.521 2.2458 1 AmberpineLodge AmberpineLodge game_tele 1416 2037 2037 quelthalas 0 0 +poi_tele_1417 landmark 0 3682.71 -722.635 212.729 5.7991 1 WintergardeKeep WintergardeKeep game_tele 1417 214 214 thegreatsea 0 0 +poi_tele_1418 landmark 0 5873.82 2110.98 636.011 3.5523 1 IcecrownCitadelRaid IcecrownCitadelRaid game_tele 1418 0 0 0 0 +poi_tele_1419 landmark 0 5690.97 2141.07 798.054 4.4344 1 TheFrozenHalls TheFrozenHalls game_tele 1419 0 0 0 0 +poi_tele_142 landmark 0 -2825.56 -3112.78 36.0223 0.327524 1 Bluefen Bluefen game_tele 142 5699 4922 twilighthighlands 0 0 +poi_tele_1420 landmark 0 8427.88 2706.33 655.095 5.743 1 TheShadowVault TheShadowVault game_tele 1420 0 0 0 0 +poi_tele_1421 landmark 0 3641.45 282.75 -120.145 3.325 1 ChamberOfAspects ChamberOfAspects game_tele 1421 214 214 thegreatsea 0 0 +poi_tele_1422 landmark 0 4682.07 -5569.67 53.61 3.85 1 BloodmoonIsle BloodmoonIsle game_tele 1422 214 214 thegreatsea 0 0 +poi_tele_1423 landmark 0 1856.3 -1755.17 60.1676 5.57256 1 TheMendersStead TheMendersStead game_tele 1423 5367 28 westernplaguelands 0 0 +poi_tele_1424 landmark 0 16218.7 16403.6 -64.3789 3.12191 1 Jail Jail game_tele 1424 0 0 0 0 +poi_tele_1425 landmark 0 -366.091 3097.86 92.317 0.048763 1 EmeraldDream EmeraldDream game_tele 1425 2398 130 silverpineforest 0 0 +poi_tele_1426 landmark 0 2781.57 3006.76 23.2219 0.5 1 EmeraldStatue EmeraldStatue game_tele 1426 214 214 thegreatsea 0 0 +poi_tele_1427 landmark 0 -2128.12 -1005.89 132.213 0.5 1 VerdantFields VerdantFields game_tele 1427 2397 267 hillsbradfoothills 0 0 +poi_tele_1428 wilderness 0 2732.93 -3319.63 101.284 0.5 1 EmeraldForest EmeraldForest game_tele 1428 2277 139 easternplaguelands 0 0 +poi_tele_1429 landmark 0 3670.24 6784.35 170.181 1.4044 1 Coldarra Coldarra game_tele 1429 0 0 0 0 +poi_tele_143 wilderness 0 -3012.77 -1066.97 8.82117 0.006195 1 BluegillMarsh BluegillMarsh game_tele 143 1022 11 wetlands 0 0 +poi_tele_1430 landmark 0 3606.76 5944.54 136.216 2.84247 1 AmberLedge AmberLedge game_tele 1430 0 0 0 0 +poi_tele_1431 landmark 0 2967.29 6788.09 7.05211 5.86967 1 Garrosh'sLanding Garrosh'sLanding game_tele 1431 0 0 0 0 +poi_tele_1432 landmark 0 3543.21 271.834 342.721 3.15239 1 WyrmrestTemple WyrmrestTemple game_tele 1432 214 214 thegreatsea 0 0 +poi_tele_1433 landmark 0 -4194.43 -4736.05 126.787 3.22751 1 VictorsPoint VictorsPoint game_tele 1433 5470 4922 twilighthighlands 0 0 +poi_tele_1434 landmark 0 -4184.38 -5650.3 27.3267 5.11639 1 FirebeardsPatrol FirebeardsPatrol game_tele 1434 5141 4922 twilighthighlands 0 0 +poi_tele_1435 bank 0 -4827.46 -6678.2 4.38096 0.945928 1 Highbank Highbank game_tele 1435 5140 4922 twilighthighlands 0 0 +poi_tele_1436 settlement 0 -5123.42 450.15 396.584 0.222564 1 NewTinkertown NewTinkertown game_tele 1436 133 1 dun_morogh 0 0 +poi_tele_1437 landmark 0 -7008.63 -2554.03 241.714 4.87685 1 DragonsMouth DragonsMouth game_tele 1437 5564 3 badlands 0 0 +poi_tele_1438 landmark 0 -6603.82 -3407.45 279.287 2.74842 1 DustwindDig DustwindDig game_tele 1438 5525 3 badlands 0 0 +poi_tele_1439 landmark 0 -6628.2 -3895.36 378.73 4.7983 1 Fuselight Fuselight game_tele 1439 5496 3 badlands 0 0 +poi_tele_144 landmark 0 -235.037 -2566.93 118.73 1.11813 1 BogensLedge BogensLedge game_tele 144 1887 47 thehinterlands 0 0 +poi_tele_1440 settlement 0 -9474.42 -2841.39 65.2866 3.3681 1 CampEverstill CampEverstill game_tele 1440 5326 44 redridgemountains 0 0 +poi_tele_1441 landmark 0 -9637.02 -3474.82 121.956 5.36301 1 ShalewindCanyon ShalewindCanyon game_tele 1441 5324 44 redridgemountains 0 0 +poi_tele_1442 wilderness 0 -10150.1 -3782.54 17.3522 1.67169 1 MarshtideWatch MarshtideWatch game_tele 1442 5459 8 swampofsorrows 0 0 +poi_tele_1443 landmark 0 -12712.5 -2862.74 1.42455 4.55647 1 Surwich Surwich game_tele 1443 5084 4 blasted_lands 0 0 +poi_tele_1444 landmark 0 -12061.9 -611.914 13.7046 3.69646 1 NorthStranglethorn NorthStranglethorn game_tele 1444 1740 33 northernstranglethorn 0 0 +poi_tele_1445 landmark 0 -12834 -422.427 13.0279 4.49677 1 FortLivingston FortLivingston game_tele 1445 5320 33 northernstranglethorn 0 0 +poi_tele_1446 landmark 0 -13607.7 -62.7543 35.526 3.02416 1 ExplorersLeagueDigsite ExplorersLeagueDigsite game_tele 1446 5408 5287 thecapeofstranglethorn 0 0 +poi_tele_1447 landmark 0 -281.595 1362.91 22.7936 1.84159 1 TolBaradPeninsula TolBaradPeninsula game_tele 1447 5387 130 silverpineforest 0 0 +poi_tele_1448 landmark 0 -1208.18 980.94 119.728 3.21604 1 BaradinHold BaradinHold game_tele 1448 4706 4706 ruinsofgilneas 0 0 +poi_tele_1449 landmark 0 -198.45 1273.47 40.4208 2.0155 1 TheForsakenFront TheForsakenFront game_tele 1449 5387 130 silverpineforest 0 0 +poi_tele_145 ruins 0 -349.384 7253.7 47.4862 3.07277 1 BohaMuRuins BohaMuRuins game_tele 145 0 0 0 0 +poi_tele_1450 landmark 0 -1703.84 1419.06 21.6703 0.719589 1 GilneasCity GilneasCity game_tele 1450 5435 4706 ruinsofgilneas 0 0 +poi_tele_1451 zone 0 -1496.84 1617.89 20.4854 0.817762 1 RuinsOfGilneas RuinsOfGilneas game_tele 1451 4706 4706 ruinsofgilneas 1 0 +poi_tele_1452 landmark 0 -926.41 1639.02 68.4227 1.44215 1 ForsakenForwardCommand ForsakenForwardCommand game_tele 1452 5434 4706 ruinsofgilneas 0 0 +poi_tele_1453 landmark 0 -4202.26 6346.8 9.7129 3.25583 1 DarkmoonFaire DarkmoonFaire game_tele 1453 5146 5146 vashjir 0 0 +poi_tele_1454 zone 0 -3493.13 -4912.95 77.1887 0.522433 1 TwilightHighlands TwilightHighlands game_tele 1454 4922 4922 twilighthighlands 1 0 +poi_tele_1455 landmark 0 -3026.46 -4013.16 279.076 4.6929 1 VermillionRedoubt VermillionRedoubt game_tele 1455 5155 4922 twilighthighlands 0 0 +poi_tele_1456 landmark 0 -3374.71 -4463.59 170.216 6.17773 1 GlopgutsHollow GlopgutsHollow game_tele 1456 5639 4922 twilighthighlands 0 0 +poi_tele_1457 landmark 0 -3687.72 -5304.55 36.1321 5.42767 1 Bloodgulch Bloodgulch game_tele 1457 5138 4922 twilighthighlands 0 0 +poi_tele_1458 landmark 0 -2748.68 -6359.73 199.013 3.34637 1 TheKrazzworks TheKrazzworks game_tele 1458 5137 4922 twilighthighlands 0 0 +poi_tele_1459 landmark 0 -4024.3 -6380.98 37.2517 6.24448 1 DragonmawPort DragonmawPort game_tele 1459 5136 4922 twilighthighlands 0 0 +poi_tele_146 landmark 0 -2270.12 2505.58 74.147 3.50113 1 BolgansHole BolgansHole game_tele 146 4706 4706 ruinsofgilneas 0 0 +poi_tele_1460 landmark 0 -4836.46 -4833.4 196.088 4.56373 1 Crushblow Crushblow game_tele 1460 5471 4922 twilighthighlands 0 0 +poi_tele_1461 landmark 0 -628.98 -1048.63 63.7107 5.91068 1 EastpointTower EastpointTower game_tele 1461 5603 267 hillsbradfoothills 0 0 +poi_tele_1462 landmark 0 -581.828 422.095 79.4355 1.59099 1 SouthpointGate SouthpointGate game_tele 1462 285 267 hillsbradfoothills 0 0 +poi_tele_1463 landmark 0 -6903.39 -3511.24 242.086 5.3766 1 BloodwatcherPoint BloodwatcherPoint game_tele 1463 5524 3 badlands 0 0 +poi_tele_1464 landmark 0 -6744.2 -2542.31 241.88 4.37523 1 NewKargath NewKargath game_tele 1464 5565 3 badlands 0 0 +poi_tele_1465 landmark 0 -8093.77 -1013.15 132.81 4.74436 1 FlamestarPost FlamestarPost game_tele 1465 5651 46 burningsteppes 0 0 +poi_tele_1466 landmark 0 -7926.49 -1922.52 132.845 1.18258 1 Chiselgrip Chiselgrip game_tele 1466 5654 46 burningsteppes 0 0 +poi_tele_1467 landmark 0 -12118.3 -841.394 45.1837 5.02317 1 Bambala Bambala game_tele 1467 5317 33 northernstranglethorn 0 0 +poi_tele_1468 landmark 0 -13296.7 735.068 3.51823 3.9236 1 HardwrenchHideaway HardwrenchHideaway game_tele 1468 1739 5287 thecapeofstranglethorn 0 0 +poi_tele_1469 landmark 0 -12346 -3019.36 88.2151 5.63504 1 SunveilExcursion SunveilExcursion game_tele 1469 5083 4 blasted_lands 0 0 +poi_tele_147 ruins 0 -2975.06 3481.44 -0.79203 5.2333 1 BonechewerRuins BonechewerRuins game_tele 147 214 214 thegreatsea 0 0 +poi_tele_1470 landmark 0 -10679.1 1049.4 23.3868 0.157086 1 SchnottzsLanding SchnottzsLanding game_tele 1470 108 40 westfall 0 0 +poi_tele_1471 landmark 0 -9448.21 -962.083 111.012 2.93346 1 Ramkahen Ramkahen game_tele 1471 12 12 elwynn 0 0 +poi_tele_1472 landmark 0 -9469.56 -2467.28 17.0011 2.11647 1 DawnriseExpedition DawnriseExpedition game_tele 1472 68 44 redridgemountains 0 0 +poi_tele_1473 wilderness 0 -7551.99 -1560.2 -270.296 2.27137 1 MarshalsStand MarshalsStand game_tele 1473 252 46 burningsteppes 0 0 +poi_tele_1474 landmark 0 -4293.64 -922.479 80.3139 5.39944 1 WestreachSummit WestreachSummit game_tele 1474 1 1 dun_morogh 0 0 +poi_tele_1475 landmark 0 -6119.92 -3879.47 6.17747 2.01436 1 Fizzle&PozziksSpeedbarge Fizzle&PozziksSpeedbarge game_tele 1475 38 38 lochmodan 0 0 +poi_tele_1476 landmark 0 -4602.94 1823.88 88.6075 4.13181 1 StonemaulHold StonemaulHold game_tele 1476 1 1 dun_morogh 0 0 +poi_tele_1477 settlement 0 -3090.93 2564.16 50.1792 4.08862 1 CampAtaya CampAtaya game_tele 1477 214 214 thegreatsea 0 0 +poi_tele_1478 landmark 0 -414.606 2226.48 91.6884 5.12392 1 FuriensPost FuriensPost game_tele 1478 2398 130 silverpineforest 0 0 +poi_tele_1479 landmark 0 -1146.63 1659.83 62.641 3.67485 1 CenarionWildlands CenarionWildlands game_tele 1479 5440 4706 ruinsofgilneas 0 0 +poi_tele_148 landmark 0 -14297.2 530.993 8.77916 3.98863 1 BootyBay BootyBay game_tele 148 35 5287 thecapeofstranglethorn 0 0 +poi_tele_1480 landmark 0 -3243.52 -1737.5 92.0702 1.51794 1 DesolationHold DesolationHold game_tele 1480 11 11 wetlands 0 0 +poi_tele_1481 landmark 0 -2133.74 -1737.11 95.0385 0.143498 1 VendettaPoint VendettaPoint game_tele 1481 328 45 arathihighlands 0 0 +poi_tele_1482 landmark 0 -811.892 -1557.49 140.893 0.398748 1 HuntersHill HuntersHill game_tele 1482 1057 267 hillsbradfoothills 0 0 +poi_tele_1483 landmark 0 60.5981 -2708.93 91.6855 1.33239 1 NorthernBarrens NorthernBarrens game_tele 1483 47 47 thehinterlands 0 0 +poi_tele_1484 landmark 0 1138.75 -3400.13 91.7627 0.645341 1 NozzlepotsOutpost NozzlepotsOutpost game_tele 1484 139 139 easternplaguelands 0 0 +poi_tele_1485 landmark 0 898.339 12.318 92.7756 0.668837 1 KromgarFortress KromgarFortress game_tele 1485 1339 267 hillsbradfoothills 0 0 +poi_tele_1486 landmark 0 1733.68 790.458 130.74 3.49729 1 TheSludgewerks TheSludgewerks game_tele 1486 4921 85 tirisfalglades 0 0 +poi_tele_1487 landmark 0 2142.58 1281.18 452.122 0.91333 1 CliffwalkerPost CliffwalkerPost game_tele 1487 154 85 tirisfalglades 0 0 +poi_tele_1488 landmark 0 2993.48 -490.334 198.628 2.64353 1 HellscreamsWatch HellscreamsWatch game_tele 1488 459 85 tirisfalglades 0 0 +poi_tele_1489 landmark 0 4731.59 -881.593 342.757 1.06101 1 WildheartPoint WildheartPoint game_tele 1489 214 214 thegreatsea 0 0 +poi_tele_149 landmark 0 40.0395 -28.613 -1.1189 2.35856 1 Bota Bota game_tele 149 279 267 hillsbradfoothills 0 0 +poi_tele_1490 landmark 0 6042.5 -838.868 412.509 0.03214 1 WhisperwindGrove WhisperwindGrove game_tele 1490 0 0 0 0 +poi_tele_1491 landmark 0 6890.44 -1597.8 500.325 6.15432 1 IrontreeClearing IrontreeClearing game_tele 1491 0 0 0 0 +poi_tele_1492 landmark 0 5580.16 -3608.15 1570.6 5.78912 1 Nordrassil Nordrassil game_tele 1492 214 214 thegreatsea 0 0 +poi_tele_1493 landmark 0 5075.76 -3201.27 1889.44 1.41445 1 MountHyjal MountHyjal game_tele 1493 214 214 thegreatsea 0 0 +poi_tele_1494 landmark 0 4986.75 -2669.72 1425.98 1.116 1 ShrineOfAviana ShrineOfAviana game_tele 1494 214 214 thegreatsea 0 0 +poi_tele_1495 landmark 0 5111.4 -1767.61 1333.27 5.94619 1 GroveOfAessina GroveOfAessina game_tele 1495 214 214 thegreatsea 0 0 +poi_tele_1496 landmark 0 4443.45 -2039.02 1211.09 5.08618 1 SanctuaryOfMalorne SanctuaryOfMalorne game_tele 1496 214 214 thegreatsea 0 0 +poi_tele_1497 landmark 0 4097.25 -3983.19 970.389 3.80205 1 GatesOfSothann GatesOfSothann game_tele 1497 2037 2037 quelthalas 0 0 +poi_tele_1498 landmark 0 3528.16 -6554.95 40.7513 4.08435 1 BilgewaterHarbor BilgewaterHarbor game_tele 1498 308 308 theforbiddingsea 0 0 +poi_tele_1499 landmark 0 2647.67 -6200.57 99.1108 5.34884 1 SouthernRocketway SouthernRocketway game_tele 1499 139 139 easternplaguelands 0 0 +poi_tele_15 landmark 0 10405.3 883.631 1320.33 0.102033 1 Aldrassil Aldrassil game_tele 15 0 0 0 0 +poi_tele_150 landmark 0 3155.52 -3526.2 130.635 5.5267 1 BoughShadow BoughShadow game_tele 150 2277 139 easternplaguelands 0 0 +poi_tele_1500 landmark 0 -6985.64 -1055.36 -266.292 0.097304 1 MossyPile MossyPile game_tele 1500 246 51 searinggorge 0 0 +poi_tele_1501 landmark 0 -8342.68 795.983 151.57 5.97209 1 OasisOfVirsar OasisOfVirsar game_tele 1501 5314 1519 stormwind 0 0 +poi_tele_1502 landmark 0 -3141.28 -2280.31 93.1071 4.34236 1 FortTriumph FortTriumph game_tele 1502 11 11 wetlands 0 0 +poi_tele_1503 settlement 0 276.744 -325.368 92.5341 0.722958 1 NorthwatchExpeditionBaseCamp NorthwatchExpeditionBaseCamp game_tele 1503 1683 267 hillsbradfoothills 0 0 +poi_tele_1504 landmark 0 1210.52 435.034 77.2938 3.20874 1 WindshearHold WindshearHold game_tele 1504 232 130 silverpineforest 0 0 +poi_tele_1505 landmark 0 1371.22 1039.32 165.145 4.22583 1 MirkfallonPost MirkfallonPost game_tele 1505 5369 130 silverpineforest 0 0 +poi_tele_1506 landmark 0 1047.4 1970.7 127.061 2.33302 1 FarwatchersGlen FarwatchersGlen game_tele 1506 305 130 silverpineforest 0 0 +poi_tele_1507 landmark 0 2112.79 1598.04 341.271 6.11471 1 ThaldarahOverlook ThaldarahOverlook game_tele 1507 154 85 tirisfalglades 0 0 +poi_tele_1508 settlement 0 3883.11 642.907 10.4574 2.9692 1 BlackfathomCamp BlackfathomCamp game_tele 1508 214 214 thegreatsea 0 0 +poi_tele_1509 landmark 0 1925.46 -344.28 118.114 2.68645 1 StardustSpire StardustSpire game_tele 1509 165 85 tirisfalglades 0 0 +poi_tele_151 landmark 0 -1968.97 -2773.94 79.3106 4.10542 1 BoulderfistHall BoulderfistHall game_tele 151 316 45 arathihighlands 0 0 +poi_tele_1510 landmark 0 -8390.34 1342.36 101.991 1.2849 1 Kezan Kezan game_tele 1510 4411 1519 stormwind 0 0 +poi_tele_1511 landmark 0 -6785.14 4202.74 -480.919 0.218087 1 LegionsRest LegionsRest game_tele 1511 5144 5146 vashjir 0 0 +poi_tele_1512 landmark 0 -6114.43 4287.74 -349.123 2.00952 1 SilverTideHollow SilverTideHollow game_tele 1512 4961 5144 shimmeringexpanse 0 0 +poi_tele_1513 landmark 0 -5627.77 3743.81 2.39179 3.48214 1 ShimmeringExpanse ShimmeringExpanse game_tele 1513 5144 5146 vashjir 0 0 +poi_tele_1514 landmark 0 -4570.29 3478.06 -101.809 5.62628 1 SmugglersScar SmugglersScar game_tele 1514 5057 4815 kelptharforest 0 0 +poi_tele_1515 zone 0 -4985.18 3550.5 -128.72 1.28695 1 KelptharForest KelptharForest game_tele 1515 4815 4815 kelptharforest 1 0 +poi_tele_1516 ruins 0 -6601.58 6029.2 -673.447 3.79629 1 TenebrousCavern TenebrousCavern game_tele 1516 4977 5145 abyssaldepths 0 0 +poi_tele_1517 landmark 0 -5990.31 6141.37 -803.235 2.70851 1 AbyssalDepth AbyssalDepth game_tele 1517 5134 5145 abyssaldepths 0 0 +poi_tele_1518 landmark 0 915.004 503.842 -49.23 0.196921 1 Deepholm Deepholm game_tele 1518 172 130 silverpineforest 0 0 +poi_tele_1519 landmark 0 851.307 1067.76 -10.0183 4.50656 1 TheMaelstrom TheMaelstrom game_tele 1519 237 130 silverpineforest 0 0 +poi_tele_152 landmark 0 -1197.66 -2130.17 61.2405 1.26105 1 BoulderfistOuspost BoulderfistOuspost game_tele 152 1858 45 arathihighlands 0 0 +poi_tele_1520 landmark 0 3991.27 -2952.46 1002.55 1.96224 1 Firelands Firelands game_tele 1520 2037 2037 quelthalas 0 0 +poi_tele_1521 landmark 0 8515.63 714.174 558.248 1.57298 1 TrialOfTheCrusader TrialOfTheCrusader game_tele 1521 0 0 0 0 +poi_tele_1522 landmark 0 8588.42 791.888 558.236 3.23819 1 TrialOfTheChampion TrialOfTheChampion game_tele 1522 0 0 0 0 +poi_tele_1523 ruins 0 -7570.92 -1326.44 245.537 4.82715 1 BlackrockCaverns BlackrockCaverns game_tele 1523 5374 25 blackrockmountain 0 0 +poi_tele_1524 landmark 0 -10194.8 -1837.65 20.1282 3.13903 1 HallsOfOrigination HallsOfOrigination game_tele 1524 41 41 deadwindpass 0 0 +poi_tele_1525 landmark 0 -10667.5 -1303.97 15.3534 3.39428 1 LostCityOfTheTolvir LostCityOfTheTolvir game_tele 1525 42 10 duskwood 0 0 +poi_tele_1526 landmark 0 -11506.6 -2304.29 608.394 3.83882 1 TheVortexPinnacle TheVortexPinnacle game_tele 1526 73 4 blasted_lands 0 0 +poi_tele_1527 landmark 0 -11351.8 49.8219 723.885 1.94915 1 ThroneOfTheFourWinds ThroneOfTheFourWinds game_tele 1527 33 5339 stranglethornvale 0 0 +poi_tele_1528 landmark 0 -4887.03 -4245.4 827.764 2.08397 1 BastionOfTwilight BastionOfTwilight game_tele 1528 5473 4922 twilighthighlands 0 0 +poi_tele_1529 landmark 0 -7537.35 -1199.88 477.721 1.93083 1 BlackwingDescent BlackwingDescent game_tele 1529 5729 25 blackrockmountain 0 0 +poi_tele_153 landmark 0 -1210.81 -2082.89 49.878 0.221184 1 BoulderfistOutpost BoulderfistOutpost game_tele 153 1858 45 arathihighlands 0 0 +poi_tele_1530 landmark 0 1024.46 641.61 156.673 4.91323 1 TheStoneCore TheStoneCore game_tele 1530 172 130 silverpineforest 0 0 +poi_tele_1531 landmark 0 -5598.9 5411.9 -1798.71 5.63353 1 ThroneOfTheTides ThroneOfTheTides game_tele 1531 5047 5145 abyssaldepths 0 0 +poi_tele_1532 landmark 0 -8284.39 -4521.57 -219.041 0.338499 1 DragonSoul DragonSoul game_tele 1532 2403 8 swampofsorrows 0 0 +poi_tele_154 landmark 0 -1194.77 -2202.83 53.6903 1.52416 1 BoulderGor BoulderGor game_tele 154 1858 45 arathihighlands 0 0 +poi_tele_155 mine 0 1329.13 -3598.07 91.7029 3.94133 1 BoulderLodeMine BoulderLodeMine game_tele 155 2262 139 easternplaguelands 0 0 +poi_tele_156 landmark 0 3588.57 7143.33 140.447 1.56718 1 BoulderMok BoulderMok game_tele 156 0 0 0 0 +poi_tele_157 ruins 0 -100.856 251.61 100.892 0.777452 1 BoulderslideCavern BoulderslideCavern game_tele 157 278 267 hillsbradfoothills 0 0 +poi_tele_158 landmark 0 -69.2305 63.8333 48.9635 2.54067 1 BoulderslideRavine BoulderslideRavine game_tele 158 267 267 hillsbradfoothills 0 0 +poi_tele_159 settlement 0 -3130.67 -2908.43 34.0976 1.42798 1 BrackenwallVillage BrackenwallVillage game_tele 159 1016 11 wetlands 0 0 +poi_tele_16 landmark 0 -10656.1 1655 41.8732 2.86155 1 AlexstonFarmstead AlexstonFarmstead game_tele 16 219 40 westfall 0 0 +poi_tele_160 landmark 0 -9757.58 -897.584 39.4214 5.20747 1 BrackwellPumpkinPatch BrackwellPumpkinPatch game_tele 160 62 12 elwynn 0 0 +poi_tele_161 landmark 0 -3029.73 -1058.27 50.5731 4.53254 1 BramblebladeRavine BramblebladeRavine game_tele 161 1022 11 wetlands 0 0 +poi_tele_162 landmark 0 -2077.71 -2700.8 93.9102 5.72965 1 Bramblescar Bramblescar game_tele 162 316 45 arathihighlands 0 0 +poi_tele_163 landmark 0 458.32 26.52 -70.67 4.95 1 BRD BRD game_tele 163 281 267 hillsbradfoothills 0 0 +poi_tele_164 settlement 0 -5385.04 310.278 394.151 5.19649 1 BrewnallVillage BrewnallVillage game_tele 164 137 1 dun_morogh 0 0 +poi_tele_165 landmark 0 2539.96 -53.7843 28.1068 1.0229 1 BrightwaterLake BrightwaterLake game_tele 165 163 85 tirisfalglades 0 0 +poi_tele_166 landmark 0 -10443.9 -830.975 49.7064 1.95754 1 BrightwoodGrove BrightwoodGrove game_tele 166 242 10 duskwood 0 0 +poi_tele_167 landmark 0 2259.25 290.43 34.1137 0.987414 1 Brill Brill game_tele 167 159 85 tirisfalglades 0 0 +poi_tele_168 landmark 0 -2534.78 -12296.2 13.9722 6.17556 1 BristlelimbEnclave BristlelimbEnclave game_tele 168 0 0 0 0 +poi_tele_169 settlement 0 -4505.81 -11623.1 11.3414 3.04968 1 BristlelimbVillage BristlelimbVillage game_tele 169 0 0 0 0 +poi_tele_17 landmark 0 -4817.04 -2656.26 327.12 4.68835 1 AlgazStation AlgazStation game_tele 17 925 38 lochmodan 0 0 +poi_tele_170 landmark 0 -3867.39 1131.48 154.788 6.16863 1 BrokenCommons BrokenCommons game_tele 170 2365 11 wetlands 0 0 +poi_tele_171 landmark 0 -467.983 3471.16 38.2596 4.92625 1 BrokenHill BrokenHill game_tele 171 2398 130 silverpineforest 0 0 +poi_tele_172 landmark 0 -7997.8 -3891.14 11.7253 1.31317 1 BrokenPillar BrokenPillar game_tele 172 3 3 badlands 0 0 +poi_tele_173 landmark 0 3507.86 4615.89 216.47 0.378958 1 BrokenWilds BrokenWilds game_tele 173 0 0 0 0 +poi_tele_174 settlement 0 -8008.65 1107.88 -0.668291 3.56178 1 BronzebeardEncampment BronzebeardEncampment game_tele 174 5398 1519 stormwind 0 0 +poi_tele_175 landmark 0 2465.15 -5116.14 76.4285 5.12016 1 BrowmanMill BrowmanMill game_tele 175 2269 139 easternplaguelands 0 0 +poi_tele_176 landmark 0 96.4462 1002.35 -86.9984 6.26671 1 BT BT game_tele 176 130 130 silverpineforest 0 0 +poi_tele_177 landmark 0 -171.297 -4362.51 68.0577 0.011192 1 BurningBladeCoven BurningBladeCoven game_tele 177 307 47 thehinterlands 0 0 +poi_tele_178 ruins 0 -2560.08 6248.7 17.9276 1.14689 1 BurningBladeRuins BurningBladeRuins game_tele 178 0 0 0 0 +poi_tele_179 zone 0 -8118.54 -1633.83 132.996 0.089067 1 BurningSteppes BurningSteppes game_tele 179 46 46 burningsteppes 1 0 +poi_tele_18 landmark 0 -2593.73 3326.38 0.607573 4.93171 1 AllerianPost AllerianPost game_tele 18 214 214 thegreatsea 0 0 +poi_tele_180 landmark 0 -7664.76 -1100.87 399.679 0.561981 1 BWL BWL game_tele 180 25 25 blackrockmountain 0 0 +poi_tele_181 landmark 0 1248.8 -2604.13 90.961 0.255412 1 CaerDarrow CaerDarrow game_tele 181 2298 28 westernplaguelands 0 0 +poi_tele_182 settlement 0 -44.6129 -505.122 -46.1274 1.84172 1 CampAparaje CampAparaje game_tele 182 1679 267 hillsbradfoothills 0 0 +poi_tele_183 settlement 0 -7022.26 -3609.21 241.879 4.08514 1 CampBoff CampBoff game_tele 183 3 3 badlands 0 0 +poi_tele_184 settlement 0 -7166.43 -2390.08 240.945 5.77925 1 CampCagg CampCagg game_tele 184 344 3 badlands 0 0 +poi_tele_185 settlement 0 -4619.13 -1234.54 -53.5973 3.48882 1 CampEThok CampEThok game_tele 185 1 1 dun_morogh 0 0 +poi_tele_186 settlement 0 -6264.36 -3703.95 244.144 4.65455 1 CampKosh CampKosh game_tele 186 341 3 badlands 0 0 +poi_tele_187 settlement 0 -4396.7 224.841 25.4136 4.93684 1 CampMojache CampMojache game_tele 187 1 1 dun_morogh 0 0 +poi_tele_188 settlement 0 -2919.35 -264.535 53.6197 0.409027 1 CampNarache CampNarache game_tele 188 2365 11 wetlands 0 0 +poi_tele_189 settlement 0 3216.07 3543.61 124.642 5.94353 1 CampOfBoom CampOfBoom game_tele 189 214 214 thegreatsea 0 0 +poi_tele_19 landmark 0 -2949.27 3958.32 0.285465 1.37205 1 AllerianStronghold AllerianStronghold game_tele 19 214 214 thegreatsea 0 0 +poi_tele_190 settlement 0 -2363.11 -1913.78 95.7829 0.165556 1 CampTaurajo CampTaurajo game_tele 190 45 45 arathihighlands 0 0 +poi_tele_191 settlement 0 -6838.66 -2833.16 241.666 1.16111 1 CampWurg CampWurg game_tele 191 1878 3 badlands 0 0 +poi_tele_192 landmark 0 1650.58 200.023 -62.1773 1.41639 1 Canals Canals game_tele 192 1497 1497 undercity 0 0 +poi_tele_193 landmark 0 -2866.74 4738.97 -4.36527 0.870223 1 CarrionHill CarrionHill game_tele 193 214 214 thegreatsea 0 0 +poi_tele_194 landmark 0 -8583.63 805.724 106.519 0.660715 1 CathedralOfLight CathedralOfLight game_tele 194 5704 1519 stormwind 0 0 +poi_tele_195 landmark 0 -8658.39 746.877 96.825 0.646923 1 CathedralSquare CathedralSquare game_tele 195 5151 1519 stormwind 0 0 +poi_tele_196 ruins 0 -8204.88 -4495.25 9.0091 4.72574 1 CavernsOfTime CavernsOfTime game_tele 196 2403 8 swampofsorrows 0 0 +poi_tele_197 landmark 0 4035.83 1435.5 -123.376 5.73225 1 CelestialRidge CelestialRidge game_tele 197 214 214 thegreatsea 0 0 +poi_tele_198 landmark 0 -6834 763.39 43.0314 4.97156 1 CenarioHold CenarioHold game_tele 198 1 1 dun_morogh 0 0 +poi_tele_199 landmark 0 10122.8 2540.84 1321.73 0.326671 1 CenarionEnclave CenarionEnclave game_tele 199 0 0 0 0 +poi_tele_2 landmark 0 -2068.19 7463.77 -18.9908 5.21755 1 AbandonedArmory AbandonedArmory game_tele 2 0 0 0 0 +poi_tele_20 landmark 0 -3053.96 828.896 -10.4689 5.53466 1 AltarOfShatar AltarOfShatar game_tele 20 2365 11 wetlands 0 0 +poi_tele_200 landmark 0 -6818.09 733.814 41.5661 2.3082 1 CenarionHold CenarionHold game_tele 200 1 1 dun_morogh 0 0 +poi_tele_201 landmark 0 -318.842 4718.99 18.4132 6.21599 1 CenarionPost CenarionPost game_tele 201 0 0 0 0 +poi_tele_202 landmark 0 -223.541 5487.99 23.2281 0.886755 1 CenarionRefuge CenarionRefuge game_tele 202 0 0 0 0 +poi_tele_203 landmark 0 -1816.67 4691.8 10.6813 0.383229 1 CenarionThicket CenarionThicket game_tele 203 214 214 thegreatsea 0 0 +poi_tele_204 landmark 0 2416.41 2171.83 90.9205 5.58696 1 ChapelYard ChapelYard game_tele 204 85 85 tirisfalglades 0 0 +poi_tele_205 landmark 0 -5568.39 94.4882 483.947 2.57091 1 ChillBreezeValley ChillBreezeValley game_tele 205 801 1 dun_morogh 0 0 +poi_tele_206 settlement 0 967.964 -1443.99 65.0399 2.05398 1 ChillwindCamp ChillwindCamp game_tele 206 3197 28 westernplaguelands 0 0 +poi_tele_207 landmark 0 262.381 -1437.45 50.1333 4.13091 1 ChillwindPoint ChillwindPoint game_tele 207 1684 267 hillsbradfoothills 0 0 +poi_tele_208 landmark 0 2839.44 5930.17 11.1002 3.16284 1 CircleOfBloodArena CircleOfBloodArena game_tele 208 0 0 0 0 +poi_tele_209 landmark 0 -842.406 -3271.57 78.3724 0.432116 1 CircleOfEastBinding CircleOfEastBinding game_tele 209 333 45 arathihighlands 0 0 +poi_tele_21 landmark 0 -7616.9 -744.571 190.288 5.01897 1 AltarOfStorms AltarOfStorms game_tele 21 255 46 burningsteppes 0 0 +poi_tele_210 landmark 0 -1539.11 -2168.63 17.3715 0.578985 1 CircleOfInnerBinding CircleOfInnerBinding game_tele 210 335 45 arathihighlands 0 0 +poi_tele_211 landmark 0 -1354.53 -2737.5 58.9458 5.9114 1 CircleOfOuterBinding CircleOfOuterBinding game_tele 211 336 45 arathihighlands 0 0 +poi_tele_212 landmark 0 -867.807 -1777.93 40.2461 5.60058 1 CircleOfWestBinding CircleOfWestBinding game_tele 212 334 45 arathihighlands 0 0 +poi_tele_213 landmark 0 1836.86 -4397.85 3.58252 2.15931 1 CleftOfShadow CleftOfShadow game_tele 213 2621 139 easternplaguelands 0 0 +poi_tele_214 landmark 0 6892.58 -659.319 85.6375 3.11156 1 CliffspringFalls CliffspringFalls game_tele 214 0 0 0 0 +poi_tele_215 landmark 0 7344.08 -398.198 0.822346 3.29942 1 CliffspringRiver CliffspringRiver game_tele 215 0 0 0 0 +poi_tele_216 landmark 0 735.066 6883.45 -66.2913 5.89172 1 CoilfangReservoir CoilfangReservoir game_tele 216 0 0 0 0 +poi_tele_217 landmark 0 -2926.87 1333.17 8.17311 4.24367 1 CoilskarCistern CoilskarCistern game_tele 217 2365 11 wetlands 0 0 +poi_tele_218 landmark 0 -3010.81 1715.21 74.0269 6.16004 1 CoilskarPoint CoilskarPoint game_tele 218 2365 11 wetlands 0 0 +poi_tele_219 landmark 0 2109.16 603.695 35.2618 0.727451 1 ColdHearthManor ColdHearthManor game_tele 219 166 85 tirisfalglades 0 0 +poi_tele_22 landmark 0 370.763 -491.355 175.361 5.37858 1 AlteracMountains AlteracMountains game_tele 22 1357 267 hillsbradfoothills 0 0 +poi_tele_220 landmark 0 -6231.77 332.993 383.171 0.480178 1 ColdridgeValley ColdridgeValley game_tele 220 132 1 dun_morogh 0 0 +poi_tele_221 landmark 0 2012.28 -4470.7 73.6229 5.15472 1 CorinsCrossing CorinsCrossing game_tele 221 2264 139 easternplaguelands 0 0 +poi_tele_222 landmark 0 34.5932 -549.443 144.423 2.68188 1 CorrahnsDagger CorrahnsDagger game_tele 222 1679 267 hillsbradfoothills 0 0 +poi_tele_223 landmark 0 2988.21 1806.9 139.071 3.8591 1 Cosmowrench Cosmowrench game_tele 223 169 85 tirisfalglades 0 0 +poi_tele_224 landmark 0 9888.38 -7178.39 31.0292 0.854246 1 CourtOfTheSun CourtOfTheSun game_tele 224 0 0 0 0 +poi_tele_225 landmark 0 10070 2293.83 1329.44 5.9784 1 CraftmensTerrace CraftmensTerrace game_tele 225 0 0 0 0 +poi_tele_226 landmark 0 1598.52 106.656 22.1495 4.00152 1 CragpoolLake CragpoolLake game_tele 226 1497 1497 undercity 0 0 +poi_tele_227 landmark 0 -4042.22 -13779.5 74.8069 2.37976 1 CrashSite CrashSite game_tele 227 0 0 0 0 +poi_tele_228 landmark 0 -4606.39 1359.61 139.903 2.40976 1 CrimsonWatch CrimsonWatch game_tele 228 1 1 dun_morogh 0 0 +poi_tele_229 landmark 0 1864.38 -3675.68 153.909 4.56648 1 CrownGuardTower CrownGuardTower game_tele 229 2263 139 easternplaguelands 0 0 +poi_tele_23 landmark 0 -215.738 -309.394 6.66761 3.07325 1 AlteracValley AlteracValley game_tele 23 1680 267 hillsbradfoothills 0 0 +poi_tele_230 landmark 0 3039.71 -559.263 121.856 0.032519 1 CrusadersOutpost CrusadersOutpost game_tele 230 459 85 tirisfalglades 0 0 +poi_tele_231 landmark 0 1797.5 689.077 44.7761 1.51755 1 CrusadersOutpost CrusadersOutpost game_tele 231 4921 85 tirisfalglades 0 0 +poi_tele_232 landmark 0 684.935 -583.82 163.055 3.81442 1 CrushridgeHold CrushridgeHold game_tele 232 282 267 hillsbradfoothills 0 0 +poi_tele_233 ruins 0 -11052.9 -1568.93 27.233 4.64509 1 Crypt Crypt game_tele 233 10 10 duskwood 0 0 +poi_tele_234 landmark 0 -9528.41 -359.942 61.0692 5.9536 1 CrystalLake CrystalLake game_tele 234 18 12 elwynn 0 0 +poi_tele_235 landmark 0 4004.78 4989.05 267.544 0.940518 1 CrystalSpine CrystalSpine game_tele 235 0 0 0 0 +poi_tele_236 mine 0 -13304.6 -428.921 14.3756 4.78735 1 CrystalveinMine CrystalveinMine game_tele 236 310 5287 thecapeofstranglethorn 0 0 +poi_tele_237 landmark 0 2687.72 5597.35 -11.2866 4.70098 1 CursedHollow CursedHollow game_tele 237 0 0 0 0 +poi_tele_238 landmark 0 -1092.24 -2852.42 42.3323 4.65476 1 DabyriesFarmstead DabyriesFarmstead game_tele 238 315 45 arathihighlands 0 0 +poi_tele_239 settlement 0 1175.45 8135.31 18.8313 0.846961 1 DaggerfenVillage DaggerfenVillage game_tele 239 0 0 0 0 +poi_tele_24 landmark 0 883.187 -489.375 96.7618 3.06932 1 AlteracValleyAlliance AlteracValleyAlliance game_tele 24 283 267 hillsbradfoothills 0 0 +poi_tele_240 landmark 0 3549.35 5684.65 -10.3382 5.88067 1 DaggermawCanyon DaggermawCanyon game_tele 240 0 0 0 0 +poi_tele_241 landmark 0 335.479 204.771 42.1124 3.42294 1 DalaranCrater DalaranCrater game_tele 241 279 267 hillsbradfoothills 0 0 +poi_tele_242 landmark 0 1845.91 -1563.5 59.1322 5.86316 1 DalsonsTears DalsonsTears game_tele 242 200 28 westernplaguelands 0 0 +poi_tele_243 landmark 0 1180.74 -330.016 43.949 0.365731 1 DandredsFold DandredsFold game_tele 243 1682 267 hillsbradfoothills 0 0 +poi_tele_244 landmark 0 -4779.79 -1882.54 90.1741 3.77625 1 DarkcloudPinnacle DarkcloudPinnacle game_tele 244 1 1 dun_morogh 0 0 +poi_tele_245 landmark 0 -389.634 6364.47 21.7062 5.20512 1 DarkcrestEnclave DarkcrestEnclave game_tele 245 0 0 0 0 +poi_tele_246 landmark 0 -589.891 5879.56 21.8492 5.17685 1 DarkcrestShore DarkcrestShore game_tele 246 0 0 0 0 +poi_tele_247 ruins 0 -2819.49 -2770.63 35.1771 1.85512 1 DarkmistCavern DarkmistCavern game_tele 247 1016 11 wetlands 0 0 +poi_tele_248 landmark 0 -10573 -1182.51 28.0148 0.309022 1 Darkshire Darkshire game_tele 248 42 10 duskwood 0 0 +poi_tele_249 landmark 0 5756.25 298.505 20.6049 5.96504 1 Darkshore Darkshore game_tele 249 0 0 0 0 +poi_tele_25 landmark 0 -818.155 -623.043 54.0884 2.15276 1 AlteracValleyHorde AlteracValleyHorde game_tele 25 271 267 hillsbradfoothills 0 0 +poi_tele_250 landmark 0 -1111.52 -4776.58 4.40189 4.11253 1 DarkspearStrand DarkspearStrand game_tele 250 2401 45 arathihighlands 0 0 +poi_tele_251 landmark 0 4918.16 -4553.79 857.268 3.62056 1 DarkwhisperGorge DarkwhisperGorge game_tele 251 214 214 thegreatsea 0 0 +poi_tele_252 landmark 0 9949.56 2284.21 1341.4 1.59587 1 Darnassus Darnassus game_tele 252 0 0 0 0 +poi_tele_253 landmark 0 -318.143 -456.173 59.0946 0.914737 1 DarrowHill DarrowHill game_tele 253 1056 267 hillsbradfoothills 0 0 +poi_tele_254 landmark 0 1547.05 -2355.31 61.0999 2.91792 1 DarrowmereLake DarrowmereLake game_tele 254 2297 28 westernplaguelands 0 0 +poi_tele_255 landmark 0 1469.48 -3686.9 77.7679 3.44337 1 DarrowShire DarrowShire game_tele 255 2262 139 easternplaguelands 0 0 +poi_tele_256 landmark 0 9994.48 -6487.35 1.20902 2.43127 1 DawningLane DawningLane game_tele 256 0 0 0 0 +poi_tele_257 landmark 0 7828.77 -7846.07 168.986 4.5841 1 DawnstarSpire DawnstarSpire game_tele 257 0 0 0 0 +poi_tele_258 landmark 0 831.592 -5068.66 4.14613 4.95999 1 DeadeyeShore DeadeyeShore game_tele 258 307 47 thehinterlands 0 0 +poi_tele_259 landmark 0 -10461.4 -1744.82 88.1416 5.05985 1 DeadmansCrossing DeadmansCrossing game_tele 259 2697 41 deadwindpass 0 0 +poi_tele_26 landmark 0 -9194.3 -2748.93 88.8711 1.84838 1 AlthersMill AlthersMill game_tele 26 97 44 redridgemountains 0 0 +poi_tele_260 dungeon 0 -11208.2 1672.81 24.65 1.52892 1 Deadmines Deadmines game_tele 260 920 40 westfall 0 0 +poi_tele_261 zone 0 -10438.8 -1932.75 104.617 4.77402 1 DeadwindPass DeadwindPass game_tele 261 41 41 deadwindpass 1 0 +poi_tele_262 landmark 0 -10811.7 -1859.29 114.868 4.26659 1 DeadwindRavine DeadwindRavine game_tele 262 2558 41 deadwindpass 0 0 +poi_tele_263 settlement 0 3560.7 -1123.08 220.487 3.14152 1 DeadwoodVillage DeadwoodVillage game_tele 263 214 214 thegreatsea 0 0 +poi_tele_264 workshop 0 -3472.5 2006.64 96.8434 6.22837 1 DeathforgeTower DeathforgeTower game_tele 264 2365 11 wetlands 0 0 +poi_tele_265 landmark 0 1843.5 1590 93.2971 3.08757 1 Deathknell Deathknell game_tele 265 154 85 tirisfalglades 0 0 +poi_tele_266 landmark 0 1841.39 1591.43 93.4301 2.39092 1 Deathnell Deathnell game_tele 266 154 85 tirisfalglades 0 0 +poi_tele_267 landmark 0 6545.51 -6406.76 32.4218 2.39547 1 Deatholme Deatholme game_tele 267 0 0 0 0 +poi_tele_268 landmark 0 2033.17 5415.61 144.698 0.117995 1 DeathsDoor DeathsDoor game_tele 268 0 0 0 0 +poi_tele_269 mine 0 368.992 1100.97 106.238 5.00081 1 DeepElemMine DeepElemMine game_tele 269 213 130 silverpineforest 0 0 +poi_tele_27 landmark 0 7639.28 -7482.36 158.73 1.63194 1 AmaniCatacombs AmaniCatacombs game_tele 27 0 0 0 0 +poi_tele_270 landmark 0 23.0998 9.00932 -4.29664 3.18737 1 DeeprunTram DeeprunTram game_tele 270 279 267 hillsbradfoothills 0 0 +poi_tele_271 landmark 0 1795.06 -3179.68 92.2109 3.17443 1 DemonFallCanyon DemonFallCanyon game_tele 271 2260 139 easternplaguelands 0 0 +poi_tele_272 landmark 0 1561.25 -2840.63 182.535 2.51311 1 DemonFallRidge DemonFallRidge game_tele 272 2297 28 westernplaguelands 0 0 +poi_tele_273 landmark 0 -11117.5 1797.77 36.5497 2.64007 1 DemontsPlace DemontsPlace game_tele 273 921 40 westfall 0 0 +poi_tele_274 landmark 0 -1089.35 4197.33 16.769 3.0523 1 DenOfHaalEsh DenOfHaalEsh game_tele 274 214 214 thegreatsea 0 0 +poi_tele_275 landmark 0 -3754.58 4708.83 -17.8536 0.692921 1 DerelictCaravan DerelictCaravan game_tele 275 5146 5146 vashjir 0 0 +poi_tele_276 landmark 0 -606.395 2211.75 92.9818 0.809746 1 Desolace Desolace game_tele 276 4706 4706 ruinsofgilneas 0 0 +poi_tele_277 landmark 0 -6123.1 -2955.85 204.97 2.93259 1 DigOne DigOne game_tele 277 1517 3 badlands 0 0 +poi_tele_278 workshop 0 -2838.55 -2875.5 32.5915 0.253382 1 DireforgeHill DireforgeHill game_tele 278 1016 11 wetlands 0 0 +poi_tele_279 landmark 0 -3980.8 789.005 161.007 4.71945 1 DireMaulEast DireMaulEast game_tele 279 2365 11 wetlands 0 0 +poi_tele_28 landmark 0 6849.17 -7747.52 122.016 4.56069 1 AmaniPass AmaniPass game_tele 28 0 0 0 0 +poi_tele_280 landmark 0 -3521.29 1085.2 161.097 4.7281 1 DireMaulNorth DireMaulNorth game_tele 280 2365 11 wetlands 0 0 +poi_tele_281 landmark 0 -3828.01 1250.22 160.226 3.20835 1 DireMaulWest DireMaulWest game_tele 281 2365 11 wetlands 0 0 +poi_tele_282 landmark 0 -201.11 -328.66 -2.72386 5.22313 1 Dmeast Dmeast game_tele 282 1680 267 hillsbradfoothills 0 0 +poi_tele_283 landmark 0 255.249 -16.0561 -2.58737 4.7 1 Dmnorth Dmnorth game_tele 283 279 267 hillsbradfoothills 0 0 +poi_tele_284 landmark 0 -67.3581 163.341 -3.46468 2.13943 1 Dmwest Dmwest game_tele 284 267 267 hillsbradfoothills 0 0 +poi_tele_285 landmark 0 9848.37 966.953 1306.38 3.77457 1 Dolanaar Dolanaar game_tele 285 0 0 0 0 +poi_tele_286 landmark 0 -8187.12 -1019.58 145.084 3.11439 1 Dracodar Dracodar game_tele 286 5650 46 burningsteppes 0 0 +poi_tele_287 mine 0 1413.82 6539.05 3.65071 3.14981 1 Draenethystmine Draenethystmine game_tele 287 0 0 0 0 +poi_tele_288 settlement 0 -5105.71 600.108 85.5544 5.2386 1 DragonmawBaseCamp DragonmawBaseCamp game_tele 288 133 1 dun_morogh 0 0 +poi_tele_289 landmark 0 -4193.21 380.221 118.023 3.5046 1 DragonmawFortress DragonmawFortress game_tele 289 2365 11 wetlands 0 0 +poi_tele_29 landmark 0 -129.094 835.621 63.598 4.83351 1 Ambermill Ambermill game_tele 29 233 130 silverpineforest 0 0 +poi_tele_290 landmark 0 -3453.27 -3655.72 58.0513 4.29267 1 DragonmawGates DragonmawGates game_tele 290 1038 11 wetlands 0 0 +poi_tele_291 landmark 0 2672.5 5852.8 -15.4945 1.64421 1 DragonsEnd DragonsEnd game_tele 291 0 0 0 0 +poi_tele_292 landmark 0 -10895 -2933.24 12.8408 6.26628 1 DreadmaulHold DreadmaulHold game_tele 292 1437 4 blasted_lands 0 0 +poi_tele_293 landmark 0 -11517.4 -2851.64 6.78542 4.15663 1 DreadmaulPost DreadmaulPost game_tele 293 1439 4 blasted_lands 0 0 +poi_tele_294 landmark 0 -7734.77 -2609.01 165.137 4.22183 1 DreadmaulRock DreadmaulRock game_tele 294 249 46 burningsteppes 0 0 +poi_tele_295 landmark 0 317.4 -2209.99 213.239 4.9592 1 DreadmistDen DreadmistDen game_tele 295 348 47 thehinterlands 0 0 +poi_tele_296 landmark 0 327.143 -2253.88 242.753 3.93818 1 DreadmistPeak DreadmistPeak game_tele 296 348 47 thehinterlands 0 0 +poi_tele_297 landmark 0 -3141.22 -4220.36 0.570819 5.34856 1 DreadmurkShore DreadmurkShore game_tele 297 5155 4922 twilighthighlands 0 0 +poi_tele_298 landmark 0 -2944.13 1891.22 33.9487 0.049356 1 DreamBough DreamBough game_tele 298 2365 11 wetlands 0 0 +poi_tele_299 landmark 0 916.611 -4810.57 14.8334 6.28024 1 DrygulchRavine DrygulchRavine game_tele 299 2400 47 thehinterlands 0 0 +poi_tele_3 landmark 0 -7583.58 -3408.81 43.2019 2.47556 1 AbyssalSands AbyssalSands game_tele 3 46 46 burningsteppes 0 0 +poi_tele_30 landmark 0 -5537.72 -1336.54 398.664 0.237343 1 AmberstillRanch AmberstillRanch game_tele 30 803 1 dun_morogh 0 0 +poi_tele_300 landmark 0 -1003.14 -3841.03 148.832 5.54348 1 DrywhiskerGorge DrywhiskerGorge game_tele 300 318 45 arathihighlands 0 0 +poi_tele_301 landmark 0 -4086.41 -2604.38 44.7943 1.58996 1 DunAlgaz DunAlgaz game_tele 301 836 11 wetlands 0 0 +poi_tele_302 landmark 0 -8491.62 -3036.55 9.25275 3.88535 1 DunemaulCompound DunemaulCompound game_tele 302 2420 46 burningsteppes 0 0 +poi_tele_303 landmark 0 -1256.99 -1189.47 38.9804 3.82979 1 DunGarok DunGarok game_tele 303 290 267 hillsbradfoothills 0 0 +poi_tele_304 landmark 0 5719.41 -4504.33 760.87 4.73111 1 DunMandarr DunMandarr game_tele 304 214 214 thegreatsea 0 0 +poi_tele_305 landmark 0 -2600.48 -2350.81 82.9572 0.914501 1 DunModr DunModr game_tele 305 205 11 wetlands 0 0 +poi_tele_306 zone 0 -5451.55 -656.992 392.675 0.66789 1 DunMorogh DunMorogh game_tele 306 1 1 dun_morogh 1 0 +poi_tele_307 landmark 0 -483.455 -1426.23 89.1916 1.93697 1 DurnholdeKeep DurnholdeKeep game_tele 307 275 267 hillsbradfoothills 0 0 +poi_tele_308 landmark 0 1007.78 -4446.22 11.2022 0.20797 1 Durotar Durotar game_tele 308 47 47 thehinterlands 0 0 +poi_tele_309 landmark 0 1340.98 -4638.58 53.5445 5.0328 1 DurotarZeppelin DurotarZeppelin game_tele 309 139 139 easternplaguelands 0 0 +poi_tele_31 landmark 0 -1566.43 -10800.1 51.7294 0.885114 1 AmberwebPass AmberwebPass game_tele 31 0 0 0 0 +poi_tele_310 landmark 0 9496.84 -7862.65 16.1435 5.20221 1 DuskwitherGrounds DuskwitherGrounds game_tele 310 0 0 0 0 +poi_tele_311 landmark 0 9317.38 -7856.4 63.2953 5.35693 1 DuskwitherSpire DuskwitherSpire game_tele 311 0 0 0 0 +poi_tele_312 zone 0 -10898.3 -364.784 39.2681 3.04614 1 Duskwood Duskwood game_tele 312 10 10 duskwood 1 0 +poi_tele_313 landmark 0 -6440.73 -1987.77 244.718 0.464476 1 DustfireValley DustfireValley game_tele 313 1959 51 searinggorge 0 0 +poi_tele_314 landmark 0 -758.534 4401.98 79.563 2.88658 1 DustquillRavine DustquillRavine game_tele 314 214 214 thegreatsea 0 0 +poi_tele_315 landmark 0 -3646.88 -3847.61 4.72729 6.08682 1 DustwallowBay DustwallowBay game_tele 315 4922 4922 twilighthighlands 0 0 +poi_tele_316 wilderness 0 -4043.65 -2991.32 36.3984 3.37443 1 DustwallowMarsh DustwallowMarsh game_tele 316 11 11 wetlands 0 0 +poi_tele_317 ruins 0 790.409 -4756.59 38.4724 0.283734 1 DustwindCave DustwindCave game_tele 317 307 47 thehinterlands 0 0 +poi_tele_318 landmark 0 -8394.21 606.628 94.6108 1.15148 1 DwarvenDistrict DwarvenDistrict game_tele 318 5150 1519 stormwind 0 0 +poi_tele_319 zone 0 2300.97 -4613.36 73.6231 0.367722 1 EasternPlaguelands EasternPlaguelands game_tele 319 139 139 easternplaguelands 1 0 +poi_tele_32 landmark 0 5674.5 128.459 32.3476 6.11808 1 AmethAran AmethAran game_tele 32 0 0 0 0 +poi_tele_320 landmark 0 -1011.45 -765.635 5.14928 2.23574 1 EasternStrand EasternStrand game_tele 320 294 267 hillsbradfoothills 0 0 +poi_tele_321 ruins 0 -8794.45 -3396.89 11.7786 3.88771 1 EastmoonRuins EastmoonRuins game_tele 321 44 44 redridgemountains 0 0 +poi_tele_322 landmark 0 8748.09 -7067.4 37.1027 4.29194 1 EastSanctum EastSanctum game_tele 322 0 0 0 0 +poi_tele_323 settlement 0 -9450.82 -1299.92 42.7818 5.20197 1 EastvaleLoggingCamp EastvaleLoggingCamp game_tele 323 88 12 elwynn 0 0 +poi_tele_324 landmark 0 3194.88 -4038.96 107.991 6.27156 1 EastwallGate EastwallGate game_tele 324 2625 139 easternplaguelands 0 0 +poi_tele_325 landmark 0 2521.67 -4756.54 99.988 5.5003 1 EastwallTower EastwallTower game_tele 325 2271 139 easternplaguelands 0 0 +poi_tele_326 landmark 0 -1041.59 -5346.67 0.218679 4.0102 1 EchoIsles EchoIsles game_tele 326 2400 47 thehinterlands 0 0 +poi_tele_327 ruins 0 -148.859 387.324 -38.5684 2.99526 1 EchonokCaver EchonokCaver game_tele 327 267 267 hillsbradfoothills 0 0 +poi_tele_328 mine 0 -8689.6 -114.525 88.8215 5.95046 1 EchoRidgeMine EchoRidgeMine game_tele 328 34 12 elwynn 0 0 +poi_tele_329 landmark 0 -4472.37 1671.36 162.888 3.88687 1 EclipsePoint EclipsePoint game_tele 329 1 1 dun_morogh 0 0 +poi_tele_33 landmark 0 -4155.37 -13498.5 48.356 5.92816 1 AmmenFields AmmenFields game_tele 33 0 0 0 0 +poi_tele_330 landmark 0 4949.53 3041.26 98.7052 5.42963 1 EcoDomeFarfield EcoDomeFarfield game_tele 330 214 214 thegreatsea 0 0 +poi_tele_331 landmark 0 3421.37 2800.02 150.087 0.705719 1 EcoDomeMidrealm EcoDomeMidrealm game_tele 331 214 214 thegreatsea 0 0 +poi_tele_332 landmark 0 4469.96 2840.21 140.442 1.97331 1 EcoDomeSutheron EcoDomeSutheron game_tele 332 214 214 thegreatsea 0 0 +poi_tele_333 landmark 0 -1048.56 -274.104 159.03 5.4703 1 ElderRise ElderRise game_tele 333 295 267 hillsbradfoothills 0 0 +poi_tele_334 landmark 0 -4186.72 1261.28 161.214 4.84131 1 EldrethRow EldrethRow game_tele 334 2365 11 wetlands 0 0 +poi_tele_335 landmark 0 -748.972 6563.11 171.754 2.21497 1 ElementalPlateau ElementalPlateau game_tele 335 0 0 0 0 +poi_tele_336 landmark 0 8624.53 -7693.87 158.81 2.13052 1 ElrendarFalls ElrendarFalls game_tele 336 0 0 0 0 +poi_tele_337 landmark 0 8039.45 -6241.13 16.2526 4.89432 1 ElrendarRiver ElrendarRiver game_tele 337 0 0 0 0 +poi_tele_338 zone 0 -9617.06 -288.949 57.3053 4.72687 1 ElwynnForest ElwynnForest game_tele 338 12 12 elwynn 1 0 +poi_tele_339 landmark 0 -4998.67 -3837.87 44.2691 3.7377 1 EmberstrifesDen EmberstrifesDen game_tele 339 143 38 lochmodan 0 0 +poi_tele_34 landmark 0 -4260.24 -13021 1.0163 5.35482 1 AmmenFord AmmenFord game_tele 34 0 0 0 0 +poi_tele_340 landmark 0 3986.71 -1293.58 250.144 5.74591 1 EmeraldSanctuary EmeraldSanctuary game_tele 340 214 214 thegreatsea 0 0 +poi_tele_341 landmark 0 2063.11 1547.38 1162.1 1.87623 1 EOTS EOTS game_tele 341 154 85 tirisfalglades 0 0 +poi_tele_342 landmark 0 -443.408 2468.83 105.837 0.930524 1 EthelRethor EthelRethor game_tele 342 2398 130 silverpineforest 0 0 +poi_tele_343 landmark 0 4042.33 2326.74 113.447 3.1331 1 EthereumStagingGrounds EthereumStagingGrounds game_tele 343 214 214 thegreatsea 0 0 +poi_tele_344 landmark 0 2976.85 5511.01 144.637 3.86042 1 Evergrove Evergrove game_tele 344 0 0 0 0 +poi_tele_345 landmark 0 6725.69 -4619.44 720.909 4.66802 1 Everlook Everlook game_tele 345 0 0 0 0 +poi_tele_346 wilderness 0 9079.92 -7193.23 55.6013 5.94597 1 EversongWoods EversongWoods game_tele 346 0 0 0 0 +poi_tele_347 landmark 0 -6091.69 -3076.67 242.055 1.80555 1 ExcavationCenter ExcavationCenter game_tele 347 1517 3 badlands 0 0 +poi_tele_348 landmark 0 -1384.5 2724.56 -28.568 3.37207 1 ExpeditionArmory ExpeditionArmory game_tele 348 4706 4706 ruinsofgilneas 0 0 +poi_tele_349 landmark 0 -671.631 1865.18 66.8961 5.49722 1 ExpeditionPoint ExpeditionPoint game_tele 349 5456 130 silverpineforest 0 0 +poi_tele_35 landmark 0 -4021.4 -13582.1 54.7153 2.06953 1 AmmenVale AmmenVale game_tele 35 0 0 0 0 +poi_tele_350 landmark 0 -10.8021 -1.15045 -2.42833 6.22821 1 Eye Eye game_tele 350 1677 267 hillsbradfoothills 0 0 +poi_tele_351 landmark 0 2167.44 1564.11 1159.35 0.254382 1 EyeOfTheStorm EyeOfTheStorm game_tele 351 154 85 tirisfalglades 0 0 +poi_tele_352 landmark 0 2487.72 1609.12 1224.64 3.35671 1 EyeOfTheStormAlliance EyeOfTheStormAlliance game_tele 352 4917 85 tirisfalglades 0 0 +poi_tele_353 landmark 0 1843.73 1529.77 1224.43 0.297579 1 EyeOfTheStormHorde EyeOfTheStormHorde game_tele 353 154 85 tirisfalglades 0 0 +poi_tele_354 settlement 0 8714.14 -6650.33 72.7517 2.39205 1 FairbreezeVillage FairbreezeVillage game_tele 354 0 0 0 0 +poi_tele_355 landmark 0 -2906.3 -12222.4 17.3124 4.94957 1 FairbridgeStrand FairbridgeStrand game_tele 355 0 0 0 0 +poi_tele_356 landmark 0 -600.782 4100.1 90.5571 0.207697 1 FalconWatch FalconWatch game_tele 356 214 214 thegreatsea 0 0 +poi_tele_357 landmark 0 9514.33 -6822.1 16.4907 1.60979 1 FalconwingSquare FalconwingSquare game_tele 357 0 0 0 0 +poi_tele_358 landmark 0 -2074.65 -2113.64 15.3642 1.55343 1 FaldirsCove FaldirsCove game_tele 358 327 45 arathihighlands 0 0 +poi_tele_359 landmark 0 2666.18 -2545.89 173.4 1.26906 1 FalfarrenRiver FalfarrenRiver game_tele 359 2619 139 easternplaguelands 0 0 +poi_tele_36 landmark 0 -2145.99 8844.79 19.8449 3.42056 1 AncestralGrounds AncestralGrounds game_tele 36 0 0 0 0 +poi_tele_360 landmark 0 1486.96 -2181.85 90.2204 0.965078 1 FallenSkyLake FallenSkyLake game_tele 360 2297 28 westernplaguelands 0 0 +poi_tele_361 landmark 0 126.53 4847.85 74.3962 3.65942 1 FallenSkyRidge FallenSkyRidge game_tele 361 0 0 0 0 +poi_tele_362 landmark 0 -9985.94 -3594.22 21.6782 5.47218 1 FallowSanctuary FallowSanctuary game_tele 362 76 8 swampofsorrows 0 0 +poi_tele_363 landmark 0 10158.8 -6001.84 110.154 3.59136 1 FalthrienAcademy FalthrienAcademy game_tele 363 0 0 0 0 +poi_tele_364 mine 0 -9870.52 212.959 14.0087 5.95753 1 FargodeepMine FargodeepMine game_tele 364 57 12 elwynn 0 0 +poi_tele_365 landmark 0 7544.57 -7667.85 151.258 6.22794 1 farstriderEnclave farstriderEnclave game_tele 365 0 0 0 0 +poi_tele_366 landmark 0 -5657.29 -4278.25 407.823 2.08396 1 FarstriderLodge FarstriderLodge game_tele 366 147 38 lochmodan 0 0 +poi_tele_367 landmark 0 9041.51 -7456.05 83.385 3.11721 1 FarstriderRetreat FarstriderRetreat game_tele 367 0 0 0 0 +poi_tele_368 landmark 0 9850.54 -7396.79 13.6387 0.894016 1 FarstridersSquare FarstridersSquare game_tele 368 0 0 0 0 +poi_tele_369 landmark 0 276.636 -3689.5 27.8892 1.64403 1 FarWatchPost FarWatchPost game_tele 369 47 47 thehinterlands 0 0 +poi_tele_37 landmark 0 7939.87 -6484.24 47.8099 3.93927 1 AnDaroth AnDaroth game_tele 37 0 0 0 0 +poi_tele_370 landmark 0 -4985.61 1590.89 63.7734 1.179 1 FearScarVale FearScarVale game_tele 370 1 1 dun_morogh 0 0 +poi_tele_371 landmark 0 82.3052 -2086.59 112.764 3.16252 1 FeatherbeardsHovel FeatherbeardsHovel game_tele 371 1880 47 thehinterlands 0 0 +poi_tele_372 landmark 0 -4317.47 3287.35 18.2864 3.12825 1 FeathermoonStronghold FeathermoonStronghold game_tele 372 4815 5146 vashjir 0 0 +poi_tele_373 landmark 0 2038.72 -2981.96 105.815 4.69104 1 FelfireHill FelfireHill game_tele 373 139 139 easternplaguelands 0 0 +poi_tele_374 settlement 0 6851.06 -1912.89 550.904 3.00564 1 FelpawVillage FelpawVillage game_tele 374 0 0 0 0 +poi_tele_375 landmark 0 10041.9 1031.59 1329.46 0.24968 1 FelRock FelRock game_tele 375 0 0 0 0 +poi_tele_376 landmark 0 1776.93 -1179.19 59.4284 3.30669 1 FelstoneField FelstoneField game_tele 376 199 28 westernplaguelands 0 0 +poi_tele_377 landmark 0 4102.25 -1006.79 272.717 0.790048 1 Felwood Felwood game_tele 377 214 214 thegreatsea 0 0 +poi_tele_378 landmark 0 998.173 736.541 59.2738 6.16398 1 FenrisIsle FenrisIsle game_tele 378 172 130 silverpineforest 0 0 +poi_tele_379 landmark 0 -4841.19 1309.44 81.3937 1.48501 1 Feralas Feralas game_tele 379 1 1 dun_morogh 0 0 +poi_tele_38 landmark 0 7012.04 -6814.81 42.0817 5.87793 1 AndilienEstate AndilienEstate game_tele 38 0 0 0 0 +poi_tele_380 settlement 0 -110.357 7115.07 18.8779 3.49689 1 FeralfenVillage FeralfenVillage game_tele 380 0 0 0 0 +poi_tele_381 landmark 0 9889.14 -6647.39 10.5165 5.79591 1 FethsWay FethsWay game_tele 381 0 0 0 0 +poi_tele_382 landmark 0 -3125.88 -2224.59 91.9413 3.27842 1 FieldOfGiants FieldOfGiants game_tele 382 11 11 wetlands 0 0 +poi_tele_383 landmark 0 -7236.79 -1417.51 -231.997 0.628312 1 FirePlumeRidge FirePlumeRidge game_tele 383 1444 51 searinggorge 0 0 +poi_tele_384 landmark 0 2221.45 197.106 131.234 1.51093 1 FireScarShrine FireScarShrine game_tele 384 85 85 tirisfalglades 0 0 +poi_tele_385 landmark 0 -6652.97 -832.567 244.531 1.11634 1 FirewachtRidge FirewachtRidge game_tele 385 1442 51 searinggorge 0 0 +poi_tele_386 landmark 0 -2345.07 3253.53 -3.37535 4.84822 1 FirewingPoint FirewingPoint game_tele 386 214 214 thegreatsea 0 0 +poi_tele_387 landmark 0 -7501.51 -2183.08 165.926 6.07144 1 FlameCrest FlameCrest game_tele 387 251 46 burningsteppes 0 0 +poi_tele_388 wilderness 0 -9700.27 812.057 27.2225 5.46273 1 ForestsEdge ForestsEdge game_tele 388 60 12 elwynn 0 0 +poi_tele_389 wilderness 0 3011.16 -3359.08 147.96 2.42202 1 ForestSong ForestSong game_tele 389 2277 139 easternplaguelands 0 0 +poi_tele_39 settlement 0 -3376.27 -2270.04 53.5307 4.14502 1 AngerfangEncampment AngerfangEncampment game_tele 39 1036 11 wetlands 0 0 +poi_tele_390 workshop 0 4742.7 3356.29 200.155 4.89556 1 ForgeBaseGehenna ForgeBaseGehenna game_tele 390 214 214 thegreatsea 0 0 +poi_tele_391 workshop 0 4444.94 3415.77 165.925 5.6074 1 ForgeBaseOblivion ForgeBaseOblivion game_tele 391 214 214 thegreatsea 0 0 +poi_tele_392 workshop 0 2940.65 4802.15 283.677 1.47618 1 ForgeCampAnger ForgeCampAnger game_tele 392 0 0 0 0 +poi_tele_393 workshop 0 -1840.08 9236.04 71.6117 5.15551 1 ForgeCampFear ForgeCampFear game_tele 393 0 0 0 0 +poi_tele_394 workshop 0 -1275.81 8895.8 57.4377 2.96739 1 ForgeCampHate ForgeCampHate game_tele 394 0 0 0 0 +poi_tele_395 workshop 0 392.203 2195.63 118.621 5.07233 1 ForgeCampMageddon ForgeCampMageddon game_tele 395 305 130 silverpineforest 0 0 +poi_tele_396 workshop 0 353.575 2497.05 158.244 6.02265 1 ForgeCampRage ForgeCampRage game_tele 396 2398 130 silverpineforest 0 0 +poi_tele_397 workshop 0 1540.72 7281.82 364.469 3.39479 1 ForgeCampTerror ForgeCampTerror game_tele 397 0 0 0 0 +poi_tele_398 workshop 0 2910.37 6984.92 365.438 2.81124 1 ForgeCampWrath ForgeCampWrath game_tele 398 0 0 0 0 +poi_tele_399 landmark 0 2750.63 -4597.28 183.965 1.62173 1 ForlornRidge ForlornRidge game_tele 399 139 139 easternplaguelands 0 0 +poi_tele_4 landmark 0 -21.8975 0.16 -0.1206 6.28318 1 AC AC game_tele 4 267 267 hillsbradfoothills 0 0 +poi_tele_40 landmark 0 -6398.46 -3166.67 299.812 0.769213 1 AngorFortress AngorFortress game_tele 40 338 3 badlands 0 0 +poi_tele_400 landmark 0 -5661.05 1667.52 87.9256 5.3848 1 FrayfeatherHighlands FrayfeatherHighlands game_tele 400 1 1 dun_morogh 0 0 +poi_tele_401 landmark 0 -5431.78 -2449.38 89.2848 2.32854 1 FreewindPost FreewindPost game_tele 401 806 38 lochmodan 0 0 +poi_tele_402 landmark 0 6812.06 -2425.9 552.871 4.37848 1 FrostfireHotSprings FrostfireHotSprings game_tele 402 0 0 0 0 +poi_tele_403 landmark 0 -5542.53 501.507 387.248 2.21198 1 FrostmaneHold FrostmaneHold game_tele 403 135 1 dun_morogh 0 0 +poi_tele_404 landmark 0 8091.41 -3882.58 696.668 2.18722 1 FrostsaberRock FrostsaberRock game_tele 404 0 0 0 0 +poi_tele_405 landmark 0 5259.73 -4781.05 690.81 4.5269 1 FrostwhisperGorge FrostwhisperGorge game_tele 405 214 214 thegreatsea 0 0 +poi_tele_406 landmark 0 -6376.41 -1810.71 -263.646 4.96999 1 FungalRock FungalRock game_tele 406 1959 51 searinggorge 0 0 +poi_tele_407 ruins 0 -1125.17 5712.53 58.7895 2.46015 1 FunggorCavern FunggorCavern game_tele 407 0 0 0 0 +poi_tele_408 landmark 0 -9925.14 1239.35 42.3457 0.815598 1 FurlbrowsPumpkinFarm FurlbrowsPumpkinFarm game_tele 408 109 40 westfall 0 0 +poi_tele_409 landmark 0 3875.48 5223.77 270.997 0.390741 1 FurywingsPerch FurywingsPerch game_tele 409 0 0 0 0 +poi_tele_41 landmark 0 1046.25 8503.63 20.2232 2.63767 1 AngoRoshGrounds AngoRoshGrounds game_tele 41 0 0 0 0 +poi_tele_410 landmark 0 -7177.15 -3785.34 8.36981 6.10237 1 Gadgetzan Gadgetzan game_tele 410 3 3 badlands 0 0 +poi_tele_411 landmark 0 1723.05 -2292.37 58.9754 2.73335 1 GahrronsWithering GahrronsWithering game_tele 411 201 28 westernplaguelands 0 0 +poi_tele_412 landmark 0 450.999 -627.906 167.189 1.86114 1 GallowsCorner GallowsCorner game_tele 412 1357 267 hillsbradfoothills 0 0 +poi_tele_413 landmark 0 -1321.34 7239.12 32.7371 4.04169 1 Garadar Garadar game_tele 413 0 0 0 0 +poi_tele_414 landmark 0 2789.48 366.372 24.4196 5.13839 1 GarrensHaunt GarrensHaunt game_tele 414 164 85 tirisfalglades 0 0 +poi_tele_415 landmark 0 -10902.7 -3179.32 49.0836 0.042708 1 GarrisonArmory GarrisonArmory game_tele 415 1457 4 blasted_lands 0 0 +poi_tele_416 landmark 0 -8255.03 1484.42 4.87199 3.44005 1 GateOfAhnQiraj GateOfAhnQiraj game_tele 416 4411 1519 stormwind 0 0 +poi_tele_417 workshop 0 -5040.5 -814.817 495.128 5.49652 1 GateOfIronforge GateOfIronforge game_tele 417 809 1 dun_morogh 0 0 +poi_tele_418 landmark 0 -8216.06 1536.36 1.30797 3.0826 1 GatesOfAhnQiraj GatesOfAhnQiraj game_tele 418 4411 1519 stormwind 0 0 +poi_tele_419 landmark 0 -55.4571 -103.292 132.406 5.47787 1 GavinsNaze GavinsNaze game_tele 419 1677 267 hillsbradfoothills 0 0 +poi_tele_42 landmark 0 1593.28 8607.12 -32.6589 6.1963 1 AngoRoshStronghold AngoRoshStronghold game_tele 42 0 0 0 0 +poi_tele_420 settlement 0 -4615.2 -12917.5 9.74236 3.88613 1 GeezlesCamp GeezlesCamp game_tele 420 0 0 0 0 +poi_tele_421 settlement 0 -2182.62 2534.41 71.9615 2.22408 1 GelkisVillage GelkisVillage game_tele 421 4706 4706 ruinsofgilneas 0 0 +poi_tele_422 landmark 0 7360.86 -6803.3 44.2942 5.83679 1 Ghostlands Ghostlands game_tele 422 0 0 0 0 +poi_tele_423 landmark 0 -1224.46 1728.53 90.0592 0.831707 1 GhostWalkerPost GhostWalkerPost game_tele 423 5440 4706 ruinsofgilneas 0 0 +poi_tele_424 landmark 0 16226.2 16257 13.2022 1.65007 1 GMIsland GMIsland game_tele 424 0 0 0 0 +poi_tele_425 landmark 0 9254.93 1636.45 1302.05 2.40247 1 GnarlpineHold GnarlpineHold game_tele 425 0 0 0 0 +poi_tele_426 landmark 0 -332.22 -2.28 -150.86 2.77 1 Gnome Gnome game_tele 426 286 267 hillsbradfoothills 0 0 +poi_tele_427 landmark 0 -5143.53 894.909 287.394 2.26833 1 Gnomeregan Gnomeregan game_tele 427 5495 1 dun_morogh 0 0 +poi_tele_428 landmark 0 -7258.24 -584.973 -271.642 0.734342 1 GolakkaHotSprings GolakkaHotSprings game_tele 428 51 51 searinggorge 0 0 +poi_tele_429 mine 0 -5783.67 -1620.21 358.878 4.148 1 GolBolarQuarry GolBolarQuarry game_tele 429 134 1 dun_morogh 0 0 +poi_tele_43 landmark 0 6828.47 -7186.99 24.7617 4.91465 1 AnOwyn AnOwyn game_tele 43 0 0 0 0 +poi_tele_430 mine 0 -10419.6 1907.61 7.48861 2.50341 1 GoldCoastQuarry GoldCoastQuarry game_tele 430 113 40 westfall 0 0 +poi_tele_431 landmark 0 8418.56 -6138.39 58.0933 4.69877 1 GoldenboughPass GoldenboughPass game_tele 431 0 0 0 0 +poi_tele_432 settlement 0 7895.49 -6188.39 19.5624 2.39911 1 GoldenmistVillage GoldenmistVillage game_tele 432 0 0 0 0 +poi_tele_433 landmark 0 8652.87 -5683.02 1.22002 4.18198 1 GoldenStrand GoldenStrand game_tele 433 0 0 0 0 +poi_tele_434 landmark 0 616.536 -2489.5 94.631 4.21857 1 GoldRoad GoldRoad game_tele 434 1882 47 thehinterlands 0 0 +poi_tele_435 landmark 0 -9448.55 68.236 56.3225 2.1115 1 Goldshire Goldshire game_tele 435 87 12 elwynn 0 0 +poi_tele_436 landmark 0 -3862.64 137.7 123.544 6.18747 1 GordunniOutpost GordunniOutpost game_tele 436 2365 11 wetlands 0 0 +poi_tele_437 landmark 0 -1117.72 3230.8 67.8104 3.69003 1 GorGazOutpost GorGazOutpost game_tele 437 214 214 thegreatsea 0 0 +poi_tele_438 landmark 0 -1518.71 -3067.96 14.751 0.005637 1 GoShekFarm GoShekFarm game_tele 438 314 45 arathihighlands 0 0 +poi_tele_439 settlement 0 -2458.16 4935.8 33.7396 0.969919 1 GrangolvarVillage GrangolvarVillage game_tele 439 214 214 thegreatsea 0 0 +poi_tele_44 landmark 0 7427.38 -7297.13 93.3437 0.18602 1 AnTelas AnTelas game_tele 44 0 0 0 0 +poi_tele_440 landmark 0 87.2504 -223.637 9.64243 4.2607 1 GreatwoodVale GreatwoodVale game_tele 440 1683 267 hillsbradfoothills 0 0 +poi_tele_441 settlement 0 2185.38 -1580.47 85.9111 0.829216 1 GreenpawVillage GreenpawVillage game_tele 441 5421 28 westernplaguelands 0 0 +poi_tele_442 landmark 0 -4080.6 -3463.16 273.276 0.690672 1 GrimBatol GrimBatol game_tele 442 1037 4922 twilighthighlands 0 0 +poi_tele_443 landmark 0 -7011.77 -1729.52 234.099 4.78807 1 GrimesiltDigSite GrimesiltDigSite game_tele 443 247 51 searinggorge 0 0 +poi_tele_444 landmark 0 -4188.75 629.705 70.4892 4.89549 1 GrimtotemCompound GrimtotemCompound game_tele 444 2365 11 wetlands 0 0 +poi_tele_445 landmark 0 108.029 -322.863 3.36205 4.62591 1 GrimtotemPost GrimtotemPost game_tele 445 1683 267 hillsbradfoothills 0 0 +poi_tele_446 landmark 0 3616.06 6635.92 130.007 4.95354 1 Grishnath Grishnath game_tele 446 0 0 0 0 +poi_tele_447 landmark 0 -5728.8 -3113.4 315.857 0.804162 1 GrizzlepawRidge GrizzlepawRidge game_tele 447 936 38 lochmodan 0 0 +poi_tele_448 landmark 0 262.459 -3043.31 96.5546 0.64736 1 GroldomFarm GroldomFarm game_tele 448 47 47 thehinterlands 0 0 +poi_tele_449 settlement 0 -12388.9 172.578 2.83358 1.91753 1 GromgolBaseCamp GromgolBaseCamp game_tele 449 117 33 northernstranglethorn 0 0 +poi_tele_45 landmark 0 -6925.52 -2506.75 240.744 0.795898 1 ApocryphansRest ApocryphansRest game_tele 45 5565 3 badlands 0 0 +poi_tele_450 landmark 0 1924.94 -4205.16 42.0388 1.65038 1 GrommashHold GrommashHold game_tele 450 139 139 easternplaguelands 0 0 +poi_tele_451 settlement 0 -12365.7 175.632 2.77714 4.9248 1 GrongolbaseCamp GrongolbaseCamp game_tele 451 117 33 northernstranglethorn 0 0 +poi_tele_452 landmark 0 -11108.1 -2326.63 118.375 4.28623 1 GroshgokCompound GroshgokCompound game_tele 452 2561 41 deadwindpass 0 0 +poi_tele_453 landmark 0 4986.02 92.278 52.7174 5.66255 1 GroveOfTheAncients GroveOfTheAncients game_tele 453 214 214 thegreatsea 0 0 +poi_tele_454 ruins 0 216.885 -273.27 145.045 0.145041 1 GrowlessCave GrowlessCave game_tele 454 1683 267 hillsbradfoothills 0 0 +poi_tele_455 landmark 0 3707.86 2150.23 36.76 3.22 1 AzjolNerub AzjolNerub game_tele 455 214 214 thegreatsea 0 0 +poi_tele_456 landmark 0 62.7842 35.462 -3.9835 1.41844 1 Gruul Gruul game_tele 456 279 267 hillsbradfoothills 0 0 +poi_tele_457 landmark 0 3530.06 5104.08 3.50861 5.51117 1 GruulsLair GruulsLair game_tele 457 0 0 0 0 +poi_tele_458 landmark 0 -13277.4 127.372 26.1418 1.11878 1 GurubashiArena GurubashiArena game_tele 458 1741 5287 thecapeofstranglethorn 0 0 +poi_tele_459 landmark 0 3373.87 4296.43 120.293 0.2091 1 GyroPlankBridge GyroPlankBridge game_tele 459 0 0 0 0 +poi_tele_46 landmark 0 -8437.74 1516.91 31.9074 2.73319 1 AQ20 AQ20 game_tele 46 4411 1519 stormwind 0 0 +poi_tele_460 landmark 0 -1241.9 4096.71 70.6772 3.55888 1 HaalEshiGorge HaalEshiGorge game_tele 460 214 214 thegreatsea 0 0 +poi_tele_461 landmark 0 -1563.05 7945.67 -22.5568 1.13572 1 Halaa Halaa game_tele 461 0 0 0 0 +poi_tele_462 landmark 0 -1349.94 7925.93 -98.2172 2.31159 1 HalaaniBasin HalaaniBasin game_tele 462 0 0 0 0 +poi_tele_463 settlement 0 3280.67 -4322.2 132.301 3.1839 1 HaldarrEncampment HaldarrEncampment game_tele 463 2276 139 easternplaguelands 0 0 +poi_tele_464 landmark 0 78.5083 -225.044 49.839 4.67589 1 HallOfBlackhand HallOfBlackhand game_tele 464 1683 267 hillsbradfoothills 0 0 +poi_tele_465 landmark 0 -4675.79 -1256.32 501.993 1.974 1 HallOfExplorers HallOfExplorers game_tele 465 5341 1537 ironforge 0 0 +poi_tele_466 landmark 0 221.322 74.4933 25.7195 0.484836 1 HallOfLegends HallOfLegends game_tele 466 279 267 hillsbradfoothills 0 0 +poi_tele_467 landmark 0 1966.24 -4794.55 56.7642 6.241 1 HallOfTheBrave HallOfTheBrave game_tele 467 139 139 easternplaguelands 0 0 +poi_tele_468 landmark 0 17.3566 231.68 -31.392 0.39445 1 HallOfTheCrafters HallOfTheCrafters game_tele 468 279 267 hillsbradfoothills 0 0 +poi_tele_469 landmark 0 -226.8 49.09 -46.03 1.39 1 HallOfTheKeepers HallOfTheKeepers game_tele 469 5604 267 hillsbradfoothills 0 0 +poi_tele_47 landmark 0 -8213.48 2016 129.072 1.28414 1 AQ40 AQ40 game_tele 47 4411 1519 stormwind 0 0 +poi_tele_470 landmark 0 -941.007 -3526.66 70.935 3.48668 1 Hammerfall Hammerfall game_tele 470 321 45 arathihighlands 0 0 +poi_tele_471 landmark 0 -6427.04 -3381.19 229.711 4.254 1 HammertoesDigsite HammertoesDigsite game_tele 471 346 3 badlands 0 0 +poi_tele_472 landmark 0 7065.06 -7687.02 113.903 5.96904 1 HatchetHills HatchetHills game_tele 472 0 0 0 0 +poi_tele_473 landmark 0 2793.09 -1621.4 129.333 1.98722 1 Hearthglen Hearthglen game_tele 473 190 28 westernplaguelands 0 0 +poi_tele_474 landmark 0 -390.863 3130.64 4.51327 0.218692 1 HellfireCitadel HellfireCitadel game_tele 474 2398 130 silverpineforest 0 0 +poi_tele_475 landmark 0 -211.237 4278.54 86.5678 4.59776 1 HellfirePeninsula HellfirePeninsula game_tele 475 0 0 0 0 +poi_tele_476 landmark 0 -360.671 3071.9 -15.0977 1.89389 1 HellfireRamparts HellfireRamparts game_tele 476 2398 130 silverpineforest 0 0 +poi_tele_477 landmark 0 -5661.83 -1993.18 396.111 0.091415 1 HelmsBedLake HelmsBedLake game_tele 477 212 1 dun_morogh 0 0 +poi_tele_478 landmark 0 -9127.98 -1052.89 70.604 2.11379 1 HeroesVigil HeroesVigil game_tele 478 56 12 elwynn 0 0 +poi_tele_479 landmark 0 3554.3 -6232.61 44.262 2.12438 1 HetaerasClutch HetaerasClutch game_tele 479 214 214 thegreatsea 0 0 +poi_tele_48 landmark 0 1017.16 1040.59 -44.9017 0.325149 1 ArathiBasin ArathiBasin game_tele 48 1338 130 silverpineforest 0 0 +poi_tele_480 landmark 0 1001.29 7586.72 22.1567 1.60094 1 HewnBog HewnBog game_tele 480 0 0 0 0 +poi_tele_481 landmark 0 -807.114 -4111.26 55.5967 4.7919 1 HiddenPath HiddenPath game_tele 481 47 47 thehinterlands 0 0 +poi_tele_482 landmark 0 -4979.56 -969.821 -4.67023 1.93765 1 Highperch Highperch game_tele 482 1 1 dun_morogh 0 0 +poi_tele_483 landmark 0 -4610.67 1700.18 114.705 3.05218 1 HighWilderness HighWilderness game_tele 483 1 1 dun_morogh 0 0 +poi_tele_484 landmark 0 -510.344 9.53799 50.345 1.33728 1 HillsbradFields HillsbradFields game_tele 484 286 267 hillsbradfoothills 0 0 +poi_tele_485 zone 0 -436.657 -581.254 53.5944 1.25917 1 HillsbradFoothills HillsbradFoothills game_tele 485 267 267 hillsbradfoothills 1 0 +poi_tele_486 landmark 0 -17.942 -2805.92 122.271 2.75175 1 HiriWatha HiriWatha game_tele 486 1885 47 thehinterlands 0 0 +poi_tele_487 landmark 0 -6661.66 988.222 -14.6814 1.34146 1 HiveAshi HiveAshi game_tele 487 1 1 dun_morogh 0 0 +poi_tele_488 landmark 0 -7678.21 611.804 -52.124 2.91382 1 HiveRegal HiveRegal game_tele 488 12 12 elwynn 0 0 +poi_tele_489 landmark 0 -7152.81 1387.39 2.14026 2.78729 1 HiveZora HiveZora game_tele 489 1 1 dun_morogh 0 0 +poi_tele_49 landmark 0 1308.68 1306.03 -9.0107 3.91285 1 ArathiBasinAlliance ArathiBasinAlliance game_tele 49 239 130 silverpineforest 0 0 +poi_tele_490 landmark 0 -748.211 2681.52 100.35 5.7479 1 HonorHold HonorHold game_tele 490 4706 4706 ruinsofgilneas 0 0 +poi_tele_491 landmark 0 -353.057 -1296.11 90.9438 4.37878 1 HonorsStand HonorsStand game_tele 491 275 267 hillsbradfoothills 0 0 +poi_tele_492 landmark 0 7225.84 -6628.42 55.2716 2.89705 1 HowlingZiggurat HowlingZiggurat game_tele 492 0 0 0 0 +poi_tele_493 landmark 0 -1396.43 -115.322 158.935 2.92089 1 HunterRise HunterRise game_tele 493 2397 267 hillsbradfoothills 0 0 +poi_tele_494 landmark 0 9706.81 -6712.6 0.548797 4.38141 1 HuntressOfTheSun HuntressOfTheSun game_tele 494 0 0 0 0 +poi_tele_495 landmark 0 -8177.89 -4181.23 -167.552 0.913338 1 HyjalSummit HyjalSummit game_tele 495 46 46 burningsteppes 0 0 +poi_tele_496 landmark 0 -5195.11 -3.63924 386.111 1.74231 1 IceflowLake IceflowLake game_tele 496 211 1 dun_morogh 0 0 +poi_tele_497 landmark 0 6153.06 -5050.74 787.233 5.86444 1 IceThistleHills IceThistleHills game_tele 497 0 0 0 0 +poi_tele_498 landmark 0 -3794.35 2556.02 91.0218 1.65971 1 IllidariPoint IllidariPoint game_tele 498 214 214 thegreatsea 0 0 +poi_tele_499 landmark 0 4140.7 5429.55 274.427 2.81212 1 InsidionsPerch InsidionsPerch game_tele 499 0 0 0 0 +poi_tele_5 landmark 0 3742.43 2083.64 148.765 6.032 1 AccessShaftZeon AccessShaftZeon game_tele 5 214 214 thegreatsea 0 0 +poi_tele_50 landmark 0 686.053 683.165 -12.9149 0.816022 1 ArathiBasinHorde ArathiBasinHorde game_tele 50 172 130 silverpineforest 0 0 +poi_tele_500 landmark 0 555.59 2804.49 217.804 6.20094 1 InvasionPointAnnihilator InvasionPointAnnihilator game_tele 500 2398 130 silverpineforest 0 0 +poi_tele_501 landmark 0 -2670.83 2691.26 102.277 4.91601 1 InvasionPointCataclysm InvasionPointCataclysm game_tele 501 214 214 thegreatsea 0 0 +poi_tele_502 landmark 0 4775.3 3487.7 116.091 5.1893 1 InvasionPointOverlord InvasionPointOverlord game_tele 502 214 214 thegreatsea 0 0 +poi_tele_503 landmark 0 2758.5 -928.177 204.091 2.86339 1 IrisLake IrisLake game_tele 503 812 85 tirisfalglades 0 0 +poi_tele_504 landmark 0 -5854.97 -1996.35 401.478 3.88489 1 IronbandsCompound IronbandsCompound game_tele 504 716 1 dun_morogh 0 0 +poi_tele_505 landmark 0 -5650.98 -3826.83 321.919 4.87213 1 IronbandsExcavationSite IronbandsExcavationSite game_tele 505 142 38 lochmodan 0 0 +poi_tele_506 ruins 0 -2887.82 -2224.53 23.6055 0.386887 1 IronbeardsTomb IronbeardsTomb game_tele 506 309 11 wetlands 0 0 +poi_tele_507 zone 0 -4918.88 -940.406 501.564 5.42347 1 Ironforge Ironforge game_tele 507 1537 1537 ironforge 1 0 +poi_tele_508 settlement 0 -5843.28 -3417.03 -50.9329 2.95077 1 IronstoneCamp IronstoneCamp game_tele 508 38 38 lochmodan 0 0 +poi_tele_509 landmark 0 -6969.88 -2409.95 -216.546 5.0496 1 IronstonePlateau IronstonePlateau game_tele 509 1879 3 badlands 0 0 +poi_tele_51 zone 0 -1508.51 -2732.06 32.4986 3.35708 1 ArathiHighlands ArathiHighlands game_tele 51 45 45 arathihighlands 1 0 +poi_tele_510 ruins 0 6463.17 -1577.12 438.992 4.84426 1 IrontreeCavern IrontreeCavern game_tele 510 0 0 0 0 +poi_tele_511 wilderness 0 6223.18 -1151.23 382.803 3.19416 1 IrontreeWoods IrontreeWoods game_tele 511 0 0 0 0 +poi_tele_512 landmark 0 -5403.55 3055.7 1.70606 1.67518 1 IsleOfDread IsleOfDread game_tele 512 5146 5146 vashjir 0 0 +poi_tele_513 landmark 0 12947.4 -6893.31 5.68398 3.09154 1 IsleOfQuelDanas IsleOfQuelDanas game_tele 513 0 0 0 0 +poi_tele_514 landmark 0 8042.94 -7548.78 150.119 0.139542 1 IsleOfTribulations IsleOfTribulations game_tele 514 0 0 0 0 +poi_tele_515 ruins 0 -10661.8 -2527.18 26.8436 3.30055 1 IthariussCave IthariussCave game_tele 515 1777 8 swampofsorrows 0 0 +poi_tele_516 landmark 0 3822.04 -727.42 324.477 1.00681 1 JadefireGlen JadefireGlen game_tele 516 214 214 thegreatsea 0 0 +poi_tele_517 landmark 0 6293.06 -609.351 468.671 2.9224 1 JadefireRun JadefireRun game_tele 517 0 0 0 0 +poi_tele_518 landmark 0 -3057.92 1837.42 29.4535 0.06035 1 JademirLake JademirLake game_tele 518 2365 11 wetlands 0 0 +poi_tele_519 landmark 0 4785.13 -477.744 331.858 1.88488 1 Jaedenar Jaedenar game_tele 519 214 214 thegreatsea 0 0 +poi_tele_52 landmark 0 -1.23165 0.014346 -0.204293 0.00984 1 Arca Arca game_tele 52 267 267 hillsbradfoothills 0 0 +poi_tele_520 landmark 0 4983.03 -6041.19 95.5841 1.88091 1 JaggedReef JaggedReef game_tele 520 214 214 thegreatsea 0 0 +poi_tele_521 landmark 0 1793.51 6009.75 137.638 4.55488 1 JaggedRidge JaggedRidge game_tele 521 0 0 0 0 +poi_tele_522 landmark 0 1253.77 -4525.58 20.9508 2.77973 1 JaggedswineFarm JaggedswineFarm game_tele 522 139 139 easternplaguelands 0 0 +poi_tele_523 landmark 0 -14601.1 -234.16 24.7223 5.58923 1 JagueroIsle JagueroIsle game_tele 523 297 5287 thecapeofstranglethorn 0 0 +poi_tele_524 landmark 0 -14180.5 729.773 21.633 4.17552 1 JaneirosPoint JaneirosPoint game_tele 524 312 5287 thecapeofstranglethorn 0 0 +poi_tele_525 mine 0 -10004.7 1462.85 40.887 6.10526 1 JangolodeMine JangolodeMine game_tele 525 111 40 westfall 0 0 +poi_tele_526 mine 0 -9208.19 -618.418 60.4529 0.385121 1 JasperlodeMine JasperlodeMine game_tele 526 54 12 elwynn 0 0 +poi_tele_527 landmark 0 -233.765 -4121.89 117.635 3.39306 1 JinthaAlor JinthaAlor game_tele 527 354 47 thehinterlands 0 0 +poi_tele_528 landmark 0 -9971.72 -115.655 26.3099 5.38026 1 JoredsLanding JoredsLanding game_tele 528 797 12 elwynn 0 0 +poi_tele_529 ruins 0 -12135 17.9116 -4.73151 4.10564 1 KalaiRuins KalaiRuins game_tele 529 125 33 northernstranglethorn 0 0 +poi_tele_53 landmark 0 3043.33 3681.33 143.065 5.07464 1 Area52 Area52 game_tele 53 214 214 thegreatsea 0 0 +poi_tele_530 landmark 0 -11091.2 -1992.38 49.816 0.95178 1 Kara Kara game_tele 530 2562 41 deadwindpass 0 0 +poi_tele_531 landmark 0 -11118.9 -2010.33 47.0819 0.649895 1 Karazhan Karazhan game_tele 531 2562 41 deadwindpass 0 0 +poi_tele_532 landmark 0 -6692.48 -2175.31 283.453 0.427571 1 Kargath Kargath game_tele 532 340 3 badlands 0 0 +poi_tele_533 landmark 0 2440.86 -3506.6 99.3423 4.69889 1 KargathiaKeep KargathiaKeep game_tele 533 2258 139 easternplaguelands 0 0 +poi_tele_534 landmark 0 -2676.89 -12141.3 17.2281 5.52763 1 KesselsCrossing KesselsCrossing game_tele 534 0 0 0 0 +poi_tele_535 landmark 0 -5597.31 -483.398 396.981 3.17566 1 Kharanos Kharanos game_tele 535 131 1 dun_morogh 0 0 +poi_tele_536 landmark 0 -2850.34 6405.81 77.0322 3.64548 1 KilsorrowFortress KilsorrowFortress game_tele 536 214 214 thegreatsea 0 0 +poi_tele_537 settlement 0 2280.68 2273.98 94.6903 4.34107 1 KirinVarVillage KirinVarVillage game_tele 537 85 85 tirisfalglades 0 0 +poi_tele_538 landmark 0 -1273.07 1970.71 50.7823 3.981 1 KodoGraveyard KodoGraveyard game_tele 538 4706 4706 ruinsofgilneas 0 0 +poi_tele_539 landmark 0 -3030.09 -704.29 44.1878 5.32579 1 KodoRock KodoRock game_tele 539 298 11 wetlands 0 0 +poi_tele_54 settlement 0 -10456.7 -2139.85 90.7913 6.26152 1 AridensCamp AridensCamp game_tele 54 2560 41 deadwindpass 0 0 +poi_tele_540 landmark 0 -946.186 -4492.28 28.8956 0.54997 1 KolgarCrag KolgarCrag game_tele 540 2400 47 thehinterlands 0 0 +poi_tele_541 settlement 0 -990.368 935.934 91.9163 3.14846 1 KolgarVillage KolgarVillage game_tele 541 4706 4706 ruinsofgilneas 0 0 +poi_tele_542 landmark 0 -713.262 1455.17 90.526 3.72573 1 KormeksHut KormeksHut game_tele 542 5480 130 silverpineforest 0 0 +poi_tele_543 landmark 0 -11605.1 -645.993 29.5029 5.88457 1 KurzensCompound KurzensCompound game_tele 543 101 33 northernstranglethorn 0 0 +poi_tele_544 landmark 0 9356.42 1191.51 1252.81 6.20615 1 LakeAlAmeth LakeAlAmeth game_tele 544 0 0 0 0 +poi_tele_545 landmark 0 8453.08 -7748.48 144.45 2.73684 1 LakeElrendar LakeElrendar game_tele 545 0 0 0 0 +poi_tele_546 landmark 0 7794.49 -2635.94 460.244 3.286 1 LakeEluneAra LakeEluneAra game_tele 546 0 0 0 0 +poi_tele_547 landmark 0 -3161.76 3814.37 58.1972 4.55865 1 LakeEreNoru LakeEreNoru game_tele 547 214 214 thegreatsea 0 0 +poi_tele_548 landmark 0 -9355.14 -2280.93 71.6411 0.104803 1 LakeEverstill LakeEverstill game_tele 548 68 44 redridgemountains 0 0 +poi_tele_549 landmark 0 3044.74 526.567 4.85566 3.02598 1 LakeFalathim LakeFalathim game_tele 549 85 85 tirisfalglades 0 0 +poi_tele_55 landmark 0 2865.62 3196.4 177.857 0.572978 1 ArklonisRidge ArklonisRidge game_tele 55 214 214 thegreatsea 0 0 +poi_tele_550 landmark 0 -2471.75 4657.29 159.739 4.97727 1 LakeJorune LakeJorune game_tele 550 214 214 thegreatsea 0 0 +poi_tele_551 landmark 0 6517.05 -4006.25 658.802 4.53634 1 LakeKelTheril LakeKelTheril game_tele 551 0 0 0 0 +poi_tele_552 landmark 0 2680.46 -5363.06 84.0912 2.11964 1 LakeMennar LakeMennar game_tele 552 2270 139 easternplaguelands 0 0 +poi_tele_553 landmark 0 1716.21 -4585.15 76.217 4.78011 1 LakeMereldar LakeMereldar game_tele 553 2621 139 easternplaguelands 0 0 +poi_tele_554 landmark 0 -11825.1 -421.353 12.0978 2.58982 1 LakeNazferiti LakeNazferiti game_tele 554 37 33 northernstranglethorn 0 0 +poi_tele_555 landmark 0 -9656.42 -2519.56 56.8919 0.022329 1 LakeridgeHighway LakeridgeHighway game_tele 555 1001 44 redridgemountains 0 0 +poi_tele_556 landmark 0 -9266.59 -2188.77 64.0892 2.10205 1 Lakeshire Lakeshire game_tele 556 69 44 redridgemountains 0 0 +poi_tele_557 landmark 0 -1708.2 8418.44 -21.4027 3.67976 1 LakeSunspring LakeSunspring game_tele 557 0 0 0 0 +poi_tele_558 landmark 0 -6347.89 -1218.88 -270.355 2.6083 1 Lakkari TarPits Lakkari TarPits game_tele 558 51 51 searinggorge 0 0 +poi_tele_559 landmark 0 -6430.22 -1052.96 -272.085 5.61795 1 LakkariTarPits LakkariTarPits game_tele 559 1446 51 searinggorge 0 0 +poi_tele_56 ruins 0 2779.37 3210.53 149.846 3.37686 1 ArklonRuins ArklonRuins game_tele 56 214 214 thegreatsea 0 0 +poi_tele_560 landmark 0 -10219.4 -3922.28 0.821068 5.62501 1 LandsEndBeach LandsEndBeach game_tele 560 74 8 swampofsorrows 0 0 +poi_tele_561 landmark 0 -4171.38 145.112 57.0216 5.74763 1 LarissPavilion LarissPavilion game_tele 561 298 11 wetlands 0 0 +poi_tele_562 ruins 0 -832.056 7741.02 34.3061 4.44079 1 LaughingSkullRuins LaughingSkullRuins game_tele 562 0 0 0 0 +poi_tele_563 landmark 0 78.2437 -239.341 55.3424 4.77799 1 LBRS LBRS game_tele 563 1683 267 hillsbradfoothills 0 0 +poi_tele_564 settlement 0 4525.1 -6359.32 126.976 4.83794 1 LegashEncampment LegashEncampment game_tele 564 214 214 thegreatsea 0 0 +poi_tele_565 landmark 0 -3291.28 2888 131.919 2.25661 1 LegionHold LegionHold game_tele 565 214 214 thegreatsea 0 0 +poi_tele_566 landmark 0 -6742.69 -4092.03 264.17 6.25284 1 LethlorRavine LethlorRavine game_tele 566 339 3 badlands 0 0 +poi_tele_567 landmark 0 2279.65 -5310.01 87.0759 5.07618 1 LightsHopeChapel LightsHopeChapel game_tele 567 2268 139 easternplaguelands 0 0 +poi_tele_568 zone 0 -5172.04 -2952.93 336.993 6.20809 1 LochModan LochModan game_tele 568 38 38 lochmodan 1 0 +poi_tele_569 landmark 0 -10091.5 1955.59 7.16286 0.077321 1 Longshore Longshore game_tele 569 2 40 westfall 0 0 +poi_tele_57 landmark 0 1928.34 -2165.95 93.7896 0.205731 1 Ashenvale Ashenvale game_tele 57 28 28 westernplaguelands 0 0 +poi_tele_570 landmark 0 1214.77 731.732 32.9321 2.30374 1 LordamareLake LordamareLake game_tele 570 1338 130 silverpineforest 0 0 +poi_tele_571 settlement 0 -62.356 189.834 53.4352 2.43918 1 LordamereInternmentCamp LordamereInternmentCamp game_tele 571 278 267 hillsbradfoothills 0 0 +poi_tele_572 landmark 0 -3920.81 -2842.47 45.0363 4.48854 1 LostPoint LostPoint game_tele 572 1020 11 wetlands 0 0 +poi_tele_573 landmark 0 -8021.77 -5292.28 1.33809 4.35817 1 LostRiggerCove LostRiggerCove game_tele 573 2403 8 swampofsorrows 0 0 +poi_tele_574 landmark 0 -7512.38 -1043.39 181.55 0.909809 1 LothosRiftwaker LothosRiftwaker game_tele 574 25 25 blackrockmountain 0 0 +poi_tele_575 landmark 0 -2055.96 5305.2 -37.9105 4.02848 1 LowerCity LowerCity game_tele 575 214 214 thegreatsea 0 0 +poi_tele_576 landmark 0 -3904.46 3147.39 327.077 4.42121 1 LowerVeilShilAk LowerVeilShilAk game_tele 576 5146 5146 vashjir 0 0 +poi_tele_577 landmark 0 -4847.14 434.406 16.2021 2.33115 1 LowerWilds LowerWilds game_tele 577 1 1 dun_morogh 0 0 +poi_tele_578 landmark 0 -960.748 -2043.74 81.2893 5.9535 1 LushwaterOasis LushwaterOasis game_tele 578 313 45 arathihighlands 0 0 +poi_tele_579 landmark 0 3194.97 163.192 5.48506 3.36212 1 MaestrasPost MaestrasPost game_tele 579 168 85 tirisfalglades 0 0 +poi_tele_58 landmark 0 2676.19 -422.905 107.123 0.648691 1 Astranaar Astranaar game_tele 58 459 85 tirisfalglades 0 0 +poi_tele_580 landmark 0 -8976.21 876.055 106.542 3.3507 1 MageQuarter MageQuarter game_tele 580 5154 1519 stormwind 0 0 +poi_tele_581 landmark 0 395.308 3715.99 179.279 0.814673 1 MagHarGrounds MagHarGrounds game_tele 581 2398 130 silverpineforest 0 0 +poi_tele_582 landmark 0 -1283.99 8498.33 16.4938 1.76808 1 MagHariProcession MagHariProcession game_tele 582 0 0 0 0 +poi_tele_583 landmark 0 512.08 3879.32 191.494 0.027839 1 MagharPost MagharPost game_tele 583 0 0 0 0 +poi_tele_584 landmark 0 1736.52 96.2668 -62.2857 5.5036 1 MagicQuarter MagicQuarter game_tele 584 1497 1497 undercity 0 0 +poi_tele_585 landmark 0 12884.6 -7317.69 65.5023 4.799 1 MagistersTerrace MagistersTerrace game_tele 585 0 0 0 0 +poi_tele_586 landmark 0 -3440.16 2547.11 58.5443 0.37951 1 MagmaFields MagmaFields game_tele 586 214 214 thegreatsea 0 0 +poi_tele_587 settlement 0 -1733.94 897.726 90.7702 2.15654 1 MagramVillage MagramVillage game_tele 587 4706 4706 ruinsofgilneas 0 0 +poi_tele_588 landmark 0 190.035 3.38458 67.9651 3.15819 1 magtheridon magtheridon game_tele 588 279 267 hillsbradfoothills 0 0 +poi_tele_589 landmark 0 -312.7 3087.26 -116.52 5.19026 1 MagtheridonsLair MagtheridonsLair game_tele 589 2398 130 silverpineforest 0 0 +poi_tele_59 landmark 0 -3336.2 363.236 120.466 0.150953 1 AtaMalTerrace AtaMalTerrace game_tele 59 2365 11 wetlands 0 0 +poi_tele_590 landmark 0 -198.834 -336.707 11.0481 5.48042 1 MalakaJin MalakaJin game_tele 590 1680 267 hillsbradfoothills 0 0 +poi_tele_591 landmark 0 1404.44 1071.55 52.4562 1.01804 1 MaldensOrchard MaldensOrchard game_tele 591 5369 130 silverpineforest 0 0 +poi_tele_592 workshop 0 3902.61 4036.58 188.558 0.149414 1 ManaforgeAra ManaforgeAra game_tele 592 0 0 0 0 +poi_tele_593 workshop 0 3007.58 4216.86 160.794 2.8844 1 ManaforgeBnaar ManaforgeBnaar game_tele 593 0 0 0 0 +poi_tele_594 workshop 0 2463.21 2862.53 132.065 3.9824 1 ManaforgeCoruu ManaforgeCoruu game_tele 594 214 214 thegreatsea 0 0 +poi_tele_595 workshop 0 3079.11 2211.89 160.351 3.59991 1 ManaforgeDuro ManaforgeDuro game_tele 595 214 214 thegreatsea 0 0 +poi_tele_596 workshop 0 3850.68 2061.16 254.219 5.65108 1 ManaforgeUltris ManaforgeUltris game_tele 596 214 214 thegreatsea 0 0 +poi_tele_597 ruins 0 -3104.18 4945.52 -101.507 6.22344 1 ManaTombs ManaTombs game_tele 597 214 214 thegreatsea 0 0 +poi_tele_598 landmark 0 -2041.95 1915.12 70.474 0.545691 1 MannorocCoven MannorocCoven game_tele 598 4706 4706 ruinsofgilneas 0 0 +poi_tele_599 landmark 0 -10342.5 -1250.62 35.3013 3.56761 1 ManorMistmantle ManorMistmantle game_tele 599 1098 10 duskwood 0 0 +poi_tele_6 landmark 0 -10964 240.019 28.5578 2.99821 1 AddlesStead AddlesStead game_tele 6 536 10 duskwood 0 0 +poi_tele_60 landmark 0 6501.4 481.607 6.27062 1.70033 1 Auberdine Auberdine game_tele 60 0 0 0 0 +poi_tele_600 landmark 0 -228.302 236.591 -50.6459 1.64438 1 MapChamber MapChamber game_tele 600 267 267 hillsbradfoothills 0 0 +poi_tele_601 landmark 0 1019.69 -458.31 -43.43 0.31 1 Maraorange Maraorange game_tele 601 284 267 hillsbradfoothills 0 0 +poi_tele_602 landmark 0 751.254 -606.421 -33.2458 0.089788 1 Marapurple Marapurple game_tele 602 282 267 hillsbradfoothills 0 0 +poi_tele_603 landmark 0 -1419.13 2908.14 137.464 1.57366 1 Maraudon Maraudon game_tele 603 4706 4706 ruinsofgilneas 0 0 +poi_tele_604 landmark 0 -1464.14 2615.21 76.7172 3.21357 1 MaraudonOrange MaraudonOrange game_tele 604 4706 4706 ruinsofgilneas 0 0 +poi_tele_605 landmark 0 -1188.37 2879.61 85.7888 5.07366 1 MaraudonPurple MaraudonPurple game_tele 605 4706 4706 ruinsofgilneas 0 0 +poi_tele_606 landmark 0 2927.64 -1420.34 150.782 1.13192 1 MardenholdeKeep MardenholdeKeep game_tele 606 190 28 westernplaguelands 0 0 +poi_tele_607 wilderness 0 -6152.25 -1087.6 -201.435 0.707637 1 MarshalsRefuge MarshalsRefuge game_tele 607 1 1 dun_morogh 0 0 +poi_tele_608 wilderness 0 583.302 8485.48 21.6066 4.03254 1 MarshlightLake MarshlightLake game_tele 608 0 0 0 0 +poi_tele_609 landmark 0 3452.17 -4992.52 196.839 5.44846 1 MazraAlor MazraAlor game_tele 609 2273 139 easternplaguelands 0 0 +poi_tele_61 ruins 0 -3362.04 5209.85 -101.05 1.60924 1 AuchenaiCrypts AuchenaiCrypts game_tele 61 214 214 thegreatsea 0 0 +poi_tele_610 landmark 0 6163.22 -4432.47 660.866 1.60523 1 Mazthoril Mazthoril game_tele 610 214 214 thegreatsea 0 0 +poi_tele_611 landmark 0 1082.04 -474.596 -107.762 5.02623 1 MC MC game_tele 611 284 267 hillsbradfoothills 0 0 +poi_tele_612 landmark 0 -28.906 0.680314 -1.81282 6.26827 1 Mech Mech game_tele 612 267 267 hillsbradfoothills 0 0 +poi_tele_613 landmark 0 -3236.59 -12713.5 27.0563 3.45338 1 MenagerieWreckage MenagerieWreckage game_tele 613 0 0 0 0 +poi_tele_614 landmark 0 -3977.14 -898.953 8.83729 0.524569 1 MenethilBay MenethilBay game_tele 614 299 11 wetlands 0 0 +poi_tele_615 landmark 0 -3769.32 -744.26 8.01027 1.95752 1 MenethilHarbor MenethilHarbor game_tele 615 150 11 wetlands 0 0 +poi_tele_616 landmark 0 15.2235 -0.221107 -2.79687 0.007752 1 Mgt Mgt game_tele 616 279 267 hillsbradfoothills 0 0 +poi_tele_617 landmark 0 -2390.97 -11785.5 16.2604 2.27998 1 Middenvale Middenvale game_tele 617 0 0 0 0 +poi_tele_618 landmark 0 3371.2 2883.39 143.893 1.73852 1 MidrealmPost MidrealmPost game_tele 618 214 214 thegreatsea 0 0 +poi_tele_619 landmark 0 -6967.2 -2857.38 241.814 2.5709 1 MirageFlats MirageFlats game_tele 619 5322 3 badlands 0 0 +poi_tele_62 landmark 0 -3637.1 5188.61 -19.1186 3.39151 1 AuchenaiGrounds AuchenaiGrounds game_tele 62 5146 5146 vashjir 0 0 +poi_tele_620 landmark 0 -6221.35 -3927.64 -58.7495 0.757735 1 MirageRaceway MirageRaceway game_tele 620 3 3 badlands 0 0 +poi_tele_621 landmark 0 1587.03 874.207 183.222 3.18787 1 MirkfallonLake MirkfallonLake game_tele 621 130 130 silverpineforest 0 0 +poi_tele_622 landmark 0 -9360.13 441.323 49.1944 2.7374 1 MirrorLake MirrorLake game_tele 622 92 12 elwynn 0 0 +poi_tele_623 landmark 0 -9497.38 476.237 51.0552 6.1853 1 MirrorLakeOrchard MirrorLakeOrchard game_tele 623 89 12 elwynn 0 0 +poi_tele_624 landmark 0 6960.9 278.856 2.62734 3.54128 1 MistsEdge MistsEdge game_tele 624 0 0 0 0 +poi_tele_625 landmark 0 -13968.3 121.306 14.8902 5.42744 1 MistvaleValley MistvaleValley game_tele 625 1737 5287 thecapeofstranglethorn 0 0 +poi_tele_626 landmark 0 -5355.18 -1046.42 394.441 0.123457 1 MistyPineRefuge MistyPineRefuge game_tele 626 138 1 dun_morogh 0 0 +poi_tele_627 landmark 0 -10855.8 -4114.24 22.2215 1.37632 1 MistyReedPost MistyReedPost game_tele 627 1978 8 swampofsorrows 0 0 +poi_tele_628 landmark 0 -9813.85 -4115.01 4.58721 5.54286 1 MistyReedStrand MistyReedStrand game_tele 628 300 8 swampofsorrows 0 0 +poi_tele_629 landmark 0 590.273 132.249 42.0482 0.487462 1 MistyShore MistyShore game_tele 629 1681 267 hillsbradfoothills 0 0 +poi_tele_63 landmark 0 -3324.49 4943.45 -101.239 4.63901 1 Auchindoun Auchindoun game_tele 63 214 214 thegreatsea 0 0 +poi_tele_630 landmark 0 -10170.6 -2528.78 27.3798 1.09358 1 MistyValley MistyValley game_tele 630 116 8 swampofsorrows 0 0 +poi_tele_631 ruins 0 -12424.8 -148.732 15.055 3.21029 1 MizjahRuins MizjahRuins game_tele 631 129 33 northernstranglethorn 0 0 +poi_tele_632 landmark 0 -4915.65 -3958.31 298.303 0.553624 1 MogroshStronghold MogroshStronghold game_tele 632 143 38 lochmodan 0 0 +poi_tele_633 settlement 0 2210.93 4763.72 157.42 4.60576 1 MokNathalVillage MokNathalVillage game_tele 633 0 0 0 0 +poi_tele_634 landmark 0 1126.64 -459.94 -102.535 3.46095 1 MoltenCore MoltenCore game_tele 634 1682 267 hillsbradfoothills 0 0 +poi_tele_635 landmark 0 -10986.7 1542.75 44.7858 2.62438 1 Moonbrook Moonbrook game_tele 635 20 40 westfall 0 0 +poi_tele_636 landmark 0 7654.3 -2232.87 462.107 5.96786 1 Moonglade Moonglade game_tele 636 0 0 0 0 +poi_tele_637 landmark 0 7486.41 -2124.22 490.738 3.11294 1 MoongladeHordeFlypoint MoongladeHordeFlypoint game_tele 637 0 0 0 0 +poi_tele_638 wilderness 0 -3623.63 -12755.4 5.5687 0.798743 1 MoongrazeWoods MoongrazeWoods game_tele 638 0 0 0 0 +poi_tele_639 landmark 0 -5074.81 -11092.5 26.8435 1.10189 1 MoonwingDen MoonwingDen game_tele 639 0 0 0 0 +poi_tele_64 landmark 0 -215.738 -309.394 6.66761 3.07325 1 AV AV game_tele 64 1680 267 hillsbradfoothills 0 0 +poi_tele_640 landmark 0 -8372.77 -2754.46 186.622 3.43486 1 MorgansVigil MorgansVigil game_tele 640 2418 46 burningsteppes 0 0 +poi_tele_641 landmark 0 3790.49 -1681.81 251.595 3.87194 1 MorlosAran MorlosAran game_tele 641 214 214 thegreatsea 0 0 +poi_tele_642 settlement 0 1035.62 -2106 122.946 1.60767 1 MorshanBaseCamp MorshanBaseCamp game_tele 642 2297 28 westernplaguelands 0 0 +poi_tele_643 landmark 0 -12345.2 -966.453 12.2932 4.29021 1 MoshoggOgreMound MoshoggOgreMound game_tele 643 105 33 northernstranglethorn 0 0 +poi_tele_644 landmark 0 -3750.76 -2902.37 12.3196 4.19214 1 MosshideFen MosshideFen game_tele 644 1020 11 wetlands 0 0 +poi_tele_645 landmark 0 -11.1808 0.991746 -0.9543 3.13767 1 MT MT game_tele 645 267 267 hillsbradfoothills 0 0 +poi_tele_646 landmark 0 -4573.79 -3173.15 34.0877 3.1231 1 Mudsprocket Mudsprocket game_tele 646 11 11 wetlands 0 0 +poi_tele_647 landmark 0 9755.35 -7304.14 24.4126 0.426204 1 MuerderRow MuerderRow game_tele 647 0 0 0 0 +poi_tele_648 landmark 0 -2192.62 -736.317 -13.3274 0.487569 1 Mulgore Mulgore game_tele 648 2365 11 wetlands 0 0 +poi_tele_649 landmark 0 9755.35 -7304.14 24.4126 0.426204 1 MurderEow MurderEow game_tele 649 0 0 0 0 +poi_tele_65 landmark 0 -1512.97 -11378.7 67.4006 0.326728 1 Axxarien Axxarien game_tele 65 0 0 0 0 +poi_tele_650 landmark 0 1902.31 -1363.98 99.987 0.929737 1 MystralLake MystralLake game_tele 650 28 28 westernplaguelands 0 0 +poi_tele_651 landmark 0 -2593.97 -11700.4 11.4544 1.18828 1 Mystwood Mystwood game_tele 651 0 0 0 0 +poi_tele_652 landmark 0 -1145.95 8182.35 3.60249 6.13478 1 Nagrand Nagrand game_tele 652 0 0 0 0 +poi_tele_653 landmark 0 -4141.59 -4054.2 2.2126 5.28022 1 NatsLanding NatsLanding game_tele 653 5473 4922 twilighthighlands 0 0 +poi_tele_654 landmark 0 3021.64 -3402.99 298.22 2.97352 1 Nax Nax game_tele 654 2277 139 easternplaguelands 0 0 +poi_tele_655 landmark 0 3668.72 -1262.46 243.622 4.785 1 Naxxramas Naxxramas game_tele 655 214 214 thegreatsea 0 0 +poi_tele_656 landmark 0 -2474.89 -11380.1 37.3419 1.59514 1 Nazzivian Nazzivian game_tele 656 0 0 0 0 +poi_tele_657 landmark 0 -13835.5 420.427 90.6791 5.33319 1 NekManiWellspring NekManiWellspring game_tele 657 1738 5287 thecapeofstranglethorn 0 0 +poi_tele_658 landmark 0 -1446.49 6346.65 37.5461 2.77876 1 NesingwarySafari NesingwarySafari game_tele 658 0 0 0 0 +poi_tele_659 landmark 0 -11609.3 -52.9532 10.9376 3.48911 1 NesingwarysExpedition NesingwarysExpedition game_tele 659 100 33 northernstranglethorn 0 0 +poi_tele_66 landmark 0 4023.99 -5888.25 114.119 2.9839 1 Azshara Azshara game_tele 66 214 214 thegreatsea 0 0 +poi_tele_660 landmark 0 -4452 -13871.9 101.029 3.69763 1 NestlewoodHills NestlewoodHills game_tele 660 0 0 0 0 +poi_tele_661 landmark 0 -4395.01 -13772.3 52.3834 5.03674 1 NestlewoodThicket NestlewoodThicket game_tele 661 0 0 0 0 +poi_tele_662 landmark 0 -907.58 -979.134 30.3489 2.36926 1 NethanderStead NethanderStead game_tele 662 289 267 hillsbradfoothills 0 0 +poi_tele_663 landmark 0 -10999.8 -3380.08 62.2525 4.63501 1 NethergardeKeep NethergardeKeep game_tele 663 1438 4 blasted_lands 0 0 +poi_tele_664 landmark 0 4836.34 2892.29 144.631 3.419 1 Netherstone Netherstone game_tele 664 214 214 thegreatsea 0 0 +poi_tele_665 landmark 0 3830.23 3426.5 88.6145 5.16677 1 Netherstorm Netherstorm game_tele 665 214 214 thegreatsea 0 0 +poi_tele_666 landmark 0 -3814.67 4264.16 5.66786 3.73006 1 NetherwebRidge NetherwebRidge game_tele 666 5146 5146 vashjir 0 0 +poi_tele_667 landmark 0 -4122.58 800.66 6.54928 1.1217 1 NetherwingFields NetherwingFields game_tele 667 2365 11 wetlands 0 0 +poi_tele_668 landmark 0 -5098.7 505.358 84.97 3.41328 1 NetherwingLedge NetherwingLedge game_tele 668 133 1 dun_morogh 0 0 +poi_tele_669 mine 0 -5145.07 711.023 43.4061 5.2221 1 NetherwingMines NetherwingMines game_tele 669 1 1 dun_morogh 0 0 +poi_tele_67 landmark 0 128.205 135.136 236.11 4.59132 1 AzsharaCrater AzsharaCrater game_tele 67 279 267 hillsbradfoothills 0 0 +poi_tele_670 landmark 0 -4331.55 819.57 15.3479 5.87712 1 NetherwingPass NetherwingPass game_tele 670 2365 11 wetlands 0 0 +poi_tele_671 landmark 0 7966.85 -2491.04 487.734 3.20562 1 Nighthaven Nighthaven game_tele 671 0 0 0 0 +poi_tele_672 landmark 0 2076.72 1158.54 39.13 3.26114 1 NightmareVale NightmareVale game_tele 672 811 85 tirisfalglades 0 0 +poi_tele_673 landmark 0 2529.43 -2143.92 197.679 3.09116 1 NightRun NightRun game_tele 673 28 28 westernplaguelands 0 0 +poi_tele_674 wilderness 0 3396.9 -1526.19 165.357 3.32216 1 NightsongWoods NightsongWoods game_tele 674 2037 2037 quelthalas 0 0 +poi_tele_675 landmark 0 2048.96 1813.93 105.345 1.84271 1 NightWebsHollow NightWebsHollow game_tele 675 155 85 tirisfalglades 0 0 +poi_tele_676 landmark 0 176.426 1309.76 190.18 0.556817 1 NijelsPoint NijelsPoint game_tele 676 130 130 silverpineforest 0 0 +poi_tele_677 ruins 0 -7017.57 -4339.67 11.159 6.02322 1 NoonshadeRuins NoonshadeRuins game_tele 677 3 3 badlands 0 0 +poi_tele_678 landmark 0 3029.82 -4901.18 100.63 4.63322 1 Northdale Northdale game_tele 678 2272 139 easternplaguelands 0 0 +poi_tele_679 landmark 0 -815.306 -2033.47 34.2293 3.32686 1 NorthfoldManor NorthfoldManor game_tele 679 313 45 arathihighlands 0 0 +poi_tele_68 landmark 0 9620.79 -8043.05 0.475485 2.05119 1 AzurebreezeCoast AzurebreezeCoast game_tele 68 0 0 0 0 +poi_tele_680 landmark 0 -5191.62 -2297.24 400.342 3.9438 1 NorthGateOutpost NorthGateOutpost game_tele 680 808 1 dun_morogh 0 0 +poi_tele_681 landmark 0 -4802.07 -2532.42 353.848 1.92022 1 NorthGatePass NorthGatePass game_tele 681 838 38 lochmodan 0 0 +poi_tele_682 landmark 0 3162.59 -4323.12 132.34 4.87705 1 NorthpassTower NorthpassTower game_tele 682 2275 139 easternplaguelands 0 0 +poi_tele_683 landmark 0 -2861.79 -3423.24 39.0049 3.29711 1 NorthPointTower NorthPointTower game_tele 683 5155 4922 twilighthighlands 0 0 +poi_tele_684 settlement 0 2365.94 -1511 101.787 0.282905 1 NorthridgeLumberCamp NorthridgeLumberCamp game_tele 684 192 28 westernplaguelands 0 0 +poi_tele_685 landmark 0 9287.65 -6701.97 22.026 1.3137 1 NorthSanctum NorthSanctum game_tele 685 0 0 0 0 +poi_tele_686 landmark 0 -8921.09 -119.135 82.195 5.82878 1 NorthshireValley NorthshireValley game_tele 686 9 12 elwynn 0 0 +poi_tele_687 landmark 0 -9076.49 -344.655 73.4527 0.882288 1 NorthshireVineyards NorthshireVineyards game_tele 687 59 12 elwynn 0 0 +poi_tele_688 landmark 0 851.635 1581.33 32.3011 0.628498 1 NorthTidesHollow NorthTidesHollow game_tele 688 928 130 silverpineforest 0 0 +poi_tele_689 landmark 0 878.157 1883.93 1.85641 2.38779 1 NorthTidesRun NorthTidesRun game_tele 689 928 130 silverpineforest 0 0 +poi_tele_69 mine 0 -902.924 244.914 8.80433 5.61973 1 AzurelodeMine AzurelodeMine game_tele 69 288 267 hillsbradfoothills 0 0 +poi_tele_690 landmark 0 -1998.12 -3680.54 21.1346 2.45298 1 NorthwatchHold NorthwatchHold game_tele 690 2401 45 arathihighlands 0 0 +poi_tele_691 landmark 0 -1155.9 8035.88 -86.9813 3.21951 1 NorthwindCleft NorthwindCleft game_tele 691 0 0 0 0 +poi_tele_692 landmark 0 2444.66 6990.76 367.981 2.20806 1 ObsidiasPerch ObsidiasPerch game_tele 692 0 0 0 0 +poi_tele_693 landmark 0 -4677.05 -12439.1 16.2655 2.09541 1 OdesyusLanding OdesyusLanding game_tele 693 0 0 0 0 +poi_tele_694 landmark 0 2297.68 7293.12 365.617 1.28888 1 Ogrila Ogrila game_tele 694 0 0 0 0 +poi_tele_695 landmark 0 -8404.3 -4070.62 -208.586 0.237038 1 OldHillsbradFoothills OldHillsbradFoothills game_tele 695 46 46 burningsteppes 0 0 +poi_tele_696 settlement 0 -8728.45 409.289 97.7728 3.80528 1 OldTown OldTown game_tele 696 5149 1519 stormwind 0 0 +poi_tele_697 landmark 0 141.756 1465.7 114.441 1.55058 1 OlsensFarthing OlsensFarthing game_tele 697 229 130 silverpineforest 0 0 +poi_tele_698 landmark 0 -3220.5 1892.94 49.3026 0.094122 1 Oneiros Oneiros game_tele 698 2365 11 wetlands 0 0 +poi_tele_699 landmark 0 29.1607 -71.3372 -8.18032 4.43584 1 onyxia onyxia game_tele 699 1677 267 hillsbradfoothills 0 0 +poi_tele_7 landmark 0 260.366 -2125.21 119.565 3.18494 1 AeriePeak AeriePeak game_tele 7 348 47 thehinterlands 0 0 +poi_tele_70 landmark 0 -4216.87 -12336.9 4.34247 6.02008 1 AzuremystIsle AzuremystIsle game_tele 70 0 0 0 0 +poi_tele_700 landmark 0 -4708.27 -3727.64 54.5589 3.72786 1 OnyxiasLair OnyxiasLair game_tele 700 38 38 lochmodan 0 0 +poi_tele_701 landmark 0 -7663.74 -1217.4 287.789 5.33945 1 OrbOfCommand OrbOfCommand game_tele 701 25 25 blackrockmountain 0 0 +poi_tele_702 landmark 0 958.66 7374.02 27.9079 6.12064 1 OreborHarborage OreborHarborage game_tele 702 0 0 0 0 +poi_tele_703 landmark 0 1569.97 -4397.41 16.0472 0.543025 1 Orgrimmar Orgrimmar game_tele 703 2621 139 easternplaguelands 0 0 +poi_tele_704 landmark 0 -2790.42 1265.35 74.8801 3.51465 1 OronoksFarm OronoksFarm game_tele 704 4706 4706 ruinsofgilneas 0 0 +poi_tele_705 landmark 0 -7583.14 223.826 12.1392 5.11522 1 OrtellsHideout OrtellsHideout game_tele 705 12 12 elwynn 0 0 +poi_tele_706 landmark 0 -2417.03 8314.75 -37.5225 3.13613 1 Oshugun Oshugun game_tele 706 0 0 0 0 +poi_tele_707 landmark 0 5503.37 -4948.18 850.096 3.91821 1 OwlWingThicket OwlWingThicket game_tele 707 0 0 0 0 +poi_tele_708 landmark 0 -2400.94 295.281 65.7074 1.27785 1 PalemaneRock PalemaneRock game_tele 708 2365 11 wetlands 0 0 +poi_tele_709 landmark 0 2308.92 -5075.61 69.9643 3.30119 1 PestilentScar PestilentScar game_tele 709 2622 139 easternplaguelands 0 0 +poi_tele_71 landmark 0 -4190.85 -12516.5 44.5276 1.34225 1 AzureWatch AzureWatch game_tele 71 0 0 0 0 +poi_tele_710 landmark 0 350.535 -2519.39 194.666 0.207063 1 PlaguemistRavine PlaguemistRavine game_tele 710 1882 47 thehinterlands 0 0 +poi_tele_711 landmark 0 3065.36 -3704 120.931 1.21752 1 Plaguewood Plaguewood game_tele 711 2277 139 easternplaguelands 0 0 +poi_tele_712 landmark 0 3032.21 -3058.25 118.245 2.69521 1 PlaguewoodTower PlaguewoodTower game_tele 712 4067 139 easternplaguelands 0 0 +poi_tele_713 landmark 0 -4468.03 -11990.3 31.3148 0.665984 1 PodCluster PodCluster game_tele 713 0 0 0 0 +poi_tele_714 landmark 0 -4430.11 -12641.6 18.6332 3.64265 1 PodWreckage PodWreckage game_tele 714 0 0 0 0 +poi_tele_715 landmark 0 -10615.7 -3842.2 19.601 0.237497 1 PoolOfTears PoolOfTears game_tele 715 74 8 swampofsorrows 0 0 +poi_tele_716 landmark 0 282.878 3479.82 63.4083 0.305086 1 PoolsOfAggonar PoolsOfAggonar game_tele 716 2398 130 silverpineforest 0 0 +poi_tele_717 landmark 0 9543.02 1665.64 1298.2 5.67365 1 PoolsOfArlithrien PoolsOfArlithrien game_tele 717 0 0 0 0 +poi_tele_718 landmark 0 571.187 8674.03 21.2322 4.86742 1 PortalClearing PortalClearing game_tele 718 0 0 0 0 +poi_tele_719 landmark 0 4270.15 2154.62 136.167 1.80184 1 ProtectorateWatchPost ProtectorateWatchPost game_tele 719 214 214 thegreatsea 0 0 +poi_tele_72 zone 0 -6712.91 -3350.91 241.254 1.01048 1 Badlands Badlands game_tele 72 3 3 badlands 1 0 +poi_tele_720 landmark 0 -1242.7 462.432 6.25075 1.75667 1 PurgationIsle PurgationIsle game_tele 720 896 267 hillsbradfoothills 0 0 +poi_tele_721 settlement 0 -388.146 1543.67 18.1592 3.10171 1 PyrewoodVillage PyrewoodVillage game_tele 721 204 130 silverpineforest 0 0 +poi_tele_722 landmark 0 -186.082 8076.92 19.0829 5.03314 1 QuaggRidge QuaggRidge game_tele 722 0 0 0 0 +poi_tele_723 landmark 0 226.318 -2777.59 123.356 0.59469 1 QuelDanilLodge QuelDanilLodge game_tele 723 350 47 thehinterlands 0 0 +poi_tele_724 landmark 0 3385.31 -4220.6 155.092 3.57879 1 QuelLithienLodge QuelLithienLodge game_tele 724 2276 139 easternplaguelands 0 0 +poi_tele_725 landmark 0 -1428.84 -11951.2 16.4308 6.12844 1 RagefeatherRidge RagefeatherRidge game_tele 725 0 0 0 0 +poi_tele_726 landmark 0 1811.78 -4410.5 -18.4704 5.20165 1 RagefireChasm RagefireChasm game_tele 726 2621 139 easternplaguelands 0 0 +poi_tele_727 landmark 0 -3839.07 1760.37 142.462 4.58606 1 RageScarHold RageScarHold game_tele 727 2365 11 wetlands 0 0 +poi_tele_728 landmark 0 -1346.58 1653.44 68.8313 0.486942 1 Ramp Ramp game_tele 728 5435 4706 ruinsofgilneas 0 0 +poi_tele_729 landmark 0 170.849 2914.41 19.6981 0.530757 1 RanazjarIsle RanazjarIsle game_tele 729 2398 130 silverpineforest 0 0 +poi_tele_73 landmark 0 -1942.74 413.534 134.205 2.53057 1 BaelDunDigsite BaelDunDigsite game_tele 73 4706 4706 ruinsofgilneas 0 0 +poi_tele_730 landmark 0 -2023.09 -3220.48 90.5983 1.07774 1 RaptorGrounds RaptorGrounds game_tele 730 317 45 arathihighlands 0 0 +poi_tele_731 landmark 0 -3134.17 -3238.84 63.364 5.4904 1 RaptorRidge RaptorRidge game_tele 731 1017 11 wetlands 0 0 +poi_tele_732 landmark 0 -956.664 -3754.71 5.33239 0.996637 1 Ratchet Ratchet game_tele 732 318 45 arathihighlands 0 0 +poi_tele_733 landmark 0 -1920.81 -732.852 2.29586 1.70032 1 RavagedCaravan RavagedCaravan game_tele 733 2397 267 hillsbradfoothills 0 0 +poi_tele_734 settlement 0 -6160.61 1746.37 24.2906 0.89614 1 RavagedTwilightCamp RavagedTwilightCamp game_tele 734 214 214 thegreatsea 0 0 +poi_tele_735 landmark 0 -6191.56 1743.28 19.6888 0.630589 1 RavagedTwilightCapm RavagedTwilightCapm game_tele 735 214 214 thegreatsea 0 0 +poi_tele_736 landmark 0 2580.25 -6830.65 117.466 5.1403 1 RavencrestMonument RavencrestMonument game_tele 736 308 308 theforbiddingsea 0 0 +poi_tele_737 landmark 0 -10742.2 330.574 38.2503 0.551712 1 RavenHill RavenHill game_tele 737 94 10 duskwood 0 0 +poi_tele_738 landmark 0 -10526.7 295.889 31.0954 6.27724 1 RavenHillCemetery RavenHillCemetery game_tele 738 492 10 duskwood 0 0 +poi_tele_739 landmark 0 -9.50862 -1569.46 194.606 5.78733 1 RavenholdtManor RavenholdtManor game_tele 739 3486 267 hillsbradfoothills 0 0 +poi_tele_74 landmark 0 -4091.59 -2329.66 126.129 5.15315 1 BaelDunKeep BaelDunKeep game_tele 74 836 11 wetlands 0 0 +poi_tele_740 landmark 0 3565.61 6890.04 141.477 4.50586 1 RavensWood RavensWood game_tele 740 0 0 0 0 +poi_tele_741 landmark 0 2667.31 -1855.58 188.309 5.72617 1 RaynewoodRetreat RaynewoodRetreat game_tele 741 28 28 westernplaguelands 0 0 +poi_tele_742 landmark 0 2830.32 5252.84 264.143 5.26235 1 RazaansLanding RazaansLanding game_tele 742 0 0 0 0 +poi_tele_743 landmark 0 -4657.3 -2519.35 81.0529 4.54808 1 RazorfenDowns RazorfenDowns game_tele 743 38 38 lochmodan 0 0 +poi_tele_744 landmark 0 -4470.28 -1677.77 81.3925 1.16302 1 RazorfenKraul RazorfenKraul game_tele 744 5115 1 dun_morogh 0 0 +poi_tele_745 landmark 0 326.81 -4706.65 15.3665 4.16414 1 RazorHill RazorHill game_tele 745 307 47 thehinterlands 0 0 +poi_tele_746 landmark 0 406.553 -4227.69 25.8136 6.14752 1 RazormaneGrounds RazormaneGrounds game_tele 746 47 47 thehinterlands 0 0 +poi_tele_747 landmark 0 2432.62 5201.37 264.661 3.00927 1 RazorRidge RazorRidge game_tele 747 0 0 0 0 +poi_tele_748 landmark 0 -1248.26 3837.32 264.797 3.21797 1 RazorthornRise RazorthornRise game_tele 748 214 214 thegreatsea 0 0 +poi_tele_749 landmark 0 -1708.1 4028.77 60.0601 2.08778 1 RazorthornShelf RazorthornShelf game_tele 749 214 214 thegreatsea 0 0 +poi_tele_75 landmark 0 -4134.29 -2192.52 50.7921 3.99548 1 BaelModan BaelModan game_tele 75 11 11 wetlands 0 0 +poi_tele_750 landmark 0 -1550.52 3547.46 32.4329 2.05248 1 RazorthornTrail RazorthornTrail game_tele 750 214 214 thegreatsea 0 0 +poi_tele_751 landmark 0 950.321 -4596.04 19.5531 3.94604 1 RazorwindCanyon RazorwindCanyon game_tele 751 2400 47 thehinterlands 0 0 +poi_tele_752 landmark 0 -32.7738 2123.59 110.62 0.264264 1 ReaversFall ReaversFall game_tele 752 306 130 silverpineforest 0 0 +poi_tele_753 settlement 0 -11322.4 -202.492 75.6362 0.432339 1 RebelCamp RebelCamp game_tele 753 99 33 northernstranglethorn 0 0 +poi_tele_754 landmark 0 -3162.62 -490.493 30.0476 1.64305 1 RedCloudMesa RedCloudMesa game_tele 754 298 11 wetlands 0 0 +poi_tele_755 landmark 0 -8955.78 -2303.5 132.459 0.783378 1 RedridgeCanyons RedridgeCanyons game_tele 755 95 44 redridgemountains 0 0 +poi_tele_756 zone 0 -9551.81 -2204.73 93.473 5.47141 1 RedridgeMountains RedridgeMountains game_tele 756 44 44 redridgemountains 1 0 +poi_tele_757 landmark 0 -975.866 -1089.96 44.4156 5.60771 1 RedRocks RedRocks game_tele 757 289 267 hillsbradfoothills 0 0 +poi_tele_758 landmark 0 -2807.36 5077.65 -12.2418 3.23972 1 RefugeeCaravan RefugeeCaravan game_tele 758 214 214 thegreatsea 0 0 +poi_tele_759 landmark 0 -1246.61 -2529.32 20.6098 0.741709 1 RefugePointe RefugePointe game_tele 759 320 45 arathihighlands 0 0 +poi_tele_76 ruins 0 -12551.3 -714.58 38.8789 5.67092 1 BaliaMahRuins BaliaMahRuins game_tele 76 127 33 northernstranglethorn 0 0 +poi_tele_760 landmark 0 4633.51 627.215 7.05298 5.68533 1 RemtravelsExcavation RemtravelsExcavation game_tele 760 214 214 thegreatsea 0 0 +poi_tele_761 landmark 0 -9654.98 -3097.37 49.9266 5.39445 1 RendersValley RendersValley game_tele 761 997 44 redridgemountains 0 0 +poi_tele_762 ruins 0 -8977.54 -2013.25 136.611 1.06612 1 RethbanCaverns RethbanCaverns game_tele 762 98 44 redridgemountains 0 0 +poi_tele_763 settlement 0 -557.226 -4581.27 9.5884 1.01724 1 RevantuskVillage RevantuskVillage game_tele 763 3317 47 thehinterlands 0 0 +poi_tele_764 landmark 0 3.81 -14.82 -17.84 4.23745 1 RFC RFC game_tele 764 279 267 hillsbradfoothills 0 0 +poi_tele_765 landmark 0 2592.55 1107.5 51.29 4.74 1 RFD RFD game_tele 765 85 85 tirisfalglades 0 0 +poi_tele_766 landmark 0 1943 1544.63 82 1.38 1 RFK RFK game_tele 766 154 85 tirisfalglades 0 0 +poi_tele_767 landmark 0 -9759.42 -1370.87 57.8966 4.14011 1 RidgepointTower RidgepointTower game_tele 767 798 12 elwynn 0 0 +poi_tele_768 landmark 0 -3314.47 4942.72 -101.176 3.47559 1 RingOfObservance RingOfObservance game_tele 768 214 214 thegreatsea 0 0 +poi_tele_769 landmark 0 -11240.9 -2842.69 157.925 1.47842 1 RiseOfTheDefiler RiseOfTheDefiler game_tele 769 2517 4 blasted_lands 0 0 +poi_tele_77 ruins 0 -12019.5 363.339 2.1088 5.11095 1 BallalRuins BallalRuins game_tele 77 123 33 northernstranglethorn 0 0 +poi_tele_770 landmark 0 2081.75 7384.85 372.481 4.04039 1 RivendarksPerch RivendarksPerch game_tele 770 0 0 0 0 +poi_tele_771 landmark 0 -5485.38 -1628.67 27.7119 2.85653 1 RoguefeatherDen RoguefeatherDen game_tele 771 1 1 dun_morogh 0 0 +poi_tele_772 landmark 0 1458.68 106.137 -61.3152 3.93673 1 RoguesQuarter RoguesQuarter game_tele 772 1497 1497 undercity 0 0 +poi_tele_773 landmark 0 1303.13 361.856 -67.2945 4.43312 1 RoyalQuarter RoyalQuarter game_tele 773 1497 1497 undercity 0 0 +poi_tele_774 ruins 0 -13688.9 -309.139 6.95504 6.11545 1 RuinsOfAboraz RuinsOfAboraz game_tele 774 311 5287 thecapeofstranglethorn 0 0 +poi_tele_775 ruins 0 629.684 -348.068 151.105 2.85588 1 RuinsOfAlterac RuinsOfAlterac game_tele 775 281 267 hillsbradfoothills 0 0 +poi_tele_776 ruins 0 1400.61 -1493.87 54.7844 4.08661 1 RuinsOfAndorhal RuinsOfAndorhal game_tele 776 193 28 westernplaguelands 0 0 +poi_tele_777 ruins 0 -3258.09 1165.62 60.1821 3.18338 1 RuinsOfBaaRi RuinsOfBaaRi game_tele 777 2365 11 wetlands 0 0 +poi_tele_778 ruins 0 4567.97 -492.526 300.884 5.2189 1 RuinsOfConstellas RuinsOfConstellas game_tele 778 214 214 thegreatsea 0 0 +poi_tele_779 ruins 0 4004.29 -5411.78 114.943 4.03446 1 RuinsOfEldarath RuinsOfEldarath game_tele 779 2037 2037 quelthalas 0 0 +poi_tele_78 landmark 0 1996.05 -374.731 35.4522 5.19636 1 BalnirFarmstead BalnirFarmstead game_tele 78 165 85 tirisfalglades 0 0 +poi_tele_780 ruins 0 3443.76 3680.31 149.409 3.34755 1 RuinsOfEnkaat RuinsOfEnkaat game_tele 780 214 214 thegreatsea 0 0 +poi_tele_781 ruins 0 4639.58 2593.03 210.931 2.71213 1 RuinsOfFarahlon RuinsOfFarahlon game_tele 781 214 214 thegreatsea 0 0 +poi_tele_782 ruins 0 -5628.76 1443.64 54.1252 5.72722 1 RuinsOfIsildien RuinsOfIsildien game_tele 782 1 1 dun_morogh 0 0 +poi_tele_783 ruins 0 -13353.7 0.40638 21.6159 3.28725 1 RuinsOfJubuwal RuinsOfJubuwal game_tele 783 477 5287 thecapeofstranglethorn 0 0 +poi_tele_784 ruins 0 -3732.7 456.872 104.143 4.0858 1 RuinsOfKarabor RuinsOfKarabor game_tele 784 2365 11 wetlands 0 0 +poi_tele_785 ruins 0 1923.69 234.217 49.0664 3.16311 1 RuinsOfLordaeron RuinsOfLordaeron game_tele 785 153 85 tirisfalglades 0 0 +poi_tele_786 ruins 0 -1832.47 -12078.2 31.9203 5.82134 1 RuinsOfLorethAran RuinsOfLorethAran game_tele 786 0 0 0 0 +poi_tele_787 ruins 0 7344.01 -914.641 32.6207 2.18634 1 RuinsOfMathystra RuinsOfMathystra game_tele 787 0 0 0 0 +poi_tele_788 ruins 0 -2877.75 2346 39.7117 0.306187 1 RuinsOfRavenwind RuinsOfRavenwind game_tele 788 214 214 thegreatsea 0 0 +poi_tele_789 ruins 0 -588.564 4803.37 35.1991 2.89915 1 RuinsOfShaNaar RuinsOfShaNaar game_tele 789 214 214 thegreatsea 0 0 +poi_tele_79 landmark 0 9863.43 1558.24 1329.33 2.35456 1 BanEthilBarrowDen BanEthilBarrowDen game_tele 79 0 0 0 0 +poi_tele_790 ruins 0 9738.47 -6678.72 0.626843 1.08358 1 RuinsOfSilvermoon RuinsOfSilvermoon game_tele 790 0 0 0 0 +poi_tele_791 ruins 0 -4934.06 3590.1 10.8445 0.100452 1 RuinsOfSolarsal RuinsOfSolarsal game_tele 791 5053 4815 kelptharforest 0 0 +poi_tele_792 ruins 0 -7842.54 -2159.07 133.439 6.05649 1 RuinsOfThaurissan RuinsOfThaurissan game_tele 792 250 46 burningsteppes 0 0 +poi_tele_793 ruins 0 -11651.4 647.492 50.5754 1.50754 1 RuinsOfZulKunda RuinsOfZulKunda game_tele 793 102 33 northernstranglethorn 0 0 +poi_tele_794 ruins 0 -12952.2 -800.204 63.3924 2.07461 1 RuinsOfZulMamwe RuinsOfZulMamwe game_tele 794 103 33 northernstranglethorn 0 0 +poi_tele_795 ruins 0 -12901.5 -653.396 51.3323 4.29414 1 RuinsOfZulManwe RuinsOfZulManwe game_tele 795 103 33 northernstranglethorn 0 0 +poi_tele_796 landmark 0 8222.45 -6684.93 86.2016 1.2383 1 RunestoneFalithas RunestoneFalithas game_tele 796 0 0 0 0 +poi_tele_797 landmark 0 8270.72 -7208.74 141.199 5.58077 1 RunestoneShandor RunestoneShandor game_tele 797 0 0 0 0 +poi_tele_798 workshop 0 8704.53 944.683 13.5177 2.99385 1 RutTheranVillage RutTheranVillage game_tele 798 0 0 0 0 +poi_tele_799 landmark 0 2964.84 5663.43 146.879 5.89082 1 RuuanWeald RuuanWeald game_tele 799 0 0 0 0 +poi_tele_8 landmark 0 -2059.85 8550.89 24.0587 1.944 1 AerisLanding AerisLanding game_tele 8 0 0 0 0 +poi_tele_80 landmark 0 9952.24 1538.42 1312.13 3.28133 1 BanEthilHollow BanEthilHollow game_tele 80 0 0 0 0 +poi_tele_800 landmark 0 -10165.8 1099.65 36.7546 5.35127 1 SaldeansFarm SaldeansFarm game_tele 800 107 40 westfall 0 0 +poi_tele_801 landmark 0 8664.16 -6357.99 55.1721 2.0504 1 SaltherilsHaven SaltherilsHaven game_tele 801 0 0 0 0 +poi_tele_802 landmark 0 -2723.47 -1626.34 12.0927 4.1374 1 SaltsprayGlen SaltsprayGlen game_tele 802 1023 11 wetlands 0 0 +poi_tele_803 landmark 0 7534.77 -6413.43 13.0591 2.45016 1 SanctumOfTheMoon SanctumOfTheMoon game_tele 803 0 0 0 0 +poi_tele_804 landmark 0 -4115.51 1120.54 44.5242 2.6318 1 SanctumOfTheStars SanctumOfTheStars game_tele 804 2365 11 wetlands 0 0 +poi_tele_805 landmark 0 7169.99 -7082.62 56.1741 5.68364 1 SanctumOfTheSun SanctumOfTheSun game_tele 805 0 0 0 0 +poi_tele_806 landmark 0 -7244.39 -2950.49 8.88702 5.65329 1 SandsorrowWatch SandsorrowWatch game_tele 806 3 3 badlands 0 0 +poi_tele_807 landmark 0 -4677.53 3178.37 4.88728 4.77121 1 SardorIsle SardorIsle game_tele 807 5146 5146 vashjir 0 0 +poi_tele_808 landmark 0 -52.4961 1009.64 93.8872 4.40432 1 Sargeron Sargeron game_tele 808 233 130 silverpineforest 0 0 +poi_tele_809 landmark 0 -1886.8 2888.14 49.9161 1.48894 1 SarTherisStrand SarTherisStrand game_tele 809 4706 4706 ruinsofgilneas 0 0 +poi_tele_81 landmark 0 -2537.88 -1692.24 4.30329 0.08867 1 BaradinBay BaradinBay game_tele 81 298 11 wetlands 0 0 +poi_tele_810 landmark 0 2745.04 -2957.47 141.707 3.80433 1 Satyrnaar Satyrnaar game_tele 810 2277 139 easternplaguelands 0 0 +poi_tele_811 ruins 0 3704.1 -6063.61 1.4207 4.81044 1 ScalebeardsCave ScalebeardsCave game_tele 811 214 214 thegreatsea 0 0 +poi_tele_812 landmark 0 1994.43 5139.17 265.058 3.07523 1 ScalewingShelf ScalewingShelf game_tele 812 0 0 0 0 +poi_tele_813 settlement 0 1654.25 -4791.25 83.2546 4.22248 1 ScarletBaseCamp ScarletBaseCamp game_tele 813 2265 139 easternplaguelands 0 0 +poi_tele_814 zone 0 2872.6 -764.398 160.332 5.05735 1 ScarletMonastery ScarletMonastery game_tele 814 796 796 scarletmonastery 1 0 +poi_tele_815 landmark 0 2837.12 -511.285 105.317 5.81304 1 ScarletWatchPost ScarletWatchPost game_tele 815 459 85 tirisfalglades 0 0 +poi_tele_816 zone 0 1269.64 -2556.21 93.6088 0.620623 1 Scholomance Scholomance game_tele 816 2057 2057 scholomance 1 0 +poi_tele_817 landmark 0 -0.310414 0.107129 -100.538 2.94612 1 ScottTest ScottTest game_tele 817 267 267 hillsbradfoothills 0 0 +poi_tele_818 settlement 0 -1414.71 1469.51 59.498 1.05066 1 ScrabblescrewsCamp ScrabblescrewsCamp game_tele 818 5435 4706 ruinsofgilneas 0 0 +poi_tele_819 landmark 0 -2185.93 5538.97 64.0729 2.82446 1 ScryersTier ScryersTier game_tele 819 0 0 0 0 +poi_tele_82 landmark 0 48.9976 -2715.55 91.6677 0.158612 1 Barrens Barrens game_tele 82 47 47 thehinterlands 0 0 +poi_tele_820 landmark 0 175.996 -5142.55 0.778698 4.49423 1 ScuttleCoast ScuttleCoast game_tele 820 2400 47 thehinterlands 0 0 +poi_tele_821 zone 0 -7012.47 -1065.13 241.786 5.63162 1 SearingGorge SearingGorge game_tele 821 51 51 searinggorge 1 0 +poi_tele_822 landmark 0 -3955.23 -11727.3 -138.878 0.981744 1 SeatOfTheNaaru SeatOfTheNaaru game_tele 822 0 0 0 0 +poi_tele_823 settlement 0 -813.097 -4880.08 18.995 4.42647 1 SenjinVillage SenjinVillage game_tele 823 307 47 thehinterlands 0 0 +poi_tele_824 landmark 0 -10624.5 1096.66 33.7641 1.31041 1 SentinelHill SentinelHill game_tele 824 108 40 westfall 0 0 +poi_tele_825 landmark 0 -10511.6 1053.2 59.0454 5.07245 1 SentinelTower SentinelTower game_tele 825 108 40 westfall 0 0 +poi_tele_826 landmark 0 -3461.11 -4125.85 17.099 2.25408 1 SentryPoint SentryPoint game_tele 826 4922 4922 twilighthighlands 0 0 +poi_tele_827 landmark 0 799.721 -3995.68 122.007 3.77399 1 Seradane Seradane game_tele 827 356 47 thehinterlands 0 0 +poi_tele_828 landmark 0 -11311.5 -3407.92 7.4681 5.30724 1 SerpentsCoil SerpentsCoil game_tele 828 1440 4 blasted_lands 0 0 +poi_tele_829 ruins 0 820.025 6864.93 -66.7556 6.28127 1 SerpentshrineCavern SerpentshrineCavern game_tele 829 0 0 0 0 +poi_tele_83 landmark 0 6712.31 -21.5758 42.8535 1.15594 1 BashalAran BashalAran game_tele 83 0 0 0 0 +poi_tele_830 landmark 0 -4.6811 -0.09308 0.0062 0.035342 1 Sethekk Sethekk game_tele 830 1677 267 hillsbradfoothills 0 0 +poi_tele_831 landmark 0 -3362.2 4664.12 -101.049 4.6605 1 SethekkHalls SethekkHalls game_tele 831 214 214 thegreatsea 0 0 +poi_tele_832 landmark 0 1609.4 728.543 68.0957 4.05141 1 Sewers Sewers game_tele 832 1497 1497 undercity 0 0 +poi_tele_833 landmark 0 -229.135 2109.18 76.8898 1.267 1 SFK SFK game_tele 833 306 130 silverpineforest 0 0 +poi_tele_834 landmark 0 -40.8716 -19.7538 -13.8065 1.11133 1 SH SH game_tele 834 1677 267 hillsbradfoothills 0 0 +poi_tele_835 landmark 0 -1866.38 655.098 107.241 3.87731 1 ShadowbreakRavine ShadowbreakRavine game_tele 835 4706 4706 ruinsofgilneas 0 0 +poi_tele_836 landmark 0 -234.675 1561.63 76.8921 1.24031 1 ShadowFangKeep ShadowFangKeep game_tele 836 236 130 silverpineforest 0 0 +poi_tele_837 landmark 0 10334 833.902 1326.11 3.62142 1 Shadowglen Shadowglen game_tele 837 0 0 0 0 +poi_tele_838 landmark 0 1664.29 1679.34 120.53 3.2093 1 ShadowGrave ShadowGrave game_tele 838 2117 85 tirisfalglades 0 0 +poi_tele_839 landmark 0 4895.81 -392.013 351.471 5.9611 1 ShadowHold ShadowHold game_tele 839 214 214 thegreatsea 0 0 +poi_tele_84 landmark 0 3815.16 6110.93 265.862 1.15472 1 BashirLanding BashirLanding game_tele 84 0 0 0 0 +poi_tele_840 landmark 0 -3627.9 4941.98 -101.049 3.16039 1 ShadowLabyrinth ShadowLabyrinth game_tele 840 5146 5146 vashjir 0 0 +poi_tele_841 settlement 0 -2998.66 2568.9 76.6306 0.551303 1 ShadowmoonVillage ShadowmoonVillage game_tele 841 214 214 thegreatsea 0 0 +poi_tele_842 settlement 0 -1664.79 3091.67 30.5552 6.07818 1 ShadowpreyVillage ShadowpreyVillage game_tele 842 4706 4706 ruinsofgilneas 0 0 +poi_tele_843 landmark 0 2890.66 -4019.71 138.135 3.34097 1 ShadowsongShrine ShadowsongShrine game_tele 843 139 139 easternplaguelands 0 0 +poi_tele_844 ruins 0 10746.2 926.841 1336.47 6.24541 1 ShadowthreadCave ShadowthreadCave game_tele 844 0 0 0 0 +poi_tele_845 ruins 0 -2896.28 5394.74 -8.88803 1.60241 1 ShadowTomb ShadowTomb game_tele 845 214 214 thegreatsea 0 0 +poi_tele_846 landmark 0 -324.286 -2900.4 77.795 2.67714 1 ShadraAlor ShadraAlor game_tele 846 353 47 thehinterlands 0 0 +poi_tele_847 tavern 0 -3707.79 -2530.37 68.2635 3.31945 1 ShadyRestInn ShadyRestInn game_tele 847 11 11 wetlands 0 0 +poi_tele_848 landmark 0 7702.12 -5708.67 3.11034 3.51184 1 ShalandisIsle ShalandisIsle game_tele 848 0 0 0 0 +poi_tele_849 landmark 0 -5486.8 3630.93 2.10077 3.84603 1 ShalzarusLair ShalzarusLair game_tele 849 5711 4815 kelptharforest 0 0 +poi_tele_85 landmark 0 3825.87 -120.149 -0.200964 5.18504 1 BathransHaunt BathransHaunt game_tele 85 214 214 thegreatsea 0 0 +poi_tele_850 landmark 0 -385.521 4797.07 19.9065 3.15127 1 ShaNaariWastes ShaNaariWastes game_tele 850 0 0 0 0 +poi_tele_851 landmark 0 98.8545 -4379.69 121.322 0.049959 1 ShaolWatha ShaolWatha game_tele 851 1917 47 thehinterlands 0 0 +poi_tele_852 landmark 0 2693.44 7110.67 365.1 0.37965 1 ShartuulsTransporter ShartuulsTransporter game_tele 852 0 0 0 0 +poi_tele_853 settlement 0 -3747.08 5393.6 -3.99659 1.34873 1 ShaTariBaseCamp ShaTariBaseCamp game_tele 853 5146 5146 vashjir 0 0 +poi_tele_854 landmark 0 -2607.52 1401.71 79.9574 5.04617 1 ShatteredPlains ShatteredPlains game_tele 854 4706 4706 ruinsofgilneas 0 0 +poi_tele_855 landmark 0 12947.4 -6893.31 5.68398 3.09154 1 ShatteredSunStaging ShatteredSunStaging game_tele 855 0 0 0 0 +poi_tele_856 landmark 0 286.357 1469.6 -11.4535 2.41453 1 ShatterPoint ShatterPoint game_tele 856 229 130 silverpineforest 0 0 +poi_tele_857 landmark 0 5654.65 -883.661 377.91 2.25167 1 ShatterScarVale ShatterScarVale game_tele 857 0 0 0 0 +poi_tele_858 settlement 0 7367.77 -1560.74 163.446 2.55011 1 ShatterspearVillage ShatterspearVillage game_tele 858 0 0 0 0 +poi_tele_859 landmark 0 -1838.16 5301.79 -12.428 5.9517 1 Shattrath Shattrath game_tele 859 214 214 thegreatsea 0 0 +poi_tele_86 landmark 0 -13210.4 294.518 21.8575 4.92246 1 BattleRing BattleRing game_tele 86 2177 5287 thecapeofstranglethorn 0 0 +poi_tele_860 landmark 0 -5316.24 -215.783 440.907 3.74507 1 ShimmerRidge ShimmerRidge game_tele 860 802 1 dun_morogh 0 0 +poi_tele_861 settlement 0 227.928 -2604.95 159.771 3.53715 1 ShindiggersCamp ShindiggersCamp game_tele 861 1881 47 thehinterlands 0 0 +poi_tele_862 landmark 0 -14140.4 458.677 3.71587 0.997797 1 ShouthernSavageCoast ShouthernSavageCoast game_tele 862 1578 5287 thecapeofstranglethorn 0 0 +poi_tele_863 landmark 0 10400.1 -5956.19 40.7994 0.977561 1 ShrineOfDathremar ShrineOfDathremar game_tele 863 0 0 0 0 +poi_tele_864 landmark 0 7841.73 -2209.34 471.118 5.23693 1 ShrineOfRemulos ShrineOfRemulos game_tele 864 0 0 0 0 +poi_tele_865 landmark 0 4844.91 -602.987 308.754 2.21868 1 ShrineOfTheDeceiver ShrineOfTheDeceiver game_tele 865 214 214 thegreatsea 0 0 +poi_tele_866 landmark 0 -240.214 -4013.38 187.304 2.54097 1 ShrineOfTheDormantFlame ShrineOfTheDormantFlame game_tele 866 354 47 thehinterlands 0 0 +poi_tele_867 landmark 0 -7426.87 1005.31 1.13359 2.96086 1 Silithus Silithus game_tele 867 12 12 elwynn 0 0 +poi_tele_868 landmark 0 -3126.44 -11957.6 4.28641 1.8119 1 SiltingShore SiltingShore game_tele 868 0 0 0 0 +poi_tele_869 landmark 0 9487.69 -7279.2 14.2866 6.16478 1 SilvermoonCity SilvermoonCity game_tele 869 0 0 0 0 +poi_tele_87 landmark 0 3665.57 -6014.97 5.71029 5.4152 1 BayOfStorms BayOfStorms game_tele 87 214 214 thegreatsea 0 0 +poi_tele_870 landmark 0 -5094.34 -11129.6 25.058 2.78659 1 SilvermystIsle SilvermystIsle game_tele 870 0 0 0 0 +poi_tele_871 zone 0 878.74 1359.33 53.05 5.89929 1 SilverpineForest SilverpineForest game_tele 871 130 130 silverpineforest 1 0 +poi_tele_872 mine 0 -4813.81 -2970.08 320.757 3.14151 1 SilverStreamMine SilverStreamMine game_tele 872 149 38 lochmodan 0 0 +poi_tele_873 landmark 0 2137.3 -1189.05 98.308 3.23488 1 SilverwindRefuge SilverwindRefuge game_tele 873 85 85 tirisfalglades 0 0 +poi_tele_874 landmark 0 1486.44 -1866 113.941 2.75186 1 SilverwingGrove SilverwingGrove game_tele 874 202 28 westernplaguelands 0 0 +poi_tele_875 landmark 0 1810.07 -2001.61 103.117 3.68491 1 SilverwingOutpost SilverwingOutpost game_tele 875 28 28 westernplaguelands 0 0 +poi_tele_876 landmark 0 1617.43 5337.21 265.469 1.44789 1 SingingRidge SingingRidge game_tele 876 0 0 0 0 +poi_tele_877 landmark 0 428.398 467.608 97.4092 1.555 1 SishirCanyon SishirCanyon game_tele 877 279 267 hillsbradfoothills 0 0 +poi_tele_878 landmark 0 3604.04 4963.59 267.724 0.788938 1 Skald Skald game_tele 878 0 0 0 0 +poi_tele_879 settlement 0 -4089.38 1787.12 100.382 5.96761 1 SkethLonBaseCamp SkethLonBaseCamp game_tele 879 2365 11 wetlands 0 0 +poi_tele_88 landmark 0 3872.82 -4755.78 268.5 3.94022 1 BearsHead BearsHead game_tele 88 2037 2037 quelthalas 0 0 +poi_tele_880 landmark 0 -3055.5 2210.29 66.5523 5.54036 1 SkethLonWreckage SkethLonWreckage game_tele 880 214 214 thegreatsea 0 0 +poi_tele_881 landmark 0 -3674.85 3912.42 298.476 5.27651 1 SkethylMountains SkethylMountains game_tele 881 5146 5146 vashjir 0 0 +poi_tele_882 landmark 0 -3770.72 3684.42 277.236 4.34424 1 Skettis Skettis game_tele 882 5146 5146 vashjir 0 0 +poi_tele_883 landmark 0 9519.69 -6531.37 21.9874 3.06352 1 SkulkingRow SkulkingRow game_tele 883 0 0 0 0 +poi_tele_884 landmark 0 369.856 -3802.84 170.093 3.58942 1 SkulkRock SkulkRock game_tele 884 351 47 thehinterlands 0 0 +poi_tele_885 landmark 0 1446.31 -4879.79 11.3317 0.477731 1 SkullRock SkullRock game_tele 885 139 139 easternplaguelands 0 0 +poi_tele_886 landmark 0 2509.9 7322.28 374.229 1.60016 1 SkyguardOutpost SkyguardOutpost game_tele 886 0 0 0 0 +poi_tele_887 landmark 0 -5.10147 0.126865 -1.12788 3.08034 1 SL SL game_tele 887 267 267 hillsbradfoothills 0 0 +poi_tele_888 landmark 0 -3345.84 2112.94 102.374 4.71491 1 SlagWatch SlagWatch game_tele 888 2365 11 wetlands 0 0 +poi_tele_889 landmark 0 846.782 -566.79 142.518 0.268342 1 SlaughterHollow SlaughterHollow game_tele 889 283 267 hillsbradfoothills 0 0 +poi_tele_89 landmark 0 -3974.75 -3814.87 37.7727 3.30494 1 BeezilsWreck BeezilsWreck game_tele 89 5462 4922 twilighthighlands 0 0 +poi_tele_890 landmark 0 -10639.3 -2092.15 101.664 2.48375 1 SleepingGorge SleepingGorge game_tele 890 2938 41 deadwindpass 0 0 +poi_tele_891 landmark 0 -7660.35 -3011.37 132.992 5.02368 1 SlitherRock SlitherRock game_tele 891 2419 46 burningsteppes 0 0 +poi_tele_892 landmark 0 1610.83 -323.433 18.6738 6.28022 1 SMArmory SMArmory game_tele 892 85 85 tirisfalglades 0 0 +poi_tele_893 landmark 0 855.683 1321.5 18.6709 0.001747 1 SMCath SMCath game_tele 893 130 130 silverpineforest 0 0 +poi_tele_894 landmark 0 1702.01 1053.5 18.4922 1.46594 1 SMGY SMGY game_tele 894 811 85 tirisfalglades 0 0 +poi_tele_895 landmark 0 255.346 -209.09 18.6773 6.26656 1 SMLib SMLib game_tele 895 1683 267 hillsbradfoothills 0 0 +poi_tele_896 landmark 0 4810.01 3843.66 223.376 6.06345 1 SocretharsSeat SocretharsSeat game_tele 896 0 0 0 0 +poi_tele_897 landmark 0 2312.13 1405.46 33.3337 1.15155 1 SollidenFarmstead SollidenFarmstead game_tele 897 156 85 tirisfalglades 0 0 +poi_tele_898 landmark 0 1257.8 -1705.34 60.6843 3.72296 1 SorrowHill SorrowHill game_tele 898 197 28 westernplaguelands 0 0 +poi_tele_899 landmark 0 -10498.9 -4189.17 23.3262 4.97345 1 Sorrowmurk Sorrowmurk game_tele 899 74 8 swampofsorrows 0 0 +poi_tele_9 landmark 0 -2020.72 -2107.58 91.9626 5.49717 1 FieldsOfBlood FieldsOfBlood game_tele 9 327 45 arathihighlands 0 0 +poi_tele_90 landmark 0 -10361.1 -1529.87 91.4594 5.96075 1 BeggarsHaunt BeggarsHaunt game_tele 90 576 10 duskwood 0 0 +poi_tele_900 landmark 0 -4357.47 4612.63 -39.8305 1.7972 1 SorrowWingPoint SorrowWingPoint game_tele 900 5146 5146 vashjir 0 0 +poi_tele_901 landmark 0 3549.42 5593.04 -3.47566 3.88262 1 SoulgrindersBarrow SoulgrindersBarrow game_tele 901 0 0 0 0 +poi_tele_902 landmark 0 -8665.15 -4725.35 0.656339 4.02044 1 SouthbreakShore SouthbreakShore game_tele 902 44 44 redridgemountains 0 0 +poi_tele_903 landmark 0 -2333.57 -2295.55 92.6909 4.76754 1 SouthernBarrens SouthernBarrens game_tele 903 11 11 wetlands 0 0 +poi_tele_904 landmark 0 -1696.57 -2553.96 91.2953 3.2423 1 SouthernGoldRoad SouthernGoldRoad game_tele 904 45 45 arathihighlands 0 0 +poi_tele_905 landmark 0 -823.97 3345 97.486 5.93392 1 SouthernRampart SouthernRampart game_tele 905 214 214 thegreatsea 0 0 +poi_tele_906 landmark 0 -13668.6 471.263 37.4754 1.95598 1 SouthernSavageCoast SouthernSavageCoast game_tele 906 1578 5287 thecapeofstranglethorn 0 0 +poi_tele_907 landmark 0 2815.68 -3790.07 88.207 2.8713 1 SouthfuryRiver SouthfuryRiver game_tele 907 2277 139 easternplaguelands 0 0 +poi_tele_908 landmark 0 -5438.02 -2441.87 400.492 2.49866 1 SouthGateOutpost SouthGateOutpost game_tele 908 806 38 lochmodan 0 0 +poi_tele_909 landmark 0 -5645.3 -2540 373.388 0.840292 1 SouthGatePass SouthGatePass game_tele 909 839 38 lochmodan 0 0 +poi_tele_91 landmark 0 -370.444 897.319 132.97 1.03222 1 BerensPeril BerensPeril game_tele 91 231 130 silverpineforest 0 0 +poi_tele_910 ruins 0 -9317.12 -3016.24 9.98814 0.142927 1 SouthmoonRuins SouthmoonRuins game_tele 910 70 44 redridgemountains 0 0 +poi_tele_911 landmark 0 -694.861 406.638 74.9142 6.13966 1 SouthpointTower SouthpointTower game_tele 911 285 267 hillsbradfoothills 0 0 +poi_tele_912 landmark 0 3166.38 -5784.64 6.85091 5.34844 1 SouthridgeBeach SouthridgeBeach game_tele 912 139 139 easternplaguelands 0 0 +poi_tele_913 ruins 0 -853.221 -533.529 9.98556 0.242866 1 RuinsOfSouthshore RuinsOfSouthshore game_tele 913 271 267 hillsbradfoothills 0 0 +poi_tele_914 landmark 0 -2033.15 7551.71 -92.349 4.13842 1 SouthwindCleft SouthwindCleft game_tele 914 0 0 0 0 +poi_tele_915 settlement 0 -7108.06 320.415 18.0411 2.87455 1 SouthwindVillage SouthwindVillage game_tele 915 1 1 dun_morogh 0 0 +poi_tele_916 landmark 0 130.446 -127.482 -1.59053 1.86731 1 SP SP game_tele 916 279 267 hillsbradfoothills 0 0 +poi_tele_917 landmark 0 -1326.36 2371.99 88.9503 6.19165 1 SpinebreakerPost SpinebreakerPost game_tele 917 4706 4706 ruinsofgilneas 0 0 +poi_tele_918 landmark 0 -13772.4 -3.7118 41.9401 5.65521 1 SpiritDen SpiritDen game_tele 918 1742 5287 thecapeofstranglethorn 0 0 +poi_tele_919 landmark 0 -2423.72 8040.33 -43.698 1.98013 1 SpiritFields SpiritFields game_tele 919 0 0 0 0 +poi_tele_92 landmark 0 -2626.6 -12430.8 2.59312 3.08502 1 BerylCoast BerylCoast game_tele 92 0 0 0 0 +poi_tele_920 landmark 0 -1013.67 224.643 134.661 1.12784 1 SpiritRise SpiritRise game_tele 920 288 267 hillsbradfoothills 0 0 +poi_tele_921 landmark 0 -866.113 -4284.06 76.167 3.62166 1 SpiritRock SpiritRock game_tele 921 47 47 thehinterlands 0 0 +poi_tele_922 landmark 0 -10385.2 -2600.12 21.7007 4.60431 1 SplinterspearJunction SplinterspearJunction game_tele 922 1780 8 swampofsorrows 0 0 +poi_tele_923 landmark 0 2270.94 -2538.19 93.9198 0.060429 1 SplintertreePost SplintertreePost game_tele 923 2619 139 easternplaguelands 0 0 +poi_tele_924 landmark 0 -4998.14 -2219.52 -53.2078 2.3798 1 SplithoofCrag SplithoofCrag game_tele 924 808 1 dun_morogh 0 0 +poi_tele_925 landmark 0 -5037.83 -2381.29 -54.2846 5.10748 1 SplithoofHold SplithoofHold game_tele 925 808 1 dun_morogh 0 0 +poi_tele_926 landmark 0 209.095 8547.4 23.1083 5.33054 1 Sporeggar Sporeggar game_tele 926 0 0 0 0 +poi_tele_927 landmark 0 9.83957 2.74496 822.096 0.106614 1 SSC SSC game_tele 927 279 267 hillsbradfoothills 0 0 +poi_tele_928 landmark 0 -319.24 99.9 -131.85 3.19 1 ST ST game_tele 928 286 267 hillsbradfoothills 0 0 +poi_tele_929 ruins 0 -10786.7 -3743.04 24.4991 3.0021 1 StagalbogCave StagalbogCave game_tele 929 1817 8 swampofsorrows 0 0 +poi_tele_93 landmark 0 -3.9967 14.6363 -44.8009 1.21574 1 Bf Bf game_tele 93 267 267 hillsbradfoothills 0 0 +poi_tele_930 landmark 0 -6446.24 211.361 4.05948 4.18068 1 StaghelmPoint StaghelmPoint game_tele 930 132 1 dun_morogh 0 0 +poi_tele_931 settlement 0 9838.87 385.538 1307.78 0.769623 1 StarbreezeVillage StarbreezeVillage game_tele 931 0 0 0 0 +poi_tele_932 settlement 0 7165.69 -4054.54 724.251 1.31543 1 StarfallVillage StarfallVillage game_tele 932 0 0 0 0 +poi_tele_933 landmark 0 -6908.08 -4801.39 8.15214 5.07916 1 SteamwheedlePort SteamwheedlePort game_tele 933 3 3 badlands 0 0 +poi_tele_934 landmark 0 -5476.73 -666.917 392.674 3.48888 1 SteelgrillsDepot SteelgrillsDepot game_tele 934 189 1 dun_morogh 0 0 +poi_tele_935 landmark 0 -10798.9 1381.56 31.0576 0.622382 1 StendelsPond StendelsPond game_tele 935 919 40 westfall 0 0 +poi_tele_936 landmark 0 -3378.24 -12347.1 22.5696 0.068326 1 StillpineHold StillpineHold game_tele 936 0 0 0 0 +poi_tele_937 landmark 0 2296.74 825.657 33.764 4.40704 1 StillwaterPond StillwaterPond game_tele 937 810 85 tirisfalglades 0 0 +poi_tele_938 landmark 0 9266.84 -7240.15 16.4273 2.81695 1 StillwhisperPond StillwhisperPond game_tele 938 0 0 0 0 +poi_tele_939 landmark 0 -10446.9 -3261.91 20.1795 5.02142 1 Stonard Stonard game_tele 939 75 8 swampofsorrows 0 0 +poi_tele_94 landmark 0 -151.89 106.96 -39.87 4.53 1 Bfd Bfd game_tele 94 267 267 hillsbradfoothills 0 0 +poi_tele_940 landmark 0 -2640.08 4404.38 35.1 4.14529 1 StonebreakerHold StonebreakerHold game_tele 940 214 214 thegreatsea 0 0 +poi_tele_941 landmark 0 -1951.33 -537.594 -13.1229 3.48631 1 StonebullLake StonebullLake game_tele 941 2397 267 hillsbradfoothills 0 0 +poi_tele_942 landmark 0 -8982.69 -1206.38 72.206 3.0602 1 StoneCairnLake StoneCairnLake game_tele 942 86 12 elwynn 0 0 +poi_tele_943 ruins 0 -4339.1 -3318.75 34.2536 2.30041 1 StonemaulRuins StonemaulRuins game_tele 943 1037 4922 twilighthighlands 0 0 +poi_tele_944 landmark 0 -5882.25 -2921.18 366.988 2.04588 1 StonesplinterValley StonesplinterValley game_tele 944 923 38 lochmodan 0 0 +poi_tele_945 landmark 0 1570.92 1031.52 138.276 3.33006 1 StonetalonMountains StonetalonMountains game_tele 945 130 130 silverpineforest 0 0 +poi_tele_946 landmark 0 2678.38 1497.46 233.869 6.26038 1 StonetalonPeak StonetalonPeak game_tele 946 169 85 tirisfalglades 0 0 +poi_tele_947 landmark 0 346.86 3069.39 23.6589 3.0193 1 StonewallCanyon StonewallCanyon game_tele 947 2398 130 silverpineforest 0 0 +poi_tele_948 landmark 0 -9323.5 -3030.84 132.559 2.94713 1 Stonewatch Stonewatch game_tele 948 70 44 redridgemountains 0 0 +poi_tele_949 landmark 0 -9477.04 -3353.42 27.419 1.65792 1 StonewatchFalls StonewatchFalls game_tele 949 71 44 redridgemountains 0 0 +poi_tele_95 landmark 0 4869.55 -7058.97 105.579 4.8442 1 BitterReaches BitterReaches game_tele 95 0 0 0 0 +poi_tele_950 landmark 0 -9386.59 -3039.03 139.437 4.8054 1 StonewatchKeep StonewatchKeep game_tele 950 2099 44 redridgemountains 0 0 +poi_tele_951 landmark 0 -9298.19 -2972.84 124.909 1.3418 1 StonewatchTower StonewatchTower game_tele 951 999 44 redridgemountains 0 0 +poi_tele_952 landmark 0 -4750.07 -3328.02 310.257 4.61609 1 StonewroughtDam StonewroughtDam game_tele 952 146 38 lochmodan 0 0 +poi_tele_953 landmark 0 7612.5 -2906.39 463.678 3.8829 1 StormrageBarrowDens StormrageBarrowDens game_tele 953 0 0 0 0 +poi_tele_954 landmark 0 -8833.07 622.778 93.9317 0.6771 1 Stormwind Stormwind game_tele 954 5148 1519 stormwind 0 0 +poi_tele_955 landmark 0 659.762 -959.316 164.404 0.433716 1 Strahnbrad Strahnbrad game_tele 955 280 267 hillsbradfoothills 0 0 +poi_tele_956 zone 0 -12644.3 -377.411 10.1021 6.09978 1 StranglethornVale StranglethornVale game_tele 956 5339 5339 stranglethornvale 1 0 +poi_tele_957 landmark 0 3387.95 -3380.34 142.76 0.005913 1 Strat Strat game_tele 957 2017 2017 stratholme 0 0 +poi_tele_958 zone 0 3352.92 -3379.03 144.782 6.25978 1 Stratholme Stratholme game_tele 958 2017 2017 stratholme 1 0 +poi_tele_959 landmark 0 -1551.2 -1808.1 67.5219 3.119 1 StromgardeKeep StromgardeKeep game_tele 959 324 45 arathihighlands 0 0 +poi_tele_96 wilderness 0 -3528.34 -1339.17 10.2396 3.07711 1 BlackChannelMarsh BlackChannelMarsh game_tele 96 1018 11 wetlands 0 0 +poi_tele_960 settlement 0 7960.27 -7257.01 136.908 0.234555 1 SuncrownVillage SuncrownVillage game_tele 960 0 0 0 0 +poi_tele_961 landmark 0 7154.17 -7070.49 54.9794 5.56207 1 SunctumOfTheSun SunctumOfTheSun game_tele 961 0 0 0 0 +poi_tele_962 wilderness 0 -2873.95 -1496.04 9.47361 1.04607 1 SundownMarsh SundownMarsh game_tele 962 5304 11 wetlands 0 0 +poi_tele_963 landmark 0 2498.92 2368.74 134.379 4.71414 1 SunfuryHold SunfuryHold game_tele 963 85 85 tirisfalglades 0 0 +poi_tele_964 landmark 0 9982.85 -7062.83 45.3625 0.873881 1 SunfurySpire SunfurySpire game_tele 964 0 0 0 0 +poi_tele_965 landmark 0 7631.29 -7338.48 272.726 3.43678 1 SungrazePeak SungrazePeak game_tele 965 0 0 0 0 +poi_tele_966 landmark 0 966.147 926.499 104.649 1.27231 1 SunRockRetreat SunRockRetreat game_tele 966 1338 130 silverpineforest 0 0 +poi_tele_967 landmark 0 8715.52 -6101.45 20.1472 0.173306 1 SunsailAnchorage SunsailAnchorage game_tele 967 0 0 0 0 +poi_tele_968 landmark 0 -1520.44 8552.38 7.26028 1.69728 1 SunspringPost SunspringPost game_tele 968 0 0 0 0 +poi_tele_969 landmark 0 10331.1 -6235.42 26.7759 1.94594 1 SunstriderIsle SunstriderIsle game_tele 969 0 0 0 0 +poi_tele_97 ruins 0 -7270.01 -804.3 295.929 2.43188 1 BlackcharCave BlackcharCave game_tele 97 1957 51 searinggorge 0 0 +poi_tele_970 landmark 0 12574.1 -6774.81 15.0904 3.13788 1 SunwellPlateau SunwellPlateau game_tele 970 0 0 0 0 +poi_tele_971 landmark 0 1.60675 8.07684 -4.12796 4.467 1 SV SV game_tele 971 279 267 hillsbradfoothills 0 0 +poi_tele_972 wilderness 0 -2959.77 -3881.9 32.9334 5.43104 1 SwamplightManor SwamplightManor game_tele 972 5155 4922 twilighthighlands 0 0 +poi_tele_973 zone 0 -10345.4 -2773.42 21.99 5.08426 1 SwampOfSorrows SwampOfSorrows game_tele 973 8 8 swampofsorrows 1 0 +poi_tele_974 wilderness 0 104.534 5199.31 21.1033 4.22156 1 SwampratPost SwampratPost game_tele 974 0 0 0 0 +poi_tele_975 landmark 0 1784.23 924.563 15.581 3.5177 1 SWP SWP game_tele 975 811 85 tirisfalglades 0 0 +poi_tele_976 landmark 0 2018.91 6854.47 171.409 0.087216 1 Sylvanaar Sylvanaar game_tele 976 0 0 0 0 +poi_tele_977 ruins 0 -6547.88 -3855.96 -58.7492 5.31404 1 TahondaRuins TahondaRuins game_tele 977 5496 3 badlands 0 0 +poi_tele_978 landmark 0 6209.51 -1927.01 569.393 3.82137 1 TalonbranchGlade TalonbranchGlade game_tele 978 214 214 thegreatsea 0 0 +poi_tele_979 landmark 0 -1213.24 -12436.8 94.9062 4.32594 1 TalonStand TalonStand game_tele 979 0 0 0 0 +poi_tele_98 landmark 0 4249.99 740.102 -25.671 1.34062 1 BlackfathomDeeps BlackfathomDeeps game_tele 98 214 214 thegreatsea 0 0 +poi_tele_980 landmark 0 2735.06 -3867.44 98.6548 3.56139 1 TalrendisPoint TalrendisPoint game_tele 980 2277 139 easternplaguelands 0 0 +poi_tele_981 landmark 0 -7931.2 -3414.28 80.7365 0.66522 1 Tanaris Tanaris game_tele 981 46 46 burningsteppes 0 0 +poi_tele_982 settlement 0 -7214.21 -1732.2 244.448 3.61783 1 TannerCamp TannerCamp game_tele 982 1444 51 searinggorge 0 0 +poi_tele_983 landmark 0 -34.1467 -923.366 54.5576 0.15019 1 TarrenMill TarrenMill game_tele 983 272 267 hillsbradfoothills 0 0 +poi_tele_984 landmark 0 -2560.76 7300.72 13.9485 2.18422 1 Telaar Telaar game_tele 984 0 0 0 0 +poi_tele_985 landmark 0 -1953.56 7012.48 -88.5123 4.2248 1 TelaariBasin TelaariBasin game_tele 985 0 0 0 0 +poi_tele_986 settlement 0 -1664.4 -10916.8 58.8456 5.88417 1 TelathionsCamp TelathionsCamp game_tele 986 0 0 0 0 +poi_tele_987 landmark 0 10111.3 1557.73 1324.33 4.04239 1 Teldrassil Teldrassil game_tele 987 0 0 0 0 +poi_tele_988 landmark 0 278.582 6001.27 144.73 1.53156 1 Telredor Telredor game_tele 988 0 0 0 0 +poi_tele_989 landmark 0 3099.36 1518.73 190.3 4.72592 1 TempestKeep TempestKeep game_tele 989 169 85 tirisfalglades 0 0 +poi_tele_99 settlement 0 -2462.03 -3157.79 35.5825 4.91817 1 BlackhoofVillage BlackhoofVillage game_tele 99 4922 4922 twilighthighlands 0 0 +poi_tele_990 landmark 0 3967.58 -7219.97 17.0967 2.6396 1 TempleOfArkkoran TempleOfArkkoran game_tele 990 0 0 0 0 +poi_tele_991 landmark 0 -10450.3 -3825.44 18.0679 6.03616 1 TempleOfAtalHakkar TempleOfAtalHakkar game_tele 991 1477 1477 thetempleofatalhakkar 0 0 +poi_tele_992 landmark 0 78.9769 4333.58 101.553 0.011347 1 TempleOfTelhamat TempleOfTelhamat game_tele 992 0 0 0 0 +poi_tele_993 landmark 0 9671.4 2524.02 1333.11 3.23265 1 TempleOfTheMoon TempleOfTheMoon game_tele 993 0 0 0 0 +poi_tele_994 landmark 0 3547.67 -5279.93 107.188 4.80808 1 TempleOfZinMalor TempleOfZinMalor game_tele 994 2037 2037 quelthalas 0 0 +poi_tele_995 wilderness 0 -2000.47 4451.54 8.37917 4.40447 1 TerokkarForest TerokkarForest game_tele 995 214 214 thegreatsea 0 0 +poi_tele_996 landmark 0 -3781.87 3531.08 285.715 4.45498 1 TerokksRest TerokksRest game_tele 996 5146 5146 vashjir 0 0 +poi_tele_997 landmark 0 -1874.51 5429.28 -10.4637 0.084994 1 TerraceOfLight TerraceOfLight game_tele 997 0 0 0 0 +poi_tele_998 landmark 0 2844.08 -691.716 139.331 5.27247 1 TerraceOfRepose TerraceOfRepose game_tele 998 796 796 scarletmonastery 0 0 +poi_tele_999 landmark 0 2957.87 -2794.79 110.464 1.19003 1 Terrordale Terrordale game_tele 999 2627 139 easternplaguelands 0 0 +stonefire_tavern tavern 0 -4842.58 -864.531 501.914 0.867185 1 stonefire_tavern manual 0 5719 1537 ironforge 0 0 +stormwind_brewfest festival 0 -9127.34 340.574 93.99 0.407049 1 stormwind_brewfest manual 0 12 12 elwynn 0 0 +stormwind_economy_auction economy_auction 0 -8820.09 657.936 98.116 3.59538 1 Performative economic visit: arrival/withdrawal point in front of native service NPC; no transactions Sturmwind: Auktionshausbesuch manual 0 0 1519 stormwind 0 1 +stormwind_economy_bank economy_bank 0 -8904.74 633.24 98.1516 5.25344 1 Performative economic visit: arrival/withdrawal point in front of native service NPC; no transactions Sturmwind: Bankbesuch manual 0 0 1519 stormwind 0 1 +stormwind_economy_market economy_vendor 0 -8827.64 602.019 95.7618 0.942478 1 Performative economic visit: arrival/withdrawal point in front of native service NPC; no transactions Sturmwind: Waren im Handelsdistrikt manual 0 0 1519 stormwind 0 1 +stormwind_leisure_trade leisure 0 -8835.7 620.485 93.2388 0.772328 1 Leisure anchor at native TradeDistrict ground position; no teleport is performed Sturmwind: Freizeit im Handelsdistrikt manual 0 0 1519 stormwind 0 1 +stormwind_rest_bench rest_seat 0 -8463.46 851.802 105.786 6.12611 1 Rest approach to native Stormwind stone bench spawn 219847 Sturmwind: Bankpause manual 0 0 1519 stormwind 0 1 +the_gilded_rose tavern 0 -8864.73 669.015 97.9031 5.36749 1 the_gilded_rose manual 0 5148 1519 stormwind 0 0 diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-leisure-db.py b/doc/clientless/checkpoints/2026-10-27-profession/vcore-leisure-db.py new file mode 100644 index 0000000000..f3b205e237 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-leisure-db.py @@ -0,0 +1,10 @@ +from pathlib import Path +import os,re,subprocess,sys +c=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text();v=re.search(r'^WorldDatabaseInfo\s*=\s*"([^"]+)"',c,re.M).group(1).split(';');h,port,u,p,d=v +a=['mysql','--protocol=TCP','--host='+h,'--port='+port,'--user='+u,'--database='+d,'--batch','--default-character-set=utf8mb4','--connect-timeout=10'];env=os.environ.copy();env['MYSQL_PWD']=p +q="SELECT entry,name FROM creature_template WHERE entry IN (7385,7386); SELECT name,map,position_x,position_y,position_z,orientation FROM game_tele WHERE name IN ('TradeDistrict','CathedralSquare'); SELECT action_key,kind,requirement FROM vcore_adventure_action WHERE action_key LIKE 'social%';" +if sys.argv[1:]==['apply']: + q='START TRANSACTION;\n'+Path('/home/wow_admin/wow_cata_server/source/TrinityCore/sql/custom/world/2026_10_27_02_adventure_leisure.sql').read_text()+"\nSELECT a.action_key,a.kind,a.requirement,i.weight FROM vcore_adventure_action a JOIN vcore_adventure_action_intent i USING(action_key) WHERE i.intent='leisure'; SELECT w.point_key,w.position_x,w.position_y,w.position_z FROM vcore_clientless_world_point w WHERE w.point_key='stormwind_leisure_trade'; COMMIT;" +elif sys.argv[1:]!=['inspect']:raise SystemExit('inspect or apply only') +r=subprocess.run(a,input=q,text=True,capture_output=True,env=env);print(r.stdout,end='');print(r.stderr.replace(p,'[redacted]'),file=sys.stderr,end='') if r.returncode else None +raise SystemExit(r.returncode) diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-build.log.txt b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-build.log.txt new file mode 100644 index 0000000000..d6a0e904d1 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-build.log.txt @@ -0,0 +1,777 @@ +[1/751] cd /home/wow_admin/wow_cata_server/source/TrinityCore && /usr/bin/cmake -DBUILDDIR="/home/wow_admin/wow_cata_server/build/debug" -P /home/wow_admin/wow_cata_server/source/TrinityCore/cmake/genrev.cmake /home/wow_admin/wow_cata_server/build/debug +[2/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessPerceptionMgr.cpp.o +[3/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureProfessionTargets.cpp.o +[4/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessRouteRecorderMgr.cpp.o +[5/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessPlayerMgr.cpp.o +[6/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessCompanionMgr.cpp.o +[7/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessLuaEngine.cpp.o +[8/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessFlightMgr.cpp.o +[9/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessTransportMgr.cpp.o +[10/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessActionExecutorMgr.cpp.o +[11/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessWorldPointMgr.cpp.o +[12/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessTravelMgr.cpp.o +[13/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/ClientlessTravelGraphMgr.cpp.o +[14/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/gen_scriptloader/static/ScriptLoader.cpp.o +[15/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/WorldStates/WorldStateMgr.cpp.o +[16/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Battlefield/battlefield_script_loader.cpp.o +[17/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Battlefield/BattlefieldTB.cpp.o +[18/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_achievement.cpp.o +[19/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_ahbot.cpp.o +[20/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Battlefield/BattlefieldWG.cpp.o +[21/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_arena.cpp.o +[22/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_bf.cpp.o +[23/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_account.cpp.o +[24/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_ban.cpp.o +[25/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_cast.cpp.o +[26/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_cheat.cpp.o +[27/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_deserter.cpp.o +[28/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_character.cpp.o +[29/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_event.cpp.o +[30/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_disable.cpp.o +[31/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_gm.cpp.o +[32/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_honor.cpp.o +[33/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_group.cpp.o +[34/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_debug.cpp.o +[35/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_guild.cpp.o +[36/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_gobject.cpp.o +[37/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_go.cpp.o +[38/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_instance.cpp.o +[39/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_learn.cpp.o +[40/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_lfg.cpp.o +[41/751] Building CXX object src/server/game/CMakeFiles/game.dir/World/World.cpp.o +[42/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_message.cpp.o +[43/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_list.cpp.o +[44/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_mmaps.cpp.o +[45/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_lookup.cpp.o +[46/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_modify.cpp.o +[47/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_pet.cpp.o +[48/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_script_loader.cpp.o +[49/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_misc.cpp.o +[50/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_quest.cpp.o +[51/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_rbac.cpp.o +[52/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_npc.cpp.o +[53/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_reset.cpp.o +[54/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_send.cpp.o +[55/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/custom_script_loader.cpp.o +[56/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_server.cpp.o +[57/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_titles.cpp.o +[58/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_reload.cpp.o +[59/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_ticket.cpp.o +[60/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_tele.cpp.o +[61/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_wp.cpp.o +[62/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/arathi_highlands.cpp.o +[63/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/vcore_diagnostics.cpp.o +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/vcore_diagnostics.cpp:236:39: warning: ‘std::optional > VCoreDiagnostics::DisplayTextColumn(const std::string&, const std::string&)’ defined but not used [-Wunused-function] + 236 | static std::optional DisplayTextColumn( + | ^~~~~~~~~~~~~~~~~ +[64/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/eastern_kingdoms_script_loader.cpp.o +[65/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_dun_morogh.cpp.o +[66/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_blasted_lands.cpp.o +[67/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_dun_morogh_area_coldridge_valley.cpp.o +[68/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/viano_adventurers.cpp.o +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp: In member function ‘void VianoAdventurers::npc_horde_adventurer_melee::npc_horde_adventurer_meleeAI::HandleOutOfCombatRecovery(uint32)’: +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp:310:49: warning: comparison of integer expressions of different signedness: ‘int32’ {aka ‘int’} and ‘uint32’ {aka ‘unsigned int’} [-Wsign-compare] + 310 | if (maxMana > 0 && me->GetPower(POWER_MANA) < maxMana) + | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp: In member function ‘void VianoAdventurers::npc_horde_adventurer_tank::npc_horde_adventurer_tankAI::HandleOutOfCombatRecovery(uint32)’: +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp:861:57: warning: comparison of integer expressions of different signedness: ‘int32’ {aka ‘int’} and ‘uint32’ {aka ‘unsigned int’} [-Wsign-compare] + 861 | if (maxMana && me->GetPower(POWER_MANA) < maxMana) + | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp: In member function ‘void VianoAdventurers::npc_horde_adventurer_healer::npc_horde_adventurer_healerAI::HandleOutOfCombatRecovery(uint32, Player*)’: +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_adventurers.cpp:1518:57: warning: comparison of integer expressions of different signedness: ‘int32’ {aka ‘int’} and ‘uint32’ {aka ‘unsigned int’} [-Wsign-compare] + 1518 | if (maxMana && me->GetPower(POWER_MANA) < maxMana) + | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ +[69/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_duskwood.cpp.o +[70/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_ghostlands.cpp.o +[71/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_elwynn_forest.cpp.o +[72/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_hinterlands.cpp.o +[73/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_ironforge.cpp.o +[74/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/viano_bot_commands.cpp.o +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationAdd(ChatHandler*, const char*)’: +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2062:20: warning: unused variable ‘loaded’ [-Wunused-variable] + 2062 | bool const loaded = sClientlessWorldPointMgr->Reload(); + | ^~~~~~ +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationMove(ChatHandler*, const char*)’: +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2099:20: warning: unused variable ‘loaded’ [-Wunused-variable] + 2099 | bool const loaded = sClientlessWorldPointMgr->Reload(); + | ^~~~~~ +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp: In function ‘bool VianoBotCommands::HandleClientlessLocationRemove(ChatHandler*, const char*)’: +/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/scripts/Custom/viano_bot_commands.cpp:2123:20: warning: unused variable ‘loaded’ [-Wunused-variable] + 2123 | bool const loaded = sClientlessWorldPointMgr->Reload(); + | ^~~~~~ +[75/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_redridge_mountains.cpp.o +[76/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_silverpine_forest.cpp.o +[77/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_swamp_of_sorrows.cpp.o +[78/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_stormwind_city.cpp.o +[79/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_hillsbrad_foothills.cpp.o +[80/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_tirisfal_glades.cpp.o +[81/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_tol_barad.cpp.o +[82/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_undercity.cpp.o +[83/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_western_plaguelands.cpp.o +[84/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/alterac_valley.cpp.o +[85/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/boss_balinda.cpp.o +[86/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_wetlands.cpp.o +[87/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/boss_drekthar.cpp.o +[88/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_twilight_highlands.cpp.o +[89/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/boss_galvangar.cpp.o +[90/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/zone_westfall.cpp.o +[91/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/AlteracValley/boss_vanndar.cpp.o +[92/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BaradinHold/instance_baradin_hold.cpp.o +[93/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BaradinHold/boss_alizabal.cpp.o +[94/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BaradinHold/boss_occuthar.cpp.o +[95/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp.o +[96/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/bastion_of_twilight.cpp.o +[97/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/instance_bastion_of_twilight.cpp.o +[98/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/boss_halfus_wyrmbreaker.cpp.o +[99/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/boss_chogall.cpp.o +[100/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_beauty.cpp.o +[101/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp.o +[102/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_ascendant_lord_obsidius.cpp.o +[103/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/boss_ascendant_council.cpp.o +[104/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_corla_herald_of_twilight.cpp.o +[105/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BastionOfTwilight/boss_theralion_and_valiona.cpp.o +[106/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_karsh_steelbender.cpp.o +[107/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp.o +[108/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp.o +[109/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp.o +[110/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp.o +[111/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp.o +[112/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp.o +[113/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp.o +[114/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp.o +[115/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp.o +[116/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp.o +[117/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp.o +[118/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp.o +[119/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp.o +[120/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp.o +[121/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp.o +[122/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp.o +[123/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp.o +[124/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp.o +[125/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp.o +[126/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp.o +[127/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp.o +[128/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp.o +[129/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp.o +[130/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp.o +[131/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp.o +[132/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp.o +[133/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp.o +[134/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp.o +[135/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/blackwing_descent.cpp.o +[136/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/instance_blackwing_descent.cpp.o +[137/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp.o +[138/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_atramedes.cpp.o +[139/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp.o +[140/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_chimaeron.cpp.o +[141/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_magmaw.cpp.o +[142/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_maloriak.cpp.o +[143/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp.o +[144/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_omnotron_defense_system.cpp.o +[145/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp.o +[146/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp.o +[147/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_nefarians_end.cpp.o +[148/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp.o +[149/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp.o +[150/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp.o +[151/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp.o +[152/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp.o +[153/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp.o +[154/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp.o +[155/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp.o +[156/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp.o +[157/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp.o +[158/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp.o +[159/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp.o +[160/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp.o +[161/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp.o +[162/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp.o +[163/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_admiral_ripsnarl.cpp.o +[164/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_captain_cookie.cpp.o +[165/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_glubtok.cpp.o +[166/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_foe_reaper_5000.cpp.o +[167/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_vanessa_van_cleef.cpp.o +[168/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/deadmines.cpp.o +[169/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Gilneas/gilneas_chapter_1.cpp.o +[170/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/instance_deadmines.cpp.o +[171/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Deadmines/boss_helix_gearbreaker.cpp.o +[172/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Gilneas/gilneas_chapter_2.cpp.o +[173/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Gnomeregan/gnomeregan.cpp.o +[174/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp.o +[175/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/boss_drahga_shadowburner.cpp.o +[176/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/boss_erudax.cpp.o +[177/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/grim_batol.cpp.o +[178/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/instance_grim_batol.cpp.o +[179/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_curator.cpp.o +[180/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/boss_general_umbriss.cpp.o +[181/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp.o +[182/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/GrimBatol/boss_forgemaster_throngus.cpp.o +[183/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_midnight.cpp.o +[184/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_moroes.cpp.o +[185/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_netherspite.cpp.o +[186/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp.o +[187/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp.o +[188/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_nightbane.cpp.o +[189/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/instance_karazhan.cpp.o +[190/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp.o +[191/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/bosses_opera.cpp.o +[192/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Karazhan/karazhan.cpp.o +[193/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp.o +[194/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp.o +[195/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp.o +[196/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp.o +[197/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp.o +[198/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_2.cpp.o +[199/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp.o +[200/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp.o +[201/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_5.cpp.o +[202/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_arcanist_doan.cpp.o +[203/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp.o +[204/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_1.cpp.o +[205/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp.o +[206/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_herod.cpp.o +[207/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp.o +[208/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp.o +[209/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp.o +[210/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp.o +[211/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_scorn.cpp.o +[212/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp.o +[213/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp.o +[214/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp.o +[215/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp.o +[216/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp.o +[217/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_illucia_barov.cpp.o +[218/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp.o +[219/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_jandice_barov.cpp.o +[220/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp.o +[221/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp.o +[222/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_kormok.cpp.o +[223/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp.o +[224/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp.o +[225/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_the_ravenian.cpp.o +[226/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/boss_vectus.cpp.o +[227/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Scholomance/instance_scholomance.cpp.o +[228/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_baron_ashbury.cpp.o +[229/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_baron_silverlaine.cpp.o +[230/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp.o +[231/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp.o +[232/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_commander_springvale.cpp.o +[233/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp.o +[234/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_lord_godfrey.cpp.o +[235/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ShadowfangKeep/boss_lord_walden.cpp.o +[236/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_balnazzar.cpp.o +[237/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp.o +[238/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp.o +[239/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp.o +[240/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp.o +[241/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_nerubenkan.cpp.o +[242/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp.o +[243/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp.o +[244/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp.o +[245/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp.o +[246/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp.o +[247/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/instance_stratholme.cpp.o +[248/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp.o +[249/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunkenTemple/sunken_temple.cpp.o +[250/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Stratholme/stratholme.cpp.o +[251/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp.o +[252/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp.o +[253/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp.o +[254/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp.o +[255/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp.o +[256/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/sunwell_plateau.cpp.o +[257/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/boss_muru.cpp.o +[258/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/TheStockade/boss_hogger.cpp.o +[259/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/TheStockade/boss_lord_overheat.cpp.o +[260/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/TheStockade/boss_randolph_moloch.cpp.o +[261/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp.o +[262/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/TheStockade/instance_the_stockade.cpp.o +[263/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/boss_commander_ulthok.cpp.o +[264/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/boss_mindbender_gursha.cpp.o +[265/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/boss_lady_nazjar.cpp.o +[266/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/instance_throne_of_the_tides.cpp.o +[267/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Uldaman/boss_ironaya.cpp.o +[268/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Uldaman/boss_archaedas.cpp.o +[269/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/throne_of_the_tides.cpp.o +[270/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Uldaman/uldaman.cpp.o +[271/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ThroneOfTheTides/boss_ozumat.cpp.o +[272/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/Uldaman/instance_uldaman.cpp.o +[273/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_daakara.cpp.o +[274/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_halazzi.cpp.o +[275/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_hexlord.cpp.o +[276/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_nalorakk.cpp.o +[277/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_akilzon.cpp.o +[278/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/instance_zulaman.cpp.o +[279/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/zulaman.cpp.o +[280/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulAman/boss_janalai.cpp.o +[281/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_grilek.cpp.o +[282/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_hazzarah.cpp.o +[283/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_bloodlord_mandokir.cpp.o +[284/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_renataki.cpp.o +[285/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_jindo_the_godbreaker.cpp.o +[286/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_wushoolay.cpp.o +[287/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_high_priestess_kilnara.cpp.o +[288/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_high_priest_venoxis.cpp.o +[289/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/instance_zulgurub.cpp.o +[290/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Events/childrens_week.cpp.o +[291/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Events/events_script_loader.cpp.o +[292/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/boss_zanzil.cpp.o +[293/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/EasternKingdoms/ZulGurub/zulgurub.cpp.o +[294/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Events/fireworks_show.cpp.o +[295/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/kalimdor_script_loader.cpp.o +[296/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_ashenvale.cpp.o +[297/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_azuremyst_isle.cpp.o +[298/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_desolace.cpp.o +[299/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_bloodmyst_isle.cpp.o +[300/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_durotar.cpp.o +[301/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_moonglade.cpp.o +[302/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_felwood.cpp.o +[303/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_mulgore.cpp.o +[304/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_northern_barrens.cpp.o +[305/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_southern_barrens.cpp.o +[306/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_mount_hyjal.cpp.o +[307/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_silithus.cpp.o +[308/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_tanaris.cpp.o +[309/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_thunder_bluff.cpp.o +[310/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_ungoro_crater.cpp.o +[311/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_uldum.cpp.o +[312/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/zone_winterspring.cpp.o +[313/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp.o +[314/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp.o +[315/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp.o +[316/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/boss_kelris.cpp.o +[317/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp.o +[318/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp.o +[319/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp.o +[320/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp.o +[321/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp.o +[322/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp.o +[323/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp.o +[324/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp.o +[325/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp.o +[326/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp.o +[327/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp.o +[328/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp.o +[329/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp.o +[330/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp.o +[331/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp.o +[332/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp.o +[333/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/DragonSoul/instance_dragon_soul.cpp.o +[334/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EndTime/end_time.cpp.o +[335/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EndTime/instance_end_time.cpp.o +[336/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp.o +[337/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EndTime/boss_murozond.cpp.o +[338/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp.o +[339/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp.o +[340/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EndTime/boss_echo_of_jaina.cpp.o +[341/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp.o +[342/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp.o +[343/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp.o +[344/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/DragonSoul/boss_madness_of_deathwing.cpp.o +[345/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp.o +[346/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/HourOfTwilight/instance_hour_of_twilight.cpp.o +[347/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp.o +[348/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp.o +[349/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp.o +[350/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/WellOfEternity/instance_well_of_eternity.cpp.o +[351/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp.o +[352/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp.o +[353/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/DireMaul/instance_dire_maul.cpp.o +[354/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/firelands.cpp.o +[355/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_alysrazor.cpp.o +[356/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_baleroc.cpp.o +[357/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/instance_firelands.cpp.o +[358/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_ammunae.cpp.o +[359/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_majordomo_staghelm.cpp.o +[360/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_anraphet.cpp.o +[361/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_lord_rhyolith.cpp.o +[362/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp.o +[363/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_isiset.cpp.o +[364/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_rajh.cpp.o +[365/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_setesh.cpp.o +[366/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp.o +[367/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Firelands/boss_ragnaros_firelands.cpp.o +[368/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp.o +[369/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/HallsOfOrigination/halls_of_origination.cpp.o +[370/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/boss_lockmaw_and_augh.cpp.o +[371/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/boss_general_husam.cpp.o +[372/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/boss_high_prophet_barim.cpp.o +[373/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/instance_lost_city_of_the_tolvir.cpp.o +[374/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/lost_city_of_the_tolvir.cpp.o +[375/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp.o +[376/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/boss_landslide.cpp.o +[377/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/LostCityOfTheTolvir/boss_siamat.cpp.o +[378/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/boss_noxxion.cpp.o +[379/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/boss_princess_theradras.cpp.o +[380/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/Maraudon/instance_maraudon.cpp.o +[381/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/OnyxiasLair/boss_onyxia.cpp.o +[382/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp.o +[383/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp.o +[384/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp.o +[385/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/boss_glutton.cpp.o +[386/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp.o +[387/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp.o +[388/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp.o +[389/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenDowns/razorfen_downs.cpp.o +[390/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp.o +[391/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RazorfenKraul/razorfen_kraul.cpp.o +[392/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp.o +[393/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp.o +[394/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp.o +[395/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp.o +[396/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp.o +[397/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp.o +[398/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp.o +[399/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp.o +[400/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp.o +[401/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp.o +[402/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp.o +[403/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp.o +[404/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp.o +[405/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp.o +[406/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp.o +[407/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp.o +[408/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp.o +[409/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp.o +[410/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ThroneOfTheFourWinds/instance_throne_of_the_four_winds.cpp.o +[411/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ThroneOfTheFourWinds/throne_of_the_four_winds.cpp.o +[412/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/boss_grand_vizier_ertan.cpp.o +[413/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/instance_vortex_pinnacle.cpp.o +[414/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/boss_altairus.cpp.o +[415/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ThroneOfTheFourWinds/boss_conclave_of_wind.cpp.o +[416/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ThroneOfTheFourWinds/boss_alakir.cpp.o +[417/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_kresh.cpp.o +[418/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/boss_asaad.cpp.o +[419/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_lady_anacondra.cpp.o +[420/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_lord_cobrahn.cpp.o +[421/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/VortexPinnacle/vortex_pinnacle.cpp.o +[422/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_lord_pythas.cpp.o +[423/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_lord_serpentis.cpp.o +[424/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_skum.cpp.o +[425/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/boss_verdan_the_everliving.cpp.o +[426/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp.o +[427/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/WailingCaverns/wailing_caverns.cpp.o +[428/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ZulFarrak/boss_zum_rah.cpp.o +[429/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/kezan.cpp.o +[430/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ZulFarrak/instance_zulfarrak.cpp.o +[431/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Kalimdor/ZulFarrak/zulfarrak.cpp.o +[432/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/maelstrom_script_loader.cpp.o +[433/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/zone_deepholm.cpp.o +[434/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/instance_stonecore.cpp.o +[435/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/boss_corborus.cpp.o +[436/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/boss_slabhide.cpp.o +[437/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/boss_ozruk.cpp.o +[438/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/northrend_script_loader.cpp.o +[439/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/boss_high_priestess_azil.cpp.o +[440/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_crystalsong_forest.cpp.o +[441/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Maelstrom/Stonecore/stonecore.cpp.o +[442/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_dalaran.cpp.o +[443/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_borean_tundra.cpp.o +[444/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_icecrown.cpp.o +[445/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_howling_fjord.cpp.o +[446/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_dragonblight.cpp.o +[447/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_grizzly_hills.cpp.o +[448/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_sholazar_basin.cpp.o +[449/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_wintergrasp.cpp.o +[450/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp.o +[451/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_storm_peaks.cpp.o +[452/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/zone_zuldrak.cpp.o +[453/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp.o +[454/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp.o +[455/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp.o +[456/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/boss_prince_taldaram.cpp.o +[457/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/Ahnkahet/instance_ahnkahet.cpp.o +[458/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp.o +[459/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp.o +[460/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp.o +[461/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp.o +[462/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp.o +[463/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp.o +[464/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp.o +[465/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp.o +[466/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp.o +[467/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp.o +[468/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp.o +[469/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp.o +[470/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp.o +[471/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp.o +[472/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp.o +[473/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp.o +[474/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp.o +[475/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp.o +[476/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp.o +[477/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp.o +[478/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/boss_king_dred.cpp.o +[479/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/boss_novos.cpp.o +[480/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp.o +[481/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp.o +[482/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp.o +[483/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp.o +[484/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp.o +[485/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/boss_tharon_ja.cpp.o +[486/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/boss_trollgore.cpp.o +[487/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/DraktharonKeep/instance_drak_tharon_keep.cpp.o +[488/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp.o +[489/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/boss_horAI.cpp.o +[490/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp.o +[491/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp.o +[492/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp.o +[493/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp.o +[494/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp.o +[495/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp.o +[496/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp.o +[497/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp.o +[498/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/instance_pit_of_saron.cpp.o +[499/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_drakkari_colossus.cpp.o +[500/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_eck.cpp.o +[501/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp.o +[502/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp.o +[503/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp.o +[504/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_gal_darah.cpp.o +[505/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_moorabi.cpp.o +[506/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/boss_slad_ran.cpp.o +[507/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Gundrak/instance_gundrak.cpp.o +[508/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_festergut.cpp.o +[509/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp.o +[510/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp.o +[511/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp.o +[512/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp.o +[513/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp.o +[514/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_rotface.cpp.o +[515/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp.o +[516/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_professor_putricide.cpp.o +[517/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp.o +[518/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IsleOfConquest/boss_ioc_horde_alliance.cpp.o +[519/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_sindragosa.cpp.o +[520/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp.o +[521/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/icecrown_citadel.cpp.o +[522/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_anubrekhan.cpp.o +[523/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp.o +[524/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IsleOfConquest/isle_of_conquest.cpp.o +[525/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_faerlina.cpp.o +[526/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/IcecrownCitadel/boss_the_lich_king.cpp.o +[527/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_gluth.cpp.o +[528/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_grobbulus.cpp.o +[529/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_four_horsemen.cpp.o +[530/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_heigan.cpp.o +[531/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_gothik.cpp.o +[532/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_loatheb.cpp.o +[533/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_maexxna.cpp.o +[534/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_noth.cpp.o +[535/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_kelthuzad.cpp.o +[536/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_patchwerk.cpp.o +[537/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_razuvious.cpp.o +[538/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/instance_naxxramas.cpp.o +[539/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/naxxramas.cpp.o +[540/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_thaddius.cpp.o +[541/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_anomalus.cpp.o +[542/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_commander_stoutbeard.cpp.o +[543/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp.o +[544/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Naxxramas/boss_sapphiron.cpp.o +[545/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_keristrasza.cpp.o +[546/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_magus_telestra.cpp.o +[547/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp.o +[548/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_nexus_commanders.cpp.o +[549/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/instance_nexus.cpp.o +[550/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Nexus/boss_ormorok.cpp.o +[551/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/boss_drakos.cpp.o +[552/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/boss_urom.cpp.o +[553/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/boss_eregos.cpp.o +[554/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/boss_varos.cpp.o +[555/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/instance_oculus.cpp.o +[556/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp.o +[557/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Nexus/Oculus/oculus.cpp.o +[558/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/instance_halls_of_lightning.cpp.o +[559/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp.o +[560/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/boss_general_bjarngrim.cpp.o +[561/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp.o +[562/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp.o +[563/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp.o +[564/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp.o +[565/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp.o +[566/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/HallsOfStone/instance_halls_of_stone.cpp.o +[567/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_auriaya.cpp.o +[568/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_freya.cpp.o +[569/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp.o +[570/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp.o +[571/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_ignis.cpp.o +[572/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp.o +[573/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_hodir.cpp.o +[574/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp.o +[575/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_kologarn.cpp.o +[576/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_razorscale.cpp.o +[577/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp.o +[578/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/instance_ulduar.cpp.o +[579/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp.o +[580/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp.o +[581/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/instance_utgarde_keep.cpp.o +[582/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_mimiron.cpp.o +[583/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_xt002.cpp.o +[584/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_thorim.cpp.o +[585/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp.o +[586/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp.o +[587/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/instance_utgarde_pinnacle.cpp.o +[588/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp.o +[589/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp.o +[590/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp.o +[591/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/boss_emalon.cpp.o +[592/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/boss_archavon.cpp.o +[593/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp.o +[594/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/boss_koralon.cpp.o +[595/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/boss_toravon.cpp.o +[596/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp.o +[597/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_lavanthor.cpp.o +[598/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_erekem.cpp.o +[599/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_cyanigosa.cpp.o +[600/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_ichoron.cpp.o +[601/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_moragg.cpp.o +[602/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_xevozz.cpp.o +[603/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/boss_zuramat.cpp.o +[604/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/instance_violet_hold.cpp.o +[605/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPHP.cpp.o +[606/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPScriptLoader.cpp.o +[607/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPTF.cpp.o +[608/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Northrend/VioletHold/violet_hold.cpp.o +[609/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPNA.cpp.o +[610/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/boss_doomwalker.cpp.o +[611/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPSI.cpp.o +[612/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/boss_doomlord_kazzak.cpp.o +[613/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/OutdoorPvP/OutdoorPvPZM.cpp.o +[614/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/outland_script_loader.cpp.o +[615/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_blades_edge_mountains.cpp.o +[616/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_nagrand.cpp.o +[617/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_shattrath_city.cpp.o +[618/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_hellfire_peninsula.cpp.o +[619/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_zangarmarsh.cpp.o +[620/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp.o +[621/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_terokkar_forest.cpp.o +[622/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp.o +[623/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_shadowmoon_valley.cpp.o +[624/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/zone_netherstorm.cpp.o +[625/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/AuchenaiCrypts/instance_auchenai_crypts.cpp.o +[626/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp.o +[627/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp.o +[628/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ManaTombs/instance_mana_tombs.cpp.o +[629/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp.o +[630/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp.o +[631/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp.o +[632/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/SethekkHalls/instance_sethekk_halls.cpp.o +[633/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp.o +[634/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp.o +[635/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp.o +[636/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp.o +[637/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp.o +[638/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.cpp.o +[639/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp.o +[640/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/black_temple.cpp.o +[641/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_mother_shahraz.cpp.o +[642/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_illidari_council.cpp.o +[643/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_reliquary_of_souls.cpp.o +[644/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_supremus.cpp.o +[645/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_shade_of_akama.cpp.o +[646/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_illidan.cpp.o +[647/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_warlord_najentus.cpp.o +[648/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/instance_black_temple.cpp.o +[649/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp.o +[650/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/BlackTemple/boss_teron_gorefiend.cpp.o +[651/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp.o +[652/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp.o +[653/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp.o +[654/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp.o +[655/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp.o +[656/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp.o +[657/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp.o +[658/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp.o +[659/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp.o +[660/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp.o +[661/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp.o +[662/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/boss_quagmirran.cpp.o +[663/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp.o +[664/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/instance_the_slave_pens.cpp.o +[665/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheUnderbog/boss_hungarfen.cpp.o +[666/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp.o +[667/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheUnderbog/instance_the_underbog.cpp.o +[668/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp.o +[669/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/GruulsLair/boss_gruul.cpp.o +[670/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/GruulsLair/boss_high_king_maulgar.cpp.o +[671/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/GruulsLair/instance_gruuls_lair.cpp.o +[672/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp.o +[673/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp.o +[674/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp.o +[675/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp.o +[676/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp.o +[677/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp.o +[678/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp.o +[679/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp.o +[680/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp.o +[681/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp.o +[682/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp.o +[683/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp.o +[684/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp.o +[685/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp.o +[686/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/boss_alar.cpp.o +[687/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp.o +[688/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/boss_astromancer.cpp.o +[689/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/boss_kaelthas.cpp.o +[690/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/boss_void_reaver.cpp.o +[691/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/the_eye.cpp.o +[692/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Eye/instance_the_eye.cpp.o +[693/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp.o +[694/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp.o +[695/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp.o +[696/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp.o +[697/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp.o +[698/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/Mechanar/instance_mechanar.cpp.o +[699/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/arcatraz.cpp.o +[700/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp.o +[701/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp.o +[702/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp.o +[703/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp.o +[704/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp.o +[705/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp.o +[706/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp.o +[707/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_laj.cpp.o +[708/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp.o +[709/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/instance_the_botanica.cpp.o +[710/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Outland/TempestKeep/botanica/boss_warp_splinter.cpp.o +[711/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_generic.cpp.o +[712/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_mage.cpp.o +[713/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_dk.cpp.o +[714/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_hunter.cpp.o +[715/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_paladin.cpp.o +[716/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_script_loader.cpp.o +[717/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_priest.cpp.o +[718/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Pet/pet_shaman.cpp.o +[719/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_pet.cpp.o +[720/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_holiday.cpp.o +[721/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_dk.cpp.o +[722/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_hunter.cpp.o +[723/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_druid.cpp.o +[724/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_mage.cpp.o +[725/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_priest.cpp.o +[726/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_paladin.cpp.o +[727/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_script_loader.cpp.o +[728/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/achievement_scripts.cpp.o +[729/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/action_ip_logger.cpp.o +[730/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_quest.cpp.o +[731/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_rogue.cpp.o +[732/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/areatrigger_scripts.cpp.o +[733/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_item.cpp.o +[734/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_warrior.cpp.o +[735/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_shaman.cpp.o +[736/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/duel_reset.cpp.o +[737/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_generic.cpp.o +[738/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/guards.cpp.o +[739/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/chat_log.cpp.o +[740/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Spells/spell_warlock.cpp.o +[741/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/mob_generic_creature.cpp.o +[742/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/go_scripts.cpp.o +[743/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/item_scripts.cpp.o +[744/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/npc_innkeeper.cpp.o +[745/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/world_map_scripts.cpp.o +[746/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/world_script_loader.cpp.o +[747/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/npc_professions.cpp.o +[748/751] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/World/npcs_special.cpp.o +[749/751] Linking CXX static library src/server/game/libgame.a +ninja: build stopped: interrupted by user. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-configure.log.txt b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-configure.log.txt new file mode 100644 index 0000000000..b5c21f05dd --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-configure.log.txt @@ -0,0 +1,61 @@ +-- Detected 64-bit platform +-- UNIX: Using default configuration directory +-- UNIX: Configuring uninstall target +-- UNIX: Created uninstall target +-- UNIX: Detected compiler: /usr/bin/cc +-- GCC: Minimum version required is 10.0.0, found 15.2.0 - ok! +-- GCC: SFMT enabled, SSE2 flags forced +-- GCC: All warnings enabled +-- GCC: Debug-flags set (-g3) +-- Found MySQL: +-- Found MySQL: found components: binary +-- Found MySQL executable: /usr/bin/mysql + +* TrinityCore revision : 119d63ed1c37+ 2026-10-26 22:45:38 +0100 (feature/clientless-player-core branch) +* TrinityCore buildtype : Debug + +* Install core to : /home/wow_admin/wow_cata_server/server/debug + +* Build world/auth : Yes (default) +* Build with scripts : Yes (static) +* Build map/vmap tools : No +* Build unit tests : No (default) +* Unity build enabled : No (default) +* Build core w/PCH : Yes (default) +* Build scripts w/PCH : Yes (default) +* Show all warnings : Yes + + *** WITH_COREDEBUG - WARNING! + *** additional core debug logs have been enabled! + *** this setting doesn't help to get better crash logs! + *** in case you are searching for better crash logs use + *** -DCMAKE_BUILD_TYPE=RelWithDebug + *** DO NOT ENABLE IT UNLESS YOU KNOW WHAT YOU'RE DOING! +* Use coreside debug : Yes +* Show source tree : Yes (hierarchical) +* Use GIT revision hash : Yes (default) + +-- Found Readline library: /usr/lib/x86_64-linux-gnu/libreadline.so +-- Include dir is: /usr/include + +* Script configuration (static): + | + +- worldserver + | +- Battlefield + | +- Commands + | +- Custom + | +- EasternKingdoms + | +- Events + | +- Kalimdor + | +- Maelstrom + | +- Northrend + | +- OutdoorPvP + | +- Outland + | +- Pet + | +- Spells + | +- World + | + +-- Configuring done (0.4s) +-- Generating done (0.1s) +-- Build files have been written to: /home/wow_admin/wow_cata_server/build/debug diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_economy.py.failure b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_economy.py.failure new file mode 100644 index 0000000000..d55fd7aee8 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_economy.py.failure @@ -0,0 +1,12 @@ +/tmp/vcore-economy-t0vuw0w2/test.cpp: In function ‘bool TargetVisible(Player*, WorldObject*, const std::string&)’: +/tmp/vcore-economy-t0vuw0w2/test.cpp:61:57: error: ‘AdventureProfessionPolicy’ has not been declared + 61 | if (!AdventureEconomyPolicy::Economic(kind) && !AdventureProfessionPolicy::Recognized(kind)) return player->IsWithinLOSInMap(target); + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +Traceback (most recent call last): + File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_economy.py", line 101, in + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.14/subprocess.py", line 578, in run + raise CalledProcessError(retcode, process.args, + output=stdout, stderr=stderr) +subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-economy-t0vuw0w2/test.cpp', '-o', '/tmp/vcore-economy-t0vuw0w2/test']' returned non-zero exit status 1. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_exploration.py.failure b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_exploration.py.failure new file mode 100644 index 0000000000..95efab8898 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_exploration.py.failure @@ -0,0 +1,30 @@ +/tmp/vcore-exploration-adul8yl4/test.cpp: In static member function ‘static bool AdventureSocialActions::Available(Player*, const AdventureMicroAction&, AdventureSocialContext&)’: +/tmp/vcore-exploration-adul8yl4/test.cpp:50:9: error: ‘AdventureProfessionPolicy’ has not been declared + 50 | if (AdventureProfessionPolicy::Recognized(kind)) return c.Intent=="profession" && + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-exploration-adul8yl4/test.cpp:51:9: error: ‘AdventureProfessionPolicy’ has not been declared + 51 | AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) && + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-exploration-adul8yl4/test.cpp:51:51: error: ‘struct AdventureSocialContext’ has no member named ‘PrimaryProfessions’ + 51 | AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) && + | ^~~~~~~~~~~~~~~~~~ +/tmp/vcore-exploration-adul8yl4/test.cpp:52:10: error: ‘AdventureProfessionPolicy’ has not been declared + 52 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty()); + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-exploration-adul8yl4/test.cpp:52:58: error: ‘struct Player’ has no member named ‘IsInWater’ + 52 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty()); + | ^~~~~~~~~ +/tmp/vcore-exploration-adul8yl4/test.cpp:52:77: error: ‘struct Player’ has no member named ‘IsFalling’ + 52 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty()); + | ^~~~~~~~~ +/tmp/vcore-exploration-adul8yl4/test.cpp:52:90: error: ‘AdventureProfessionTargets’ has not been declared + 52 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty()); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +Traceback (most recent call last): + File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_exploration.py", line 60, in + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.14/subprocess.py", line 578, in run + raise CalledProcessError(retcode, process.args, + output=stdout, stderr=stderr) +subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-exploration-adul8yl4/test.cpp', '-o', '/tmp/vcore-exploration-adul8yl4/test']' returned non-zero exit status 1. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_intent_state.py.failure b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_intent_state.py.failure new file mode 100644 index 0000000000..3b2b1e23a1 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_intent_state.py.failure @@ -0,0 +1,24 @@ +/tmp/vcore-adventure-state-4s9vbnjn/test.cpp: In lambda function: +/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:82:22: error: ‘struct AdventureBehaviorMgr::Record::’ has no member named ‘Progressive’ + 82 | if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() && + | ^~~~~~~~~~~ +/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:82:48: error: ‘struct AdventureBehaviorMgr::Record::’ has no member named ‘Route’ + 82 | if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() && + | ^~~~~ +/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:82:75: error: ‘struct AdventureBehaviorMgr::Record::’ has no member named ‘Step’ + 82 | if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() && + | ^~~~ +/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:82:91: error: ‘struct AdventureBehaviorMgr::Record::’ has no member named ‘Route’ + 82 | if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() && + | ^~~~~ +/tmp/vcore-adventure-state-4s9vbnjn/test.cpp:83:44: error: ‘struct AdventureBehaviorMgr::Record::’ has no member named ‘Route’ + 83 | player->GetExactDist(r.Leisure.Route.back())<=2) + | ^~~~~ +Traceback (most recent call last): + File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_intent_state.py", line 108, in + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.14/subprocess.py", line 578, in run + raise CalledProcessError(retcode, process.args, + output=stdout, stderr=stderr) +subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-adventure-state-4s9vbnjn/test.cpp', '-o', '/tmp/vcore-adventure-state-4s9vbnjn/test']' returned non-zero exit status 1. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_leisure.py.failure b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_leisure.py.failure new file mode 100644 index 0000000000..74d3f6e6f8 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_leisure.py.failure @@ -0,0 +1,32 @@ +/tmp/vcore-leisure-l3qqdidj/test.cpp: In member function ‘bool AdventureBehaviorMgr::LeisureAvailable(Player*, const Record&, const AdventureMicroAction&) const’: +/tmp/vcore-leisure-l3qqdidj/test.cpp:166:95: error: ‘FishingDirection’ was not declared in this scope + 166 | return rod && rod->GetTemplate()->GetSubClass()==ITEM_SUBCLASS_WEAPON_FISHING_POLE && FishingDirection(p,direction); + | ^~~~~~~~~~~~~~~~ +/tmp/vcore-leisure-l3qqdidj/test.cpp: In member function ‘bool AdventureBehaviorMgr::StartLeisure(Player*, Record&, const AdventureMicroAction&)’: +/tmp/vcore-leisure-l3qqdidj/test.cpp:199:17: error: ‘FishingDirection’ was not declared in this scope + 199 | if(!FishingDirection(p,direction))return false; + | ^~~~~~~~~~~~~~~~ +/tmp/vcore-leisure-l3qqdidj/test.cpp:216:7: error: ‘struct AdventureBehaviorMgr::Record::LeisureScene’ has no member named ‘Progressive’ + 216 | s.Progressive=s.Kind=="work_search" || (r.Intent=="adventure" && site->IsArea && foot); + | ^~~~~~~~~~~ +/tmp/vcore-leisure-l3qqdidj/test.cpp:217:10: error: ‘struct AdventureBehaviorMgr::Record::LeisureScene’ has no member named ‘Progressive’ + 217 | if(s.Progressive)s.Route.resize(s.OutboundSteps); + | ^~~~~~~~~~~ +/tmp/vcore-leisure-l3qqdidj/test.cpp: In member function ‘bool AdventureBehaviorMgr::UpdateLeisure(Player*, Record&, uint32)’: +/tmp/vcore-leisure-l3qqdidj/test.cpp:356:37: error: ‘ProfessionWorkAvailable’ was not declared in this scope + 356 | if(s.Kind=="work_search" && ProfessionWorkAvailable(p,r)) + | ^~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-leisure-l3qqdidj/test.cpp:367:20: error: ‘struct AdventureBehaviorMgr::Record::LeisureScene’ has no member named ‘Progressive’ + 367 | r.Detail=s.Progressive?"area search reached next observation point":"leisure outing completed at starting point"; + | ^~~~~~~~~~~ +/tmp/vcore-leisure-l3qqdidj/test.cpp:373:14: error: ‘struct AdventureBehaviorMgr::Record::LeisureScene’ has no member named ‘Progressive’ + 373 | if(s.Progressive) {s.Route.resize(s.Step);return false;} + | ^~~~~~~~~~~ +Traceback (most recent call last): + File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_leisure.py", line 196, in + subprocess.run(['c++','-std=c++17',str(cpp),'-o',str(binary)],check=True) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.14/subprocess.py", line 578, in run + raise CalledProcessError(retcode, process.args, + output=stdout, stderr=stderr) +subprocess.CalledProcessError: Command '['c++', '-std=c++17', '/tmp/vcore-leisure-l3qqdidj/test.cpp', '-o', '/tmp/vcore-leisure-l3qqdidj/test']' returned non-zero exit status 1. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_rest_fire.py.failure b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_rest_fire.py.failure new file mode 100644 index 0000000000..c00cfa6ba8 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_rest_fire.py.failure @@ -0,0 +1,29 @@ +/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp: In member function ‘AdventureSocialContext AdventureBehaviorMgr::SocialContext(Player*, Record&)’: +/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:63: error: ‘struct Profile’ has no member named ‘PrimaryProfessions’ + 38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}}; + | ^~~~~~~~~~~~~~~~~~ +/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:82: error: ‘AdventureProfessionPolicy’ has not been declared + 38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}}; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:120: error: expected ‘}’ before ‘{’ token + 38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}}; + | ^ +/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:33:12: note: to match this ‘{’ + 33 | return {r.Anchor,r.AnchorMap,location&&location->Point.Category=="festival", + | ^ +/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:120: note: probably missing a comma or an operator before + 38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}}; + | ^ +/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp:38:122: error: could not convert ‘{r.AdventureBehaviorMgr::Record::Anchor, r.AdventureBehaviorMgr::Record::AnchorMap, ((location != 0) && std::operator==, allocator >(location->Location::Point.Location::::Category, ((const char*)"festival"))), ((profile != 0) ? std::__cxx11::basic_string(profile->Profile::Locale) : std::__cxx11::basic_string(((const char*)"enUS"), std::allocator())), r.AdventureBehaviorMgr::Record::Intent, r.AdventureBehaviorMgr::Record::Random, r.AdventureBehaviorMgr::Record::TargetHistory, r.AdventureBehaviorMgr::Record::VariantHistory, AdventureBehaviorMgr::SocialContext(Player*, Record&)::{((AdventureBehaviorMgr*)this), player, (* & r)}, (std::operator!=, allocator >(r.AdventureBehaviorMgr::Record::Intent, ((const char*)"rest")) || ((location != 0) && std::operator==, allocator >(location->Location::Point.Location::::Category, ((const char*)"rest_ground")))), (((location != 0) && std::operator==, allocator >(r.AdventureBehaviorMgr::Record::Intent, ((const char*)"economy"))) ? AdventureEconomyPolicy::LocationRequirement(location->Location::Point.Location::::Category) : std::__cxx11::basic_string(((const char*)""), std::allocator())), ((location != 0) ? std::__cxx11::basic_string(location->Location::Point.Location::::Category) : std::__cxx11::basic_string(((const char*)""), std::allocator())), }’ from ‘’ to ‘AdventureSocialContext’ + 38 | location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}}; + | ^ + | | + | +Traceback (most recent call last): + File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_rest_fire.py", line 74, in + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.14/subprocess.py", line 578, in run + raise CalledProcessError(retcode, process.args, + output=stdout, stderr=stderr) +subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-rest-fire-policy-he3ktm09/test.cpp', '-o', '/tmp/vcore-rest-fire-policy-he3ktm09/test']' returned non-zero exit status 1. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_social.py.failure b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_social.py.failure new file mode 100644 index 0000000000..ff4b471758 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_social.py.failure @@ -0,0 +1,107 @@ +/tmp/vcore-social-test-cy2ndyrb/test.cpp: In function ‘std::vector Steps(const std::string&, uint32)’: +/tmp/vcore-social-test-cy2ndyrb/test.cpp:100:13: error: ‘AdventureProfessionPolicy’ has not been declared + 100 | if (AdventureProfessionPolicy::Recognized(kind)) return AdventureProfessionPolicy::Steps(kind,duration); + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:100:65: error: ‘AdventureProfessionPolicy’ has not been declared + 100 | if (AdventureProfessionPolicy::Recognized(kind)) return AdventureProfessionPolicy::Steps(kind,duration); + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp: In static member function ‘static bool AdventureSocialActions::Update(Player*, AdventureSocialScene&, uint32, AdventureSocialContext&)’: +/tmp/vcore-social-test-cy2ndyrb/test.cpp:256:8: error: ‘AdventureProfessionPolicy’ has not been declared + 256 | if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:256:60: error: ‘struct AdventureSocialContext’ has no member named ‘Intent’ + 256 | if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false; + | ^~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:256:85: error: ‘AdventureProfessionPolicy’ has not been declared + 256 | if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:256:129: error: ‘struct AdventureSocialContext’ has no member named ‘PrimaryProfessions’ + 256 | if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false; + | ^~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:272:12: error: ‘AdventureProfessionPolicy’ has not been declared + 272 | if(AdventureProfessionPolicy::Recognized(s.Kind) && !AdventureProfessionTargets::Valid(p,target,s.Kind,c))return false; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:272:62: error: ‘AdventureProfessionTargets’ has not been declared + 272 | if(AdventureProfessionPolicy::Recognized(s.Kind) && !AdventureProfessionTargets::Valid(p,target,s.Kind,c))return false; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:363:27: error: ‘AdventureProfessionPolicy’ has not been declared + 363 | auto task=AdventureProfessionPolicy::Find(s.Kind); + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:364:30: error: ‘AdventureProfessionPolicy’ has not been declared + 364 | if(!task || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions))return false; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:364:74: error: ‘struct AdventureSocialContext’ has no member named ‘PrimaryProfessions’ + 364 | if(!task || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions))return false; + | ^~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:365:30: error: ‘EMOTE_STATE_USE_STANDING’ was not declared in this scope; did you mean ‘EMOTE_ONESHOT_USE_STANDING’? + 365 | uint32 emote=EMOTE_STATE_USE_STANDING; + | ^~~~~~~~~~~~~~~~~~~~~~~~ + | EMOTE_ONESHOT_USE_STANDING +/tmp/vcore-social-test-cy2ndyrb/test.cpp:368:26: error: ‘AdventureProfessionPolicy’ has not been declared + 368 | case AdventureProfessionPolicy::Motion::Mine:emote=EMOTE_STATE_WORK_MINING;break; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:368:72: error: ‘EMOTE_STATE_WORK_MINING’ was not declared in this scope + 368 | case AdventureProfessionPolicy::Motion::Mine:emote=EMOTE_STATE_WORK_MINING;break; + | ^~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:369:26: error: ‘AdventureProfessionPolicy’ has not been declared + 369 | case AdventureProfessionPolicy::Motion::Chop:emote=EMOTE_STATE_WORK_CHOPWOOD;break; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:369:72: error: ‘EMOTE_STATE_WORK_CHOPWOOD’ was not declared in this scope + 369 | case AdventureProfessionPolicy::Motion::Chop:emote=EMOTE_STATE_WORK_CHOPWOOD;break; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:370:26: error: ‘AdventureProfessionPolicy’ has not been declared + 370 | case AdventureProfessionPolicy::Motion::Kneel:emote=EMOTE_STATE_KNEEL;break; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:370:73: error: ‘EMOTE_STATE_KNEEL’ was not declared in this scope; did you mean ‘EMOTE_STATE_DANCE’? + 370 | case AdventureProfessionPolicy::Motion::Kneel:emote=EMOTE_STATE_KNEEL;break; + | ^~~~~~~~~~~~~~~~~ + | EMOTE_STATE_DANCE +/tmp/vcore-social-test-cy2ndyrb/test.cpp:433:8: error: ‘AdventureProfessionPolicy’ has not been declared + 433 | if(AdventureProfessionPolicy::Recognized(s.Kind)) + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:435:22: error: ‘AdventureProfessionPolicy’ has not been declared + 435 | if(auto task=AdventureProfessionPolicy::Find(s.Kind)) + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:439:38: error: ‘struct Position’ has no member named ‘Relocate’ + 439 | Position departure;departure.Relocate(p); + | ^~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:440:29: error: ‘struct WorldObject’ has no member named ‘GetAngle’ + 440 | float angle=target->GetAngle(p); + | ^~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:441:19: error: ‘struct Position’ has no member named ‘m_positionX’; did you mean ‘Position’? + 441 | departure.m_positionX+=std::cos(angle)*2;departure.m_positionY+=std::sin(angle)*2; + | ^~~~~~~~~~~ + | Position +/tmp/vcore-social-test-cy2ndyrb/test.cpp:441:60: error: ‘struct Position’ has no member named ‘m_positionY’; did you mean ‘Position’? + 441 | departure.m_positionX+=std::cos(angle)*2;departure.m_positionY+=std::sin(angle)*2; + | ^~~~~~~~~~~ + | Position +/tmp/vcore-social-test-cy2ndyrb/test.cpp:442:25: error: ‘struct Player’ has no member named ‘GetMap’ + 442 | float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8); + | ^~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:442:48: error: ‘struct Player’ has no member named ‘GetPhaseShift’ + 442 | float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8); + | ^~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:442:74: error: ‘struct Position’ has no member named ‘GetPositionX’; did you mean ‘Position’? + 442 | float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8); + | ^~~~~~~~~~~~ + | Position +/tmp/vcore-social-test-cy2ndyrb/test.cpp:442:99: error: ‘struct Position’ has no member named ‘GetPositionY’; did you mean ‘Position’? + 442 | float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8); + | ^~~~~~~~~~~~ + | Position +/tmp/vcore-social-test-cy2ndyrb/test.cpp:443:19: error: ‘INVALID_HEIGHT’ was not declared in this scope + 443 | if(height>INVALID_HEIGHT+1 && std::fabs(height-p->GetPositionZ())<=2) + | ^~~~~~~~~~~~~~ +/tmp/vcore-social-test-cy2ndyrb/test.cpp:445:23: error: ‘struct Position’ has no member named ‘m_positionZ’; did you mean ‘Position’? + 445 | departure.m_positionZ=height; + | ^~~~~~~~~~~ + | Position +Traceback (most recent call last): + File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_social.py", line 190, in + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.14/subprocess.py", line 578, in run + raise CalledProcessError(retcode, process.args, + output=stdout, stderr=stderr) +subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-social-test-cy2ndyrb/test.cpp', '-o', '/tmp/vcore-social-test-cy2ndyrb/test']' returned non-zero exit status 1. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_social_fire.py.failure b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_social_fire.py.failure new file mode 100644 index 0000000000..c819acebc9 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-profession-test_adventure_social_fire.py.failure @@ -0,0 +1,24 @@ +/tmp/vcore-social-fire-swu4udr3/test.cpp: In static member function ‘static bool AdventureSocialActions::Available(Player*, const AdventureMicroAction&, AdventureSocialContext&)’: +/tmp/vcore-social-fire-swu4udr3/test.cpp:79:9: error: ‘AdventureProfessionPolicy’ has not been declared + 79 | if (AdventureProfessionPolicy::Recognized(kind)) return c.Intent=="profession" && + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-fire-swu4udr3/test.cpp:80:9: error: ‘AdventureProfessionPolicy’ has not been declared + 80 | AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) && + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-fire-swu4udr3/test.cpp:80:51: error: ‘struct AdventureSocialContext’ has no member named ‘PrimaryProfessions’ + 80 | AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) && + | ^~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-fire-swu4udr3/test.cpp:81:10: error: ‘AdventureProfessionPolicy’ has not been declared + 81 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty()); + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/tmp/vcore-social-fire-swu4udr3/test.cpp:81:90: error: ‘AdventureProfessionTargets’ has not been declared + 81 | (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty()); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +Traceback (most recent call last): + File "/home/wow_admin/wow_cata_server/source/TrinityCore/tests/clientless/test_adventure_social_fire.py", line 86, in + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.14/subprocess.py", line 578, in run + raise CalledProcessError(retcode, process.args, + output=stdout, stderr=stderr) +subprocess.CalledProcessError: Command '['c++', '-std=c++17', '-I', '/home/wow_admin/wow_cata_server/source/TrinityCore/src/server/game/World', '/tmp/vcore-social-fire-swu4udr3/test.cpp', '-o', '/tmp/vcore-social-fire-swu4udr3/test']' returned non-zero exit status 1. diff --git a/doc/clientless/checkpoints/2026-10-27-profession/vcore-rest-fire-db.py b/doc/clientless/checkpoints/2026-10-27-profession/vcore-rest-fire-db.py new file mode 100644 index 0000000000..3658825e7d --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-27-profession/vcore-rest-fire-db.py @@ -0,0 +1,18 @@ +from pathlib import Path +import os,re,subprocess,sys +config=Path('/home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf').read_text() +match=re.search(r'^WorldDatabaseInfo\s*=\s*"([^"]+)"',config,re.M) +if not match:raise SystemExit('Test world database configuration not found') +host,port,user,password,database=match.group(1).split(';') +args=['mysql','--protocol=TCP','--host='+host,'--port='+port,'--user='+user,'--database='+database,'--default-character-set=utf8mb4','--batch','--connect-timeout=10'] +env=os.environ.copy();env['MYSQL_PWD']=password +query="SELECT a.action_key,a.kind,a.min_seconds,a.max_seconds,a.requirement,i.intent,i.weight FROM vcore_adventure_action a JOIN vcore_adventure_action_intent i USING(action_key) WHERE a.action_key IN ('rest_fire','campfire_rest','social_fire'); SELECT point_key,category,map,position_x,position_y,position_z FROM vcore_clientless_world_point WHERE enabled=1 AND category='rest_ground' LIMIT 10;" +if sys.argv[1:] == ['apply']: + migration=Path('/home/wow_admin/wow_cata_server/source/TrinityCore/sql/custom/world/2026_10_27_01_adventure_rest_fire.sql').read_text() + query='START TRANSACTION;\n'+migration+'\n'+query+'\nCOMMIT;' +elif sys.argv[1:] != ['inspect']:raise SystemExit('Use inspect or apply') +result=subprocess.run(args,input=query,text=True,capture_output=True,env=env) +print(result.stdout,end='') +if result.returncode: + print(result.stderr.replace(password,'[redacted]'),file=sys.stderr,end='') +raise SystemExit(result.returncode) diff --git a/doc/clientless/economy-intent.md b/doc/clientless/economy-intent.md new file mode 100644 index 0000000000..a43ce17d3f --- /dev/null +++ b/doc/clientless/economy-intent.md @@ -0,0 +1,162 @@ +# Wirtschaften-Intent + +Technischer Name: `economy`. Diese Ausbaustufe stellt wirtschaftliche Besuche +dar: regulär anreisen, einen passenden Dienstleister aufsuchen, ruhig schauen, +reden oder warten, sich verabschieden und den Schalter wieder verlassen. +Es gibt keine tatsächlichen Käufe, Verkäufe, Auktionen, Gebote, Banktransfers +oder Geldbewegungen. Es werden keine entsprechenden Interaktions- oder +Transaktionshandler aufgerufen und keine wirtschaftlichen Fenster simuliert. + +## Mikroaktionen + +| Aktion | Ablauf | +|---|---| +| `economy_vendor_visit` | Einen freundlichen erreichbaren Händler aufsuchen, kurz umsehen, verabschieden und zurücktreten. | +| `economy_goods` | Beim Händler länger Waren betrachten. Die Darstellung richtet sich zum tatsächlichen Händler; eine passende Auslage ist keine Voraussetzung. | +| `economy_trade` | Begrüßen, Handelsgespräch darstellen, zuhören, nicken und verabschieden. | +| `economy_compare` | Zwei verschiedene erreichbare Händler nacheinander besuchen und Angebote betrachten. Ein einzelner Händler genügt nicht. | +| `economy_auction_visit` | Einen tatsächlichen Auktionator aufsuchen und das Auktionshaus kurz besuchen. | +| `economy_auctions` | Beim Auktionator eine längere ruhige Prüfphase darstellen. | +| `economy_bank_visit` | Einen tatsächlichen Bankier aufsuchen und die Bank kurz besuchen. | +| `economy_banking` | Am Bankschalter Gespräch und Prüfung darstellen. | +| `economy_supplies` | Ruhige Prüfung der Vorräte darstellen, ohne Inventarzugriff oder Änderungen. | +| `economy_wait` | Bei einem passenden Dienstleister auf Bedienung warten. Kein Warteschlangensystem. | +| `economy_finish` | Einen zuvor besuchten, noch anwesenden Dienstleister verabschieden und den Schalter verlassen. | + +## Ziele und Ausführung + +Migration: `sql/custom/world/2026_10_27_03_adventure_economy.sql` nach den +bisherigen Intent-Migrationen. Sie ergänzt Katalogeinträge mit `INSERT IGNORE`; +bearbeitete Definitionen, Gewichte und Positionen bleiben erhalten. + +Der Tagesplan entscheidet zuerst anhand des Profils über das Vorhaben. Erst +anschließend wählt der Ortsplaner ein passendes vorhandenes importiertes Ziel. +Ein fehlender Händler-Eintrag darf den Intent im Tagesplan nicht ausschließen. +Siedlungen, Gebiete und bekannte Serviceorte werden für Wirtschaften höher +gewichtet; auch andere importierte Orte sind grundsätzlich verwendbar. +Ausdrücklich eingestellte Ortsgewichte einschließlich Null behalten Vorrang. +Fraktionszuordnung und normale Reiseprüfungen bleiben bestehen. + +`stormwind_economy_market`, `stormwind_economy_bank` und +`stormwind_economy_auction` sind zusätzliche gezielte Testpunkte. Sie begrenzen +weder die Ortswahl noch die Verfügbarkeit des Intents für andere Fraktionen. +An jedem anderen passenden Ort findet der Bot die wirklichen Dienstleister +über `ClientlessPerceptionMgr`: Suchradius 100 Yards, native Fähigkeiten, +Freundlichkeit, Phase und anschließende geprüfte lokale Annäherung. +Dafür müssen keine einzelnen Händler oder deren Aufenthaltsorte vorgegeben +werden. Es wird kein Handels-NPC aus einer Datenbankposition nachgespielt. + +Die vorhandenen sozialen Fähigkeiten bleiben gemeinsam genutzt. Zielwahl +prüft die nativen Rollen `VENDOR`, `BANKER` oder `AUCTIONEER`, Freundlichkeit, +Lebendigkeit, Kampfzustand, Phase und den Aufenthaltsbereich. Vor der Annäherung muss der Dienstleister +noch nicht vom Ankunftspunkt aus sichtbar sein. Der mögliche Gesprächsplatz +und die tatsächliche Szene benötigen eine native Sichtlinie auf Augenhöhe +über den Schalter hinweg. Wände bleiben blockierend. +Nur ausdrücklich spezialisierte Testpunkte grenzen die Rollen zusätzlich ein: Händler im Marktbereich, +Bankiers in der Bank, Auktionatoren im Auktionshaus. Das gilt auch für +Warte- und Abschiedsszenen. Andere Bots sind keine Dienstleister. Nicht erreichbare Schalter werden nicht +als Besuch gezählt. Die Prüfung bleibt während der Szene aktiv. Händlervergleiche +wechseln ausdrücklich zu einer anderen GUID. Wiederholungsdämpfung berücksichtigt +Aktionen, Ziele und Textvarianten. + +Nach dem Abschied läuft der Bot über MMAP zum Ankunftspunkt zurück. Nur die +bestätigte tatsächliche Ankunft erzeugt `ECONOMY_VISIT_COMPLETE`; ein gescheiterter +Rückweg täuscht keinen Abschluss vor. Fehlende Dienstleister lösen eine reguläre +Suche nach einem anderen Wirtschaftsziel aus. Das gilt auch, wenn keine +der möglichen Serviceannäherungen einen erreichbaren Gesprächsplatz findet. Kampf, Intentwechsel und Offline +beenden die Szene über das bestehende Reset-Verfahren. + +Der technische Intentname ist auch für manuelle Aufträge und neue Tagespläne +verfügbar. `activity_affinity.economy` steuert die Tagesplangewichtung +(Standard 0,5; Arthoran 0,45). Bereits gespeicherte vollständige Tagespläne +werden nicht verändert. Lokale Servicewege werden im Gehmodus und innerhalb +der Location-Zone ausgeführt. Die Intentauswahl fragt den Ortskatalog nicht ab. + +Beispiel für die Testserverkonsole: + +``` +clientless adventure intent 26 economy stormwind_economy_market 3600 +clientless adventure micro 26 economy_compare +clientless adventure status 26 +``` + +Die gezielte Mikroaktion setzt einen bereits angekommenen sicheren Bot voraus. + +## Prüfung + +Automatisierte Prüfungen führen die produktive Rollen-/Umgebungswahl und +Gestensequenzen aus, einschließlich Rollenverlust, zweitem Händler, verweigerter +Navigation und bestätigter Abreise. Der Katalogtest führt die Migration aus und +prüft Referenzen, Allianzgrenzen, native Servicevoraussetzungen und Idempotenz. +Eine erfolgreiche Kompilierung allein ist keine Ingame-Abnahme. + +## Live-Prüfung am 27.10.2026 + +Der Testserver wurde mit `-j10` gebaut, installiert und bis zur frischen +Ready-Meldung mit lebendem Prozess und Port 8085 geprüft. Alle 29 +Clientless-Testskripte bestanden. + +- Händlervergleich vollständig: Edna Mullby (1286) und Thurman Mullby (1285), + unterschiedliche tatsächliche GUIDs, Gesprächspositionen und Gesten, + `ECONOMY_COMPARE_NEXT`, Abreise und `ECONOMY_VISIT_COMPLETE visits=2`. +- Auktionshaus vollständig: Auctioneer Chilton (8670), längere Prüfphase, + Abschied, Abreise und bestätigter Abschluss. +- Bank vollständig: Scott Westmill (43820) sowie ein automatisch ausgewählter + weiterer Bankbesuch; tatsächliche Kundenseite, Abschied und bestätigter + Rückweg. Die anfängliche Sichtprüfung auf den Körperpunkt hinter dem + Schalter wurde durch geprüfte Annäherung und native Sicht auf Augenhöhe + ersetzt. Dabei wird keine Kollisions- oder Sichtlinienprüfung umgangen. +- Im finalen Stand wählte Arthoran nach dem Login selbstständig + `economy_banking` bei Thomas Westmill (43822); lokale Wege liefen mit + `walk=1`. Bank-, Händler- und Auktionshausrollen bleiben nach Location getrennt. +- Gespeichertes Geld und vollständige Inventarzuordnung einschließlich + Gegenstands-IDs und Stapelzahlen waren nach den drei Servicebereichen + bytegleich zum Ausgangsstand. Temporäre Login-Profiländerungen wurden + zurückgesetzt; der normale Initial-Intent bleibt unverändert. + +Die technische Live-Prüfung ersetzt nicht die visuelle Ingame-Abnahme. +Weitere Städte und eine Prüfung verschiedener gleichzeitig anwesender Bots +sind noch nicht durchgeführt. + +Auch der abschließende automatische Bankablauf im finalen Build endete mit +`ECONOMY_VISIT_COMPLETE action=economy_banking visits=1`; anschließend +begann selbstständig ein weiterer Besuch bei Newton Burnside (2456). + +## Korrektur der Planungshierarchie und des Imports + +Die anfängliche Einschränkung auf drei Wirtschaftstestpunkte und die davon +abhängige Tagesplanauswahl waren falsch. Sie wurden entfernt. Der Ortsimport +hatte bereits stattgefunden; zum Diagnosezeitpunkt gab es 2.647 aktive Orte. +Ein separater Fehler las `SMALLINT`-Karten-IDs mit `GetUInt32`, was im Debug-Core +Null ergab. Dadurch wurden unter anderem Kalimdor- und Scherbenweltorte +fälschlich Karte 0 zugeordnet. Import und Katalogladen verwenden nun +`GetUInt16`. Die Weltdatenbank-Quelldaten selbst werden nicht geändert. + +`clientless adventure repairimport` ergänzt den normalen Import um eine +gezielte Reparatur: Nur Datensätze, deren Quelle, Koordinaten, Kategorie und +Metadaten noch den alten automatisch erzeugten Werten entsprechen, werden +berichtigt. Manuelle Orte und abweichende Bearbeitungen bleiben erhalten. +Karten-, Gebiets-, Regions- und Fraktionsdaten werden neu abgeleitet; bei +Wachen-POIs dient ein naher nativer Höhenanker statt der obersten Dachfläche +als Bezug. Der normale Import bleibt additiv. + +Die gezielte Reparatur wurde auf dem Testserver zweimal ausgeführt. Sie +berichtigte 2.159 bestehende automatisch erzeugte Datensätze und ergänzte +217 nun verwertbare Quellorte (insgesamt 2.864 aktive Orte). Alle 16 manuellen +Datensätze blieben vollständig unverändert. Der zweite Lauf war bytegleich +zum ersten Ergebnis. Orgrimmar und Donnerfels liegen auf Karte 1, Unterstadt +auf Karte 0, Silbermond auf Karte 530; alle vier sind als Horde-Orte zugeordnet. + +Der abschließende Test nutzte ausschließlich den gewöhnlichen importierten +Sturmwind-Ort `poi_tele_954`: Arthoran nahm über die generische Wahrnehmung +einen etwa 68 Yards entfernten Bankier wahr, erreichte ihn über native +Navigation im Gehmodus und begann selbstständig eine Bankgesprächsszene. +Ein spezieller Bank-Testpunkt wurde für diesen Ablauf nicht verwendet. +Build mit `-j10`, Installation und Neustart waren erfolgreich; alle 30 +Clientless-Testskripte bestanden. Eine Reise mit einem Horde-Bot ist dadurch +noch nicht ingame geprüft. + +Die anschließende Abenteuer-Migration überführt die allgemeinen Wirtschafts- +gewichte in ausdrückliche Location-/Intent-Katalogeinträge. Ein im Code +versteckter Kategorie-Fallback entfällt damit; vorhandene angepasste Gewichte +einschließlich Null behalten Vorrang. diff --git a/doc/clientless/free-flying-implementation.md b/doc/clientless/free-flying-implementation.md index d91688ff68..6350d85e27 100644 --- a/doc/clientless/free-flying-implementation.md +++ b/doc/clientless/free-flying-implementation.md @@ -9,7 +9,8 @@ Es werden dafür weder Nodes noch Kanten in der Datenbank aufgezeichnet. Ein Flug kann an einem regulären Graphnode oder einem virtuellen Straßenausstieg beginnen und an einem regulären Node oder einer Location enden. Virtuelle Straßeneinstiege sind keine Flugziele. Der Abflugpunkt muss tatsächlich erreicht -sein; ein Bot außerhalb des Graphen erhält keinen beliebigen direkten Luftstart. +sein. Für den Rückfall bei fehlendem Bodenweg kann der tatsächliche sichere +Aufenthaltsort als Abflugpunkt dienen; dabei gelten dieselben nativen Startprüfungen. Normale Straßenreisen haben einen Kostenvorteil. Flug wird bei genügend großem Vorteil berücksichtigt; bevorzugte Flugzonen senken Mindestdistanz und Kosten. @@ -26,6 +27,69 @@ Unbekannte Gebietsmetadaten erlauben lediglich einen Planungsversuch: Beim Start entscheiden die normalen Mountfähigkeiten und Zauberprüfungen des Servers. Vashj'irs besondere Unterwasserreisen sind nicht enthalten. +## Optionale Straßenausstiege und Flug als Rückfall + +Ein vom Planer vorgeschlagener virtueller Exit ist ein optionaler Anschluss. +Die Ausführung behält die aufgezeichnete Kante bis zum nächsten regulären Node +in ihrer gewählten Richtung bei, auch nach einem virtuellen Einstieg mitten auf +der Kante. Alle sechs Sekunden prüft sie von der aktuellen Position den lokalen +MMAP-Anschluss zum Reiseziel. Während einer negativen Prüfung läuft die bestehende +Straßenspline weiter: kein Halt, kein Umdrehen, keine Sperre der Kante und kein +Verbrauch der fünf Recovery-Versuche. Das gilt auch nach beliebig vielen negativen +Prüfungen. Nur ein vollständiger Anschluss mit höchstens 500 Yards Pfadlänge und +höchstens 1,5 Yards Zielabweichung löst den lokalen Ausstieg aus. + +Scheitert ein bereits gestarteter lokaler Ausstieg, versucht die Ausführung den +Wiedereinstieg am nächsten noch nicht passierten Straßenpunkt über MMAP. Den +Fortschritt bestimmt der Index der laufenden Spline, nicht der geometrisch nächste +Punkt, der auf sich kreuzenden Straßen hinter dem Bot liegen könnte. Ein tatsächlich +nicht mehr erreichbarer Wiedereinstieg ist dagegen ein Bewegungsfehler und darf +Recovery auslösen. Ein geplantes Flugziel ab einem virtuellen Exit bleibt eine +optionale normale Flugalternative mit den üblichen Auswahlregeln. + +Wird kein Exit nutzbar, erreicht der Bot den regulären Endnode. Erst dort wird die +Fortsetzung neu geplant; das Erreichen dieses Nodes zählt nicht als Fehlversuch. +Nach vollständig durchfahrener Kante wird deren erfolglose geometrische +Ausstiegsannahme für diese Reiserichtung nicht erneut als gesicherte Zieloption +geplant. Die Kante bleibt befahrbar und bei späteren Durchfahrten werden weiterhin +Live-Prüfungen durchgeführt. So führen dieselben unbelegten Ausstiegsannahmen +nicht zu endlosen Rundreisen zwischen den regulären Endnodes. +Ein angeforderter Intentwechsel kann dort wie an anderen sicheren Nodes stattfinden. + +Wenn keine reguläre Reise geplant werden kann, eine nutzbare Teilroute endet oder +die tatsächliche Bewegungs-Recovery ausgeschöpft ist, prüft die Ausführung freien +Flug zum Ziel auf derselben Karte. Für diesen Rückfall gelten weder die normale +Mindestdistanz noch Zonenpräferenzen, Straßenkostenvorteile oder die normale +20.000-Yards-Auswahlschranke. Flugberechtigung, gelernte Flugmounts, native +Zauberprüfungen, Geometrie, sichere Landung und der Fußweg vom Landeplatz zum Ziel +bleiben erforderlich. Eine erfolgreich gestartete Rückfalloption wird innerhalb +derselben Reiseaktion nicht endlos erneut gestartet. + +Die Diagnoseeinträge heißen `GROUND_EXIT_CHECK`, `GROUND_EXIT_ARRIVED`, +`FLIGHT_FALLBACK_UNAVAILABLE` und `FLIGHT_FALLBACK_STARTED`. + +Regressionstests: + +```bash +python3 tests/clientless/test_ground_exit_continuation.py +python3 tests/clientless/test_free_flight_planner.py +python3 tests/clientless/test_flight_policy.py +python3 tests/clientless/test_adventure_graph_handover.py +``` + +Sie führen produktive Methoden mit kontrollierten Bewegungs- und MMAP-Daten aus. +Unter anderem bleiben bei zwanzig negativen Exitprüfungen Route, Straßenfahrt, +Richtung, Sperrlisten und Recovery-Zähler erhalten; ein später gültiger Anschluss +führt zum ursprünglichen Ziel. Das ersetzt keine visuelle Abnahme im Spiel. + +Prüfstand vom 27.10.2026 für diese Korrektur: Alle 21 Skripte unter +`tests/clientless/test_*.py` bestanden. Der bestehende Debug-Build wurde mit +`cmake --build /home/wow_admin/wow_cata_server/build/debug -j10` erfolgreich +gebaut und über die vorhandene CMake-Installation übernommen. Der frische +Testserver-Start erreichte `(worldserver-daemon) ready...`; Prozess und Listener +auf Port 8085 wurden danach bestätigt. Arthorans konkrete Hafen–Tor–Tavernenreise +ist mit diesem Stand noch nicht im Spiel abgenommen. + ## Profil und Konfiguration Im `movement`-Abschnitt des Charakterprofils: diff --git a/doc/clientless/intent-katalog.md b/doc/clientless/intent-katalog.md new file mode 100644 index 0000000000..b29fe36180 --- /dev/null +++ b/doc/clientless/intent-katalog.md @@ -0,0 +1,47 @@ +# Sieben Grundintents der AdventureBots + +Konzeptstand: 27.10.2026. Vom Nutzer aus dem vorangegangenen Gespräch +rekonstruiert und bestätigt. Diese Festlegung erweitert die bisher nur drei +Intents umfassenden Dokumente. Sie beschreibt das vereinbarte Verhalten, +nicht eine bereits vollständig vorhandene Implementierung. + +AdventureBots stellen glaubwürdige Abenteurer dar. Ein Intent beschreibt ein +Vorhaben; Reise und kontextabhängige Mikroaktionen setzen es um. Eine +Mikroaktion kann zu mehreren Intents passen, etwa Sitzen bei Geselligkeit +oder Ruhe. Entscheidend ist der Zweck des Aufenthalts. + +## Die sieben Grundintents + +| Intent | Zweck und Beispiele | +|---|---| +| Geselligkeit | Tavernenbesuche, Essen und Trinken, Gespräche und gemeinsame soziale Szenen. | +| Abenteuer | Erkundung, Untersuchung von Orten und Objekten, sichtbare Aktivitäten in der offenen Welt. Eine tatsächliche Kampf-KI bleibt eine spätere Ausbaustufe. | +| Beruf | Zum Berufsprofil passende Arbeit darstellen, beispielsweise an Erzquellen, Pflanzen, Schmieden oder Werkbänken. Ressourcen und Inventar werden dabei nicht verändert. | +| Instanzen | Eine Instanz performativ besuchen: zum Eingang reisen, die Instanz betreten und nach einiger Zeit wieder am Ausgang erscheinen. Der Bot muss die Instanz weder durchlaufen noch dort tatsächlich kämpfen. | +| Ruhe | Erholung darstellen: sich an geeigneten Plätzen schlafen legen, sitzen und andere erholsame Tätigkeiten ausführen. | +| Freizeit | Sich ohne konkretes Arbeits- oder Abenteuerziel bewegen, beispielsweise in Sturmwind spazieren gehen, ziellos umherlaufen, reiten oder fliegen. | +| Wirtschaften | Wirtschaftliche Aktivitäten performativ darstellen: Händler, Auktionshaus oder Bank aufsuchen. Der Bot handelt dabei nicht tatsächlich. | + +Instanzbesuche bilden einen eigenen Grundintent und werden nicht lediglich +unter Abenteuer geführt. Freizeit ist ebenfalls ein eigenes Vorhaben; +Fortbewegung dient dort dem Aufenthalt selbst und nicht nur der Anreise. +Beruf bezeichnet die dargestellte Arbeit, Wirtschaften die dargestellten +wirtschaftlichen Besuche und Aktivitäten. + +## Implementierungsstand und offene Ausgestaltung + +Der bestehende Verhaltensmanager kennt aktuell die technischen Intentnamen +`social`, `adventure`, `profession`, `rest`, `leisure` und `economy`. Der [Ruhe-Intent](rest-intent.md) +ist ergänzt, ebenso der [Freizeit-Intent](leisure-intent.md) und der +[Wirtschaften-Intent](economy-intent.md). Der [Abenteuer-Ausbau](adventure-intent.md) +ergänzt Erkundung und Objektuntersuchung. Instanzbesuche bleiben konzeptionell +festgehalten; ihr technischer Name und Detailablauf sind noch nicht umgesetzt. Der ausführliche bisherige +[Mikroaktionskatalog](mikroaktions-katalog.md) bleibt als Grundlage erhalten. + +Der Geselligkeitsausbau ist implementiert. Die Sitzposition auf nativen +Stühlen wurde vom Nutzer auch visuell im Spiel geprüft und funktioniert. +Eine Prüfung von Gesprächen zwischen mehreren AdventureBots setzt voraus, +dass mehrere solche Bots vorhanden sind. + +Weitere Einzelheiten des früheren Gesprächs sind durch diese Rekonstruktion +nicht belegt und dürfen nicht als bereits vereinbart vorausgesetzt werden. diff --git a/doc/clientless/last.txt b/doc/clientless/last.txt new file mode 100644 index 0000000000..537ee40e6e --- /dev/null +++ b/doc/clientless/last.txt @@ -0,0 +1,55 @@ +› OK stop, er findet ja den weg schon wieder nicht. Es sieht so aus, als würde er den virtuellen entry auf der Kante sturmwind Hafen - sturmwind gate verwenden. Er reitet diese auch lang aber nach einem Stück bricht er ab. Warum? Er mü… + + 1. Der Planer bewertet den restlichen Weg zur Taverne zunächst nur anhand der Luftlinienentfernung. Ob MMAP ihn tatsächlich laufen kann, prüft er erst am Ausstieg. + 2. Dort scheitert der lokale Anschluss mit PathRejected. + 3. Die Fehlerbehandlung sperrt nur diesen einzelnen Ausstiegspunkt. Deshalb wählt der Planer beim nächsten Versuch einen benachbarten Punkt derselben Kante – statt zuverlässig bis zum regulären Endknoten weiterzureisen. + 4. Nach fünf Fehlversuchen übernimmt der Adventure-Manager und wählt die Stadtbank als Ersatzort. Dadurch wird das ursprüngliche Tavernen-Ziel aufgegeben. + + Das Weiterfahren bis zum echten Knoten fehlt hier als wirksame Rückfallstrategie. Sturmwind Gate und der Greifenmeister werden zwar im Suchlauf geprüft, aber nicht als zwingender nächster Schritt über die weiterhin nutzbare + aufgezeichnete Kante angesteuert. + + Beim Fliegen kommt eine zweite Einschränkung hinzu: Die aktuelle Konfiguration lässt gewöhnliche Flugstrecken erst ab 600 Yards zu. Die hier geplanten lokalen Anschlüsse liegen bei ungefähr 260–300 Yards und werden dadurch + ausgeschlossen. Flugfähigkeit allein genügt der aktuellen Auswahl also nicht. + + Die Korrektur muss deshalb an der Reiseplanung ansetzen: nach gescheitertem virtuellem Ausstieg die nutzbare Kante bis zum regulären Knoten weiterverfolgen und Flug als Alternative bei blockiertem Bodenweg berücksichtigen. Für die + Taverne wäre dabei ein erreichbarer Landeplatz draußen mit anschließendem Fußweg erforderlich. + + Worked for 1m 20s • 07:44 + +› Das Problem besteht also darin, wie unser Graphmanager alternativen wählt und mit fehlversuchen umgeht. Nach 5 gescheiterten virtuellen Exits die komplette Reise ab zu brechen ist natürlich Unsinn. Auch ist es unsinn, den Bot den + virtuellen exit nur 5 Mal probieren zu lassen, eine bessere Alternative wäre, ihn diesen in einem regulärem Zeitabstand regelmäßig erneut prüfen zu lassen, während der prüfung reitet er weiter zum regulärem Node Ziel, er darf auch auf + einer Kante nicht einfach mitten drinn umkehren, sondern muss zumindest zum nächsten NOde, virtuelle sind hier gleichberechtigt mit den anderen. SO verhindern wir, dass er auf der Strecke hin und herläuft weil er keinen virtuellen + exit findet. In unserem konkreten Beispiel heißt das, Arthoran läuft die reguläre route zum Tor von Sturmwind und prüft regelmäig ob er den virtuellen exit nehmen kann, beim scheitern läuft er weiter bis er irgendwann einen gültigen + virtuellen exit findet oder an der nächsten Node angekommen ist. Außerdem müssen wir bei der Auswahl des freien fliegens die Auswahlkriterien für eine normale Reise von einem Fallback für unerereichbare Ziele behandeln. Grundsätzlich + gilt: der Bot versucht erstmal immer so nah wie er kann an sein Zeil heran zu kommen. Wenn er feststellt, das keine reguläre Route zum Ziel führt, oder die Reise abgebrochen ist und er nicht mehr weiter kommt, dann soll er natürlich + auch das freie fliegen prüfen, ohn Regelen, die wir künstlich für normale Reisen gesetzt haben. + + +• Ich ändere die Reiseausführung so, dass ein fehlgeschlagener virtueller Ausstieg die laufende Kante nicht mehr abbricht: Arthoran folgt ihr weiter zum nächsten Knoten und prüft unterwegs in festen Abständen neue Ausstiegsmöglichkeiten. Für den freien Flug trenne ich die normale Reisewahl vom Rückfall bei blockiertem Bodenweg; die nativen Flug-, Kollisions- und Landeprüfungen bleiben dabei erhalten. + +• Ran git status --short --branch; cat src/server/game/World/ClientlessTravelGraphMgr.h | tail -150; cat src/server/game/World/ClientlessFlightMgr.h + └ }; + #define sClientlessFlightMgr ClientlessFlightMgr::instance() + #endif + + 217 lines (^t to expand) +• Explored + └ Read ClientlessActionExecutorMgr.cpp, ClientlessActionExecutorMgr.h + Read ClientlessTravelGraphMgr.cpp + Read ClientlessFlightMgr.cpp + + Show details +■ Conversation interrupted - use /feedback if something went wrong + + +› DU hast wohl Probleme mit der Internetverbindung, probier es nochmal + + +■ Conversation interrupted - use /feedback if something went wrong + + +› gut das klappt nicht, ich ahne auch warum. Speicher mal bitte den aktuellen Stand unserer Unterhaltungen und Konversationen so, dass du später ohne Probleme fortsetzen kannst. + + +■ Conversation interrupted - use /feedback if something went wrong + + +› A \ No newline at end of file diff --git a/doc/clientless/leisure-intent.md b/doc/clientless/leisure-intent.md new file mode 100644 index 0000000000..bc5465eb88 --- /dev/null +++ b/doc/clientless/leisure-intent.md @@ -0,0 +1,283 @@ +# Freizeit-Intent + +Technischer Name: `leisure`. Freizeit ist ein Aufenthalt mit Spaziergängen, +Pausen und freiwilligen Ausflügen, keine Folge endloser Fernreiseaufträge. +Migration: `sql/custom/world/2026_10_27_02_adventure_leisure.sql` nach den +Geselligkeits- und Ruhe-Migrationen. Definitionen und bearbeitete Gewichte bleiben +erhalten. Neue Tagespläne können Freizeit anhand `activity_affinity.leisure` +auswählen (Standard 0,5); vorhandene gespeicherte Tagespläne bleiben bestehen. + +## Mikroaktionen + +| Schlüssel | Ablauf | +|---|---| +| `leisure_walk` | Zusammenhängender MMAP-Hinweg zu einem entfernten Außenpunkt, danach dieselben Wegpunkte zurück; Gehmodus und kurze Pause am Wendepunkt. | +| `leisure_roam` | Eine lokale Spazierstrecke auswählen, vollständig verfolgen und auf demselben Weg zurückkehren. | +| `leisure_pet_walk` | Eigenen Begleiter beschwören, gegebenenfalls anleinen, eine zusammenhängende Strecke entspannt hin und zurück gehen, zurückkehren und eigene Begleiterressourcen aufräumen. | +| `leisure_ride` | Kurzer Rundritt mit Profil-Bodenmount; nur Außenwege, danach zurückkehren und absteigen. | +| `leisure_flight` | Kurzer Rundflug mit nativen Start-, Kollisions- und Landeprüfungen; sichere Landung und Rückkehr vor Intentwechsel. | +| `leisure_fish` | An einem markierten `leisure_fishing`-Platz mit ausgerüsteter Angel und geprüftem Wasser native Angelhaltung darstellen. Kein Fischfang, Beuteobjekt oder Inventarzugang. | +| `leisure_view`, `leisure_linger` | Aussicht betrachten beziehungsweise ruhig verweilen. | + +Gemeinsame Szenen ergänzen NPC-/Bot-Gespräche, Zuhören, native Sitzplätze, +Essen, Trinken und Feuerrast. Tanz wird bei Freizeit nur an einer als `festival` +klassifizierten Location angeboten. Neue Feuer bleiben in Gebäuden und Städten +verboten. Freizeit verwendet vorhandene Fähigkeiten statt eigener Sitz-, +Gesprächs- oder Feuerimplementierungen. + +Geplante Fußspaziergänge bleiben höchstens 250 Yards vom Aufenthaltsanker entfernt; andere lokale Ausflüge höchstens 120 Yards. +Stadtlocations mit `zone_id` und Gebietsaufträge behalten ihre native Gebietsgrenze; +Bodenwege werden einschließlich Zwischenpunkten über MMAP geprüft. Reitwege +müssen entlang der gesamten berechneten Bodenroute im Außenbereich bleiben. +Bodenrunden wählen nahe Bodenhöhen mit höchstens drei Yards Abweichung zum +Ausgangspunkt; erhöhte Dachpunkte werden nicht als Spaziergangziele verwendet. +Nach einer Sitz-/Esspause im Gebäude bleiben Fußspaziergänge, Umherlaufen und +Haustierausführen wählbar: Die normalen lokalen Wege führen wieder zu den +geprüften Außenpunkten. Rückkehrort ist dann der äußere Freizeitanker statt +des Innenraum-Sitzplatzes. Ausritte und Rundflüge benötigen weiterhin einen +Außenstart; die Feuerverbote in Gebäuden und Städten bleiben bestehen. +Kein unerreichter Wegpunkt zählt als Ankunft. Normale Ausflüge kehren zum +Ausgangspunkt zurück; Zeitlimits, verlorene Begleiter oder Navigationsfehler +beenden einen nicht mehr sicher ausführbaren Ablauf, ohne eine Rückkehr vorzutäuschen. + +Fußspaziergänge (`walk`, `roam`, `pet_walk`) wählen vor dem Losgehen genau +**eine** vollständige native Bodenroute mit mindestens 65 Yards Abstand zum +Ausgangspunkt. Das Hinweg-Budget beträgt abhängig von der Mikroaktionsdauer +100–220 Yards. Unvollständige Pfade, Shortcuts, übermäßige Umwege, fremde Gebiete +und Innenraumstrecken werden verworfen. Etwa alle 20 Yards werden echte +MMAP-Punkte als Kontrollpunkte gespeichert; lokale Navigation verbindet sie. +Der Wendepunkt kommt nur einmal vor, danach folgen die Kontrollpunkte rückwärts +bis zum Start. Es gibt keine regelmäßigen Pausen zwischen Kontrollpunkten; +am Wendepunkt sind vier Sekunden vorgesehen. Die Begleiter-Abstandsprüfung +bleibt unabhängig davon aktiv. Bei Zeitende oder einem gescheiterten Hinweg +wird entlang tatsächlich erreichter Kontrollpunkte zurückgegangen, statt einen +neuen geraden Rückweg oder weitere Zufallsziele zu wählen. Ein nicht möglicher +Rückweg wird als Fehler beendet und niemals als Rückkehr ausgegeben. + +`stormwind_leisure_trade` verwendet die vorhandene Bodenposition von +`game_tele.TradeDistrict` als Freizeitanker. Dorthin wird regulär gereist, nicht +teleportiert. Weitere Orte beziehungsweise Angelplätze müssen passend markiert +und räumlich geprüft werden. Eine fehlende Angel oder ein fehlender geeigneter +Angelplatz verhindert ausschließlich die Angelaktion. + +## Katze und Haustierleine + +Arthoran verwendet im `movement`-Profil: + +```lua +companion_spell = 10673, -- Bombay Cat, Kreatur 7385 +companion_leash_item = 37460, -- Rope Pet Leash, Gegenstandszauber 48722 +``` + +Diese IDs wurden in den geladenen nativen Spell-/SpellEffect-/Item-sparse-Daten +und der Test-Weltdatenbank bestätigt. Der Controller stellt die im Profil +gewählte nicht kämpfende Begleiterfähigkeit und die Leine einmalig als +Bot-Ausstattung bereit. Bestehende Ausstattung wird wiederverwendet; ein volles +Inventar verhindert keine unangeleinte Variante. + +`ClientlessCompanionMgr` ist eine generische Clientless-Core-Fähigkeit ohne +Abhängigkeit vom AdventureBot-Manager. Die Beschwörung ist ein normaler, +nicht ausgelöster Spielerzauber. Erst ein tatsächlich vorhandener eigener +Begleiter mit passendem Beschwörungszauber bestätigt die Beschwörung. Die +Katze folgt mit dem nativen Folgegenerator. Für die eigens beschworene Katze +wird ein Abstand von 1,5 Yards mit nativem Aufholen gewählt; ein bereits vorhandener +Begleiter behält seine Bewegungskonfiguration. Es gibt keine Spielerteleports, +künstliche Katzen-Spawns oder eine ersetzt implementierte Tier-KI. + +Die Leine wird über den normalen Gegenstandszauber-Auftrag des Besitzers +benutzt, mit tatsächlicher Gegenstands-GUID, Inventarposition und eigenem +Minipet als Ziel. Dadurch bleiben native Gegenstands-, Zauber-, Ziel-, +Abklingzeit- und Scriptprüfungen erhalten. Die Wirkung wird am tatsächlichen +Begleiter bestätigt. Die native Leine ist ein beweglicher Kanalzauber. Der Clientless-Reisemanager +erhält solche Kanäle beim Starten lokaler Bewegungen; nur bewegungsblockierende +Zauber werden abgebrochen. Unbewegliche Kanäle werden nicht als Gehleine verwendet; eine nicht anwendbare Leine blockiert den Spaziergang nicht. + +Der Besitzer beginnt erst nach bestätigter Beschwörung und abgeschlossener +Leinenprüfung zu gehen. Bei aktiver Leine reagiert die Steuerung in jedem Weltupdate vor Erreichen der +nativen Fünf-Yards-Reichweite: Ab vier Yards wartet Arthoran, bis die Katze wieder +höchstens 3,25 Yards entfernt ist. Ohne Leine gilt eine Grenze von 15 Yards. +Eine Wartephase dauert höchstens 20 Sekunden. Eine verlorene eigene Leinenwirkung +kann höchstens zweimal über dieselbe normale Gegenstandsbenutzung neu angelegt werden. Beim Abschluss oder Abbruch werden nur die durch +diese Szene aufgebrachte Leinenwirkung und eine von ihr beschworene Katze +entfernt. Ein passender bereits vorhandener Begleiter kann benutzt werden und +bleibt danach bestehen. Fremde Begleiter und Kampf-Pets werden nicht ersetzt. + +## Diagnose und Tests + +```text +clientless adventure intent 26 leisure stormwind_leisure_trade 3600 +clientless adventure status 26 +clientless adventure micro 26 leisure_pet_walk +clientless adventure micro 26 leisure_walk +clientless adventure micro 26 leisure_ride +clientless adventure micro 26 leisure_flight +``` + +Gezielte Mikroaktionen benötigen den passenden laufenden Intent am Zielort und +durchlaufen dieselben Voraussetzungen wie die automatische Auswahl. + +Logereignisse: `LEISURE_START`, `LEISURE_WAYPOINT`, `LEISURE_COMPLETE`, +`COMPANION_START`, `COMPANION_CONFIRMED`, `COMPANION_LEASH_REQUEST`, +`COMPANION_LEASH_CONFIRMED`, `COMPANION_LEASH_UNAVAILABLE`, +`COMPANION_WALK_SAMPLE` und `COMPANION_END`. + +```bash +python3 tests/clientless/test_adventure_leisure.py +python3 tests/clientless/test_adventure_leisure_catalog.py +python3 tests/clientless/test_clientless_companion.py +``` + +Die Tests führen produktive Methoden mit kontrollierten Core-Adaptern aus: +Rundwege, tatsächliche Ankunft, Gebietsgrenzen, Begleiterbereitschaft, +Folgeabstand/Zeitlimit, Reitmodus, Fluglandung vor Intentwechsel, Angelvoraussetzungen, +Besitzprüfung, native Gegenstandsziele, Leinenbestätigung, Wiederverwendung und +Bereinigung. Die Migration wird auf wiederholbare Ergänzung, vorhandene gemeinsame +Aktionen und Erhalt manueller Gewichte geprüft. Sichtprüfung von Katze, Leine, +Spaziergängen, Ausritten, Flügen und Angelhaltung bleibt eine separate Ingame-Abnahme. + + +## Testserverstand am 27.10.2026 + +- Additive Freizeit-Migration angewendet: 2.644 aktive Adventure-Locations, + 42 Aktionen und 56 Dialogzeilen. Vorhandene Definitionen wurden erhalten. +- Bestehende Debug-Konfiguration nur für die neue Quelldatei neu eingelesen, + mit `-j10` gebaut und in den gestoppten Testserver installiert. Alle + 25 Clientless-Regressionsskripte bestanden am abschließenden Stand. +- Frischer Worldserver-Start mit `ready...`, fortlaufendem Prozess und + Listener auf Port 8085 bestätigt. Keine Produktion und kein Push. +- Arthoran reiste regulär von der Gilded Rose zum Freizeitanker im Handelsdistrikt. + `INTENT_ARRIVED` und automatische Spaziergang-/Umherlauf-/Sitzszenen wurden + beobachtet. Ein erster Ausritt erreichte einen Wegpunkt und wurde für den + Katzentest unterbrochen; ein vollständiger Live-Rundritt ist damit nicht belegt. +- Der erste Katzentest bestätigte die native Bombay-Katze und ihr Folgen. + Er zeigte außerdem, dass die Leine ein beweglicher Kanalzauber ist. Der + generische Reisemanager erhält diesen Kanal nun statt jeden Zauber pauschal + abzubrechen. Nicht passende optionale Wegpunkte werden übersprungen; die + tatsächliche Rückkehr bleibt verpflichtend. Hohe Dachpunkte sind für + Bodenrunden ausgeschlossen. +- Die native Leine hat fünf Yards Reichweite. Für die selbst beschworene Katze + wird deshalb derselbe native Folgegenerator mit engerem Abstand verwendet; + Abstandskontrolle läuft in jedem Weltupdate. Bestehende Begleiter behalten + ihre eigene Bewegungskonfiguration. +- Abschließender Live-Test: native Beschwörung von Kreatur 7385, normale + Gegenstandsbenutzung von 37460 mit Zauber 48722 und + `COMPANION_LEASH_CONFIRMED`. Zwei Bodenrunden mit 15 bestätigten Wegpunkten + einschließlich Rückkehr. Alle 15 `COMPANION_WALK_SAMPLE`-Proben zeigten + `leashed=1`, ohne `COMPANION_LEASH_LOST`; größte protokollierte Entfernung + 3,27 Yards. Rückkehr am 27.10.2026 um 12:57:49 mit `NAV_COMPLETE`, danach + `LEISURE_COMPLETE ... legs=15` und `COMPANION_END`. +- Nach dem Rundgang blieb Arthoran im Freizeit-Intent und wechselte zum + ruhigen Verweilen. Sein Startprofil war nur für den Testlogin temporär auf + Freizeit/Sturmwind gesetzt und ist wieder auf den bisherigen Sozialstart + zurückgesetzt; Katze, Leine und Freizeit-Affinität bleiben im Profil konfiguriert. + +Das ist eine serverseitige Bestätigung, keine visuelle Abnahme. Offen bleiben +insbesondere das Aussehen der Katze an der Leine, vollständige Ausritte und +Freizeit-Rundflüge sowie markierte Angelplätze und die Angelhaltung. Der zuvor +verschobene visuelle Schlaftest bleibt davon unabhängig offen. + + +### Allgemeine lokale Spline-Segmentierung + +Beim anschließenden freien Umherlaufen trat der zuvor auch bei anderen Reisen +beobachtete Fehler `_checkPathLengths()` für Arthoran auf. Ursache: Der +Clientless-Reisemanager entfernte nur Abschnitte bis 0,05 Yards, während native +Splines mindestens 0,1 Yards zwischen internen Punkten verlangen. Zusätzlich +konnte das Kürzen bei 45 Yards einen zu kurzen letzten Rest erzeugen. + +Die Segmentbildung verwendet jetzt 0,11 Yards Mindestlänge als Rundungsmarge +und endet bei zu kurzem Rest am letzten wirklichen Pfadpunkt. Danach folgt die +nächste reguläre lokale Teilstrecke. Die native Prüfung bleibt unverändert. +`test_local_spline_segments.py` führt die produktive Segmentbildung gegen die +produktive native Längenprüfung aus, einschließlich des gefundenen Restfalls +und 1.000 gesampelter Pfade. Der ergänzte Stand besteht alle 26 Clientless-Tests +und wurde mit `-j10` erfolgreich gebaut. + +Nach Installation der Spline-Korrektur erreichte der Testserver erneut +`ready...`; Prozess und Port 8085 wurden bestätigt. Der längere Live-Test +`leisure_roam` durchlief acht bestätigte Wegpunkte einschließlich Rückkehr +und endete am 27.10.2026 um 13:08:02 mit `NAV_COMPLETE` und +`LEISURE_COMPLETE ... kind='roam' legs=8`. Dabei wurde auch eine native +45-Yards-Teilstrecke erfolgreich abgeschlossen und regulär fortgesetzt. +Im frischen Serverlog trat für GUID 26 kein `_checkPathLengths()` mehr auf. +Das temporär geänderte Test-Startziel ist zurückgesetzt. Der anschließende +Katzenspaziergang wird für die Sichtprüfung wieder über den normalen +Mikroaktionsbefehl gestartet. + +## Korrektur: Freizeit nach einer Innenraumpause + +Der Nutzer beobachtete Arthoran wiederholt beim Sitzen statt beim Spazieren. +Der laufende Auftrag war `leisure`, die letzten Szenen bestanden aber aus +Sitzen, Essen und Trinken auf Sitzplätzen bei `(-8827,648,98)` beziehungsweise +`(-8829,647,98)`. Die Auswahl sperrte bisher sämtliche Bewegungsaktionen im +Innenbereich. Damit konnten Fußausflüge nach einer Innenraumpause nicht mehr +angeboten werden. + +Die Außenstart-Voraussetzung gilt jetzt nur noch für Ausritte und Rundflüge. +Spazieren, Umherlaufen und Haustierausführen dürfen im Innenbereich beginnen; +sie verwenden weiterhin geprüfte Außenwegpunkte und vollständige MMAP-Wege. +Ihr Rückkehrort ist in diesem Fall der Außenanker statt des Innenraum-Sitzplatzes. +Feuerverbote und übrige Umgebungsprüfungen bleiben bestehen. + +Die Produktionsmethoden-Regression prüft ausdrücklich einen Innenraumstart, +freigegebene Fuß-/Haustierausflüge, weiterhin gesperrtes Reiten/Fliegen und die +Rückkehr zum Außenanker. Alle 26 Tests und der Build mit `-j10` bestanden. +Die Korrektur ist installiert; der frische Testserver-Start erreichte `ready...`, +Prozess und Port 8085 wurden bestätigt. Das nur für den Login geänderte +Startprofil wurde zurückgesetzt. + +Im laufenden Server wurden danach ein automatisch ausgewählter Katzenspaziergang +mit 15 bestätigten Wegpunkten und durchgehend aktiver Leine sowie ein anschließend +automatisch ausgewählter Spaziergang beobachtet. Gezielte Sitzszenen waren an +den jeweiligen momentanen Rundwegpositionen nicht verfügbar; eine Live-Abnahme +des exakten Innenraum-Sitzplatz-zu-Außenweg-Übergangs ist damit noch nicht belegt. +Zur direkten Sichtprüfung wurde der Katzenspaziergang erneut gezielt gestartet. + +## Zusammenhängende Fußrouten (27.10.2026) + +Die oben dokumentierten früheren Live-Tests mit kleinen Kreisrouten sind +historische Ergebnisse. Die neue Hin-/Rückwegplanung ersetzt diese Fußrouten. +Der ausführbare C++-Regressionstest prüft Mindestreichweite, spiegelbildliche +Rückwegpunkte, tatsächliche Ankunft, Rückkehr nach Zeitende und verweigerte +MMAP-Verbindungen. Die sichtbare Natürlichkeit bleibt der Ingame-Abnahme +vorbehalten. + +Live-Test des neuen Stands: Arthoran ging mit Katze und bestätigter Leine +von `(-8818.91, 614.20, 95.18)` zum 131,60 Yards entfernten Ziel +`(-8891.75, 504.59, 94.09)`. Alle neun Hinweg- und neun Rückwegankünfte +wurden bestätigt; die rückwärts besuchten Kontrollpunkte stimmten innerhalb +eines Yards mit dem Hinweg überein. Die tatsächliche Rückkehr lag unter +0,1 Yard vom Start entfernt. Alle 18 Begleiterproben bestätigten die aktive +Leine. Danach wurde automatisch ein weiterer normaler Spaziergang geplant. +Build mit `-j10`, Installation, Neustart, Ready-Meldung und Port 8085 waren +erfolgreich; alle 26 Clientless-Testskripte bestanden. Das ist eine technische +Live-Prüfung, keine abschließende visuelle Abnahme. + +## Gleichmäßiges Tempo beim Haustierausführen + +Die häufigen kurzen Stopps nach wenigen Yards wurden durch das native Folgen +ausgelöst: `MoveSplineInit::SetWalk` bestimmt das Splinetempo, setzt aber nicht +das Spielerflag `MOVEMENTFLAG_WALKING`. Der Folgegenerator las für Spieler +bisher nur dieses Flag und sagte deshalb Laufbewegung voraus, obwohl Arthoran +ging. Die Katze eilte voraus und die berechtigte Leinen-Abstandskontrolle +unterbrach daraufhin den Besitzer. + +Der generische native Folgegenerator verwendet jetzt bei einer aktiven +Server-Spline deren tatsächliche Geschwindigkeit auch für Spieler. Ohne aktive +Spline bleibt die Auswahl anhand der normalen Spielerbewegungsflags erhalten. +Die Abstandsprüfung und der native Leinenzauber bleiben bestehen. Ein separater +ausführbarer Regressionstest deckt servergesteuertes Gehen, explizite Tempi, +Laufen, Kreaturen und normale Clientbewegung ab. + +Live-Prüfung der Tempokorrektur: Die Katze begleitete Arthoran über acht +jeweils etwa 20 Yards lange Wegstücke (80 Yards hinaus und zurück). Für +alle acht gab es genau einen `NAV_START` und einen `NAV_COMPLETE`, keine +Unterbrechungen mit erneutem Start derselben Strecke. Alle acht +Begleiterproben bestätigten die aktive Leine; der Abstand lag bei etwa +2,3–2,5 Yards. Die Pause am Wendepunkt blieb erhalten. Build mit `-j10`, +Installation, Testserver-Neustart und alle 27 Clientless-Testskripte erfolgreich. +Die abschließende visuelle Beurteilung erfolgt im Spiel. + +Der Nutzer hat anschließend sowohl die zusammenhängenden Fußspaziergänge als +auch das flüssige Haustierausführen nach der Tempokorrektur visuell bestätigt. +Schlafdarstellung, Ausritte, Freizeitflüge und Angeln sind dadurch nicht abgenommen. diff --git a/doc/clientless/mikroaktions-katalog.md b/doc/clientless/mikroaktions-katalog.md index aa44a8a41d..2ee63d6afa 100644 --- a/doc/clientless/mikroaktions-katalog.md +++ b/doc/clientless/mikroaktions-katalog.md @@ -1,13 +1,19 @@ -# Vorschlag: Mikroaktionskatalog der AdventureBots +# Mikroaktionskatalog der sieben AdventureBot-Intents -Stand: 26.10.2026. Dieser Katalog beschreibt die vereinbarten Aktionen. -Die Geselligkeitsaktionen sind implementiert; weitere Abenteuer- und -Berufsaktionen bleiben Ausbaustufen. Den geprüften Implementierungsstand +Stand: 27.10.2026. Grundlage ist der [Intent-Katalog](intent-katalog.md) mit +**sieben Grundintents**. Die bestehenden Detailkataloge für Geselligkeit, +Abenteuer und Beruf werden hier um Instanzen, Ruhe, Freizeit und Wirtschaften +ergänzt. Die neuen Detailvorschläge sind eine Arbeitsgrundlage zur Abstimmung. + +Der bisherige Katalog vom 26.10.2026 beschreibt die vereinbarten Aktionen. +Geselligkeitsaktionen sowie die Ausbaustufen für Ruhe, Freizeit, Wirtschaften +und [Abenteuer-Erkundung](adventure-intent.md) sind implementiert. Weitere +Berufsaktionen und echte Kampfhandlungen bleiben Ausbaustufen. Den geprüften Implementierungsstand beschreibt [autonomous-behavior.md](autonomous-behavior.md). -Die Aktionen werden nach den drei Intents gewichtet und über -Umgebungsbedingungen freigegeben. Einige Aktionen dürfen in allen drei -Katalogen vorkommen, erhalten aber jeweils andere Gewichte und Varianten. +Die Aktionen werden nach den sieben Intents gewichtet und über +Umgebungsbedingungen freigegeben. Einige Aktionen dürfen in mehreren +Intent-Katalogen vorkommen, erhalten aber jeweils andere Gewichte und Varianten. ## Gemeinsame Grundfähigkeit: Lagerfeuer entzünden @@ -22,7 +28,9 @@ enthält hierfür keinen eigenen Datensatz; der Zauber stammt aus den DBC-Daten. Ein Rastablauf kann damit lauten: geeigneten Rastplatz aufsuchen → vorhandenes Feuer nutzen oder selbst ein Lagerfeuer entzünden → hinsetzen → essen, trinken oder pausieren → weiterziehen. Vorhandene Feuer sind eine Möglichkeit, keine -Voraussetzung. Das eigene Feuer verwendet den normalen Zauber und dessen +Voraussetzung. Neue Feuer dürfen nur außerhalb von Gebäuden und Städten +entzündet werden; diese Grenze gilt für sämtliche Intents. Vorhandene geeignete +Feuer bleiben nutzbar. Das eigene Feuer verwendet den normalen Zauber und dessen native Lebensdauer. Die Geselligkeitsumsetzung verwendet dafür den nativen Zauber und prüft das tatsächlich entstandene Feuerobjekt. @@ -148,3 +156,140 @@ Die Geselligkeits-Ausbaustufe umfasst NPC-/Bot-Gespräche, Sitzplatzsuche, Tresen/Gastwirt und situationsbezogene Gesprächsreaktionen. Objektuntersuchung und die weiteren Abenteuer- und Berufsaktionen können darauf aufbauen, ohne bereits die Kampf-KI vorauszusetzen. + +## Instanzen + +Der Besuch ist performativ. Die sichtbare Anreise und das Betreten müssen +plausibel stattfinden; ein Durchlaufen oder Kampf innerhalb der Instanz ist +nicht erforderlich. Die verborgene Aufenthaltsphase ist Teil des Intent-Ablaufs, +keine zufällig neben anderen Gesten auswählbare Mikroaktion. + +| Aktion | Darstellung und Bedingungen | +|---|---| +| Den Eingang aufsuchen | Einen erreichbaren Wartepunkt vor dem passenden Instanzeingang aufsuchen. | +| Den Eingang betrachten | Zum Eingang schauen, kurz innehalten und sich umsehen. | +| Sich vorbereiten | Ausrüstung prüfen und eine kurze Vorbereitung darstellen. | +| Proviant zu sich nehmen | Vor dem Betreten essen oder trinken, sofern ein geeigneter Platz vorhanden ist. | +| Andere Abenteurer begrüßen | Nur bei tatsächlich anwesendem passendem Gegenüber. | +| Die Instanz betreten | Den tatsächlichen Eingang nutzen; bloßes Stehen davor zählt nicht als Besuch. | +| Den Aufenthalt abstrahieren | Nach bestätigtem Eintritt für eine festgelegte Besuchsdauer außerhalb der sichtbaren Außenwelt bleiben. Keine Dungeon-KI erforderlich. | +| Am Ausgang zurückkehren | Nach dem Aufenthalt am zugehörigen plausiblen Ausgang wieder erscheinen. | +| Nach dem Besuch sammeln | Kurz orientieren, Ausrüstung prüfen oder eine Rast darstellen. | + +Vorgeschlagener Ablauf: Anreise → Vorbereitung → bestätigter Eintritt → +abstrahierter Aufenthalt → Rückkehr → kurze Nachbereitung. +Zeitmodell, technische Unterbringung, Neustartverhalten und Rückkehrposition +werden vor der Umsetzung festgelegt. Ein fehlgeschlagener Eintritt darf die +Aufenthaltsphase nicht starten. + +## Ruhe + +Die erste Umsetzung ist als [Ruhe-Intent `rest`](rest-intent.md) dokumentiert: +native Sitzplätze, markierte Schlaf-/Bodenrastplätze, Essen und Trinken im +Sitzen, ruhiges Umsehen und Feuerrast über die gemeinsame Feuerfähigkeit. +Neue Feuer sind im Ruhe-Intent auf markierte Bodenrast-Locations beschränkt. Weitere Aktionen dieses Katalogs bleiben Ausbau. + +Erholung ist das eigentliche Vorhaben. Schlaf und längere Rast brauchen einen +passenden Platz; zufälliges Niederlegen auf Straßen oder in Durchgängen ist +keine geeignete Standarddarstellung. + +| Aktion | Darstellung und Bedingungen | +|---|---| +| Einen Ruheplatz suchen | Einen erreichbaren geeigneten Schlaf- oder Rastplatz aufsuchen. | +| Sich zur Ruhe setzen | Einen nativen Sitzplatz benutzen oder an einem geeigneten Rastpunkt am Boden sitzen. | +| Sich schlafen legen | An einem geeigneten Platz eine native Schlafdarstellung verwenden; vorhandene geeignete Betten bevorzugen, ohne deren Benutzbarkeit vorauszusetzen. | +| Schlafen | Eine zusammenhängende Ruhephase ohne dazwischengewürfelte Gespräche oder Arbeitsgesten halten. | +| Aufwachen und aufstehen | Schlafdarstellung beenden und sich vor dem Weitergehen aufrichten. | +| Am Feuer ruhen | Ein vorhandenes Feuer aufsuchen oder an geeignetem Platz ein eigenes entzünden. | +| Eine kleine Mahlzeit einnehmen | Essen oder trinken als Teil einer Rast. | +| Ruhig verweilen | Im Sitzen oder Stehen eine längere stille Pause einlegen. | +| Den Ruheplatz verlassen | Sitz- oder Schlafzustand sauber beenden und den Platz freigeben. | + +## Freizeit + +Die Umsetzung ist in [Freizeit-Intent `leisure`](leisure-intent.md) dokumentiert. + +Die Bewegung oder Beschäftigung ist hier selbst das Ziel. Freizeit braucht +keine ständig neuen Sehenswürdigkeiten oder vorgetäuschten Arbeitsaufträge. + +| Aktion | Darstellung und Bedingungen | +|---|---| +| Spazieren gehen | Mehrere erreichbare Punkte innerhalb der gewählten Stadt oder Umgebung im Gehmodus besuchen. | +| Ziellos umherlaufen | Abwechslungsreiche lokale Ziele innerhalb eines begrenzten Aufenthaltsbereichs wählen; keine endlose Fernreise. | +| Ein Haustier ausführen | Eigenen Begleiter beschwören, wenn möglich mit der nativen Haustierleine anleinen, einer zusammenhängenden lokalen MMAP-Strecke folgen und auf demselben Weg zurückkehren. Arthoran verwendet eine Bombay-Katze. | +| Einen Ausritt machen | In einer geeigneten Umgebung beritten umherziehen; vor unzulässigen Bereichen absteigen. | +| Einen Rundflug machen | Bei vorhandener Flugfähigkeit und erlaubtem Gebiet einen Freizeitflug mit geeigneter Landemöglichkeit durchführen. | +| Eine Aussicht genießen | Einen geeigneten Aussichtspunkt aufsuchen und länger betrachten. | +| An einem Platz verweilen | Einen Park, Brunnen, Marktplatz oder ein Ufer besuchen und dort pausieren. | +| Angeln darstellen | Einen erreichbaren geeigneten Angelplatz aufsuchen und den gemeinsamen Angelablauf verwenden. | +| Andere beobachten | Zum tatsächlichen Geschehen schauen und ruhig verweilen. | +| Sich ungezwungen unterhalten | Einen passenden anwesenden NPC oder Bot ansprechen. | +| An einem Fest teilnehmen | Nur bei tatsächlich passender Umgebung gelegentlich tanzen, jubeln oder andere Festgesten zeigen. | +| Eine Pause einlegen | Sitzen, essen oder trinken; anschließend die Freizeitbeschäftigung fortsetzen. | + +## Wirtschaften + +Alle Tätigkeiten sind performativ. Es gibt keine tatsächlichen Käufe, +Verkäufe, Auktionen, Gebote, Banktransfers oder Geldbewegungen. + +| Aktion | Darstellung und Bedingungen | +|---|---| +| Einen Händler aufsuchen | Zu einem erreichbaren passenden Händler gehen. | +| Waren betrachten | Zum Händler oder einer geeigneten Auslage ausrichten und verweilen. | +| Ein Handelsgespräch darstellen | Begrüßen, reden, zuhören und gegebenenfalls eine passende Textzeile verwenden. | +| Angebote vergleichen | Nacheinander unterschiedliche passende Händler oder Stände besuchen; Wiederholungen dämpfen. | +| Das Auktionshaus besuchen | Den zugänglichen Innenbereich beziehungsweise einen geeigneten Auktionator aufsuchen. | +| Auktionen betrachten | Beim Auktionator eine ruhige Prüfphase mit gelegentlichen passenden Gesten darstellen. | +| Die Bank besuchen | Einen geeigneten Bankschalter beziehungsweise Bankier aufsuchen. | +| Bankgeschäfte darstellen | Am Schalter verweilen und ein kurzes Gespräch oder eine Prüfung darstellen. | +| Taschen und Vorräte prüfen | Eine kurze Vorbereitung oder Nachbereitung ohne Inventaränderung darstellen. | +| Auf Bedienung warten | An einem geeigneten Punkt kurz warten; kein vollständiges Warteschlangensystem erforderlich. | +| Den Besuch abschließen | Verabschieden, Interaktion beenden und den Schalter oder Stand verlassen. | + +## Gemeinsame Aktionen und Intent-Zuordnung + +Eine Aktion wird einmal als Fähigkeit umgesetzt und kann mehreren Intents +zugeordnet werden. Der Intent liefert Gewicht, Dauer, Variante und Zielpräferenz. +Ein passender Intent allein reicht nicht: Umgebung, erreichbares Ziel und +benötigte Darstellung müssen ebenfalls passen. Es werden nicht alle Aktionen +automatisch für jeden Intent freigeschaltet. + +| Gemeinsame Aktion | Passende Intents | Unterschied im Ablauf | +|---|---|---| +| Angeln | Freizeit, Beruf | Freizeit betont entspanntes Verweilen; Beruf betont die wiederholte dargestellte Arbeit am Angelplatz. | +| Sitzen | Ruhe, Geselligkeit, Freizeit; als Pause auch Abenteuer und Beruf | Ruhe hält eine längere Erholungsphase; Geselligkeit verbindet Sitzen mit Trinken und Gesprächen. | +| Essen und Trinken | Geselligkeit, Ruhe, Abenteuer, Beruf, Freizeit, Instanzen | Tavernenaufenthalt, Rast, Arbeitspause oder Vorbereitung bestimmen Dauer und Variante. | +| Lagerfeuer und Feuerrast | Abenteuer, Ruhe, Geselligkeit, Freizeit | Je nach Vorhaben unterwegs rasten, länger ruhen oder gesellig verweilen. | +| Gespräch | Geselligkeit, Abenteuer, Beruf, Freizeit, Wirtschaften, Instanzen | Gastwirt, Reisender, Ausbilder, Händler oder Abenteurer sind passende unterschiedliche Ziele. | +| Umsehen und Betrachten | Alle sieben | Blickziel und Anlass müssen zur Szene passen. | +| Ausrüstung oder Vorräte prüfen | Abenteuer, Beruf, Instanzen, Wirtschaften | Vorbereitung, Werkzeugprüfung oder dargestellte Bestandsprüfung. | +| Ortswechsel | Alle sieben | Unterstützt das Vorhaben; nur bei Freizeit kann die Bewegung selbst die Haupttätigkeit sein. | + +### Gemeinsamer Angelablauf + +Angelplatz wählen → zum erreichbaren Ufer gehen → zum geeigneten Wasser +ausrichten → Angeln darstellen → warten → gegebenenfalls wiederholen → +Darstellung beenden und Platz verlassen. + +Für beide Intents bleibt Angeln zunächst performativ: kein Fang und keine +Inventaränderung. Vor der Implementierung sind geeignete native Darstellung, +eventuell benötigte Ausrüstung und die Prüfung eines Angelplatzes zu klären. +Die Wiederverwendung derselben Fähigkeit darf keine tatsächliche Beuteerzeugung +als unbeabsichtigten Nebeneffekt einschalten. + +## Schrittweise Umsetzung + +Die folgenden Schritte sind ein Vorschlag für die Reihenfolge, keine bereits +implementierten Funktionen: + +1. Den Katalog abstimmen und je Ausbaustufe Ziele, Voraussetzungen und Abschluss festlegen. +2. Ruhe mit Sitz-, Rast- und Schlafabläufen ergänzen; bestehende Sitz- und Feuerfähigkeiten wiederverwenden. +3. Freizeit mit Spaziergängen und Aufenthalten ergänzen; Ausritte und Rundflüge gesondert prüfen. +4. Wirtschaften mit Händler-, Bank- und Auktionshausbesuchen ergänzen. +5. Abenteuer um gezielte Erkundung und Objektuntersuchung erweitern. +6. Beruf um passende Arbeitsplätze und Darstellungen erweitern; Angeln gemeinsam für Beruf und Freizeit ergänzen. +7. Instanzbesuche mit bestätigtem Eintritt, abstrahiertem Aufenthalt und zuverlässiger Rückkehr ergänzen. + +Jede Stufe erhält passende technische Prüfungen und anschließend eine visuelle +Abnahme im Spiel. Der bestehende Geselligkeitsausbau bleibt Grundlage für +gemeinsame Gesprächs-, Sitz- und Rastfähigkeiten. Echte Kampf-KI bleibt separat. diff --git a/doc/clientless/rest-intent.md b/doc/clientless/rest-intent.md new file mode 100644 index 0000000000..736891a2d7 --- /dev/null +++ b/doc/clientless/rest-intent.md @@ -0,0 +1,190 @@ +# Ruhe-Intent + +Stand: 27.10.2026. Technischer Intentname: `rest`. + +Ruhe ist ein eigenes Vorhaben mit anschließender Auswahl passender +Mikroaktionen. Tavernen werden bei der Ortswahl stärker gewichtet als +Siedlungen. Native Stühle und Bänke dürfen auch außerhalb von Tavernen +benutzt werden, beispielsweise in Sturmwind. Ein Ort ohne passende +Ruhemöglichkeit löst die Suche nach einer Ersatzlocation aus. + +## Mikroaktionen + +| Schlüssel | Ausführung | +|---|---| +| `rest_seat` | Erreichbaren nativen Stuhl oder eine Bank aufsuchen, regulär benutzen und 60–100 Sekunden sitzen. | +| `rest_sleep` | Einen ausdrücklich markierten Schlafplatz aufsuchen und 120–300 Sekunden mit nativer Schlafhaltung ruhen. | +| `rest_ground` | Einen ausdrücklich markierten Bodenrastplatz aufsuchen und 60–120 Sekunden sitzen. | +| `rest_drink` | Eine vorhandene native Sitzgelegenheit benutzen und Trinken darstellen. | +| `rest_eat` | Eine vorhandene native Sitzgelegenheit benutzen und Essen darstellen. | +| `rest_look` | Kurzes ruhiges Umsehen zwischen den Ruhephasen. | +| `rest_fire` | Vorhandenes geeignetes Feuer nutzen oder an einem markierten Bodenrastplatz ein natives Kochfeuer entzünden, hingehen, sitzen, trinken und ruhen (45–75 Sekunden Szenenbasis). | + +Sitz-, Ess-, Trink- und Feuerabläufe verwenden dieselben Fähigkeiten wie Geselligkeit. +`2026_10_27_01_adventure_rest_fire.sql` ergänzt `rest_fire` mit Auswahlgewicht 3, +ohne vorhandene Szenen oder manuell geänderte Gewichte zu überschreiben. + +Für vorhandene Feuer gelten die bisherigen Ortsgrenzen, Phasen-, Sicht- und +Navigationsprüfungen. Ein eigenes Feuer wird bei `rest` nur an einer Location +mit Kategorie `rest_ground` erlaubt, zusätzlich zu den bestehenden Prüfungen +auf Außenbereich, ebenen freien Boden, Wasser, Fallen und Zauberabklingzeit. +Zusätzlich verbietet die gemeinsame Feuerfähigkeit das Entzünden innerhalb von +Städten für sämtliche Intents. Dafür werden Stadt-/Handelskanal-Kennzeichen der +nativen AreaTable am aktuellen Standort, in übergeordneten Gebieten und der +Zone geprüft. Fehlende oder zyklische Gebietsdaten erlauben kein neues Feuer. +Die Prüfung erfolgt auch unmittelbar vor dem Zaubern. Vorhandene geeignete +Feuer bleiben in Städten und Gebäuden nutzbar. +Ein fehlendes Feuer an einer Stadtbank oder in einer Taverne berechtigt nicht +zum Entzünden. Der native Zauber 818 benötigt keine Kochkunst; erst das +bestätigte Feuerobjekt erlaubt die anschließende Feuerrast. Verschwindet es, +endet die Szene. Aufstehen und Aufräumen erfolgen über denselben Szenenabschluss +wie bei den anderen Ruheaktionen. +Gespräche, Bestellungen und Tanz gehören nicht zum anfänglichen Ruhe-Katalog. +Die Zeit der Schlaf- und Bodenrastphase beginnt nach bestätigter Ankunft; +die lokale Anreise verwendet den Gehmodus und kein Bodenmount. + +## Geeignete Orte + +Die additive Migration ist +`sql/custom/world/2026_10_27_00_adventure_rest.sql` (nach den bisherigen +Verhaltens- und Geselligkeitsmigrationen anwenden). + +Die vorhandene Weltpunkt-Tabelle bleibt der Ortskatalog. Zusätzliche Kategorien: + +- `rest_seat`: Anlaufpunkt bei einer geeigneten nativen Sitzgelegenheit. +- `rest_sleep`: ausdrücklich festgelegter Schlafplatz mit Position und Ausrichtung. +- `rest_ground`: ausdrücklich festgelegter Bodenrastplatz. + +Ein Schlafplatz ist keine automatische Bettinteraktion. Der Bot läuft zur +markierten Position und nimmt dort die native Schlafhaltung ein. Dekorative +Betten werden weder als benutzbar vorausgesetzt noch durch Teleports betreten. +Neue Schlafplätze müssen räumlich und visuell geprüft werden. + +Die Migration ergänzt einen Ruheplatz im Obergeschoss der Goldhainer Taverne +(`goldshire_sleep_upstairs`) und einen Anlaufpunkt bei einer vorhandenen +Sturmwinder Steinbank (`stormwind_rest_bench`, Spawn 219847, Entry 203946). +Die Bankdefinition wird nur angelegt, wenn der passende native Spawn vorhanden +ist. Bestehende Definitionen und manuell bearbeitete Gewichte bleiben erhalten. + +Beim Schlafen oder Bodenrasten muss der Punkt zur Fraktion und Karte passen +und höchstens 30 Yards vom Aufenthaltsanker entfernt sein; maximal 12 Yards +Höhenunterschied erlauben einen Schlafplatz im Obergeschoss. Der lokale Weg +muss vollständig und unverdächtig sein und darf maximal 120 Yards lang sein. +Anlauf und Ankunft prüfen auf andere Spieler am Platz. Die Ankunft muss +innerhalb von 60 Sekunden und mit höchstens einem Yard Positionsabweichung +bestätigt werden. Wasser, Fallen, Kartenwechsel, entfernte Ortsdefinitionen, +veränderte Ruhehaltung und Kampf beenden beziehungsweise verhindern die Szene. +Beim Abbruch oder Intentwechsel wird die Haltung zurückgesetzt. Fernreisen +behalten die vorhandene sichere Übergabe an regulären Graphnodes. + +## Bedienung + +Serverkonsole (im Spiel mit führendem Punkt): + +```text +clientless adventure intent 26 rest goldshire_tavern 3600 +clientless adventure status 26 +clientless adventure micro 26 rest_sleep +clientless adventure intent 26 rest stormwind_rest_bench 3600 +clientless adventure micro 26 rest_seat +clientless adventure stop 26 +``` + +`micro` ist ein gezielter Test während eines laufenden passenden Intents am +Zielort. Es umgeht weder Ortsbedingungen noch Navigation oder native +Sitzbestätigung. Der Tagesplaner kann `rest` anhand von +`activity_affinity.rest` auswählen (Standardgewicht 0,5); vorhandene gespeicherte +Tagespläne werden nicht nachträglich umgeschrieben. Arthorans Tagesplan bleibt +für die gezielte Sichtprüfung ausgeschaltet. + +## Prüfungen + +```bash +python3 tests/clientless/test_adventure_rest.py +python3 tests/clientless/test_adventure_rest_fire.py +python3 tests/clientless/test_adventure_social_fire.py +python3 tests/clientless/test_adventure_micro_reset.py +python3 tests/clientless/test_adventure_intent_state.py +python3 tests/clientless/test_adventure_social.py +python3 tests/clientless/test_adventure_walk.py +``` + +Die neue Regression führt die produktiven Auswahl- und Aktualisierungsfunktionen +mit kontrollierten Navigationsadaptern aus: geeignete Kategorien, Karte, +Fraktion, Abstand und Höhe, bestätigte Ankunft, belegte Plätze, vollständige +Ruhedauer nach Anreise, Navigationsfehler, Zeitlimit, Katalogänderung und +unterbrochene Haltung. Bestehende Prüfungen decken Sitzbestätigung, Gehmodus, +Aufräumen und Intentübergabe ab. Build und technische Tests ersetzen die +visuelle Abnahme der neuen Ruheabläufe nicht. + +## Testserverstand am 27.10.2026 + +- Debug-Build mit `-j10` erfolgreich, installiert. Alle neun ausgeführten + Adventure-/Beobachter-Regressionsskripte erfolgreich. +- Frische Worldserver-Sitzung mit `(worldserver-daemon) ready...`, fortlaufendem + Prozess und geöffnetem Port 8085 bestätigt. +- Goldhain: `INTENT_ARRIVED`, `REST_APPROACH` und `REST_CONFIRMED` für + `goldshire_sleep_upstairs` bestätigt. Der lokale Weg führte über die Treppe + und zwei Splineabschnitte mit `walk=1`; die tatsächliche Ankunft lag bei + `(-9457.200, 32.800, 63.820)`. Angeforderte Schlafdauer: 131 Sekunden. + Der nachfolgende Intentwechsel beendete diese Schlafphase vorzeitig. +- Sturmwind: `INTENT_ARRIVED` und `rest_seat` bestätigt. Native Steinbank + Entry 203936, Slotposition `(-8473.900, 847.299, 105.786)`, Slotfehler + `0.000`, Sitzhaltung `5`, Bewegungs-GUID `26`. Der lokale Anlauf lief mit + `walk=1`. Die Auswahl darf andere passende Bänke in der Nähe des + Anlaufpunkts verwenden. +- Der Banktest begann nach administrativer Positionierung am Kathedralenplatz; + die anschließende Navigation zum Ruheort und die Sitzplatzbenutzung waren + regulär. Die Fernreise von Goldhain zu dieser Bank ist nicht als erfolgreich + geprüft einzustufen: der bestehende Graph plante einen weiten Umweg über + Eisenschmiede (16 Schritte zum Hafenanker); der Versuch wurde beendet. + Bei einer zwischenzeitlichen Rückreise traten außerdem vorhandene + Navigationsfehler mit `_checkPathLengths()` auf. Diese Reiseprobleme wurden + im Rahmen der Ruhe-Erweiterung nicht verändert. +- Für den isolierten Banktest wurde der Startauftrag im Profil kurzzeitig + angepasst und nach bestätigtem Login wieder vollständig zurückgesetzt. + Arthoran bleibt zur Sichtprüfung im laufenden Ruhe-Intent in Sturmwind; + sein Tagesplan ist aus. Das unveränderte Profil startet nach erneutem Login + weiterhin den bisherigen Sozialauftrag in Goldhain. + +Offen bleiben die visuelle Abnahme der neuen Schlafdarstellung und des +Ruheablaufs sowie eine reguläre Fernreise bis zum Stadtbank-Ruheort. +Bodenrast ist automatisiert geprüft, hat aber noch keinen eigenen +Live-Testpunkt. Weitere Ruheorte können über den bestehenden Ortskatalog +ergänzt werden. + +Fortschreibung: Der Nutzer hat den lokalen Anlauf zur Stadtbank, Absteigen +und Hinsetzen visuell bestätigt. Für die anschließende Schlafvorführung in +Sturmwind wurde `gilded_rose_sleep_upstairs` im Obergeschoss der Taverne +`the_gilded_rose` ergänzt. Die markierte Bodenposition verwendet die native +Schlafhaltung; automatische Bettbenutzung ist weiterhin nicht implementiert. + +## Feuerrast-Ergänzung am 27.10.2026 + +`rest_fire` ist im Testkatalog aktiv (34 Aktionen insgesamt). Die additive +Migration wurde angewendet; vorhandene Feueraktionen für Geselligkeit und +Abenteuer blieben unverändert. Alle 22 Clientless-Regressionsskripte und der +Debug-Build mit `-j10` bestanden. Die Binärdateien sind installiert; der frische +Start erreichte `ready...`, Prozess und Port 8085 wurden bestätigt. + +Arthoran wurde mit seinem Ruheauftrag in der Gilded Rose wieder eingeloggt. +Sein Profil wurde nur für diesen Login temporär angepasst und anschließend +bytegenau zurückgesetzt. `INTENT_ARRIVED` und natives Sitzen sind erneut +bestätigt. Der gezielte Aufruf `micro 26 rest_fire` wurde dort mangels eines +geeigneten erkannten Feuers abgelehnt; die laufende Sitzszene blieb erhalten. +Damit ist die Laufzeitsperre an diesem Innenraum geprüft, nicht eine erfolgreiche +Feuerrast. Feuererzeugung und vorhandene Feuer sind mit kontrollierten Adaptern +getestet; eine positive Sichtprüfung der Feuerrast und der verschobene visuelle +Schlaftest bleiben offen. Im aktuellen Testkatalog gibt es noch keine aktivierten +`rest_ground`-Locations; neue Plätze müssen vor Freigabe räumlich geprüft werden. + + +Die ergänzte Gebäudesperre/Stadtsperre ist ebenfalls gebaut (`-j10`) und +installiert. Die drei betroffenen Feuer-/Szenen-Regressionsskripte bestanden, +einschließlich unmarkierter Stadtviertel mit Stadt-Parent, getrennter Zone, +Handelskanal-Kennzeichen, fehlender Gebietsdaten und weiterhin nutzbarer +vorhandener Feuer. Die geladenen enUS-AreaTable-Daten bestätigen die +Stadtkennzeichen unter anderem für Sturmwind und deren Vererbung an das +selbst unmarkierte Untergebiet 1617. Der Testserver erreichte erneut `ready...`; +Prozess und Port 8085 wurden geprüft. Arthoran ist wieder im Ruhe-Intent in +der Gilded Rose, sein temporär angepasstes Startprofil ist zurückgesetzt. diff --git a/sql/custom/world/.gitignore b/sql/custom/world/.gitignore index a263677ccb..cd8483c3e7 100644 --- a/sql/custom/world/.gitignore +++ b/sql/custom/world/.gitignore @@ -5,3 +5,10 @@ !2026_10_26_02_clientless_portal_use.sql !2026_10_26_03_adventure_behavior.sql !2026_10_26_04_adventure_social.sql +!2026_10_27_00_adventure_rest.sql +!2026_10_27_01_adventure_rest_fire.sql +!2026_10_27_02_adventure_leisure.sql + +!2026_10_27_03_adventure_economy.sql +!2026_10_27_04_adventure_exploration.sql +!2026_10_27_05_adventure_profession.sql diff --git a/sql/custom/world/2026_10_27_00_adventure_rest.sql b/sql/custom/world/2026_10_27_00_adventure_rest.sql new file mode 100644 index 0000000000..76fada6a45 --- /dev/null +++ b/sql/custom/world/2026_10_27_00_adventure_rest.sql @@ -0,0 +1,55 @@ +-- Apply after 2026_10_26_04. Preserve edited weights and existing world points. +INSERT IGNORE INTO vcore_adventure_location_intent VALUES + ('tavern','rest',8),('settlement','rest',1), + ('rest_seat','rest',4),('rest_sleep','rest',6),('rest_ground','rest',3); + +-- Native furniture scenes are shared with social; no generic ground sitting +-- in streets. Sleeping and ground sitting require explicitly authored points. +INSERT IGNORE INTO vcore_adventure_action VALUES + ('rest_seat','social',60,100,'seat',0), + ('rest_sleep','recovery',120,300,'sleep',0), + ('rest_ground','recovery',60,120,'ground',0), + ('rest_drink','social',35,60,'drink_seated',0), + ('rest_eat','social',35,60,'eat_seated',0), + ('rest_look','look',6,12,'',0); +INSERT IGNORE INTO vcore_adventure_action_intent VALUES + ('rest_seat','rest',6),('rest_sleep','rest',8),('rest_ground','rest',3), + ('rest_drink','rest',1),('rest_eat','rest',1),('rest_look','rest',0.25); + +-- Sleep/ground points are deliberately not generated from innkeepers or random +-- terrain. Add surveyed resting spots as enabled world points with category +-- rest_sleep/rest_ground. A city bench approach point uses rest_seat. + +-- Initial Goldshire upstairs resting corner. Navigation must confirm arrival +-- before the native sleep pose is applied; no teleport onto decorative beds. +INSERT IGNORE INTO vcore_clientless_world_point + (point_key,category,map,position_x,position_y,position_z,orientation,enabled,comment) VALUES + ('goldshire_sleep_upstairs','rest_sleep',0,-9457.2,32.8,63.9322,1.45,1, + 'Designated upstairs tavern floor resting spot; native sleep pose after MMAP arrival'); +INSERT IGNORE INTO vcore_adventure_location + (point_key,display_name,source_type,region_key,zone_id,faction) VALUES + ('goldshire_sleep_upstairs','Goldhain: Ruheplatz im Obergeschoss','manual','elwynn',12,1); + +-- Keep this dependent on the actual native bench spawn, rather than creating +-- furniture. The approach lies two yards in front of the Stormwind bench. +INSERT IGNORE INTO vcore_clientless_world_point + (point_key,category,map,position_x,position_y,position_z,orientation,enabled,comment) + SELECT 'stormwind_rest_bench','rest_seat',g.map, + g.position_x+2*COS(g.orientation),g.position_y+2*SIN(g.orientation), + g.position_z,g.orientation,1,'Rest approach to native Stormwind stone bench spawn 219847' + FROM gameobject g JOIN gameobject_template t ON t.entry=g.id + WHERE g.guid=219847 AND g.map=0 AND g.id=203946 AND t.type=7; +INSERT IGNORE INTO vcore_adventure_location + (point_key,display_name,source_type,region_key,zone_id,faction) + SELECT point_key,'Sturmwind: Bankpause','manual','stormwind',1519,1 + FROM vcore_clientless_world_point WHERE point_key='stormwind_rest_bench'; + +-- Gilded Rose upstairs resting corner; MMAP arrival is required and visual +-- suitability is checked in game. This is a floor pose, not native bed use. +INSERT IGNORE INTO vcore_clientless_world_point + (point_key,category,map,position_x,position_y,position_z,orientation,enabled,comment) VALUES + ('gilded_rose_sleep_upstairs','rest_sleep',0,-8863.8,685.8,104.932,3.74,1, + 'Designated upstairs Gilded Rose floor sleeping spot; visual acceptance pending'); +INSERT IGNORE INTO vcore_adventure_location + (point_key,display_name,source_type,region_key,zone_id,faction) VALUES + ('gilded_rose_sleep_upstairs','Gilded Rose: Ruheplatz im Obergeschoss','manual','stormwind',1519,1); diff --git a/sql/custom/world/2026_10_27_01_adventure_rest_fire.sql b/sql/custom/world/2026_10_27_01_adventure_rest_fire.sql new file mode 100644 index 0000000000..2d78a9aca2 --- /dev/null +++ b/sql/custom/world/2026_10_27_01_adventure_rest_fire.sql @@ -0,0 +1,7 @@ +-- Apply after 2026_10_27_00. Reuse the shared native fire scene for rest. +-- Preserve existing action definitions and manually edited selection weights. +INSERT IGNORE INTO vcore_adventure_action + (action_key,kind,min_seconds,max_seconds,requirement,emote_id) VALUES + ('rest_fire','social',45,75,'fire',0); +INSERT IGNORE INTO vcore_adventure_action_intent + (action_key,intent,weight) VALUES ('rest_fire','rest',3); diff --git a/sql/custom/world/2026_10_27_02_adventure_leisure.sql b/sql/custom/world/2026_10_27_02_adventure_leisure.sql new file mode 100644 index 0000000000..05e41991a8 --- /dev/null +++ b/sql/custom/world/2026_10_27_02_adventure_leisure.sql @@ -0,0 +1,39 @@ +-- Additive leisure catalog after the social/rest stages; preserve edited weights. +INSERT IGNORE INTO vcore_adventure_location_intent (category,intent,weight) VALUES + ('leisure','leisure',8),('leisure_fishing','leisure',3),('settlement','leisure',3), + ('landmark','leisure',1),('wilderness','leisure',2),('festival','leisure',3); +INSERT IGNORE INTO vcore_adventure_action + (action_key,kind,min_seconds,max_seconds,requirement,emote_id) VALUES + ('leisure_walk','leisure',150,240,'walk',0), + ('leisure_roam','leisure',90,180,'roam',0), + ('leisure_pet_walk','leisure',180,300,'pet_walk',0), + ('leisure_ride','leisure',90,180,'ride',0), + ('leisure_flight','leisure',180,300,'flight',0), + ('leisure_fish','leisure',45,90,'fish',0), + ('leisure_view','look',20,45,'',0), + ('leisure_linger','look',30,75,'',0); +INSERT IGNORE INTO vcore_adventure_action_intent (action_key,intent,weight) VALUES + ('leisure_walk','leisure',6),('leisure_roam','leisure',3),('leisure_pet_walk','leisure',3), + ('leisure_ride','leisure',1),('leisure_flight','leisure',0.4),('leisure_fish','leisure',2), + ('leisure_view','leisure',2),('leisure_linger','leisure',2), + ('social_npc','leisure',1),('social_bot','leisure',1),('social_listen','leisure',0.8), + ('social_seat','leisure',2),('rest_drink','leisure',1),('rest_eat','leisure',1), + ('social_fire','leisure',0.5),('social_dance','leisure',0.3); +-- Native teleport catalog supplies surveyed ground coordinates; travel remains MMAP. +INSERT IGNORE INTO vcore_clientless_world_point + (point_key,category,map,position_x,position_y,position_z,orientation,enabled,comment) + SELECT 'stormwind_leisure_trade','leisure',map,position_x,position_y,position_z,orientation,1, + 'Leisure anchor at native TradeDistrict ground position; no teleport is performed' + FROM game_tele WHERE name='TradeDistrict' AND map=0; +INSERT IGNORE INTO vcore_adventure_location + (point_key,display_name,source_type,region_key,zone_id,faction) + SELECT point_key,'Sturmwind: Freizeit im Handelsdistrikt','manual','stormwind',1519,1 + FROM vcore_clientless_world_point WHERE point_key='stormwind_leisure_trade'; + +INSERT IGNORE INTO vcore_adventure_dialog (line_key,locale,intent,text,weight) VALUES + ('greet_leisure','deDE','leisure','Guten Tag! Ein schöner Tag für einen Spaziergang.',1), + ('talk_leisure','deDE','leisure','Heute lasse ich es einmal ruhig angehen.',1), + ('farewell_leisure','deDE','leisure','Macht es gut, ich drehe noch eine Runde.',1), + ('greet_leisure','enUS','leisure','Hello! A fine day for a stroll.',1), + ('talk_leisure','enUS','leisure','I am taking things easy today.',1), + ('farewell_leisure','enUS','leisure','Take care. I will walk a little farther.',1); diff --git a/sql/custom/world/2026_10_27_03_adventure_economy.sql b/sql/custom/world/2026_10_27_03_adventure_economy.sql new file mode 100644 index 0000000000..3fe6c94068 --- /dev/null +++ b/sql/custom/world/2026_10_27_03_adventure_economy.sql @@ -0,0 +1,48 @@ +-- Performative economic visits. Additive catalog; preserve edited definitions/weights. +INSERT IGNORE INTO vcore_adventure_location_intent (category,intent,weight) VALUES + ('economy_vendor','economy',5),('economy_bank','economy',3),('economy_auction','economy',3); +INSERT IGNORE INTO vcore_adventure_action + (action_key,kind,min_seconds,max_seconds,requirement,emote_id) VALUES + ('economy_vendor_visit','social',15,25,'vendor_visit',0), + ('economy_goods','social',25,45,'goods',0), + ('economy_trade','social',25,40,'trade',0), + ('economy_compare','social',50,70,'vendor_compare',0), + ('economy_auction_visit','social',20,30,'auction_visit',0), + ('economy_auctions','social',35,60,'auctions',0), + ('economy_bank_visit','social',15,25,'bank_visit',0), + ('economy_banking','social',30,50,'banking',0), + ('economy_supplies','social',12,20,'supplies',0), + ('economy_wait','social',10,20,'service_wait',0), + ('economy_finish','social',5,10,'service_finish',0); +INSERT IGNORE INTO vcore_adventure_action_intent (action_key,intent,weight) VALUES + ('economy_vendor_visit','economy',2),('economy_goods','economy',5),('economy_trade','economy',4), + ('economy_compare','economy',3),('economy_auction_visit','economy',2),('economy_auctions','economy',5), + ('economy_bank_visit','economy',2),('economy_banking','economy',5),('economy_supplies','economy',1), + ('economy_wait','economy',1),('economy_finish','economy',0.5); +-- Named Stormwind service spawns supply the anchor's facing and position. Bank +-- and auction NPCs stand on a raised counter platform; visitors use the floor +-- in front. These are navigation destinations, never teleport instructions. +INSERT IGNORE INTO vcore_clientless_world_point + (point_key,category,map,position_x,position_y,position_z,orientation,enabled,comment) + SELECT CASE c.id WHEN 1285 THEN 'stormwind_economy_market' WHEN 2456 THEN 'stormwind_economy_bank' ELSE 'stormwind_economy_auction' END, + CASE c.id WHEN 1285 THEN 'economy_vendor' WHEN 2456 THEN 'economy_bank' ELSE 'economy_auction' END, + c.map,c.position_x+COS(c.orientation)*7,c.position_y+SIN(c.orientation)*7, + c.position_z-CASE WHEN c.id=1285 THEN 0 ELSE 1.5 END,c.orientation,1, + 'Performative economic visit: arrival/withdrawal point in front of native service NPC; no transactions' + FROM creature c JOIN creature_template t ON t.entry=c.id + WHERE c.map=0 AND c.position_x BETWEEN -9000 AND -8750 AND c.position_y BETWEEN 450 AND 850 + AND ((c.id=1285 AND (t.npcflag & 128)<>0) OR (c.id=2456 AND (t.npcflag & 131072)<>0) + OR (c.id=8719 AND (t.npcflag & 2097152)<>0)) ORDER BY c.guid; +INSERT IGNORE INTO vcore_adventure_location + (point_key,display_name,source_type,region_key,zone_id,faction) + SELECT point_key,CASE category WHEN 'economy_vendor' THEN 'Sturmwind: Waren im Handelsdistrikt' + WHEN 'economy_bank' THEN 'Sturmwind: Bankbesuch' ELSE 'Sturmwind: Auktionshausbesuch' END, + 'manual','stormwind',1519,1 FROM vcore_clientless_world_point + WHERE point_key IN ('stormwind_economy_market','stormwind_economy_bank','stormwind_economy_auction'); +INSERT IGNORE INTO vcore_adventure_dialog (line_key,locale,intent,text,weight) VALUES + ('greet_economy','deDE','economy','Guten Tag. Ich möchte mich ein wenig umsehen.',1), + ('talk_economy','deDE','economy','Ich prüfe gerade, was ich für meine nächste Reise brauche.',1), + ('farewell_economy','deDE','economy','Vielen Dank für Eure Zeit. Einen schönen Tag noch!',1), + ('greet_economy','enUS','economy','Good day. I would like to have a look around.',1), + ('talk_economy','enUS','economy','I am checking what I need for my next journey.',1), + ('farewell_economy','enUS','economy','Thank you for your time. Have a good day!',1); diff --git a/sql/custom/world/2026_10_27_04_adventure_exploration.sql b/sql/custom/world/2026_10_27_04_adventure_exploration.sql new file mode 100644 index 0000000000..542c630832 --- /dev/null +++ b/sql/custom/world/2026_10_27_04_adventure_exploration.sql @@ -0,0 +1,43 @@ +-- Exploration builds on existing social/rest/native ground-outing abilities. +INSERT IGNORE INTO vcore_adventure_action + (action_key,kind,min_seconds,max_seconds,requirement,emote_id) VALUES + ('adventure_explore','outing',150,240,'explore',0), + ('adventure_patrol','outing',90,180,'patrol',0), + ('adventure_view','social',25,45,'vista',0), + ('adventure_inspect','social',20,35,'inspect',0), + ('adventure_inspect_detail','social',25,40,'inspect_detail',0), + ('adventure_point','social',8,15,'point_object',0), + ('adventure_scout','social',20,35,'scout',0), + ('adventure_equipment','social',12,20,'equipment',0), + ('adventure_entrance','social',20,35,'entrance',0), + ('adventure_comment','social',10,20,'comment',0); +INSERT IGNORE INTO vcore_adventure_action_intent (action_key,intent,weight) VALUES + ('adventure_explore','adventure',5),('adventure_patrol','adventure',3), + ('adventure_view','adventure',2),('adventure_inspect','adventure',4), + ('adventure_inspect_detail','adventure',3),('adventure_point','adventure',1), + ('adventure_scout','adventure',3),('adventure_equipment','adventure',1), + ('adventure_entrance','adventure',2),('adventure_comment','adventure',0.4), + ('social_npc','adventure',1.5),('social_seat','adventure',1), + ('social_fire','adventure',1.5),('rest_drink','adventure',0.5),('rest_eat','adventure',1); +-- Retire only the untouched original tiny random wander for this intent; +-- custom weights and its social/profession uses are preserved. +UPDATE vcore_adventure_action_intent SET weight=0 + WHERE action_key='explore' AND intent='adventure' AND weight=5; +INSERT IGNORE INTO vcore_adventure_dialog (line_key,locale,intent,text,weight) VALUES + ('greet_adventure','deDE','adventure','Seid gegrüßt. Ich sehe mich hier ein wenig um.',1), + ('talk_adventure','deDE','adventure','Gibt es hier in der Gegend etwas Interessantes zu entdecken?',1), + ('farewell_adventure','deDE','adventure','Danke für Eure Zeit. Ich werde mich noch etwas umsehen.',1), + ('comment_adventure','deDE','adventure','Das ist einen genaueren Blick wert.',1), + ('greet_adventure','enUS','adventure','Greetings. I am exploring the area.',1), + ('talk_adventure','enUS','adventure','Is there anything interesting to discover nearby?',1), + ('farewell_adventure','enUS','adventure','Thank you for your time. I will look around some more.',1), + ('comment_adventure','enUS','adventure','That deserves a closer look.',1); +-- Locations own their intent eligibility through the editable category mapping. +-- Materialize the previous general economic defaults instead of applying a +-- hidden code fallback. Existing edited weights, including zero, take priority. +INSERT IGNORE INTO vcore_adventure_location_intent (category,intent,weight) + SELECT DISTINCT category,'economy',CASE + WHEN category IN ('settlement','zone') THEN 6 + WHEN category IN ('bank','service','tavern') THEN 4 ELSE 1 END + FROM vcore_clientless_world_point WHERE category NOT LIKE 'travel%'; +INSERT IGNORE INTO vcore_adventure_location_intent (category,intent,weight) VALUES ('tavern','leisure',1); diff --git a/sql/custom/world/2026_10_27_05_adventure_profession.sql b/sql/custom/world/2026_10_27_05_adventure_profession.sql new file mode 100644 index 0000000000..11d8bd5bed --- /dev/null +++ b/sql/custom/world/2026_10_27_05_adventure_profession.sql @@ -0,0 +1,81 @@ +-- All jobs remain permanently performative. No harvesting/loot/crafting handlers. +CREATE TABLE IF NOT EXISTS vcore_adventure_workstation ( + gameobject_entry INT UNSIGNED NOT NULL, + role VARCHAR(32) NOT NULL, + enabled TINYINT UNSIGNED NOT NULL DEFAULT 1, + PRIMARY KEY(gameobject_entry,role) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +-- Native spell-focus semantics, verified against the loaded world templates. +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'anvil' FROM gameobject_template WHERE type=8 AND data0 IN (1,623); +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'forge' FROM gameobject_template WHERE type=8 AND data0 IN (3,543); +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'cooking' FROM gameobject_template WHERE type=8 AND data0=4; +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'alchemy' FROM gameobject_template WHERE type=8 AND data0=663; +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'inscription' FROM gameobject_template WHERE type=8 AND data0=1589; +-- Semantic roles describe object TYPES, never bot-specific locations. Permit +-- native focus-zero anvil/forge templates and explicit workshop props too. +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'anvil' FROM gameobject_template WHERE (type=5 OR (type=8 AND data0=0)) AND LOWER(name) LIKE '%anvil%'; +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'forge' FROM gameobject_template WHERE (type=5 OR (type=8 AND data0=0)) AND LOWER(name) LIKE '%forge%' AND LOWER(name) NOT LIKE '%runeforge%'; +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'workbench' FROM gameobject_template WHERE (type=8 AND data0 IN (1,623)) OR (type IN (5,8) AND LOWER(name) LIKE '%workbench%') OR ((type=5 OR (type=8 AND data0=0)) AND LOWER(name) LIKE '%anvil%'); +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'sewing' FROM gameobject_template WHERE type IN (5,8) AND (LOWER(name)='loom' OR LOWER(name) LIKE '% loom%' OR LOWER(name) LIKE 'doodad_loom%' OR LOWER(name) LIKE '%sewing%'); +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'leather' FROM gameobject_template WHERE type IN (5,8) AND (LOWER(name) LIKE '%tanning%' OR LOWER(name) LIKE '%leatherworking%table%'); +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'jewelcrafting' FROM gameobject_template WHERE type IN (5,8) AND LOWER(name) LIKE '%jewel%table%'; +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'enchanting' FROM gameobject_template WHERE type IN (5,8) AND LOWER(name) LIKE '%enchant%table%'; +INSERT IGNORE INTO vcore_adventure_workstation (gameobject_entry,role) + SELECT entry,'wood' FROM gameobject_template WHERE type IN (5,8) AND (LOWER(name) LIKE '%woodpile%' OR LOWER(name) LIKE '%wood pile%' OR LOWER(name) LIKE '%lumber pile%'); +INSERT IGNORE INTO vcore_adventure_action + (action_key,kind,min_seconds,max_seconds,requirement,emote_id) VALUES + ('profession_search','outing',90,150,'work_search',0), + ('profession_ore_inspect','social',12,20,'ore_inspect',0), + ('profession_herbalism','social',20,35,'work_herbalism',0), + ('profession_skinning','social',15,25,'work_skinning',0), + ('profession_smelting','social',25,40,'work_smelting',0), + ('profession_engineering','social',25,45,'work_engineering',0), + ('profession_alchemy','social',25,45,'work_alchemy',0), + ('profession_tailoring','social',25,45,'work_tailoring',0), + ('profession_leatherworking','social',25,45,'work_leatherworking',0), + ('profession_inscription','social',25,45,'work_inscription',0), + ('profession_enchanting','social',25,45,'work_enchanting',0), + ('profession_jewelcrafting','social',25,45,'work_jewelcrafting',0), + ('profession_wood','social',20,40,'work_wood',0), + ('profession_cooking','social',25,45,'work_cooking',0), + ('profession_first_aid','social',15,25,'work_first_aid',0), + ('profession_fishing','leisure',45,90,'fish',0), + ('profession_tools','social',12,20,'profession_tools',0), + ('profession_trainer','social',25,40,'profession_trainer',0), + ('profession_vendor','social',25,40,'profession_vendor',0); +INSERT IGNORE INTO vcore_adventure_action_intent (action_key,intent,weight) VALUES + ('profession_search','profession',8),('profession_ore_inspect','profession',2), + ('profession_herbalism','profession',5),('profession_skinning','profession',5), + ('profession_smelting','profession',3),('profession_engineering','profession',4), + ('profession_alchemy','profession',4),('profession_tailoring','profession',4), + ('profession_leatherworking','profession',4),('profession_inscription','profession',4), + ('profession_enchanting','profession',4),('profession_jewelcrafting','profession',4), + ('profession_wood','profession',0.5),('profession_cooking','profession',0.5), + ('profession_first_aid','profession',0.3),('profession_fishing','profession',0.5), + ('profession_tools','profession',1),('profession_trainer','profession',1), + ('profession_vendor','profession',1),('social_seat','profession',0.5); +-- A zone is a legitimate destination. Its actual workplaces/resources are +-- discovered after travel to a reachable graph node in that area. +INSERT IGNORE INTO vcore_adventure_location_intent (category,intent,weight) VALUES + ('zone','profession',3),('wilderness','profession',3),('settlement','profession',2); +UPDATE vcore_adventure_action_intent SET weight=0 + WHERE action_key='explore' AND intent='profession' AND weight=2; +INSERT IGNORE INTO vcore_adventure_dialog (line_key,locale,intent,text,weight) VALUES + ('greet_profession','deDE','profession','Seid gegrüßt. Habt Ihr kurz Zeit für eine Fachfrage?',1), + ('talk_profession','deDE','profession','Ich sehe mich nach passenden Materialien und Arbeitsplätzen um.',1), + ('farewell_profession','deDE','profession','Vielen Dank. Ich mache mich wieder an die Arbeit.',1), + ('greet_profession','enUS','profession','Greetings. Do you have a moment for a trade question?',1), + ('talk_profession','enUS','profession','I am looking for suitable materials and places to work.',1), + ('farewell_profession','enUS','profession','Thank you. I will get back to work.',1); diff --git a/src/server/game/Entities/Creature/Trainer.h b/src/server/game/Entities/Creature/Trainer.h index 09f34fcff3..2a2523809b 100644 --- a/src/server/game/Entities/Creature/Trainer.h +++ b/src/server/game/Entities/Creature/Trainer.h @@ -70,6 +70,8 @@ namespace Trainer void SendSpells(Creature const* npc, Player const* player, LocaleConstant locale) const; void TeachSpell(Creature const* npc, Player* player, uint32 spellId) const; + std::vector const& GetSpells() const { return _spells; } + Type GetTrainerType() const { return _type; } uint32 GetTrainerRequirement() const { return _requirement; } bool IsTrainerValidForPlayer(Player const* player) const; diff --git a/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp index 42499002d6..085f1c92c3 100644 --- a/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FollowMovementGenerator.cpp @@ -62,15 +62,15 @@ inline float GetVelocity(Unit* owner, Unit* target, bool catchUp) { float targetSpeed = 0.f; float velocity = 0.f; - if (target->IsPlayer()) + // Server-driven player splines can select a gait/velocity without changing + // MOVEMENTFLAG_WALKING (MoveSplineInit::SetWalk). Follow the actual motion, + // just as for creatures, rather than predicting a running player ahead. + if (!target->movespline->Finalized()) + targetSpeed = target->movespline->Velocity(); + else if (target->IsPlayer()) targetSpeed = target->GetSpeed(SelectSpeedType(target->m_movementInfo.GetMovementFlags())); else - { - if (!target->movespline->Finalized()) - targetSpeed = target->movespline->Velocity(); - else - targetSpeed = target->GetSpeed(MOVE_RUN); - } + targetSpeed = target->GetSpeed(MOVE_RUN); if (catchUp) velocity = targetSpeed; diff --git a/src/server/game/World/AdventureBehaviorMgr.cpp b/src/server/game/World/AdventureBehaviorMgr.cpp index 5003565076..dd0ec12439 100644 --- a/src/server/game/World/AdventureBehaviorMgr.cpp +++ b/src/server/game/World/AdventureBehaviorMgr.cpp @@ -1,5 +1,6 @@ #include "AdventureBehaviorMgr.h" #include "AdventureLocationMgr.h" +#include "AdventureEconomyPolicy.h" #include "ClientlessLuaEngine.h" #include "ClientlessPlayerMgr.h" #include "ClientlessActionExecutorMgr.h" @@ -11,6 +12,9 @@ #include "DatabaseEnv.h" #include "DBCStores.h" #include "GameObject.h" +#include "Item.h" +#include "ItemTemplate.h" +#include "Creature.h" #include "GameTime.h" #include "Log.h" #include "Player.h" @@ -26,9 +30,18 @@ namespace { using namespace AdventureBehaviorPolicy; + AdventureMicroAction ResolvedAction(AdventureMicroAction action) + { + if(action.Kind=="work") + { + action.Requirement=AdventureProfessionPolicy::Legacy(action.Requirement); + action.Kind=action.Requirement.empty()?"unsupported":"social"; + } + return action; + } bool Known(std::string const & intent) { - return intent == "social" || intent == "adventure" || intent == "profession"; + return intent == "social" || intent == "adventure" || intent == "profession" || intent == "rest" || intent == "leisure" || intent == "economy"; } bool Busy(uint32 guid) { @@ -78,6 +91,8 @@ void AdventureBehaviorMgr::Online(Player * player) TC_LOG_ERROR("server.adventurebot", "ADVENTURE_DISABLED guid=%u missing catalogs", player->GetGUID().GetCounter()); return; } + if (profile->CompanionSpell) + ClientlessCompanionMgr::Prepare(player,profile->CompanionSpell,profile->CompanionLeashItem); Record r; r.Enabled = true; r.Schedule = profile->DailySchedule; @@ -163,14 +178,14 @@ void AdventureBehaviorMgr::Generate(Player * player, Record & record, uint32 dat { std::vector < double > weights { - Affinity(profile->ActivityAffinity, "social", 1) * Affinity(profile->Personality, "sociability", 0.5f) + Affinity(profile->ActivityAffinity, "tavern", 0.5f) * Affinity(profile->Personality, "tavern_affinity", 0.5f), Affinity(profile->ActivityAffinity, "adventure", 1) * Affinity(profile->Personality, "adventurousness", 0.5f), Affinity(profile->ActivityAffinity, "profession", 0.5f) + Affinity(profile->ActivityAffinity, "social", 1) * Affinity(profile->Personality, "sociability", 0.5f) + Affinity(profile->ActivityAffinity, "tavern", 0.5f) * Affinity(profile->Personality, "tavern_affinity", 0.5f), Affinity(profile->ActivityAffinity, "adventure", 1) * Affinity(profile->Personality, "adventurousness", 0.5f), Affinity(profile->ActivityAffinity, "profession", 0.5f), Affinity(profile->ActivityAffinity, "rest", 0.5f), Affinity(profile->ActivityAffinity, "leisure", 0.5f), Affinity(profile->ActivityAffinity, "economy", 0.5f) }; auto i = Choose(weights, record.Random); - return std::array < std::string, 3 > + return std::array < std::string, 6 > { - "social", "adventure", "profession" + "social", "adventure", "profession", "rest", "leisure", "economy" } - [std::min(i, std::size_t(2))]; + [std::min(i, std::size_t(5))]; }; record.Plan = AdventureBehaviorPolicy::Generate(record.Random, Affinity(profile->Personality, "wanderlust", 0.3f), pick,[&](std::string const & intent) { @@ -194,6 +209,12 @@ void AdventureBehaviorMgr::SetWanted(Player * player, Record & r, std::string co r.Deadline = deadline; r.Dirty = true; r.Tried.clear(); + // A sightseeing flight must land and return before a new intent takes over. + if (r.Leisure.Active && r.Leisure.Kind=="flight") + { + r.Leisure.StopRequested=true; + return; + } ResetMicro(player, r); uint32 guid = player->GetGUID().GetCounter(); sClientlessPlayerMgr->ClearQueuedActions(guid); @@ -321,7 +342,9 @@ void AdventureBehaviorMgr::Fallback(Player * player, Record & r) void AdventureBehaviorMgr::ResetMicro(Player * player, Record & r) { + ResetLeisure(player,r); AdventureSocialActions::Reset(player,r.Social); + r.Recovery = {}; if (! r.Micro.empty()) { player->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); @@ -341,20 +364,22 @@ void AdventureBehaviorMgr::ResetMicro(Player * player, Record & r) r.WorkPending = false; } -bool AdventureBehaviorMgr::LocalMove(Player * player, Record & r, Position const & target, float maxPath) +bool AdventureBehaviorMgr::LocalMove(Player * player, Record & r, Position const & target, float maxPath, bool riding) { auto l = sAdventureLocationMgr->Find(r.Location); - if (! l || player->GetMapId() != r.AnchorMap || r.Anchor.GetExactDist(target) > 60) return false; - if (l->IsArea) + if (! l || player->GetMapId() != r.AnchorMap || r.Anchor.GetExactDist(target) > (r.Leisure.PlannedWalk ? 250.0f : (r.Intent=="economy" || r.Intent=="adventure" || r.Intent=="profession") ? 200.0f : r.Intent=="leisure" ? 120.0f : 60.0f)) return false; + uint32 const boundary=l->IsArea?l->AreaId:((r.Intent=="leisure" || r.Intent=="economy" || r.Intent=="adventure" || r.Intent=="profession")?l->ZoneId:0); + if (boundary) { auto terrain = player->GetMap()->GetTerrain(); uint32 zone = 0, area = 0; terrain->GetZoneAndAreaId(player->GetPhaseShift(), player->GetMapId(), zone, area, target); - if (area != l->AreaId && zone != l->AreaId) return false; + if (area != boundary && zone != boundary) return false; } ClientlessPathDiagnostics path; - if (! sClientlessTravelMgr->AnalyzePath(player, target, path) || ! path.Complete || path.Suspicious || path.FinalDistance > 1.5f || path.PathLength > maxPath) return false; - if (l->IsArea) + if (! sClientlessTravelMgr->AnalyzePath(player, target, path) || ! path.Complete || path.Suspicious || path.FinalDistance > 1.5f || path.PathLength > maxPath) + {r.Detail="local path rejected: "+path.Reason;return false;} + if (boundary || riding) { PathGenerator navigation(player); if (! navigation.CalculatePath(target)) return false; @@ -362,10 +387,472 @@ bool AdventureBehaviorMgr::LocalMove(Player * player, Record & r, Position const { uint32 zone = 0, area = 0; player->GetMap()->GetTerrain()->GetZoneAndAreaId(player->GetPhaseShift(), player->GetMapId(), zone, area, Position(point.x, point.y, point.z)); - if (area != l->AreaId && zone != l->AreaId) return false; + if (boundary && area != boundary && zone != boundary) return false; + if (riding) + { + PositionFullTerrainStatus terrain; + player->GetMap()->GetTerrain()->GetFullTerrainStatusForPosition(player->GetPhaseShift(),player->GetMapId(),point.x,point.y,point.z,terrain); + if (!terrain.outdoors) return false; + } } } - return sClientlessTravelMgr->StartTravel(player, target, false, false, r.Intent=="social"); + if (!sClientlessTravelMgr->StartTravel(player, target, riding, false, + !riding && (r.Intent=="social" || r.Intent=="rest" || r.Intent=="leisure" || r.Intent=="economy" || r.Intent=="adventure" || r.Intent=="profession"))) return false; + auto status=sClientlessTravelMgr->GetStatus(player->GetGUID().GetCounter()); + return status && (status->State==ClientlessTravelState::Moving || status->State==ClientlessTravelState::Arrived); +} + +bool AdventureBehaviorMgr::ProfessionWorkAvailable(Player* p,Record& r) +{ + if(r.Intent!="profession")return false; + auto context=SocialContext(p,r); + for(auto const& catalog:sAdventureLocationMgr->Actions()) + { + auto action=ResolvedAction(catalog); + if(action.Intents.count("profession") && AdventureProfessionPolicy::Find(action.Requirement) && + !AdventureProfessionPolicy::Untargeted(action.Requirement) && AdventureSocialActions::Available(p,action,context))return true; + } + return false; +} + +bool AdventureBehaviorMgr::FishingDirection(Player* p,float& orientation) const +{ + if(p->IsInWater() || p->IsFalling())return false; + for(float distance:{4.0f,8.0f})for(unsigned i=0;i<8;++i) + { + float angle=float(i)*6.2831853f/8; + float x=p->GetPositionX()+std::cos(angle)*distance,y=p->GetPositionY()+std::sin(angle)*distance; + float water=p->GetMap()->GetWaterLevel(p->GetPhaseShift(),x,y); + float ground=p->GetMap()->GetHeight(p->GetPhaseShift(),x,y,p->GetPositionZ()+3,true,20); + if(std::isfinite(water) && water>INVALID_HEIGHT+1 && ground>INVALID_HEIGHT+1 && water>ground+0.5f && + std::fabs(water-p->GetPositionZ())<5 && p->IsWithinLOS(x,y,water+0.5f)) {orientation=angle;return true;} + } + return false; +} + +bool AdventureBehaviorMgr::LeisureAvailable(Player* p,Record const& r,AdventureMicroAction const& a) const +{ + if (Unsafe(p) || p->IsInWater() || p->IsFalling()) return false; + // Adventure exploration shares the proven native ground-outing executor. + if (r.Intent=="adventure") return (a.Requirement=="explore" || a.Requirement=="patrol") && p->IsOutdoors(); + if(r.Intent=="profession") + { + if(a.Requirement=="work_search")return p->IsOutdoors(); + if(a.Requirement!="fish")return false; + auto rod=p->GetWeaponForAttack(BASE_ATTACK,true);float direction=0; + return rod && rod->GetTemplate()->GetSubClass()==ITEM_SUBCLASS_WEAPON_FISHING_POLE && FishingDirection(p,direction); + } + if (r.Intent!="leisure") return false; + auto profile=sClientlessLuaEngine->GetAdventureProfile(p->GetGUID().GetCounter()); + auto location=sAdventureLocationMgr->Find(r.Location); + if (!profile || !location) return false; + if (a.Requirement=="fish") + { + auto rod=p->GetWeaponForAttack(BASE_ATTACK,true); + return location->Point.Category=="leisure_fishing" && rod && + rod->GetTemplate()->GetSubClass()==ITEM_SUBCLASS_WEAPON_FISHING_POLE; + } + // A seat/meal may leave the bot inside. Foot outings must still be able + // to navigate back outside; only mounted outings require an outdoor start. + if (a.Requirement=="pet_walk") return ClientlessCompanionMgr::Available(p,profile->CompanionSpell); + if (a.Requirement=="walk" || a.Requirement=="roam") return true; + if (!p->IsOutdoors()) return false; + if (a.Requirement=="ride") return profile->CanGroundMount && !profile->GroundMounts.empty(); + if (a.Requirement=="flight") return sClientlessFlightMgr->Enabled(p); + return a.Requirement=="walk" || a.Requirement=="roam"; +} + +bool AdventureBehaviorMgr::PlanLeisureWalk(Player* p, Record& r) +{ + auto& s=r.Leisure; + auto location=sAdventureLocationMgr->Find(r.Location); + uint32 const boundary=location->IsArea?location->AreaId:location->ZoneId; + // Choose one substantial destination, then follow its actual ground corridor. + // Randomness selects the outing, never the next individual footstep. + float const offset=std::uniform_real_distribution(0,6.2831853f)(r.Random); + float const budget=std::min(220.0f,std::max(100.0f,float(r.MicroTimer)*0.001f*1.0f)); + float best=0; + for (unsigned i=0;i<16;++i) + { + float const angle=offset+float(i%8)*6.2831853f/8; + float const radius=i<8?std::min(150.0f,budget*0.7f):80.0f; + Position goal; + goal.Relocate(s.Origin.GetPositionX()+std::cos(angle)*radius, + s.Origin.GetPositionY()+std::sin(angle)*radius,s.Origin.GetPositionZ()); + float const z=p->GetMap()->GetHeight(p->GetPhaseShift(),goal.GetPositionX(),goal.GetPositionY(), + s.Origin.GetPositionZ()+2,true,15); + if (!std::isfinite(z) || z<=INVALID_HEIGHT+1 || std::fabs(z-s.Origin.GetPositionZ())>3) continue; + goal.m_positionZ=z; + PathGenerator navigation(p); + navigation.SetPathLengthLimit(240); + if (!navigation.CalculatePath(s.Origin,goal) || navigation.GetPathType()!=PATHFIND_NORMAL) continue; + auto const& path=navigation.GetPath(); + if (path.size()<2) continue; + std::vector outbound; + Position last=s.Origin; + float length=0,section=0; + bool valid=true; + for (auto const& point:path) + { + Position target;target.Relocate(point.x,point.y,point.z); + float const step=last.GetExactDist(target); + if (!std::isfinite(step) || step>12 || std::fabs(point.z-last.GetPositionZ())>4 || r.Anchor.GetExactDist(target)>250) + {valid=false;break;} + PositionFullTerrainStatus terrain; + p->GetMap()->GetTerrain()->GetFullTerrainStatusForPosition(p->GetPhaseShift(),p->GetMapId(),point.x,point.y,point.z,terrain); + uint32 zone=0,area=0; + p->GetMap()->GetTerrain()->GetZoneAndAreaId(p->GetPhaseShift(),p->GetMapId(),zone,area,target); + if (!terrain.outdoors || (boundary && area!=boundary && zone!=boundary)) {valid=false;break;} + length+=step;section+=step;last=target; + if (section>=20) {outbound.push_back(target);section=0;} + } + float const span=s.Origin.GetExactDist(last); + if (!valid || length>budget || span<65 || length>span*2.5f || last.GetExactDist(goal)>1.5f) continue; + if (outbound.empty() || outbound.back().GetExactDist(last)>2) outbound.push_back(last); + else outbound.back()=last; + if (span>best) + { + best=span;s.Route=std::move(outbound); + } + } + if (s.Route.empty()) return false; + s.PlannedWalk=true;s.OutboundSteps=s.Route.size();s.WalkTrace={s.Origin}; + // The endpoint occurs once; every outbound checkpoint is retraced afterwards. + for (std::size_t i=s.OutboundSteps-1;i>0;--i) s.Route.push_back(s.Route[i-1]); + s.Route.push_back(s.Origin); + TC_LOG_INFO("server.adventurebot","LEISURE_WALK_PLAN guid=%u kind='%s' span=%.2f outbound=%u origin=(%.2f %.2f %.2f) goal=(%.2f %.2f %.2f)", + p->GetGUID().GetCounter(),s.Kind.c_str(),best,uint32(s.OutboundSteps), + s.Origin.GetPositionX(),s.Origin.GetPositionY(),s.Origin.GetPositionZ(), + s.Route[s.OutboundSteps-1].GetPositionX(),s.Route[s.OutboundSteps-1].GetPositionY(),s.Route[s.OutboundSteps-1].GetPositionZ()); + return true; +} + +bool AdventureBehaviorMgr::StartLeisure(Player* p,Record& r,AdventureMicroAction const& a) +{ + if (!LeisureAvailable(p,r,a)) return false; + sClientlessLuaEngine->DismountGroundMount(p,"leisure-scene-start"); + auto& s=r.Leisure;s={};s.Kind=a.Requirement;s.Origin.Relocate(p); + if (!p->IsOutdoors() && (s.Kind=="walk" || s.Kind=="roam" || s.Kind=="pet_walk")) + s.Origin=r.Anchor; // Return outside after leaving an indoor leisure pause. + if (s.Kind=="fish") + { + float direction=sAdventureLocationMgr->Find(r.Location)->Point.O; + if(r.Intent=="profession") + { + if(!FishingDirection(p,direction))return false; + p->SetFacingTo(direction);p->SetUInt32Value(UNIT_NPC_EMOTESTATE,EMOTE_STATE_FISHING); + s.Active=true;r.Detail="performative fishing without loot";return true; + } + float x=p->GetPositionX()+std::cos(direction)*4; + float y=p->GetPositionY()+std::sin(direction)*4; + float water=p->GetMap()->GetWaterLevel(p->GetPhaseShift(),x,y); + float ground=p->GetMap()->GetHeight(p->GetPhaseShift(),x,y,p->GetPositionZ()+3,true,20); + if (!std::isfinite(water) || water<=INVALID_HEIGHT+1 || water<=ground+0.5f) return false; + p->SetFacingTo(sAdventureLocationMgr->Find(r.Location)->Point.O); + p->SetUInt32Value(UNIT_NPC_EMOTESTATE,EMOTE_STATE_FISHING); + s.Active=true;r.Detail="performative fishing without loot"; + return true; + } + bool const foot=s.Kind=="walk" || s.Kind=="roam" || s.Kind=="pet_walk" || s.Kind=="explore" || s.Kind=="patrol" || s.Kind=="work_search"; + if (foot && !PlanLeisureWalk(p,r)) {s={};return false;} + auto site=sAdventureLocationMgr->Find(r.Location); + s.Progressive=s.Kind=="work_search" || (r.Intent=="adventure" && site->IsArea && foot); + if(s.Progressive)s.Route.resize(s.OutboundSteps); + if (!foot) + { + bool const riding=s.Kind=="ride",flight=s.Kind=="flight"; + unsigned const points=flight?3:riding?8:s.Kind=="roam"?7:16; + float const radius=flight?55.0f:riding?35.0f:s.Kind=="roam"?25.0f:12.0f; + float const offset=std::uniform_real_distribution(0,6.2831853f)(r.Random); + auto location=sAdventureLocationMgr->Find(r.Location); + uint32 const boundary=location->IsArea?location->AreaId:location->ZoneId; + for (unsigned i=0;i(0,6.2831853f)(r.Random); + Position target; + target.Relocate(r.Anchor.GetPositionX()+std::cos(angle)*radius, + r.Anchor.GetPositionY()+std::sin(angle)*radius,r.Anchor.GetPositionZ()); + PositionFullTerrainStatus terrain; + p->GetMap()->GetTerrain()->GetFullTerrainStatusForPosition(p->GetPhaseShift(),p->GetMapId(), + target.GetPositionX(),target.GetPositionY(),target.GetPositionZ(),terrain); + if (!terrain.outdoors) continue; + float z=p->GetMap()->GetHeight(p->GetPhaseShift(),target.GetPositionX(),target.GetPositionY(), + r.Anchor.GetPositionZ()+(flight?10.0f:2.0f),true,flight?30.0f:15.0f); + // A pleasant ground outing must not select a roof above the street. + if (z<=INVALID_HEIGHT+1 || std::fabs(z-r.Anchor.GetPositionZ())>(flight?15.0f:3.0f)) continue; + target.m_positionZ=z; + if (boundary) + { + uint32 zone=0,area=0; + p->GetMap()->GetTerrain()->GetZoneAndAreaId(p->GetPhaseShift(),p->GetMapId(),zone,area,target); + if (area!=boundary && zone!=boundary) continue; + } + if (!flight) + { + ClientlessPathDiagnostics nav; + if (!sClientlessTravelMgr->AnalyzePath(p,target,nav) || !nav.Complete || nav.Suspicious || + nav.FinalDistance>1.5f || nav.PathLength>350) continue; + } + s.Route.push_back(target); + } + if (s.Route.size()<3) {s={};return false;} + s.Route.push_back(s.Origin); + } + auto profile=sClientlessLuaEngine->GetAdventureProfile(p->GetGUID().GetCounter()); + if (s.Kind=="pet_walk" && !ClientlessCompanionMgr::Start(p,s.Companion,profile->CompanionSpell,profile->CompanionLeashItem)) + {s={};return false;} + s.Active=true; + r.Detail="leisure outing: "+s.Kind; + TC_LOG_INFO("server.adventurebot","LEISURE_START guid=%u kind='%s' waypoints=%u",p->GetGUID().GetCounter(),s.Kind.c_str(),uint32(s.Route.size())); + return true; +} + +bool AdventureBehaviorMgr::UpdateLeisure(Player* p,Record& r,uint32 diff) +{ + auto& s=r.Leisure; + if (!s.Active || p->GetMapId()!=r.AnchorMap || !p->IsAlive()) return false; + auto returnAlongWalk=[&]() + { + s.Route.clear(); + for (auto it=s.WalkTrace.rbegin();it!=s.WalkTrace.rend();++it) + if (!s.Route.empty() || p->GetExactDist(*it)>2) s.Route.push_back(*it); + if (s.Route.empty()) s.Route.push_back(s.Origin); + s.Returning=true;s.Step=0;s.PauseMs=0;s.Moving=false;s.LegElapsed=0; + }; + s.Elapsed+=diff;s.LegElapsed+=diff; + if (s.Kind=="fish") return r.MicroTimer && !p->IsInCombat() && p->GetExactDist(s.Origin)<=1 && + p->GetUInt32Value(UNIT_NPC_EMOTESTATE)==EMOTE_STATE_FISHING; + if (s.Elapsed>600000) s.StopRequested=true; + if (s.Elapsed>720000 && !s.Flying && !p->IsFlying()) + {r.Detail="leisure outing exceeded safe time limit";return false;} + if (s.Companion.Active) + { + if (!ClientlessCompanionMgr::Update(p,s.Companion,diff)) return false; + if (!s.Companion.Ready) + { + if (s.Moving) + { + sClientlessTravelMgr->CancelTravel(p->GetGUID().GetCounter());p->StopMoving();s.Moving=false; + } + return true; + } + auto pet=ClientlessCompanionMgr::Resolve(p,s.Companion); + if (!pet) return false; + // Native leashes have five yards range. React at world-update cadence + // before the owner walks out of range, rather than checking once/second. + float const followLimit=s.Companion.Leashed?(s.CompanionWait?3.25f:4.0f):15.0f; + if (p->GetExactDist(pet)>followLimit) + { + s.CompanionWait+=diff; + if (s.Moving) + { + sClientlessTravelMgr->CancelTravel(p->GetGUID().GetCounter());p->StopMoving();s.Moving=false; + } + return s.CompanionWait<20000; + } + s.CompanionWait=0; + } + if (s.Flying) + { + auto status=sClientlessFlightMgr->GetStatus(p->GetGUID().GetCounter()); + if (status && (status->State==ClientlessFlightState::Mounting || status->State==ClientlessFlightState::Flying)) return true; + s.Flying=false; + if (!status || status->State!=ClientlessFlightState::Arrived) + { + r.Detail="leisure flight failed; native flight recovery retained";return false; + } + s.LegElapsed=0; + // Landing may be beside the waypoint: confirm the short ground approach. + if (!LocalMove(p,r,s.Route[s.Step],120)) return false; + s.Moving=true; + } + if (s.Moving) + { + auto travel=sClientlessTravelMgr->GetStatus(p->GetGUID().GetCounter()); + if (travel && travel->State==ClientlessTravelState::Moving) + { + if (s.LegElapsed<90000) return true; + sClientlessTravelMgr->CancelTravel(p->GetGUID().GetCounter());p->StopMoving(); + s.Moving=false; + if (s.PlannedWalk && !s.Returning) {returnAlongWalk();return true;} + r.Detail="leisure waypoint timed out";return false; + } + s.Moving=false; + if (!travel || travel->State!=ClientlessTravelState::Arrived || p->GetExactDist(s.Route[s.Step])>2) + { + if (s.PlannedWalk && !s.Returning) + { + sClientlessTravelMgr->CancelTravel(p->GetGUID().GetCounter());p->StopMoving(); + returnAlongWalk();return true; + } + r.Detail="leisure waypoint not reached";return false; + } + if (s.Companion.Active) + if (auto pet=ClientlessCompanionMgr::Resolve(p,s.Companion)) + TC_LOG_INFO("server.adventurebot","COMPANION_WALK_SAMPLE guid=%u owner=(%.2f %.2f %.2f) pet=(%.2f %.2f %.2f) distance=%.2f leashed=%u", + p->GetGUID().GetCounter(),p->GetPositionX(),p->GetPositionY(),p->GetPositionZ(), + pet->GetPositionX(),pet->GetPositionY(),pet->GetPositionZ(),p->GetExactDist(pet), + s.Companion.LeashSpell && pet->HasAura(s.Companion.LeashSpell,p->GetGUID())?1:0); + if (s.PlannedWalk && !s.Returning) s.WalkTrace.push_back(s.Route[s.Step]); + ++s.Step;++s.CompletedLegs;s.LegElapsed=0; + if (s.PlannedWalk && s.Step>=s.OutboundSteps) s.Returning=true; + if(s.Kind=="work_search" && ProfessionWorkAvailable(p,r)) + { + s.Route.resize(s.Step); + TC_LOG_INFO("server.adventurebot","PROFESSION_SEARCH_FOUND guid=%u legs=%u",p->GetGUID().GetCounter(),s.CompletedLegs); + } + s.PauseMs=s.PlannedWalk?(s.Step==s.OutboundSteps?4000:0): + s.Kind=="pet_walk"?2500:std::uniform_int_distribution(1500,5000)(r.Random); + TC_LOG_INFO("server.adventurebot","LEISURE_WAYPOINT guid=%u kind='%s' reached=%u/%u",p->GetGUID().GetCounter(),s.Kind.c_str(),uint32(s.Step),uint32(s.Route.size())); + } + if (s.Step>=s.Route.size()) + { + r.Detail=s.Progressive?"area search reached next observation point":"leisure outing completed at starting point"; + TC_LOG_INFO("server.adventurebot","LEISURE_COMPLETE guid=%u kind='%s' legs=%u",p->GetGUID().GetCounter(),s.Kind.c_str(),s.CompletedLegs); + return false; + } + if ((s.StopRequested || !r.MicroTimer) && !s.Returning) + { + if(s.Progressive) {s.Route.resize(s.Step);return false;} + else if (s.PlannedWalk) returnAlongWalk(); + else {s.Returning=true;s.Route={s.Origin};s.Step=0;s.PauseMs=0;} + } + if (s.PauseMs>diff) {s.PauseMs-=diff;return true;} + s.PauseMs=0;s.LegElapsed=0; + if (s.Kind=="flight") + { + std::string error; + if (!sClientlessFlightMgr->Start(p,s.Route[s.Step],error)) + {r.Detail="leisure takeoff unavailable: "+error;return false;} + s.Flying=true; + } + else + { + bool riding=s.Kind=="ride"; + if (riding && !p->IsOutdoors()) return false; + if (riding) + { + auto profile=sClientlessLuaEngine->GetAdventureProfile(p->GetGUID().GetCounter()); + if (!sClientlessLuaEngine->PrepareGroundMount(p,std::max(120.0f,profile->GroundMountMinDistance),"leisure-ride")) return false; + } + if (!LocalMove(p,r,s.Route[s.Step],350,riding)) + { + if (s.PlannedWalk) + { + if (!s.Returning) {returnAlongWalk();return true;} + r.Detail="leisure return path unavailable";return false; + } + // Scenic samples are optional. Never claim arrival at one that + // MMAP rejected, and never skip the actual return to the origin. + if (s.Step+1GetGUID().GetCounter(),s.Kind.c_str(),uint32(s.Step),r.Detail.c_str()); + ++s.Step; + return true; + } + r.Detail="leisure return path unavailable"; + return false; + } + r.Detail="leisure outing: "+s.Kind; + s.Moving=true; + } + return true; +} + +void AdventureBehaviorMgr::ResetLeisure(Player* p,Record& r) +{ + if (!r.Leisure.Active) return; + ClientlessCompanionMgr::Reset(p,r.Leisure.Companion); + if (!p->IsFlying() && !p->IsInFlight() && !p->GetTransport()) + sClientlessLuaEngine->DismountGroundMount(p,"leisure-outing-ended"); + r.Leisure={}; +} + +bool AdventureBehaviorMgr::RecoveryAvailable(Player* player, Record const& r, AdventureMicroAction const& action) const +{ + std::string category = action.Requirement == "sleep" ? "rest_sleep" : "rest_ground"; + if (action.Requirement != "sleep" && action.Requirement != "ground") return false; + for (auto const& location : sAdventureLocationMgr->Locations()) + { + auto const& p = location.Point; + if (p.Category != category || !Allowed(player, location, "rest") || p.MapId != r.AnchorMap) continue; + if (r.Anchor.GetExactDist(p.X, p.Y, p.Z) <= 30 && std::fabs(p.Z-r.Anchor.GetPositionZ()) <= 12) return true; + } + return false; +} + +bool AdventureBehaviorMgr::StartRecovery(Player* player, Record& r, AdventureMicroAction const& action, uint32 duration) +{ + if (!RecoveryAvailable(player, r, action)) return false; + std::string category = action.Requirement == "sleep" ? "rest_sleep" : "rest_ground"; + std::vector choices; + std::vector weights; + for (auto const& location : sAdventureLocationMgr->Locations()) + { + auto const& p = location.Point; + if (p.Category != category || !Allowed(player, location, "rest") || p.MapId != r.AnchorMap || + r.Anchor.GetExactDist(p.X, p.Y, p.Z) > 30 || std::fabs(p.Z-r.Anchor.GetPositionZ()) > 12) continue; + choices.push_back(&location); + weights.push_back(Novelty(r.TargetHistory, "rest:"+p.Id)/(1+player->GetExactDist(p.X,p.Y,p.Z))); + } + while (!choices.empty()) + { + auto i = Choose(weights, r.Random); + if (i >= choices.size()) break; + auto const& p = choices[i]->Point; + Position destination(p.X,p.Y,p.Z,p.O); + std::vector occupants; + player->GetPlayerListInGrid(occupants, 60); + bool occupied = false; + for (auto other : occupants) + if (other != player && player->IsInPhase(other) && other->GetExactDist(destination) < 1.5f) occupied = true; + if (!occupied && LocalMove(player, r, destination, 120)) + { + r.Recovery = {true,true,p.Id,action.Requirement,duration,0}; + Remember(r.TargetHistory, "rest:"+p.Id); + r.Detail = "walking to designated resting spot"; + TC_LOG_INFO("server.adventurebot", "REST_APPROACH guid=%u point='%s' posture='%s'", player->GetGUID().GetCounter(),p.Id.c_str(),action.Requirement.c_str()); + return true; + } + choices.erase(choices.begin()+i); + weights.erase(weights.begin()+i); + } + return false; +} + +bool AdventureBehaviorMgr::UpdateRecovery(Player* player, Record& r, uint32 diff) +{ + auto& scene = r.Recovery; + auto location = sAdventureLocationMgr->Find(scene.Point); + if (!scene.Active || !location || player->GetMapId() != r.AnchorMap || player->IsInWater() || + player->IsFalling() || !Allowed(player,*location,"rest") || + location->Point.Category != (scene.Posture=="sleep" ? "rest_sleep" : "rest_ground")) return false; + auto const& p = location->Point; + if (scene.Approaching) + { + scene.ApproachElapsed += diff; + if (scene.ApproachElapsed > 60000) return false; + auto travel = sClientlessTravelMgr->GetStatus(player->GetGUID().GetCounter()); + if (travel && travel->State == ClientlessTravelState::Moving) return true; + if (!travel || travel->State != ClientlessTravelState::Arrived || player->GetExactDist(p.X,p.Y,p.Z) > 1) return false; + std::vector occupants; + player->GetPlayerListInGrid(occupants, 3); + for (auto other : occupants) + if (other != player && player->IsInPhase(other) && other->GetExactDist(p.X,p.Y,p.Z) < 1.5f) return false; + player->SetFacingTo(p.O); + player->SetStandState(scene.Posture=="sleep" ? UNIT_STAND_STATE_SLEEP : UNIT_STAND_STATE_SIT); + scene.Approaching = false; + r.Detail = scene.Posture=="sleep" ? "sleeping at designated resting spot" : "resting at designated ground spot"; + TC_LOG_INFO("server.adventurebot", "REST_CONFIRMED guid=%u point='%s' posture='%s' durationMs=%u",player->GetGUID().GetCounter(),p.Id.c_str(),scene.Posture.c_str(),scene.Remaining); + return true; + } + if (player->GetExactDist(p.X,p.Y,p.Z) > 1 || + player->GetStandState() != (scene.Posture=="sleep" ? UNIT_STAND_STATE_SLEEP : UNIT_STAND_STATE_SIT)) return false; + if (scene.Remaining <= diff) return false; + scene.Remaining -= diff; + return true; } AdventureSocialContext AdventureBehaviorMgr::SocialContext(Player* player,Record& r) @@ -374,7 +861,10 @@ AdventureSocialContext AdventureBehaviorMgr::SocialContext(Player* player,Record auto location=sAdventureLocationMgr->Find(r.Location); return {r.Anchor,r.AnchorMap,location&&location->Point.Category=="festival", profile?profile->Locale:"enUS",r.Intent,r.Random,r.TargetHistory,r.VariantHistory, - [this,player,&r](Position const& target,float maxPath){return LocalMove(player,r,target,maxPath);}}; + [this,player,&r](Position const& target,float maxPath){return LocalMove(player,r,target,maxPath);}, + r.Intent != "rest" || (location && location->Point.Category == "rest_ground"), + location && r.Intent=="economy"?AdventureEconomyPolicy::LocationRequirement(location->Point.Category):"", + location?location->Point.Category:"",profile?profile->PrimaryProfessions:AdventureProfessionPolicy::Professions{}}; } bool AdventureBehaviorMgr::UpdateSocial(Player* player,Record& r,uint32 diff) @@ -390,6 +880,43 @@ void AdventureBehaviorMgr::Micro(Player * player, Record & r) auto l = sAdventureLocationMgr->Find(r.Location); if (! l) return; auto social=SocialContext(player,r); + if (r.Intent=="rest") + { + bool suitable = false; + for (auto const& action : sAdventureLocationMgr->Actions()) + { + if (!action.Intents.count("rest")) continue; + if ((action.Kind=="recovery" && RecoveryAvailable(player,r,action)) || + (action.Kind=="social" && AdventureSocialActions::Available(player,action,social))) + { suitable=true;break; } + } + if (!suitable) + { + r.Detail="no suitable resting place here; seeking another location"; + Fallback(player,r); + return; + } + } + if (r.Intent=="economy") + { + bool service=false; + for (auto const& action:sAdventureLocationMgr->Actions()) + if (action.Intents.count("economy") && action.Kind=="social" && + AdventureEconomyPolicy::RequiredService(action.Requirement)!=AdventureEconomyPolicy::Service::None && + AdventureSocialActions::Available(player,action,social)) {service=true;break;} + if (!service) + { + r.Detail="no suitable economic service here; seeking another location"; + sClientlessPerceptionMgr->ScanNow(player,30); + if (auto snapshot=sClientlessPerceptionMgr->GetSnapshot(player->GetGUID().GetCounter())) + for (auto const& entity:snapshot->Entities) + if (entity.Capabilities & (CLIENTLESS_CAP_VENDOR|CLIENTLESS_CAP_BANKER|CLIENTLESS_CAP_AUCTIONEER)) + TC_LOG_INFO("server.adventurebot","ECONOMY_SERVICE_UNAVAILABLE guid=%u entry=%u distance=%.2f alive=%u los=%u relation=%u capabilities=%llu", + player->GetGUID().GetCounter(),entity.Entry,entity.Distance,entity.Alive?1:0,entity.InLineOfSight?1:0, + uint32(entity.Relation),static_cast(entity.Capabilities)); + Fallback(player,r);return; + } + } sClientlessLuaEngine->DismountGroundMount(player, "intent-micro-action"); GameObject * fire = nullptr, * ore = nullptr, * forge = nullptr; std::vector < GameObject * > props; @@ -416,14 +943,24 @@ void AdventureBehaviorMgr::Micro(Player * player, Record & r) } std::vector < AdventureMicroAction const * > choices; std::vector < double > weights; - for (auto const & a : sAdventureLocationMgr->Actions()) + for (auto const & catalog : sAdventureLocationMgr->Actions()) { + auto a=ResolvedAction(catalog); + if(a.Kind=="unsupported")continue; auto w = a.Intents.find(r.Intent); if (w == a.Intents.end()) continue; + if ((a.Kind=="leisure" || a.Kind=="outing") && !LeisureAvailable(player,r,a)) continue; + if (a.Kind=="recovery" && !RecoveryAvailable(player,r,a)) continue; + if(r.Intent=="leisure" && a.Requirement=="dance" && !social.Festival) continue; if(a.Kind=="social"&&!AdventureSocialActions::Available(player,a,social))continue; if ((a.Requirement == "campfire" && ! fire) ||(a.Requirement == "ore" && ! ore) ||(a.Requirement == "forge" && ! forge) ||(a.Requirement == "audience" && ! audience)) continue; - choices.push_back(& a); + if(a.Requirement=="work_search" && ProfessionWorkAvailable(player,r))continue; + choices.push_back(& catalog); float contextWeight=(a.Requirement=="dance"&&l->Point.Category!="festival")?0.12f:1.0f; + if (r.Intent=="adventure" && !r.ActionHistory.empty() && + (r.ActionHistory.back()=="outing:explore" || r.ActionHistory.back()=="outing:patrol") && + (a.Kind=="sit" || a.Kind=="drink" || a.Kind=="eat" || + a.Requirement=="fire" || a.Requirement=="seat" || a.Requirement=="drink_seated" || a.Requirement=="eat_seated")) contextWeight*=4; weights.push_back(contextWeight*w->second * Affinity(profile->MicroActionAffinity, a.Key, 1) * Novelty(r.ActionHistory, a.Kind+":"+a.Requirement) * Novelty(r.VariantHistory, "action:" + a.Key)); } auto n = Choose(weights, r.Random); @@ -432,7 +969,7 @@ void AdventureBehaviorMgr::Micro(Player * player, Record & r) r.MicroTimer = 5000; return; } - auto const & a = * choices[n]; + auto const a = ResolvedAction(*choices[n]); r.Micro = a.Key; r.MicroTimer = std::uniform_int_distribution < uint32 >(a.MinSeconds, a.MaxSeconds)(r.Random) * 1000; Remember(r.ActionHistory, a.Kind+":"+a.Requirement); @@ -444,10 +981,22 @@ void AdventureBehaviorMgr::Micro(Player * player, Record & r) if(AdventureSocialActions::Available(player,seated,social)) AdventureSocialActions::Start(player,r.Social,seated,r.MicroTimer,social); } - if(r.Social.Active)r.Detail="social scene: "+r.Social.Kind; + if (a.Kind=="leisure" || a.Kind=="outing") + { + if (!StartLeisure(player,r,a)) r.MicroTimer=3000; + } + else if (a.Kind=="recovery") + { + if (!StartRecovery(player,r,a,r.MicroTimer)) r.MicroTimer=3000; + } + else if(r.Social.Active)r.Detail="social scene: "+r.Social.Kind; else if(a.Kind=="social") { - if(!AdventureSocialActions::Start(player,r.Social,a,r.MicroTimer,social))r.MicroTimer=3000; + if(!AdventureSocialActions::Start(player,r.Social,a,r.MicroTimer,social)) + { + r.MicroTimer=3000; + if (r.Intent=="economy") {Fallback(player,r);return;} + } else r.Detail="social scene: "+a.Requirement; } else if (a.Kind == "look") player->SetFacingTo(player->GetOrientation() + std::uniform_real_distribution < float >(- 1.0f, 1.0f)(r.Random)); @@ -501,34 +1050,6 @@ void AdventureBehaviorMgr::Micro(Player * player, Record & r) player->HandleEmoteCommand(EMOTE_ONESHOT_TALK); } } - else if (a.Kind == "work") - { - auto object = a.Requirement == "ore" ? ore : forge; - if (! object) - { - r.MicroTimer = 3000; - return; - } - player->SetFacingToObject(object); - r.WorkObject = object->GetGUID(); - r.WorkEmote = a.Emote; - if (player->GetExactDist(object) > 4) - { - Position p; - p.Relocate(object); - float angle = object->GetAngle(player); - p.m_positionX += std::cos(angle) * 2; - p.m_positionY += std::sin(angle) * 2; - if (! LocalMove(player, r, p, 35)) - { - r.MicroTimer = 3000; - return; - } - r.WorkPending = true; - r.Detail = "approaching work prop"; - } - else player->SetUInt32Value(UNIT_NPC_EMOTESTATE, a.Emote); - } TC_LOG_INFO("server.adventurebot", "MICRO_START guid=%u intent='%s' location='%s' action='%s' durationMs=%u", player->GetGUID().GetCounter(), r.Intent.c_str(), r.Location.c_str(), a.Key.c_str(), r.MicroTimer); } @@ -541,9 +1062,25 @@ void AdventureBehaviorMgr::Update(Player * player, uint32 diff) r.MicroTimer = r.MicroTimer > diff ? r.MicroTimer - diff : 0; r.GestureTimer = r.GestureTimer > diff ? r.GestureTimer - diff : 0; r.RetryTimer = r.RetryTimer > diff ? r.RetryTimer - diff : 0; + auto advanceLeisure=[&]() + { + if (!r.Leisure.Active) return false; + if ((!Unsafe(player) || r.Leisure.Flying || player->IsFlying()) && UpdateLeisure(player,r,diff)) return true; + if(r.Leisure.Progressive && !r.Leisure.Route.empty() && r.Leisure.Step>=r.Leisure.Route.size() && + player->GetExactDist(r.Leisure.Route.back())<=2) + { + auto site=sAdventureLocationMgr->Find(r.Location); + if(site && site->IsArea)r.Anchor.Relocate(player); + } + ResetMicro(player,r); + r.MicroTimer=3000; + if (r.Dirty) r.State=Phase::Idle; + return true; + }; if (r.Timer > diff) { r.Timer -= diff; + advanceLeisure(); return; } r.Timer = 1000; @@ -573,6 +1110,7 @@ void AdventureBehaviorMgr::Update(Player * player, uint32 diff) } } else if (r.Deadline && now >= r.Deadline) SetWanted(player, r, "", "", 0); + if (advanceLeisure()) return; if (Unsafe(player)) { if (player->IsInCombat() && ! r.Micro.empty()) ResetMicro(player, r); @@ -639,6 +1177,11 @@ void AdventureBehaviorMgr::Update(Player * player, uint32 diff) } if (r.State == Phase::OnSite) { + if (r.Recovery.Active) + { + if (UpdateRecovery(player,r,1000)) return; + ResetMicro(player,r);r.MicroTimer=3000;return; + } if(r.Social.Active) { if(UpdateSocial(player,r,1000))return; @@ -687,6 +1230,7 @@ bool AdventureBehaviorMgr::Command(ChatHandler * handler, char const * args) uint32 guid = 0; in >> op; if (op == "import") return sAdventureLocationMgr->Import(handler); + if (op == "repairimport") return sAdventureLocationMgr->Import(handler,true); if (op == "reload") { bool ok = sAdventureLocationMgr->Reload(); @@ -721,21 +1265,23 @@ bool AdventureBehaviorMgr::Command(ChatHandler * handler, char const * args) if(!r.Enabled||r.State!=Phase::OnSite||Unsafe(player)||Busy(guid)) {handler->SendSysMessage("Use an idle on-site AdventureBot, without combat or transit.");return false;} auto context=SocialContext(player,r); - for(auto const& action:sAdventureLocationMgr->Actions()) + for(auto const& catalog:sAdventureLocationMgr->Actions()) { - if(action.Key!=key||action.Kind!="social"||!action.Intents.count(r.Intent))continue; - if(!AdventureSocialActions::Available(player,action,context)) - {handler->SendSysMessage("Social action unavailable in the current environment.");return false;} + auto action=ResolvedAction(catalog); + if(action.Key!=key||(action.Kind!="social"&&action.Kind!="recovery"&&action.Kind!="leisure"&&action.Kind!="outing")||!action.Intents.count(r.Intent))continue; + bool recovery=action.Kind=="recovery",leisure=action.Kind=="leisure" || action.Kind=="outing"; + if(leisure?!LeisureAvailable(player,r,action):(recovery?!RecoveryAvailable(player,r,action):!AdventureSocialActions::Available(player,action,context))) + {handler->SendSysMessage("Action unavailable in the current environment.");return false;} ResetMicro(player,r);r.Micro=key; r.MicroTimer=std::uniform_int_distribution(action.MinSeconds,action.MaxSeconds)(r.Random)*1000; Remember(r.ActionHistory,action.Kind+":"+action.Requirement); Remember(r.VariantHistory,"action:"+action.Key); - bool started=AdventureSocialActions::Start(player,r.Social,action,r.MicroTimer,context); + bool started=leisure?StartLeisure(player,r,action):recovery?StartRecovery(player,r,action,r.MicroTimer):AdventureSocialActions::Start(player,r.Social,action,r.MicroTimer,context); if(!started){ResetMicro(player,r);r.MicroTimer=3000;} - handler->SendSysMessage(started?"Social scene started through normal navigation and native interactions.":"No reachable social target or suitable resting spot."); + handler->SendSysMessage(started?"Scene started through normal navigation and native interactions.":"No reachable target or suitable resting spot."); return started; } - handler->SendSysMessage("Unknown or unsuitable social action key.");return false; + handler->SendSysMessage("Unknown or unsuitable scene action key.");return false; } if (op == "plan") { @@ -765,7 +1311,7 @@ bool AdventureBehaviorMgr::Command(ChatHandler * handler, char const * args) auto l = sAdventureLocationMgr->Find(location); if (! Known(intent) || ! l || ! Allowed(player, * l, intent)) { - handler->SendSysMessage("Use social/adventure/profession and a matching enabled location."); + handler->SendSysMessage("Use social/adventure/profession/rest/leisure and a matching enabled location."); return false; } r.Schedule = false; @@ -781,6 +1327,6 @@ bool AdventureBehaviorMgr::Command(ChatHandler * handler, char const * args) handler->SendSysMessage("Behavior stop requested at a safe point."); return true; } - handler->SendSysMessage("Usage: clientless adventure import|reload|status |plan |schedule on/off|intent [seconds]|micro |stop "); + handler->SendSysMessage("Usage: clientless adventure import|repairimport|reload|status |plan |schedule on/off|intent [seconds]|micro |stop "); return false; } diff --git a/src/server/game/World/AdventureBehaviorMgr.h b/src/server/game/World/AdventureBehaviorMgr.h index da1c1ec2fa..568b51d1e0 100644 --- a/src/server/game/World/AdventureBehaviorMgr.h +++ b/src/server/game/World/AdventureBehaviorMgr.h @@ -5,6 +5,7 @@ #include "ObjectGuid.h" #include "AdventureBehaviorPolicy.h" #include "AdventureSocialActions.h" +#include "ClientlessCompanionMgr.h" #include #include #include @@ -15,6 +16,7 @@ class ChatHandler; class GameObject; struct ClientlessIntent; struct AdventureLocation; +struct AdventureMicroAction; struct ClientlessAdventureProfile; class TC_GAME_API AdventureBehaviorMgr @@ -28,6 +30,12 @@ public: bool Command(ChatHandler* handler, char const* args); private: enum class Phase {Idle, Travel, OnSite, Switching, Handover}; + struct RecoveryScene + { + bool Active=false, Approaching=false; + std::string Point, Posture; + uint32 Remaining=0, ApproachElapsed=0; + }; struct Record { bool Enabled=false, Schedule=false, Publishing=false, Queued=false, Dirty=true; @@ -41,6 +49,17 @@ private: std::deque ActionHistory, VariantHistory; std::deque TargetHistory; AdventureSocialScene Social; + RecoveryScene Recovery; + struct LeisureScene + { + bool Active=false, Flying=false, Moving=false, StopRequested=false, Returning=false, PlannedWalk=false, Progressive=false; + std::string Kind; + Position Origin; + std::vector Route, WalkTrace; + std::size_t Step=0, OutboundSteps=0; + uint32 Elapsed=0, LegElapsed=0, PauseMs=0, CompanionWait=0, CompletedLegs=0; + ClientlessCompanionScene Companion; + } Leisure; std::unordered_set Tried; Position Anchor; uint32 AnchorMap=0; @@ -57,7 +76,17 @@ private: void Micro(Player* player, Record& record); AdventureSocialContext SocialContext(Player* player, Record& record); bool UpdateSocial(Player* player, Record& record, uint32 diff); - bool LocalMove(Player* player, Record& record, Position const& target, float maxPath); + bool LocalMove(Player* player, Record& record, Position const& target, float maxPath, bool riding=false); + bool ProfessionWorkAvailable(Player* player,Record& record); + bool FishingDirection(Player* player,float& orientation) const; + bool LeisureAvailable(Player* player, Record const& record, AdventureMicroAction const& action) const; + bool PlanLeisureWalk(Player* player, Record& record); + bool StartLeisure(Player* player, Record& record, AdventureMicroAction const& action); + bool UpdateLeisure(Player* player, Record& record, uint32 diff); + void ResetLeisure(Player* player, Record& record); + bool RecoveryAvailable(Player* player, Record const& record, AdventureMicroAction const& action) const; + bool StartRecovery(Player* player, Record& record, AdventureMicroAction const& action, uint32 duration); + bool UpdateRecovery(Player* player, Record& record, uint32 diff); std::string AreaNode(Player* player, AdventureLocation const& location); std::string PickLocation(Player* player, Record& record, std::string const& intent); bool Allowed(Player* player, AdventureLocation const& location, std::string const& intent) const; diff --git a/src/server/game/World/AdventureEconomyPolicy.h b/src/server/game/World/AdventureEconomyPolicy.h new file mode 100644 index 0000000000..ccf6407cdc --- /dev/null +++ b/src/server/game/World/AdventureEconomyPolicy.h @@ -0,0 +1,53 @@ +#ifndef VCORE_ADVENTURE_ECONOMY_POLICY_H +#define VCORE_ADVENTURE_ECONOMY_POLICY_H +#include "AdventureSocialFlow.h" +#include +#include + +namespace AdventureEconomyPolicy +{ +enum class Service { None, Vendor, Bank, Auction, Any }; +inline Service RequiredService(std::string const& kind) +{ + if (kind=="vendor_visit" || kind=="goods" || kind=="trade" || kind=="vendor_compare") return Service::Vendor; + if (kind=="bank_visit" || kind=="banking") return Service::Bank; + if (kind=="auction_visit" || kind=="auctions") return Service::Auction; + if (kind=="service_wait" || kind=="service_finish") return Service::Any; + return Service::None; +} +inline std::string LocationRequirement(std::string const& category) +{ + if (category=="economy_vendor") return "vendor_visit"; + if (category=="economy_bank") return "bank_visit"; + if (category=="economy_auction") return "auction_visit"; + return ""; +} +inline bool Economic(std::string const& kind) +{ + return RequiredService(kind)!=Service::None || kind=="supplies"; +} +inline bool Matches(std::string const& kind, bool vendor, bool banker, bool auctioneer) +{ + switch (RequiredService(kind)) + { + case Service::Vendor: return vendor; + case Service::Bank: return banker; + case Service::Auction: return auctioneer; + case Service::Any: return vendor || banker || auctioneer; + default: return false; + } +} +inline std::vector Steps(std::string const& kind, uint32_t duration) +{ + using namespace AdventureSocialFlow; + if (kind=="supplies") return {{Cue::Look,3000},{Cue::Nod,2000},{Cue::Listen,std::max(5000u,duration-std::min(duration,5000u))}}; + if (kind=="service_wait") return {{Cue::Look,2000},{Cue::Listen,duration}}; + if (kind=="service_finish") return {{Cue::Farewell,2000}}; + if (RequiredService(kind)==Service::None) return {}; + uint32_t const hold=std::max(6000u,duration-std::min(duration,12000u)); + if (kind=="trade" || kind=="banking") + return {{Cue::Greet,2000},{Cue::Talk,4000},{Cue::Listen,hold},{Cue::Nod,2000},{Cue::Farewell,2000}}; + return {{Cue::Greet,2000},{Cue::Look,hold},{Cue::Listen,4000},{Cue::Nod,2000},{Cue::Farewell,2000}}; +} +} +#endif diff --git a/src/server/game/World/AdventureExplorationPolicy.h b/src/server/game/World/AdventureExplorationPolicy.h new file mode 100644 index 0000000000..26849b271a --- /dev/null +++ b/src/server/game/World/AdventureExplorationPolicy.h @@ -0,0 +1,33 @@ +#ifndef VCORE_ADVENTURE_EXPLORATION_POLICY_H +#define VCORE_ADVENTURE_EXPLORATION_POLICY_H +#include "AdventureSocialFlow.h" +#include +#include +namespace AdventureExplorationPolicy +{ +inline bool Inspection(std::string const& kind) +{ + return kind=="inspect" || kind=="inspect_detail" || kind=="point_object"; +} +inline bool Untargeted(std::string const& kind) +{ + return kind=="scout" || kind=="vista" || kind=="equipment" || kind=="entrance"; +} +inline bool Entrance(std::string const& category) +{ + return category=="ruins" || category=="dungeon" || category=="mine"; +} +inline std::vector Steps(std::string const& kind,uint32_t duration) +{ + using namespace AdventureSocialFlow; + uint32_t hold=std::max(4000u,duration-std::min(duration,10000u)); + if (kind=="inspect") return {{Cue::Look,hold},{Cue::Nod,2000},{Cue::Listen,4000}}; + if (kind=="inspect_detail") return {{Cue::Look,hold},{Cue::Question,3000},{Cue::Point,3000},{Cue::Listen,4000}}; + if (kind=="point_object") return {{Cue::Point,2000},{Cue::Listen,hold}}; + if (kind=="equipment") return {{Cue::CheckGear,3000},{Cue::Listen,hold},{Cue::Nod,2000}}; + if (kind=="entrance") return {{Cue::SurveyLeft,4000},{Cue::SurveyRight,4000},{Cue::CheckGear,3000},{Cue::Listen,hold}}; + if (kind=="scout" || kind=="vista") return {{Cue::SurveyLeft,5000},{Cue::Listen,hold},{Cue::SurveyRight,5000},{Cue::Listen,4000}}; + return {}; +} +} +#endif diff --git a/src/server/game/World/AdventureLocationMgr.cpp b/src/server/game/World/AdventureLocationMgr.cpp index 1c40acce7b..32499d5061 100644 --- a/src/server/game/World/AdventureLocationMgr.cpp +++ b/src/server/game/World/AdventureLocationMgr.cpp @@ -24,6 +24,7 @@ bool AdventureLocationMgr::Reload() { _locations.clear(); _types.clear(); + _workstations.clear(); _actions.clear(); _dialogs.clear(); _loaded = false; @@ -37,7 +38,7 @@ bool AdventureLocationMgr::Reload() l.Point.DatabaseId = f[0].GetUInt32(); l.Point.Id = f[1].GetString(); l.Point.Category = f[2].GetString(); - l.Point.MapId = f[3].GetUInt32(); + l.Point.MapId = f[3].GetUInt16(); l.Point.X = f[4].GetFloat(); l.Point.Y = f[5].GetFloat(); l.Point.Z = f[6].GetFloat(); @@ -52,7 +53,7 @@ bool AdventureLocationMgr::Reload() } while (rows->NextRow()); } - if (auto rows = WorldDatabase.Query("SELECT category,intent,weight FROM vcore_adventure_location_intent WHERE weight>0")) do + if (auto rows = WorldDatabase.Query("SELECT category,intent,weight FROM vcore_adventure_location_intent WHERE weight>=0")) do { auto f = rows->Fetch(); _types[f[0].GetString()][f[1].GetString()] = f[2].GetFloat(); @@ -86,6 +87,11 @@ bool AdventureLocationMgr::Reload() }); } while (rows->NextRow()); + if (WorldDatabase.Query("SHOW TABLES LIKE 'vcore_adventure_workstation'")) + if (auto rows=WorldDatabase.Query("SELECT gameobject_entry,role FROM vcore_adventure_workstation WHERE enabled=1")) do + { + auto f=rows->Fetch();_workstations[f[0].GetUInt32()].insert(f[1].GetString()); + } while(rows->NextRow()); _loaded = true; TC_LOG_INFO("server.adventurebot", "ADVENTURE_CATALOG locations=%u actions=%u lines=%u", uint32(_locations.size()), uint32(_actions.size()), uint32(_dialogs.size())); return true; @@ -97,15 +103,23 @@ AdventureLocation const * AdventureLocationMgr::Find(std::string const & key) co return nullptr; } +bool AdventureLocationMgr::IsWorkstation(uint32 entry,std::string const& role) const +{ + auto it=_workstations.find(entry);return it!=_workstations.end() && it->second.count(role); +} + float AdventureLocationMgr::Weight(AdventureLocation const & location, std::string const & intent) const { auto type = _types.find(location.Point.Category); - if (type == _types.end()) return 0; - auto weight = type->second.find(intent); - return weight == type->second.end() ? 0 : weight->second; + if (type != _types.end()) + { + auto weight=type->second.find(intent); + if (weight!=type->second.end()) return weight->second; + } + return 0; } -bool AdventureLocationMgr::Import(ChatHandler * handler) +bool AdventureLocationMgr::Import(ChatHandler * handler, bool repair) { using AdventureBehaviorPolicy::Classify; using AdventureBehaviorPolicy::Normalize; @@ -128,7 +142,7 @@ bool AdventureLocationMgr::Import(ChatHandler * handler) Seed s; s.Id = f[0].GetUInt32(); s.Name = f[1].GetString(); - s.Map = f[2].GetUInt32(); + s.Map = f[2].GetUInt16(); s.X = f[3].GetFloat(); s.Y = f[4].GetFloat(); s.Z = f[5].GetFloat(); @@ -147,7 +161,7 @@ bool AdventureLocationMgr::Import(ChatHandler * handler) Seed s; s.Id = f[0].GetUInt32(); s.Name = f[1].GetString() + " " + f[2].GetString(); - s.Map = f[3].GetUInt32(); + s.Map = f[3].GetUInt16(); s.X = f[4].GetFloat(); s.Y = f[5].GetFloat(); s.Z = f[6].GetFloat(); @@ -200,7 +214,15 @@ bool AdventureLocationMgr::Import(ChatHandler * handler) s.Map = anchor->Map; auto & t = terrains[s.Map]; if (! t) t = sTerrainMgr.LoadTerrain(s.Map); - s.Z = t ? t->GetStaticHeight(phase, s.Map, s.X, s.Y, MAX_HEIGHT, true, MAX_HEIGHT) : INVALID_HEIGHT; + Seed const* ground=anchor; + float groundDistance=std::hypot(s.X-anchor->X,s.Y-anchor->Y); + for (auto const& candidate:seeds) + if (candidate.Source=="service_npc" && candidate.Map==s.Map) + { + float d=std::hypot(s.X-candidate.X,s.Y-candidate.Y); + if (dGetStaticHeight(phase, s.Map, s.X, s.Y, ground->Z+3,true,100) : INVALID_HEIGHT; if (! std::isfinite(s.Z) || s.Z <= INVALID_HEIGHT + 1) { ++ skipped; @@ -245,6 +267,45 @@ bool AdventureLocationMgr::Import(ChatHandler * handler) area = zone; ++ areas; } + if (auto territory=sAreaTableStore.LookupEntry(zone)) + { + uint32 const mask=territory->FactionGroupMask & (FACTION_GROUP_MASK_ALLIANCE|FACTION_GROUP_MASK_HORDE); + s.Faction=mask==FACTION_GROUP_MASK_ALLIANCE?1:mask==FACTION_GROUP_MASK_HORDE?2:0; + } + if (repair) + { + // SMALLINT maps were previously read with GetUInt32, yielding zero + // in Debug. Reproduce the old generated values to protect edits. + auto legacyTerrain=sTerrainMgr.LoadTerrain(0); + float legacyZ=s.Z; + if (s.Source=="guard_poi_inferred") + legacyZ=legacyTerrain?legacyTerrain->GetStaticHeight(phase,0,s.X,s.Y,MAX_HEIGHT,true,MAX_HEIGHT):INVALID_HEIGHT; + uint32 legacyArea=areaAt(0,s.X,s.Y,legacyZ),legacyZone=legacyArea; + if (auto a=sAreaTableStore.LookupEntry(legacyArea)) if (a->ParentAreaID) legacyZone=a->ParentAreaID; + bool legacyIsArea=false; + if (auto a=sAreaTableStore.LookupEntry(legacyZone)) legacyIsArea=Normalize(s.Name)==Normalize(a->AreaName?a->AreaName:""); + std::string legacyType=s.Source=="service_npc"?(s.Type=="tavern"?"tavern":"service"):Classify(s.Name); + if (legacyIsArea) legacyType="zone"; + std::string oldRegion,newRegion,key=s.Key,name=s.Name,source=s.Source,type=s.Type; + auto regionFor=[&](uint32 id) + { + if (id==12) return std::string("elwynn"); + if (id==1) return std::string("dun_morogh"); + if (id==1519) return std::string("stormwind"); + if (id==4) return std::string("blasted_lands"); + auto a=sAreaTableStore.LookupEntry(id);return Normalize(a&&a->AreaName?a->AreaName:""); + }; + oldRegion=regionFor(legacyZone);newRegion=regionFor(zone); + for (auto text:{&oldRegion,&newRegion,&key,&name,&source,&type,&legacyType}) WorldDatabase.EscapeString(*text); + transaction->PAppend("UPDATE vcore_clientless_world_point w JOIN vcore_adventure_location a USING(point_key) " + "SET w.map=%u,w.position_z=%.6f,w.category='%s',a.area_id=%u,a.zone_id=%u,a.region_key='%s',a.is_area=%u,a.faction=%u " + "WHERE w.point_key='%s' AND a.source_type='%s' AND a.source_id=%u AND a.display_name='%s' " + "AND w.map=0 AND ABS(w.position_x-%.6f)<0.001 AND ABS(w.position_y-%.6f)<0.001 AND ABS(w.position_z-%.6f)<0.01 " + "AND w.category='%s' AND a.area_id=%u AND a.zone_id=%u AND a.region_key='%s' AND a.is_area=%u AND a.faction=0", + s.Map,s.Z,type.c_str(),area,zone,newRegion.c_str(),isArea?1u:0u,uint32(s.Faction), + key.c_str(),source.c_str(),s.Id,name.c_str(),s.X,s.Y,legacyZ,legacyType.c_str(),legacyArea,legacyZone, + oldRegion.c_str(),legacyIsArea?1u:0u); + } metadata(s, isArea, area, zone); std::string name = s.Name; WorldDatabase.EscapeString(name); @@ -261,7 +322,7 @@ bool AdventureLocationMgr::Import(ChatHandler * handler) s.Type = f[1].GetString(); s.Source = "manual"; s.Id = 0; - s.Map = f[2].GetUInt32(); + s.Map = f[2].GetUInt16(); s.X = f[3].GetFloat(); s.Y = f[4].GetFloat(); s.Z = f[5].GetFloat(); diff --git a/src/server/game/World/AdventureLocationMgr.h b/src/server/game/World/AdventureLocationMgr.h index 4cafcdeb8a..573cd6880c 100644 --- a/src/server/game/World/AdventureLocationMgr.h +++ b/src/server/game/World/AdventureLocationMgr.h @@ -5,6 +5,7 @@ #include #include #include +#include class ChatHandler; struct AdventureLocation { @@ -31,13 +32,15 @@ public: static AdventureLocationMgr* instance(); bool Reload(); bool EnsureLoaded(); - bool Import(ChatHandler* handler); + bool Import(ChatHandler* handler, bool repair = false); std::vector const& Locations() const { return _locations; } std::vector const& Actions() const { return _actions; } std::vector const& Dialogs() const { return _dialogs; } AdventureLocation const* Find(std::string const& key) const; + bool IsWorkstation(uint32 entry,std::string const& role) const; float Weight(AdventureLocation const& location, std::string const& intent) const; private: + std::unordered_map> _workstations; bool _loaded = false; std::vector _locations; std::vector _actions; diff --git a/src/server/game/World/AdventureProfessionPolicy.h b/src/server/game/World/AdventureProfessionPolicy.h new file mode 100644 index 0000000000..1b38203d92 --- /dev/null +++ b/src/server/game/World/AdventureProfessionPolicy.h @@ -0,0 +1,76 @@ +#ifndef VCORE_ADVENTURE_PROFESSION_POLICY_H +#define VCORE_ADVENTURE_PROFESSION_POLICY_H +#include "AdventureSocialFlow.h" +#include +#include +#include +namespace AdventureProfessionPolicy +{ +using Professions=std::unordered_set; +enum class Motion { Use, Mine, Chop, Kneel }; +struct Task { char const* Kind;char const* Primary;char const* Station;unsigned Skill;Motion Animation;bool Gather; }; +inline Task const* Find(std::string const& kind) +{ + static Task const tasks[]={ + {"work_mining","mining","",186,Motion::Mine,true}, + {"ore_inspect","mining","",186,Motion::Use,true}, + {"work_herbalism","herbalism","",182,Motion::Kneel,true}, + {"work_skinning","skinning","",393,Motion::Kneel,true}, + {"work_blacksmithing","blacksmithing","anvil",0,Motion::Mine,false}, + {"work_smelting","mining","forge",0,Motion::Use,false}, + {"work_engineering","engineering","workbench",0,Motion::Use,false}, + {"work_alchemy","alchemy","alchemy",0,Motion::Use,false}, + {"work_tailoring","tailoring","sewing",0,Motion::Use,false}, + {"work_leatherworking","leatherworking","leather",0,Motion::Use,false}, + {"work_enchanting","enchanting","enchanting",0,Motion::Use,false}, + {"work_inscription","inscription","inscription",0,Motion::Use,false}, + {"work_jewelcrafting","jewelcrafting","jewelcrafting",0,Motion::Use,false}, + {"work_wood","","wood",0,Motion::Chop,false}, + {"work_cooking","","cooking",0,Motion::Use,false}, + {"work_first_aid","","",0,Motion::Use,false} + }; + for (auto const& task:tasks) if (kind==task.Kind) return &task; + return nullptr; +} +inline char const* PrimaryForSkill(unsigned skill) +{ + switch(skill){case 186:return "mining";case 182:return "herbalism";case 393:return "skinning"; + case 164:return "blacksmithing";case 171:return "alchemy";case 333:return "enchanting"; + case 202:return "engineering";case 773:return "inscription";case 755:return "jewelcrafting"; + case 165:return "leatherworking";case 197:return "tailoring";default:return "";} +} +inline bool PrimaryName(std::string const& name) +{ + for(unsigned skill:{186,182,393,164,171,333,202,773,755,165,197}) if(name==PrimaryForSkill(skill))return true; + return false; +} +inline bool SkillAllowed(unsigned skill,Professions const& primary) +{ + if (skill==129 || skill==185 || skill==356 || skill==794) return true; + auto name=PrimaryForSkill(skill);return *name && primary.count(name); +} +inline bool Allowed(std::string const& kind,Professions const& primary) +{ + if(auto task=Find(kind))return !*task->Primary || primary.count(task->Primary); + return kind=="profession_tools" || kind=="profession_trainer" || kind=="profession_vendor"; +} +inline bool Recognized(std::string const& kind) +{ + return Find(kind) || kind=="profession_tools" || kind=="profession_trainer" || kind=="profession_vendor"; +} +inline bool Untargeted(std::string const& kind){return kind=="profession_tools" || kind=="work_first_aid";} +inline std::string Legacy(std::string const& requirement) +{ + return requirement=="ore"?"work_mining":requirement=="forge"?"work_blacksmithing":""; +} +inline std::vector Steps(std::string const& kind,unsigned duration) +{ + using namespace AdventureSocialFlow; + if(kind=="profession_trainer" || kind=="profession_vendor")return Conversation(); + if(kind=="profession_tools")return {{Cue::CheckGear,3000},{Cue::Listen,std::max(4000u,duration/2)},{Cue::Nod,2000}}; + if(kind=="ore_inspect")return {{Cue::Look,std::max(5000u,duration/2)},{Cue::Nod,2000}}; + if(!Find(kind))return {}; + return {{Cue::Look,2000},{Cue::Work,std::max(5000u,duration-std::min(duration,8000u))},{Cue::Look,4000},{Cue::Nod,2000}}; +} +} +#endif diff --git a/src/server/game/World/AdventureProfessionTargets.cpp b/src/server/game/World/AdventureProfessionTargets.cpp new file mode 100644 index 0000000000..95c18be7d0 --- /dev/null +++ b/src/server/game/World/AdventureProfessionTargets.cpp @@ -0,0 +1,85 @@ +#include "AdventureProfessionTargets.h" +#include "AdventureProfessionPolicy.h" +#include "AdventureSocialActions.h" +#include "AdventureLocationMgr.h" +#include "Creature.h" +#include "GameObject.h" +#include "GameObjectData.h" +#include "Player.h" +#include "ObjectMgr.h" +#include "SpellMgr.h" +#include "Trainer.h" +#include "DBCStores.h" +#include +namespace +{ + bool TrainerMatches(Creature* npc,AdventureSocialContext const& context) + { + if(!npc->IsTrainer())return false; + auto trainer=sObjectMgr->GetTrainer(sObjectMgr->GetCreatureDefaultTrainer(npc->GetEntry())); + if(!trainer || trainer->GetTrainerType()!=Trainer::Type::Tradeskill)return false; + for(auto const& spell:trainer->GetSpells()) + { + if(AdventureProfessionPolicy::SkillAllowed(spell.ReqSkillLine,context.PrimaryProfessions))return true; + auto bounds=sSpellMgr->GetSkillLineAbilityMapBounds(spell.SpellId); + for(auto it=bounds.first;it!=bounds.second;++it) + if(AdventureProfessionPolicy::SkillAllowed(it->second->SkillLine,context.PrimaryProfessions))return true; + } + return false; + } +} +bool AdventureProfessionTargets::Valid(Player* p,WorldObject* target,std::string const& kind,AdventureSocialContext const& c) +{ + using namespace AdventureProfessionPolicy; + if(c.Intent!="profession" || !Allowed(kind,c.PrimaryProfessions) || !target || !target->IsInWorld() || + target->GetMapId()!=c.MapId || !p->IsInPhase(target) || c.Anchor.GetExactDist(target)>200 || + std::fabs(target->GetPositionZ()-c.Anchor.GetPositionZ())>25)return false; + auto task=AdventureProfessionPolicy::Find(kind); + if(auto npc=target->ToCreature()) + { + if(kind=="work_skinning")return !npc->IsAlive() && npc->getDeathState()==CORPSE && + npc->GetCreatureType()==CREATURE_TYPE_BEAST && npc->HasFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_SKINNABLE) && p->CanSeeOrDetect(npc) && p->IsWithinLOSInMap(npc); + if(!npc->IsAlive() || npc->IsInCombat() || !p->IsFriendlyTo(npc) || !npc->GetCharmerOrOwnerGUID().IsEmpty())return false; + return kind=="profession_vendor"?npc->IsVendor():kind=="profession_trainer" && TrainerMatches(npc,c); + } + auto go=target->ToGameObject(); + if(!go || !task || !go->isSpawned())return false; + if(task->Skill && task->Skill!=393) + { + if(go->GetGoType()!=GAMEOBJECT_TYPE_CHEST || go->getLootState()!=GO_READY || !p->CanSeeOrDetect(go) || !p->IsWithinLOSInMap(go))return false; + auto lock=sLockStore.LookupEntry(go->GetGOInfo()->GetLockId()); + if(!lock)return false; + for(unsigned i=0;iType[i]==LOCK_KEY_SKILL && unsigned(SkillByLockType(LockType(lock->Index[i])))==task->Skill)return true; + return false; + } + // Native spell-focus markers may be invisible: they represent the real + // anvil/forge in map geometry. They are approached, never activated. + return *task->Station && sAdventureLocationMgr->IsWorkstation(go->GetEntry(),task->Station) && + (go->GetGoType()==GAMEOBJECT_TYPE_SPELL_FOCUS || p->CanSeeOrDetect(go)); +} +std::vector AdventureProfessionTargets::Find(Player* p,std::string const& kind,AdventureSocialContext& c) +{ + std::vector result; + if(!AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions))return result; + auto task=AdventureProfessionPolicy::Find(kind); + if(kind=="work_skinning" || kind=="profession_trainer" || kind=="profession_vendor") + { + std::vector people;p->GetCreatureListWithEntryInGrid(people,0,80); + for(auto npc:people)if(Valid(p,npc,kind,c))result.push_back(npc); + } + else + { + std::vector objects;p->GetGameObjectListWithEntryInGrid(objects,0,80); + for(auto go:objects)if(Valid(p,go,kind,c))result.push_back(go); + } + if(task && task->Gather) + result.erase(std::remove_if(result.begin(),result.end(),[&](WorldObject* target) + { + auto key="work:"+target->GetGUID().ToString(); + unsigned checked=0; + for(auto it=c.TargetHistory.rbegin();it!=c.TargetHistory.rend() && checked<4;++it,++checked)if(*it==key)return true; + return false; + }),result.end()); + return result; +} diff --git a/src/server/game/World/AdventureProfessionTargets.h b/src/server/game/World/AdventureProfessionTargets.h new file mode 100644 index 0000000000..a42ef3263e --- /dev/null +++ b/src/server/game/World/AdventureProfessionTargets.h @@ -0,0 +1,15 @@ +#ifndef VCORE_ADVENTURE_PROFESSION_TARGETS_H +#define VCORE_ADVENTURE_PROFESSION_TARGETS_H +#include "Common.h" +#include +#include +class Player; +class WorldObject; +struct AdventureSocialContext; +class TC_GAME_API AdventureProfessionTargets +{ +public: + static std::vector Find(Player* player,std::string const& kind,AdventureSocialContext& context); + static bool Valid(Player* player,WorldObject* target,std::string const& kind,AdventureSocialContext const& context); +}; +#endif diff --git a/src/server/game/World/AdventureSocialActions.cpp b/src/server/game/World/AdventureSocialActions.cpp index de2ef85d37..4ee97a78be 100644 --- a/src/server/game/World/AdventureSocialActions.cpp +++ b/src/server/game/World/AdventureSocialActions.cpp @@ -1,8 +1,13 @@ #include "AdventureSocialActions.h" #include "AdventureLocationMgr.h" +#include "AdventureEconomyPolicy.h" +#include "AdventureExplorationPolicy.h" +#include "AdventureProfessionTargets.h" #include "AdventureBehaviorPolicy.h" #include "ClientlessPlayerMgr.h" +#include "ClientlessPerceptionMgr.h" #include "ClientlessTravelMgr.h" +#include "DBCStores.h" #include "Creature.h" #include "GameObject.h" #include "GameObjectData.h" @@ -26,22 +31,56 @@ namespace constexpr uint32 CookingFire = 818; bool InBounds(Player * player, WorldObject const * target, AdventureSocialContext const & c) { - return target && target->IsInWorld() && target->GetMapId() == c.MapId && c.Anchor.GetExactDist(target) <= 30 && std::fabs(target->GetPositionZ() - c.Anchor.GetPositionZ()) <= 6 && player->IsInPhase(target); + return target && target->IsInWorld() && target->GetMapId() == c.MapId && c.Anchor.GetExactDist(target) <= (c.Intent=="economy" || c.Intent=="adventure" || c.Intent=="profession"?200:30) && std::fabs(target->GetPositionZ() - c.Anchor.GetPositionZ()) <= (c.Intent=="economy" || c.Intent=="adventure" || c.Intent=="profession"?25:6) && player->IsInPhase(target); } bool Friendly(Player * player, Unit * unit, AdventureSocialContext const & c) { return unit != player && InBounds(player, unit, c) && unit->IsAlive() && ! unit->IsInCombat() && ! unit->IsInFlight() && ! unit->IsFlying() && ! unit->GetTransport() && player->IsFriendlyTo(unit) && ! unit->IsCritter() && ! unit->IsTotem() && unit->GetCharmerOrOwnerGUID().IsEmpty(); } + bool ServiceMatches(Unit* unit, std::string const& kind) + { + return unit && AdventureEconomyPolicy::Matches(kind,unit->IsVendor(),unit->IsBanker(), + unit->HasFlag(UNIT_NPC_FLAGS,UNIT_NPC_FLAG_AUCTIONEER)); + } + bool TargetVisible(Player* player, WorldObject* target, std::string const& kind) + { + if (!AdventureEconomyPolicy::Economic(kind) && !AdventureProfessionPolicy::Recognized(kind)) return player->IsWithinLOSInMap(target); + // Counters can obscure the unit's ground/combat sphere while both + // participants can see each other's head. Keep native VMAP geometry. + return player->GetMap()->isInLineOfSight(player->GetPhaseShift(), + player->GetPositionX(),player->GetPositionY(),player->GetPositionZ()+player->GetCollisionHeight(), + target->GetPositionX(),target->GetPositionY(),target->GetPositionZ()+target->GetCollisionHeight(), + LINEOFSIGHT_ALL_CHECKS,VMAP::ModelIgnoreFlags::Nothing); + } std::vector < Unit * > People(Player * player, std::string const & kind, AdventureSocialContext & c) { std::vector < Unit * > people; + if (AdventureEconomyPolicy::Economic(kind)) + { + auto snapshot=sClientlessPerceptionMgr->GetSnapshot(player->GetGUID().GetCounter()); + if (!snapshot || snapshot->Radius<100 || snapshot->ScanAgeMs>=1000) + { + sClientlessPerceptionMgr->ScanNow(player,100); + snapshot=sClientlessPerceptionMgr->GetSnapshot(player->GetGUID().GetCounter()); + } + if (snapshot) for (auto const& entity:snapshot->Entities) + { + if (entity.Type!=ClientlessEntityType::Creature || !entity.Alive || + !(entity.Capabilities & (CLIENTLESS_CAP_VENDOR|CLIENTLESS_CAP_BANKER|CLIENTLESS_CAP_AUCTIONEER))) continue; + auto unit=ObjectAccessor::GetCreature(*player,ObjectGuid(HighGuid::Unit,entity.Entry,entity.Guid)); + if (Friendly(player,unit,c) && ServiceMatches(unit,kind) && + (c.ServiceKind.empty() || ServiceMatches(unit,c.ServiceKind))) people.push_back(unit); + } + return people; + } if (kind != "bot") { std::vector < Creature * > creatures; player->GetCreatureListWithEntryInGrid(creatures, 0, 25); - for (auto unit : creatures) if (Friendly(player, unit, c) && player->IsWithinLOSInMap(unit) && ((kind != "counter" && kind != "order") || unit->IsInnkeeper())) people.push_back(unit); + for (auto unit : creatures) if (Friendly(player, unit, c) && (AdventureEconomyPolicy::Economic(kind) || player->IsWithinLOSInMap(unit)) && (AdventureEconomyPolicy::Economic(kind)?(ServiceMatches(unit,kind) && (c.ServiceKind.empty() || ServiceMatches(unit,c.ServiceKind))): + ((kind != "counter" && kind != "order") || unit->IsInnkeeper()))) people.push_back(unit); } - if (kind != "npc" && kind != "counter" && kind != "order") + if (!AdventureEconomyPolicy::Economic(kind) && kind != "npc" && kind != "counter" && kind != "order") { std::vector < Player * > players; player->GetPlayerListInGrid(players, 25); @@ -56,6 +95,21 @@ namespace for (auto go : all) if (go->isSpawned() && go->GetGoType() == type && InBounds(player, go, c)) result.push_back(go); return result; } + std::vector InspectionObjects(Player* player,AdventureSocialContext& c) + { + std::vector all,result; + player->GetGameObjectListWithEntryInGrid(all,0,60); + for (auto go:all) + { + if (!go->isSpawned() || !InBounds(player,go,c) || !player->CanSeeOrDetect(go) || !player->IsWithinLOSInMap(go)) continue; + // Examine visible props/books/signs; never activate them. Ignore + // traps, transports, doors, chests and furniture as investigation targets. + auto type=go->GetGoType(); + if (type==GAMEOBJECT_TYPE_GENERIC || type==GAMEOBJECT_TYPE_GOOBER || type==GAMEOBJECT_TYPE_TEXT) + result.push_back(go); + } + return result; + } GameObject * Fire(Player * player, AdventureSocialContext & c) { std::vector < GameObject * > objects; @@ -72,7 +126,24 @@ namespace } bool CanMakeFire(Player * p) { - return p->HasSpell(CookingFire) && p->IsOutdoors() && ! p->IsInWater() && ! p->IsFalling() && ! p->GetSpellHistory()->HasCooldown(CookingFire) && ! p->IsNonMeleeSpellCast(false); + if (!p->HasSpell(CookingFire) || !p->IsOutdoors() || p->IsInWater() || p->IsFalling() || + p->GetSpellHistory()->HasCooldown(CookingFire) || p->IsNonMeleeSpellCast(false)) return false; + // Enforce this for every intent and again immediately before casting. + // Districts may inherit city flags from a parent or the enclosing zone. + for (uint32 id : {p->GetAreaId(), p->GetZoneId()}) + { + for (uint32 depth = 0; ; ++depth) + { + auto const* area = sAreaTableStore.LookupEntry(id); + if (!area || depth >= 16) return false; + auto const flags = area->GetFlags(); + if (flags.HasFlag(AreaFlags::LinkedChat) || flags.HasFlag(AreaFlags::AllowTradeChannel)) + return false; + if (!area->ParentAreaID) break; + id = area->ParentAreaID; + } + } + return true; } WorldObject * Resolve(Player * p, ObjectGuid guid) { @@ -96,15 +167,16 @@ namespace bool Approach(Player* player,AdventureSocialScene& scene,WorldObject* target,AdventureSocialContext& c) { if(!InBounds(player,target,c))return false; - if(player->GetExactDist(target)<=3.8f && AtFront(player,target) && - player->IsWithinLOS(target->GetPositionX(),target->GetPositionY(),target->GetPositionZ()+1.5f)) + if(player->GetExactDist(target)<=3.8f && (scene.Kind=="work_skinning" || AtFront(player,target)) && + ((AdventureEconomyPolicy::Economic(scene.Kind) || AdventureProfessionPolicy::Recognized(scene.Kind))?TargetVisible(player,target,scene.Kind): + player->IsWithinLOS(target->GetPositionX(),target->GetPositionY(),target->GetPositionZ()+1.5f))) { scene.Approaching=false; return true; } // People are approached in front of their actual facing, not from the // bot's current bearing. Furniture may still be reached from any side. - bool person=target->ToUnit()!=nullptr; + bool person=target->ToUnit()!=nullptr && scene.Kind!="work_skinning"; float bearing=person?target->GetOrientation():target->GetAngle(player); std::vector offsets=person?std::vector{0,0.28f,-0.28f,0.55f,-0.55f}: std::vector{0,0.7f,-0.7f,1.4f,-1.4f,3.1415926f}; @@ -116,10 +188,10 @@ namespace float floor=player->GetMap()->GetHeight(player->GetPhaseShift(),p.GetPositionX(),p.GetPositionY(),target->GetPositionZ()+3,true,8); if(floor<=INVALID_HEIGHT+1||std::fabs(floor-target->GetPositionZ())>3)continue; p.m_positionZ=floor; - if(!player->GetMap()->isInLineOfSight(player->GetPhaseShift(),p.GetPositionX(),p.GetPositionY(),floor+1.5f, - target->GetPositionX(),target->GetPositionY(),target->GetPositionZ()+1.5f, + if(!player->GetMap()->isInLineOfSight(player->GetPhaseShift(),p.GetPositionX(),p.GetPositionY(),floor+((AdventureEconomyPolicy::Economic(scene.Kind) || AdventureProfessionPolicy::Recognized(scene.Kind))?player->GetCollisionHeight():1.5f), + target->GetPositionX(),target->GetPositionY(),target->GetPositionZ()+((AdventureEconomyPolicy::Economic(scene.Kind) || AdventureProfessionPolicy::Recognized(scene.Kind))?target->GetCollisionHeight():1.5f), LINEOFSIGHT_ALL_CHECKS,VMAP::ModelIgnoreFlags::Nothing))continue; - if(!c.Move(p,55))continue; + if(!c.Move(p,(AdventureEconomyPolicy::Economic(scene.Kind) || AdventureExplorationPolicy::Inspection(scene.Kind) || AdventureProfessionPolicy::Recognized(scene.Kind))?350:55))continue; scene.Destination=p;scene.Approaching=true;return true; } return false; @@ -178,6 +250,10 @@ namespace } std::vector < Step > Steps(std::string const & kind, uint32 duration) { + if (AdventureProfessionPolicy::Recognized(kind)) return AdventureProfessionPolicy::Steps(kind,duration); + if (AdventureExplorationPolicy::Inspection(kind) || AdventureExplorationPolicy::Untargeted(kind)) + return AdventureExplorationPolicy::Steps(kind,duration); + if (AdventureEconomyPolicy::Economic(kind)) return AdventureEconomyPolicy::Steps(kind,duration); if (kind == "npc" || kind == "bot") return Conversation(); if (kind == "counter") return { @@ -338,10 +414,24 @@ void AdventureSocialActions::Prepare(Player * player) bool AdventureSocialActions::Available(Player * p, AdventureMicroAction const & action, AdventureSocialContext & c) { auto const & kind = action.Requirement; + if (AdventureProfessionPolicy::Recognized(kind)) return c.Intent=="profession" && + AdventureProfessionPolicy::Allowed(kind,c.PrimaryProfessions) && + (AdventureProfessionPolicy::Untargeted(kind)?!p->IsInWater() && !p->IsFalling():!AdventureProfessionTargets::Find(p,kind,c).empty()); + if (AdventureExplorationPolicy::Inspection(kind)) return c.Intent=="adventure" && !InspectionObjects(p,c).empty(); + if (AdventureExplorationPolicy::Untargeted(kind)) return c.Intent=="adventure" && + (kind!="vista" || p->IsOutdoors()) && (kind!="entrance" || AdventureExplorationPolicy::Entrance(c.LocationCategory)); + if (kind=="supplies") return c.Intent=="economy"; + if (kind=="vendor_compare") return People(p,kind,c).size()>=2; + if (kind=="service_finish") + { + for (auto unit:People(p,kind,c)) + if (std::find(c.TargetHistory.begin(),c.TargetHistory.end(),unit->GetGUID().ToString())!=c.TargetHistory.end()) return true; + return false; + } if (kind == "seat" || kind == "drink_seated" || kind == "eat_seated") return ! Objects(p, GAMEOBJECT_TYPE_CHAIR, c).empty(); - if (kind == "dance") return c.Festival || ! People(p, "audience", c).empty(); - if (kind == "fire") return Fire(p, c) || CanMakeFire(p); - if (kind == "make_fire") return ! Fire(p, c) && CanMakeFire(p); + if (kind == "dance") return c.Festival || (c.Intent!="leisure" && ! People(p, "audience", c).empty()); + if (kind == "fire") return Fire(p, c) || (c.AllowCreateFire && CanMakeFire(p)); + if (kind == "make_fire") return c.AllowCreateFire && ! Fire(p, c) && CanMakeFire(p); if (kind == "farewell") { for (auto unit : People(p, kind, c)) if (std::find(c.TargetHistory.begin(), c.TargetHistory.end(), unit->GetGUID().ToString()) != c.TargetHistory.end()) return true; @@ -357,7 +447,10 @@ bool AdventureSocialActions::Start(Player * p, AdventureSocialScene & s, Adventu }; s.Action = a.Key; s.Kind = a.Requirement; + if(AdventureProfessionPolicy::Recognized(s.Kind) && !Available(p,a,c))return false; + s.Origin.Relocate(p); s.PreviousSelection = p->GetTarget(); + s.Facing=p->GetOrientation(); WorldObject * target = nullptr; bool approached=false; if (s.Kind == "seat" || s.Kind == "drink_seated" || s.Kind == "eat_seated") @@ -372,6 +465,30 @@ bool AdventureSocialActions::Start(Player * p, AdventureSocialScene & s, Adventu chairs.erase(std::remove(chairs.begin(),chairs.end(),chair),chairs.end()); } } + else if (AdventureProfessionPolicy::Recognized(s.Kind) && !AdventureProfessionPolicy::Untargeted(s.Kind)) + { + auto targets=AdventureProfessionTargets::Find(p,s.Kind,c); + while(!targets.empty()) + { + auto candidate=Pick(p,targets,c); + if(!candidate)break; + if(Approach(p,s,candidate,c)){target=candidate;approached=true;break;} + targets.erase(std::remove(targets.begin(),targets.end(),candidate),targets.end()); + } + if(!target)return false; + } + else if (AdventureExplorationPolicy::Inspection(s.Kind)) + { + auto objects=InspectionObjects(p,c); + while (!objects.empty()) + { + auto object=Pick(p,objects,c); + if (!object) break; + if (Approach(p,s,object,c)) {target=object;approached=true;break;} + objects.erase(std::remove(objects.begin(),objects.end(),object),objects.end()); + } + if (!target) return false; + } else if (s.Kind == "fire" || s.Kind == "make_fire") target = Fire(p, c); else if (s.Kind == "farewell") { @@ -382,7 +499,25 @@ bool AdventureSocialActions::Start(Player * p, AdventureSocialScene & s, Adventu break; } } - else if (s.Kind != "dance") target = Pick(p, People(p, s.Kind, c), c); + else if (AdventureEconomyPolicy::RequiredService(s.Kind)!=AdventureEconomyPolicy::Service::None) + { + auto people=People(p,s.Kind,c); + if (s.Kind=="vendor_compare" && people.size()<2) return false; + if (s.Kind=="service_finish") + people.erase(std::remove_if(people.begin(),people.end(),[&](Unit* unit) + {return std::find(c.TargetHistory.begin(),c.TargetHistory.end(),unit->GetGUID().ToString())==c.TargetHistory.end();}),people.end()); + // A nearer counter may be blocked. Try other actual service NPCs before + // declaring this visit unavailable; every approach still uses MMAP. + while (!people.empty()) + { + auto unit=Pick(p,people,c); + if (!unit) break; + if (Approach(p,s,unit,c)) {target=unit;approached=true;break;} + people.erase(std::remove(people.begin(),people.end(),unit),people.end()); + } + if (!target) return false; + } + else if (s.Kind != "dance" && s.Kind!="supplies" && !AdventureExplorationPolicy::Untargeted(s.Kind) && !AdventureProfessionPolicy::Untargeted(s.Kind)) target = Pick(p, People(p, s.Kind, c), c); if (target) { s.Target = target->GetGUID(); @@ -392,7 +527,7 @@ bool AdventureSocialActions::Start(Player * p, AdventureSocialScene & s, Adventu } else if (s.Kind == "fire" || s.Kind == "make_fire") { - if (! CanMakeFire(p)) return false; + if (! c.AllowCreateFire || ! CanMakeFire(p)) return false; // Native cast places the campfire beside the grounded caster. Require a // small flat open patch, not water, a ledge, doorway or a room interior. for (unsigned i = 0; i < 8; ++ i) @@ -403,8 +538,9 @@ bool AdventureSocialActions::Start(Player * p, AdventureSocialScene & s, Adventu if (z <= INVALID_HEIGHT + 1 || std::fabs(z - p->GetPositionZ()) > 1.0f || p->GetMap()->GetWaterLevel(p->GetPhaseShift(), x, y) > z + 0.2f || ! p->IsWithinLOS(x, y, z + 1)) return false; } } - else if (s.Kind != "dance") return false; - s.Sequence.Start(Steps(s.Kind, duration)); + else if (s.Kind != "dance" && s.Kind!="supplies" && !AdventureExplorationPolicy::Untargeted(s.Kind) && !AdventureProfessionPolicy::Untargeted(s.Kind)) return false; + s.ServiceDuration=s.Kind=="vendor_compare"?duration/2:duration; + s.Sequence.Start(Steps(s.Kind, s.ServiceDuration)); s.Active = s.Sequence.Active(); TC_LOG_INFO("server.adventurebot", "SOCIAL_START guid=%u action='%s' target='%s' approach=%u", p->GetGUID().GetCounter(), s.Action.c_str(), s.Target.ToString().c_str(), s.Approaching ? 1 : 0); return s.Active; @@ -413,29 +549,50 @@ bool AdventureSocialActions::Start(Player * p, AdventureSocialScene & s, Adventu bool AdventureSocialActions::Update(Player * p, AdventureSocialScene & s, uint32 diff, AdventureSocialContext & c) { if (! s.Active) return false; + if(AdventureProfessionPolicy::Recognized(s.Kind) && (c.Intent!="profession" || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions)))return false; s.Elapsed += diff; - if (s.Elapsed > 120000) return false; + if (s.Elapsed > (AdventureEconomyPolicy::Economic(s.Kind)?240000u:120000u)) return false; + if (s.Departing) + { + auto travel=sClientlessTravelMgr->GetStatus(p->GetGUID().GetCounter()); + if (travel && travel->State==ClientlessTravelState::Moving) return true; + if (travel && travel->State==ClientlessTravelState::Arrived && p->GetExactDist(s.Destination)<=2) + TC_LOG_INFO("server.adventurebot",AdventureProfessionPolicy::Recognized(s.Kind)?"PROFESSION_VISIT_COMPLETE guid=%u action='%s' visits=%u":"ECONOMY_VISIT_COMPLETE guid=%u action='%s' visits=%u", + p->GetGUID().GetCounter(),s.Action.c_str(),s.ServiceVisits+1); + return false; + } auto target = Resolve(p, s.Target); if (! s.Target.IsEmpty()) { if (! InBounds(p, target, c)) return false; + if(AdventureProfessionPolicy::Recognized(s.Kind) && !AdventureProfessionTargets::Valid(p,target,s.Kind,c))return false; + if (AdventureExplorationPolicy::Inspection(s.Kind)) + { + auto object=target->ToGameObject(); + if (!object || !object->isSpawned() || !p->CanSeeOrDetect(object)) return false; + if (!s.Approaching && (p->GetExactDist(target)>4 || !TargetVisible(p,target,s.Kind))) + { + if (++s.Repaths>3 || !Approach(p,s,target,c)) return false; + } + } if (auto unit = target->ToUnit()) { - if (! Friendly(p, unit, c)) return false; - if ((p->GetExactDist(unit) > 5 || !AtFront(p,unit) || !p->IsWithinLOSInMap(unit)) && ! s.Approaching) + if (s.Kind!="work_skinning" && ! Friendly(p, unit, c)) return false; + if (AdventureEconomyPolicy::Economic(s.Kind) && !ServiceMatches(unit,s.Kind)) return false; + if ((p->GetExactDist(unit) > 5 || (s.Kind!="work_skinning" && !AtFront(p,unit)) || !TargetVisible(p,unit,s.Kind)) && ! s.Approaching) { if (++ s.Repaths > 3 || ! Approach(p, s, unit, c)) return false; } } } - if(target&&target->ToUnit()&&!s.Approaching&&!p->IsWithinLOSInMap(target))return false; + if(target&&target->ToUnit()&&!s.Approaching&&!TargetVisible(p,target,s.Kind))return false; if (s.Approaching) { auto travel = sClientlessTravelMgr->GetStatus(p->GetGUID().GetCounter()); if (travel && travel->State == ClientlessTravelState::Moving) return true; if (! travel || travel->State != ClientlessTravelState::Arrived || ! target) return false; s.Approaching = false; - if (p->GetExactDist(target) > 4 || !AtFront(p,target)) + if (p->GetExactDist(target) > 4 || (s.Kind!="work_skinning" && !AtFront(p,target)) || !TargetVisible(p,target,s.Kind)) { if (++ s.Repaths > 3 || ! Approach(p, s, target, c)) return false; return true; @@ -497,6 +654,27 @@ bool AdventureSocialActions::Update(Player * p, AdventureSocialScene & s, uint32 case Cue::Comment : p->HandleEmoteCommand(EMOTE_ONESHOT_TALK); Say(p, "comment", c); break; + case Cue::Work : + { + auto task=AdventureProfessionPolicy::Find(s.Kind); + if(!task || !AdventureProfessionPolicy::Allowed(s.Kind,c.PrimaryProfessions))return false; + uint32 emote=EMOTE_STATE_USE_STANDING; + switch(task->Animation) + { + case AdventureProfessionPolicy::Motion::Mine:emote=EMOTE_STATE_WORK_MINING;break; + case AdventureProfessionPolicy::Motion::Chop:emote=EMOTE_STATE_WORK_CHOPWOOD;break; + case AdventureProfessionPolicy::Motion::Kneel:emote=EMOTE_STATE_KNEEL;break; + default:break; + } + p->SetUInt32Value(UNIT_NPC_EMOTESTATE,emote); + TC_LOG_INFO("server.adventurebot","PROFESSION_WORK guid=%u kind='%s' target='%s' emote=%u",p->GetGUID().GetCounter(),s.Kind.c_str(),s.TargetKey.c_str(),emote); + break; + } + case Cue::SurveyLeft : p->SetFacingTo(s.Facing-0.75f); break; + case Cue::SurveyRight : p->SetFacingTo(s.Facing+0.75f); break; + case Cue::Question : p->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION); break; + case Cue::Point : p->HandleEmoteCommand(EMOTE_ONESHOT_POINT); break; + case Cue::CheckGear : p->HandleEmoteCommand(EMOTE_ONESHOT_USE_STANDING); break; case Cue::Listen : break; case Cue::React : p->HandleEmoteCommand(Reaction(c)); break; @@ -521,7 +699,7 @@ bool AdventureSocialActions::Update(Player * p, AdventureSocialScene & s, uint32 break; case Cue::Fire : if (! Fire(p, c)) { - if (! CanMakeFire(p) || p->CastSpell(p, CookingFire, false) != SPELL_CAST_OK) return false; + if (! c.AllowCreateFire || ! CanMakeFire(p) || p->CastSpell(p, CookingFire, false) != SPELL_CAST_OK) return false; s.Casting = true; s.CastElapsed = 0; TC_LOG_INFO("server.adventurebot", "SOCIAL_FIRE_CAST guid=%u spell=818", p->GetGUID().GetCounter()); @@ -547,7 +725,53 @@ bool AdventureSocialActions::Update(Player * p, AdventureSocialScene & s, uint32 return true; } s.Sequence.Update(diff); - return s.Sequence.Active(); + if (s.Sequence.Active()) return true; + if(AdventureProfessionPolicy::Recognized(s.Kind)) + { + if(auto task=AdventureProfessionPolicy::Find(s.Kind)) + if(task->Gather && s.Kind!="ore_inspect")Remember(c.TargetHistory,"work:"+s.TargetKey); + TC_LOG_INFO("server.adventurebot","PROFESSION_WORK_COMPLETE guid=%u kind='%s' target='%s'",p->GetGUID().GetCounter(),s.Kind.c_str(),s.TargetKey.c_str()); + if(!target)return false; + Position departure;departure.Relocate(p); + float angle=target->GetAngle(p); + departure.m_positionX+=std::cos(angle)*2;departure.m_positionY+=std::sin(angle)*2; + float height=p->GetMap()->GetHeight(p->GetPhaseShift(),departure.GetPositionX(),departure.GetPositionY(),p->GetPositionZ()+3,true,8); + if(height>INVALID_HEIGHT+1 && std::fabs(height-p->GetPositionZ())<=2) + { + departure.m_positionZ=height; + if(c.Move(departure,20)){s.Destination=departure;s.Departing=true;return true;} + } + return false; + } + if (s.Kind=="vendor_compare" && !s.ServiceVisits) + { + auto people=People(p,s.Kind,c); + people.erase(std::remove_if(people.begin(),people.end(),[&](Unit* unit) + {return unit->GetGUID()==s.Target;}),people.end()); + while (!people.empty()) + { + auto next=Pick(p,people,c); + if (!next) break; + if (Approach(p,s,next,c)) + { + s.Target=next->GetGUID();s.TargetKey=s.Target.ToString();++s.ServiceVisits; + Remember(c.TargetHistory,s.TargetKey);s.Sequence.Start(Steps(s.Kind,s.ServiceDuration)); + TC_LOG_INFO("server.adventurebot","ECONOMY_COMPARE_NEXT guid=%u target='%s'",p->GetGUID().GetCounter(),s.TargetKey.c_str()); + return true; + } + people.erase(std::remove(people.begin(),people.end(),next),people.end()); + } + return false; + } + if (AdventureEconomyPolicy::RequiredService(s.Kind)!=AdventureEconomyPolicy::Service::None) + { + s.Destination=c.Anchor; + if (!c.Move(s.Destination,350)) return false; + s.Departing=true; + TC_LOG_INFO("server.adventurebot","ECONOMY_DEPART guid=%u action='%s'",p->GetGUID().GetCounter(),s.Action.c_str()); + return true; + } + return false; } void AdventureSocialActions::Reset(Player * p, AdventureSocialScene & s) diff --git a/src/server/game/World/AdventureSocialActions.h b/src/server/game/World/AdventureSocialActions.h index 5807091006..6d8a9e2f32 100644 --- a/src/server/game/World/AdventureSocialActions.h +++ b/src/server/game/World/AdventureSocialActions.h @@ -4,6 +4,7 @@ #include "ObjectGuid.h" #include "Position.h" #include "AdventureSocialFlow.h" +#include "AdventureProfessionPolicy.h" #include #include #include @@ -13,11 +14,12 @@ struct AdventureMicroAction; struct AdventureLocation; struct AdventureSocialScene { - bool Active=false, Approaching=false, Casting=false, WaitingChair=false, Seated=false; + bool Active=false, Approaching=false, Casting=false, WaitingChair=false, Seated=false, Departing=false; std::string Action, Kind, TargetKey; ObjectGuid Target, PreviousSelection; - Position Destination; - uint32 Elapsed=0, CastElapsed=0, CheckTimer=0, Repaths=0; + Position Destination, Origin; + float Facing=0; + uint32 Elapsed=0, CastElapsed=0, CheckTimer=0, Repaths=0, ServiceVisits=0, ServiceDuration=0; AdventureSocialFlow::Sequence Sequence; }; struct AdventureSocialContext @@ -30,6 +32,9 @@ struct AdventureSocialContext std::deque& TargetHistory; std::deque& VariantHistory; std::function Move; + bool AllowCreateFire=true; + std::string ServiceKind, LocationCategory; + AdventureProfessionPolicy::Professions PrimaryProfessions; }; class TC_GAME_API AdventureSocialActions { diff --git a/src/server/game/World/AdventureSocialFlow.h b/src/server/game/World/AdventureSocialFlow.h index 5b8c6ff353..4c492e5c64 100644 --- a/src/server/game/World/AdventureSocialFlow.h +++ b/src/server/game/World/AdventureSocialFlow.h @@ -15,7 +15,7 @@ inline bool ConversationFront(float x,float y,float heading,float otherX,float o return distance>=1.1f&&distance<=3.8f && (dx*std::cos(heading)+dy*std::sin(heading))/distance>=std::cos(0.85f); } -enum class Cue { Greet, Talk, Order, Comment, Listen, React, Nod, Farewell, Look, Toast, Drink, Seat, Dance, Fire, Rest, Eat }; +enum class Cue { Greet, Talk, Order, Comment, Listen, React, Nod, Farewell, Look, Toast, Drink, Seat, Dance, Fire, Rest, Eat, SurveyLeft, SurveyRight, Question, Point, CheckGear, Work }; struct Step { Cue Action; uint32_t Duration; }; // A cue fires once; waiting for navigation, native casts or a chair ACK happens // outside this clock. That prevents animations from being executed while walking. diff --git a/src/server/game/World/ClientlessActionExecutorMgr.cpp b/src/server/game/World/ClientlessActionExecutorMgr.cpp index f92e96024a..14f4045bcb 100644 --- a/src/server/game/World/ClientlessActionExecutorMgr.cpp +++ b/src/server/game/World/ClientlessActionExecutorMgr.cpp @@ -14,6 +14,7 @@ #include "Opcodes.h" #include "Player.h" #include "MotionMaster.h" +#include "MoveSpline.h" #include "PathGenerator.h" // VCORE_C819_DEFERRED_START_NODES_V2 #include "GameObject.h" #include "Map.h" @@ -33,6 +34,17 @@ namespace { + bool StartGroundConnection(Player* player, uint32 guid, Position const& target) + { + if (!sClientlessTravelMgr->StartTravel(player, target, true)) + return false; + // StartTravel reports that the request was accepted even when its + // synchronous execution query has already rejected the actual path. + auto const* status = sClientlessTravelMgr->GetStatus(guid); + return status && (status->State == ClientlessTravelState::Moving || + status->State == ClientlessTravelState::Arrived); + } + struct NamedCapability { char const* Name; @@ -606,6 +618,9 @@ bool ClientlessActionExecutorMgr::StartTravelToNode( "TRAVEL_PLAN_FAILED guid=%u name='%s' action='travel_to_node' destination='%s' reason='%s'", characterGuid, player->GetName().c_str(), destinationNode.c_str(), error.c_str()); + if (TryFallbackFlight(player, characterGuid, record)) + return true; + if (record.HardDestination) { record.Status.State = ClientlessActionExecutionState::Failed; @@ -769,6 +784,8 @@ bool ClientlessActionExecutorMgr::StartTravelToLocation( if (!sClientlessTravelGraphMgr->FindNearestNodeToPosition( point->MapId, point->X, point->Y, point->Z, anchorNode, proxyDistance)) { + if (TryFallbackFlight(player, characterGuid, record)) + return true; record.Status.State = record.HardDestination ? ClientlessActionExecutionState::Failed : ClientlessActionExecutionState::Completed; @@ -791,6 +808,8 @@ bool ClientlessActionExecutorMgr::StartTravelToLocation( TC_LOG_WARN("server.adventurebot.navigation", "C820_LOCATION_PLAN_FAILED location='%s' reason='%s'", locationId.c_str(), error.c_str()); + if (TryFallbackFlight(player, characterGuid, record)) + return true; record.Status.State = record.HardDestination ? ClientlessActionExecutionState::Failed : ClientlessActionExecutionState::Completed; @@ -889,6 +908,8 @@ bool ClientlessActionExecutorMgr::StartRouteStep( if (!record.RouteComplete) { + if (TryFallbackFlight(player, characterGuid, record)) + return true; TC_LOG_WARN("server.adventurebot.navigation", "TRAVEL_PARTIAL guid=%u name='%s' action='%s' requested='%s' reached='%s' " "map=%u pos=(%.3f %.3f %.3f)", @@ -1339,53 +1360,8 @@ bool ClientlessActionExecutorMgr::StartRouteStep( return false; } - record.EdgePath.clear(); - if (step.EdgeType == "ground" && step.EdgeDatabaseId) - { - if (std::vector const* points = - sClientlessTravelGraphMgr->GetEdgePoints(step.EdgeDatabaseId)) - { - record.EdgePath = *points; - if (step.EdgeReverse) - std::reverse(record.EdgePath.begin(), record.EdgePath.end()); - // VCORE_C820_VIRTUAL_EXIT_NODES: select an inclusive end-point - // on the original execution-direction spline before trimming start. - if (step.GroundEndIndex >= 0) - { - std::size_t const end = std::size_t(step.GroundEndIndex); - if (end >= record.EdgePath.size() || - (step.GroundStartIndex >= 0 && - std::size_t(step.GroundStartIndex) >= end)) - { - record.Status.State = ClientlessActionExecutionState::Failed; - record.Status.Detail = "virtual ground exit indices invalid"; - record.Active = false; - return false; - } - record.EdgePath.resize(end + 1); - TC_LOG_INFO("server.adventurebot.navigation", - "C820_EXIT_EXEC edgeDbId=%u endIndex=%u points=%u", - step.EdgeDatabaseId, uint32(end), uint32(record.EdgePath.size())); - } - // VCORE_VIRTUAL_GROUND_EDGE_ENTRY_V1: keep original recorded points, - // only discard the portion before the validated virtual entry. - if (step.GroundStartIndex >= 0) - { - std::size_t const offset = std::size_t(step.GroundStartIndex); - if (offset >= record.EdgePath.size()) - { - record.Status.State = ClientlessActionExecutionState::Failed; - record.Status.Detail = "virtual ground entry index outside recorded edge"; - record.Active = false; - return false; - } - record.EdgePath.erase(record.EdgePath.begin(), record.EdgePath.begin() + offset); - TC_LOG_INFO("server.adventurebot.navigation", - "VIRTUAL_EDGE_EXEC edgeDbId=%u pointIndex=%u remainingPoints=%u", - step.EdgeDatabaseId, uint32(offset), uint32(record.EdgePath.size())); - } - } - } + if (!PrepareRecordedGroundEdge(record)) + return false; record.Status.State = ClientlessActionExecutionState::Moving; record.Status.TargetName = "node:" + step.NodeKey; @@ -1645,6 +1621,72 @@ void ClientlessActionExecutorMgr::UpdatePortalUse(Player* player, record.Status.Detail = "interactive portal teleport not confirmed within 10 seconds"; } +bool ClientlessActionExecutorMgr::PrepareRecordedGroundEdge(Record& record) +{ + auto const& step = record.Route[record.RouteStep]; + record.EdgeNextPoint = 0; + record.EdgeSplinePoints.clear(); + record.GroundExitCheckMs = 0; + record.ReplanAtGroundEnd = false; + record.GroundFlightExit = false; + if (step.GroundEndIndex >= 0) + { + auto const* endpoint = sClientlessTravelGraphMgr->FindNode(step.GroundContinuationNode); + if (!endpoint) + { + record.Status.State = ClientlessActionExecutionState::Failed; + record.Status.Detail = "virtual exit has no forward endpoint"; + record.Active = false; + return false; + } + record.GroundFlightExit = record.RouteStep + 1 < record.Route.size() && + record.Route[record.RouteStep + 1].EdgeType == "free_flight"; + // The speculative exit is never a mandatory stopping point. Keep the + // real edge endpoint and only replan there if no exit becomes usable. + auto& forward = record.Route[record.RouteStep]; + forward.NodeKey = endpoint->Key; + forward.NodeType = endpoint->Type; + forward.WorldPointKey = endpoint->WorldPointKey; + forward.MapId = endpoint->MapId; + forward.X = endpoint->X; forward.Y = endpoint->Y; + forward.Z = endpoint->Z; forward.O = endpoint->O; + forward.GroundEndIndex = -1; + record.ReplanAtGroundEnd = true; + record.FinalLocalLegPending = false; + } + + record.EdgePath.clear(); + if (step.EdgeType == "ground" && step.EdgeDatabaseId) + { + if (std::vector const* points = + sClientlessTravelGraphMgr->GetEdgePoints(step.EdgeDatabaseId)) + { + record.EdgePath = *points; + if (step.EdgeReverse) + std::reverse(record.EdgePath.begin(), record.EdgePath.end()); + // VCORE_VIRTUAL_GROUND_EDGE_ENTRY_V1: keep original recorded points, + // only discard the portion before the validated virtual entry. + if (step.GroundStartIndex >= 0) + { + std::size_t const offset = std::size_t(step.GroundStartIndex); + if (offset >= record.EdgePath.size()) + { + record.Status.State = ClientlessActionExecutionState::Failed; + record.Status.Detail = "virtual ground entry index outside recorded edge"; + record.Active = false; + return false; + } + record.EdgePath.erase(record.EdgePath.begin(), record.EdgePath.begin() + offset); + TC_LOG_INFO("server.adventurebot.navigation", + "VIRTUAL_EDGE_EXEC edgeDbId=%u pointIndex=%u remainingPoints=%u", + step.EdgeDatabaseId, uint32(offset), uint32(record.EdgePath.size())); + } + } + } + + return true; +} + bool ClientlessActionExecutorMgr::StartRecordedEdgePath( Player* player, uint32 characterGuid, @@ -1674,23 +1716,35 @@ bool ClientlessActionExecutorMgr::StartRecordedEdgePath( player->GetPositionZ(), player->GetOrientation()); path.push_back(current); + record.EdgeSplinePoints.clear(); + record.EdgeSplinePoints.push_back(record.EdgeNextPoint); float lastX = current.GetPositionX(); float lastY = current.GetPositionY(); float lastZ = current.GetPositionZ(); - for (ClientlessTravelEdgePoint const& point : record.EdgePath) + for (std::size_t i = record.EdgeNextPoint; i < record.EdgePath.size(); ++i) { + auto const& point = record.EdgePath[i]; float dx = point.X - lastX; float dy = point.Y - lastY; float dz = point.Z - lastZ; if ((dx * dx + dy * dy + dz * dz) < 0.25f) + { + // Coalesced points have already been passed when their preceding + // spline point is reached. In particular, never rejoin behind the + // departure after skipping the point at the current position. + record.EdgeSplinePoints.back() = i + 1; + if (path.size() == 1) + record.EdgeNextPoint = i + 1; continue; + } Position p; p.Relocate(point.X, point.Y, point.Z, point.O); path.push_back(p); + record.EdgeSplinePoints.push_back(i + 1); lastX = point.X; lastY = point.Y; @@ -1740,6 +1794,220 @@ bool ClientlessActionExecutorMgr::StartRecordedEdgePath( return true; } +bool ClientlessActionExecutorMgr::GetTravelGoal(Record const& record, ClientlessTravelNode& goal) const +{ + if (record.Status.ActionName == "travel_to_location") + { + goal.MapId = record.FinalMapId; + goal.X = record.FinalX; goal.Y = record.FinalY; + goal.Z = record.FinalZ; goal.O = record.FinalO; + goal.Key = "location:" + record.FinalLocationId; + return true; + } + if (auto const* node = sClientlessTravelGraphMgr->FindNode(record.PlannedDestinationNode)) + { + goal = *node; + return true; + } + return false; +} + +bool ClientlessActionExecutorMgr::TryFallbackFlight(Player* player, uint32 characterGuid, Record& record) +{ + if (record.FallbackFlightAttempted || player->IsFlying()) + return false; + ClientlessTravelNode goal; + if (!GetTravelGoal(record, goal) || goal.MapId != player->GetMapId()) + return false; + Position from, target; + from.Relocate(player); + target.Relocate(goal.X, goal.Y, goal.Z, goal.O); + sClientlessFlightMgr->BeginPlanning(); + if (!std::isfinite(sClientlessFlightMgr->Estimate(player, goal.MapId, from, target, true))) + return false; + std::string error; + if (!sClientlessFlightMgr->Start(player, target, error)) + { + TC_LOG_INFO("server.adventurebot.navigation", "FLIGHT_FALLBACK_UNAVAILABLE guid=%u reason='%s'", + characterGuid, error.c_str()); + return false; + } + record.FallbackFlightAttempted = true; + record.EdgePath.clear(); + record.GroundExitActive = false; + record.GroundResumeActive = false; + record.RecoveryWanderActive = false; + record.FinalLocalLegActive = false; + record.FinalLocalLegPending = record.Status.ActionName == "travel_to_location"; + record.Route.clear(); + ClientlessTravelRouteStep source, destination; + source.NodeKey = "flight_fallback_departure"; + source.MapId = player->GetMapId(); + source.X = from.GetPositionX(); source.Y = from.GetPositionY(); source.Z = from.GetPositionZ(); + destination.NodeKey = goal.Key; + destination.MapId = goal.MapId; + destination.X = goal.X; destination.Y = goal.Y; destination.Z = goal.Z; destination.O = goal.O; + destination.EdgeType = "free_flight"; + record.Route.push_back(source); + record.Route.push_back(destination); + record.RouteStep = 1; + record.RouteComplete = true; + record.FlightActive = true; + record.Active = true; + record.Status.State = ClientlessActionExecutionState::Moving; + record.Status.Detail = "free flight fallback after ground travel exhausted"; + TC_LOG_INFO("server.adventurebot.navigation", "FLIGHT_FALLBACK_STARTED guid=%u target='%s'", + characterGuid, goal.Key.c_str()); + return true; +} + +void ClientlessActionExecutorMgr::CheckGroundExit(Player* player, uint32 characterGuid, Record& record) +{ + if (record.GroundExitCheckMs || record.EdgeNextPoint >= record.EdgePath.size()) + return; + constexpr uint32 ExitIntervalMs = 6000; + record.GroundExitCheckMs = ExitIntervalMs; + ClientlessTravelNode goal; + if (!GetTravelGoal(record, goal) || goal.MapId != player->GetMapId()) + return; + Position target; + target.Relocate(goal.X, goal.Y, goal.Z, goal.O); + ClientlessPathDiagnostics nav; + bool const nearby = player->GetExactDist(goal.X, goal.Y, goal.Z) <= record.PlannedAnchorRadius; + // AnalyzePath does not cancel or replace the running road spline. A rejected + // probe is not a failed edge, a blacklist entry, or a recovery attempt. + bool const usable = nearby && sClientlessTravelMgr->AnalyzePath(player, target, nav) && + nav.Complete && nav.FinalDistance <= 1.5f && nav.PathLength <= 500.0f; + TC_LOG_INFO("server.adventurebot.navigation", + "GROUND_EXIT_CHECK guid=%u edgeDbId=%u nextPoint=%u usable=%u", + characterGuid, record.Route[record.RouteStep].EdgeDatabaseId, + uint32(record.EdgeNextPoint), usable ? 1u : 0u); + if (usable) + { + if (StartGroundConnection(player, characterGuid, target)) + { + record.GroundExitActive = true; + record.Status.Detail = "validated virtual exit to destination"; + return; + } + // The execution query may reject a path that passed the probe. It has + // stopped the spline, so resume the same forward road immediately. + sClientlessTravelMgr->CancelTravel(characterGuid); + StartRecordedEdgePath(player, characterGuid, record); + return; + } + // Preserve ordinary flight exits selected by the cost planner. They are + // optional too, and never require stopping at an unverified virtual point. + if (record.GroundFlightExit) + { + Position from; + from.Relocate(player); + sClientlessFlightMgr->BeginPlanning(); + if (std::isfinite(sClientlessFlightMgr->Estimate(player, goal.MapId, from, target))) + { + std::string error; + if (sClientlessFlightMgr->Start(player, target, error)) + { + record.GroundExitActive = true; + record.FlightActive = true; + record.Status.Detail = "virtual exit via native free flight"; + } + else if (!player->IsSplineEnabled()) + StartRecordedEdgePath(player, characterGuid, record); + } + } +} + +bool ClientlessActionExecutorMgr::ResumeRecordedEdge(Player* player, uint32 characterGuid, Record& record) +{ + record.GroundExitActive = false; + record.FlightActive = false; + sClientlessTravelMgr->CancelTravel(characterGuid); + if (player->IsFlying() || record.EdgePath.empty()) + { + record.Status.State = ClientlessActionExecutionState::Failed; + record.Status.Detail = "cannot safely resume recorded road while airborne or without road"; + record.Active = false; + return false; + } + // Rejoin only at the next unpassed point, never at a nearest point behind us. + std::size_t const next = std::min(record.EdgeNextPoint, record.EdgePath.size() - 1); + auto const& point = record.EdgePath[next]; + Position target; + target.Relocate(point.X, point.Y, point.Z, point.O); + if (StartGroundConnection(player, characterGuid, target)) + { + record.GroundResumeActive = true; + record.Status.Detail = "rejoining forward road after virtual exit failed"; + return true; + } + // This is an actual failed rejoin, unlike an unavailable optional exit. + return RecoverTravel(player, characterGuid, record, + record.Route[record.RouteStep].EdgeDatabaseId, "recorded-ground-rejoin-failed"); +} + +void ClientlessActionExecutorMgr::UpdateGroundExit(Player* player, uint32 characterGuid, Record& record) +{ + if (record.FlightActive) + { + auto const* flight = sClientlessFlightMgr->GetStatus(characterGuid); + if (flight && (flight->State == ClientlessFlightState::Mounting || flight->State == ClientlessFlightState::Flying)) + return; + record.FlightActive = false; + if (!flight || flight->State != ClientlessFlightState::Arrived) + { + ResumeRecordedEdge(player, characterGuid, record); + return; + } + ClientlessTravelNode goal; + if (!GetTravelGoal(record, goal)) + { + ResumeRecordedEdge(player, characterGuid, record); + return; + } + Position target; + target.Relocate(goal.X, goal.Y, goal.Z, goal.O); + if (!StartGroundConnection(player, characterGuid, target)) + { + ResumeRecordedEdge(player, characterGuid, record); + return; + } + } + auto const* travel = sClientlessTravelMgr->GetStatus(characterGuid); + if (travel && travel->State == ClientlessTravelState::Moving) + return; + if (record.GroundResumeActive) + { + record.GroundResumeActive = false; + if (travel && travel->State == ClientlessTravelState::Arrived) + { + record.GroundExitCheckMs = 6000; + auto const& end = record.EdgePath.back(); + if (player->GetExactDist(end.X, end.Y, end.Z) > 2.0f) + StartRecordedEdgePath(player, characterGuid, record); + } + else + RecoverTravel(player, characterGuid, record, + record.Route[record.RouteStep].EdgeDatabaseId, "recorded-ground-rejoin-failed"); + return; + } + if (!travel || travel->State != ClientlessTravelState::Arrived) + { + ResumeRecordedEdge(player, characterGuid, record); + return; + } + record.GroundExitActive = false; + record.EdgePath.clear(); + record.FinalLocalLegPending = false; + record.Status.State = ClientlessActionExecutionState::Completed; + record.Status.TargetName = record.Status.ActionName == "travel_to_location" + ? "location:" + record.FinalLocationId : "node:" + record.PlannedDestinationNode; + record.Status.Detail = "destination reached via validated virtual exit"; + record.Active = false; + TC_LOG_INFO("server.adventurebot.navigation", "GROUND_EXIT_ARRIVED guid=%u target='%s'", + characterGuid, record.Status.TargetName.c_str()); +} + bool ClientlessActionExecutorMgr::StartRecoveryWander( Player* player, uint32 characterGuid, @@ -1826,9 +2094,12 @@ bool ClientlessActionExecutorMgr::RecoverTravel( } bool const bridgeFailure = reason.rfind("local-bridge-", 0) == 0; + bool const forwardProgress = reason == "ground-continuation-replan"; - if (!bridgeFailure && record.RecoveryCount >= MaxRecoveries) + if (!bridgeFailure && !forwardProgress && record.RecoveryCount >= MaxRecoveries) { + if (TryFallbackFlight(player, characterGuid, record)) + return true; record.Status.State = ClientlessActionExecutionState::Failed; record.Status.Detail = "travel recovery exhausted: " + reason; record.Active = false; @@ -1844,10 +2115,12 @@ bool ClientlessActionExecutorMgr::RecoverTravel( return false; } - if (!bridgeFailure && reason != "deferred-start-endpoint-replan") + if (!bridgeFailure && !forwardProgress && reason != "deferred-start-endpoint-replan") ++record.RecoveryCount; sClientlessTravelMgr->CancelTravel(characterGuid); record.DeferredStartActive = false; // VCORE_C819_DEFERRED_START_NODES_V2 + record.GroundExitActive = false; + record.GroundResumeActive = false; record.EdgePath.clear(); record.TaxiActive = false; record.TaxiPathId = 0; @@ -1954,6 +2227,9 @@ bool ClientlessActionExecutorMgr::RecoverTravel( return StartRouteStep(player, characterGuid, record); } + if (TryFallbackFlight(player, characterGuid, record)) + return true; + if (StartRecoveryWander(player, characterGuid, record, lastError)) return true; @@ -1976,6 +2252,12 @@ void ClientlessActionExecutorMgr::UpdateTravelToNode( uint32 characterGuid, Record& record) { + if (record.GroundExitActive || record.GroundResumeActive) + { + UpdateGroundExit(player, characterGuid, record); + return; + } + if (record.FlightApproachActive) { auto const* approach = sClientlessTravelMgr->GetStatus(characterGuid); @@ -2208,6 +2490,17 @@ void ClientlessActionExecutorMgr::UpdateTravelToNode( return; } + if (player->IsSplineEnabled() && !record.EdgeSplinePoints.empty()) + { + int32 const index = player->movespline->currentPathIdx(); + if (index >= 0 && std::size_t(index) < record.EdgeSplinePoints.size()) + record.EdgeNextPoint = std::max(record.EdgeNextPoint, + record.EdgeSplinePoints[std::size_t(index)]); + CheckGroundExit(player, characterGuid, record); + if (record.GroundExitActive) + return; + } + // A clientless Player can be reported as "stopped" while a server- // controlled MoveSpline is still running. Unit::UpdateSplineMovement() // owns the authoritative server position for this movement and updates @@ -2240,7 +2533,20 @@ void ClientlessActionExecutorMgr::UpdateTravelToNode( } record.EdgePath.clear(); + // Only after traversing the road to its real endpoint may planning + // retire its optimistic ground-exit estimate. Keep the road usable; + // any later traversal still performs live probes. This prevents the + // planner from cycling between road endpoints on the same stale exit. + auto const& completed = record.Route[record.RouteStep]; + record.FailedBridgeKeys.insert("ground_exit_edge:" + + std::to_string(completed.EdgeDatabaseId) + (completed.EdgeReverse ? "R" : "F")); ++record.RouteStep; + if (record.ReplanAtGroundEnd && !record.StopAtNode) + { + record.ReplanAtGroundEnd = false; + RecoverTravel(player, characterGuid, record, 0, "ground-continuation-replan"); + return; + } StartRouteStep(player, characterGuid, record); return; } @@ -2510,6 +2816,7 @@ void ClientlessActionExecutorMgr::Update(uint32 diff) if (record.Active) { + record.GroundExitCheckMs = diff >= record.GroundExitCheckMs ? 0 : record.GroundExitCheckMs - diff; UpdateActive(player, characterGuid, record); continue; } diff --git a/src/server/game/World/ClientlessActionExecutorMgr.h b/src/server/game/World/ClientlessActionExecutorMgr.h index 751a0117f3..086814365d 100644 --- a/src/server/game/World/ClientlessActionExecutorMgr.h +++ b/src/server/game/World/ClientlessActionExecutorMgr.h @@ -59,6 +59,14 @@ private: uint32 DeferredStartAttempts = 0; std::vector EdgePath; + std::vector EdgeSplinePoints; + std::size_t EdgeNextPoint = 0; + uint32 GroundExitCheckMs = 0; + bool ReplanAtGroundEnd = false; + bool GroundExitActive = false; + bool GroundResumeActive = false; + bool GroundFlightExit = false; + bool FallbackFlightAttempted = false; // C8.10b: active server-side taxi edge. bool TransportActive = false; @@ -113,7 +121,13 @@ private: bool RecoverFlightLeg(Player* player, uint32 characterGuid, Record& record, std::string const& reason); bool StartPortalUse(Player* player, uint32 characterGuid, Record& record); void UpdatePortalUse(Player* player, uint32 characterGuid, Record& record); + bool PrepareRecordedGroundEdge(Record& record); bool StartRecordedEdgePath(Player* player, uint32 characterGuid, Record& record); + bool GetTravelGoal(Record const& record, ClientlessTravelNode& goal) const; + bool TryFallbackFlight(Player* player, uint32 characterGuid, Record& record); + void CheckGroundExit(Player* player, uint32 characterGuid, Record& record); + void UpdateGroundExit(Player* player, uint32 characterGuid, Record& record); + bool ResumeRecordedEdge(Player* player, uint32 characterGuid, Record& record); bool RecoverTravel(Player* player, uint32 characterGuid, Record& record, uint32 failedEdgeDatabaseId, std::string const& reason); bool StartRecoveryWander(Player* player, uint32 characterGuid, Record& record, std::string const& reason); void UpdateTravelToNode(Player* player, uint32 characterGuid, Record& record); diff --git a/src/server/game/World/ClientlessCompanionMgr.cpp b/src/server/game/World/ClientlessCompanionMgr.cpp new file mode 100644 index 0000000000..020eb9f57c --- /dev/null +++ b/src/server/game/World/ClientlessCompanionMgr.cpp @@ -0,0 +1,160 @@ +#include "ClientlessCompanionMgr.h" +#include "Creature.h" +#include "DBCStores.h" +#include "Item.h" +#include "ItemTemplate.h" +#include "Log.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "ObjectMgr.h" +#include "Player.h" +#include "Spell.h" +#include "SpellCastRequest.h" +#include "SpellInfo.h" +#include "SpellHistory.h" +#include "SpellMgr.h" +#include "TemporarySummon.h" +namespace +{ + bool CompanionSpell(uint32 id) + { + auto spell=sSpellMgr->GetSpellInfo(id); + if (!spell) return false; + for (auto const& effect:spell->Effects) + if (effect.Effect==SPELL_EFFECT_SUMMON) + if (auto properties=sSummonPropertiesStore.LookupEntry(effect.MiscValueB)) + if (SummonTitle(properties->Title)==SummonTitle::Companion) return true; + return false; + } +} +bool ClientlessCompanionMgr::Prepare(Player* p,uint32 spell,uint32 leash) +{ + if (!p || !CompanionSpell(spell)) return false; + if (!p->HasSpell(spell)) p->LearnSpell(spell,false); + if (leash && !p->GetItemByEntry(leash) && sObjectMgr->GetItemTemplate(leash)) + if (!p->AddItem(leash,1)) + TC_LOG_WARN("server.adventurebot","COMPANION_EQUIPMENT guid=%u item=%u inventory-full",p->GetGUID().GetCounter(),leash); + return p->HasSpell(spell); +} +bool ClientlessCompanionMgr::Available(Player* p,uint32 spell) +{ + return p && p->IsInWorld() && p->IsAlive() && !p->IsInCombat() && !p->GetTransport() && + !p->IsInFlight() && !p->IsFlying() && !p->IsBeingTeleported() && + p->HasSpell(spell) && CompanionSpell(spell); +} +Creature* ClientlessCompanionMgr::Resolve(Player* p,ClientlessCompanionScene const& s) +{ + auto pet=ObjectAccessor::GetCreature(*p,p->GetCritterGUID()); + if (!pet || !pet->IsAlive() || pet->GetOwnerGUID()!=p->GetGUID() || + pet->GetUInt32Value(UNIT_CREATED_BY_SPELL)!=s.SummonSpell || + (!s.Companion.IsEmpty() && pet->GetGUID()!=s.Companion)) return nullptr; + return pet; +} +bool ClientlessCompanionMgr::Start(Player* p,ClientlessCompanionScene& s,uint32 spell,uint32 leash) +{ + if (!Available(p,spell)) return false; + s={};s.SummonSpell=spell;s.LeashItem=leash; + // Never replace an unrelated companion or touch a hunter/warlock combat pet. + if (!p->GetCritterGUID().IsEmpty()) + { + auto pet=Resolve(p,s); + if (!pet) return false; + s.Companion=pet->GetGUID(); + } + else + { + if (p->CastSpell(p,spell,false)!=SPELL_CAST_OK) return false; + s.Summoned=true; + } + s.Active=true; + TC_LOG_INFO("server.adventurebot","COMPANION_START guid=%u spell=%u summoned=%u",p->GetGUID().GetCounter(),spell,s.Summoned?1:0); + return true; +} +bool ClientlessCompanionMgr::Update(Player* p,ClientlessCompanionScene& s,uint32 diff) +{ + if (!s.Active || !Available(p,s.SummonSpell)) return false; + s.WaitMs+=diff; + auto pet=Resolve(p,s); + if (!pet) return s.Companion.IsEmpty() && s.WaitMs<10000; + if (s.Companion.IsEmpty()) + { + s.Companion=pet->GetGUID();s.WaitMs=0; + // Use the normal native follower, with room inside a five-yard leash. + // A pre-existing companion retains its own movement configuration. + if (s.Summoned) + pet->GetMotionMaster()->MoveFollow(p,1.5f,DEFAULT_FOLLOW_ANGLE,false,true,true); + TC_LOG_INFO("server.adventurebot","COMPANION_CONFIRMED guid=%u pet='%s' entry=%u",p->GetGUID().GetCounter(),s.Companion.ToString().c_str(),pet->GetEntry()); + } + if (s.Ready) + { + if (!s.OwnLeash || !s.LeashSpell || pet->HasAura(s.LeashSpell,p->GetGUID())) return true; + if (s.Leashed) + { + s.Leashed=false; + TC_LOG_INFO("server.adventurebot","COMPANION_LEASH_LOST guid=%u distance=%.2f",p->GetGUID().GetCounter(),p->GetExactDist(pet)); + } + // Retry at a genuinely usable close point, rather than repeatedly + // casting at a pet still behind an obstacle. Keep native range/LOS. + if (s.LeashRetries>=2 || p->GetExactDist(pet)>3.5f || !p->IsWithinLOSInMap(pet)) return true; + ++s.LeashRetries; + p->InterruptNonMeleeSpells(false,s.LeashSpell); + s.Ready=false;s.LeashRequested=false;s.WaitMs=0; + return true; + } + if (!s.LeashRequested) + { + s.LeashRequested=true; + if (auto item=p->GetItemByEntry(s.LeashItem)) + for (auto const& effect:item->GetTemplate()->Effects) + { + if (effect.Trigger!=ITEM_SPELLTRIGGER_ON_USE || effect.SpellID<=0) continue; + auto spell=sSpellMgr->GetSpellInfo(effect.SpellID); + // Leashes are native channels that explicitly allow movement. + if (!spell || (spell->IsChanneled() && !spell->IsMoveAllowedChannel()) || !p->CanRequestSpellCast(spell)) continue; + // Only submit immediately executable requests, so cleanup cannot + // leave an owned item cast queued behind an unrelated spell. + if (p->GetSpellHistory()->HasGlobalCooldown(spell) || p->IsNonMeleeSpellCast(false)) + {s.LeashRequested=false;if (s.WaitMs>=8000) s.Ready=true;return true;} + s.LeashSpell=spell->Id; + if (pet->HasAura(s.LeashSpell,p->GetGUID())) {s.Ready=true;s.Leashed=true;return true;} + WorldPackets::Spells::SpellCastRequest request; + request.SpellID=spell->Id; + request.Target.Flags=TARGET_FLAG_UNIT_MINIPET; + request.Target.Unit=pet->GetGUID(); + s.WaitMs=0; + p->RequestSpellCast(std::make_unique(std::move(request), + SpellCastRequestItemData(item->GetBagSlot(),item->GetSlot(),item->GetGUID())),spell); + s.OwnLeash=true; + TC_LOG_INFO("server.adventurebot","COMPANION_LEASH_REQUEST guid=%u item=%u spell=%u",p->GetGUID().GetCounter(),s.LeashItem,s.LeashSpell); + return true; + } + s.Ready=true; + } + else if (s.LeashSpell && pet->HasAura(s.LeashSpell,p->GetGUID())) + { + s.Ready=true;s.Leashed=true; + TC_LOG_INFO("server.adventurebot","COMPANION_LEASH_CONFIRMED guid=%u spell=%u",p->GetGUID().GetCounter(),s.LeashSpell); + } + else if (s.WaitMs>=8000) + { + s.Ready=true; + TC_LOG_INFO("server.adventurebot","COMPANION_LEASH_UNAVAILABLE guid=%u continuing-with-companion",p->GetGUID().GetCounter()); + } + return true; +} +void ClientlessCompanionMgr::Reset(Player* p,ClientlessCompanionScene& s) +{ + if (s.Active) + { + // Interrupt only this scene's native casts; never clear unrelated casts. + if (s.Summoned) p->InterruptNonMeleeSpells(false,s.SummonSpell); + if (s.LeashSpell && s.OwnLeash) p->InterruptNonMeleeSpells(false,s.LeashSpell); + if (auto pet=Resolve(p,s)) + { + if (s.OwnLeash && s.LeashSpell) pet->RemoveAurasDueToSpell(s.LeashSpell,p->GetGUID()); + if (s.Summoned && pet->IsSummon()) pet->ToTempSummon()->UnSummon(); + } + TC_LOG_INFO("server.adventurebot","COMPANION_END guid=%u",p->GetGUID().GetCounter()); + } + s={}; +} diff --git a/src/server/game/World/ClientlessCompanionMgr.h b/src/server/game/World/ClientlessCompanionMgr.h new file mode 100644 index 0000000000..7a54a5eb41 --- /dev/null +++ b/src/server/game/World/ClientlessCompanionMgr.h @@ -0,0 +1,25 @@ +#ifndef VCORE_CLIENTLESS_COMPANION_MGR_H +#define VCORE_CLIENTLESS_COMPANION_MGR_H +#include "Common.h" +#include "ObjectGuid.h" +#include +class Player; +class Creature; +// Generic native vanity-companion and item-use adapter. No AdventureBot dependency. +struct ClientlessCompanionScene +{ + bool Active=false, Summoned=false, Ready=false, LeashRequested=false, OwnLeash=false, Leashed=false; + uint32 SummonSpell=0, LeashItem=0, LeashSpell=0, WaitMs=0, LeashRetries=0; + ObjectGuid Companion; +}; +class TC_GAME_API ClientlessCompanionMgr +{ +public: + static bool Prepare(Player* player, uint32 summonSpell, uint32 leashItem); + static bool Available(Player* player, uint32 summonSpell); + static bool Start(Player* player, ClientlessCompanionScene& scene, uint32 summonSpell, uint32 leashItem); + static bool Update(Player* player, ClientlessCompanionScene& scene, uint32 diff); + static void Reset(Player* player, ClientlessCompanionScene& scene); + static Creature* Resolve(Player* player, ClientlessCompanionScene const& scene); +}; +#endif diff --git a/src/server/game/World/ClientlessFlightMgr.cpp b/src/server/game/World/ClientlessFlightMgr.cpp index 83c9d216fa..31b3f17327 100644 --- a/src/server/game/World/ClientlessFlightMgr.cpp +++ b/src/server/game/World/ClientlessFlightMgr.cpp @@ -108,7 +108,7 @@ bool ClientlessFlightMgr::Preferred(Player const * player, uint32 map, Position return false; } -float ClientlessFlightMgr::Estimate(Player const * player, uint32 map, Position const & from, Position const & to) const +float ClientlessFlightMgr::Estimate(Player const * player, uint32 map, Position const & from, Position const & to, bool recovery) const { auto const * entry = sMapStore.LookupEntry(map); if (! Enabled(player) || ! entry || entry->MapType != MAP_COMMON) return Infinity(); @@ -124,9 +124,11 @@ float ClientlessFlightMgr::Estimate(Player const * player, uint32 map, Position // and spell checks at the actual departure are mandatory. bool const preferred = Preferred(player, map, from) || Preferred(player, map, to); float const distance = Distance(PointOf(from), PointOf(to)); - float minimum = preferred ? 60.0f : std::max(100.0f, sConfigMgr->GetFloatDefault("Clientless.Flight.MinDistance", 600)); - if (! std::isfinite(distance) || distance < minimum || distance > 20000) return Infinity(); - return preferred ? 40 + distance * 0.4f : 180 + distance * 1.5f; + // Recovery keeps native eligibility, but has no RP + // distance threshold or zone preference. Start still validates the flight. + float minimum = recovery ? 0.0f : preferred ? 60.0f : std::max(100.0f, sConfigMgr->GetFloatDefault("Clientless.Flight.MinDistance", 600)); + if (! std::isfinite(distance) || distance < minimum || (!recovery && distance > 20000)) return Infinity(); + return recovery ? distance : preferred ? 40 + distance * 0.4f : 180 + distance * 1.5f; } ClientlessFlightStatus const * ClientlessFlightMgr::GetStatus(uint32 guid) const diff --git a/src/server/game/World/ClientlessFlightMgr.h b/src/server/game/World/ClientlessFlightMgr.h index cd11599108..d76b515579 100644 --- a/src/server/game/World/ClientlessFlightMgr.h +++ b/src/server/game/World/ClientlessFlightMgr.h @@ -25,7 +25,7 @@ class TC_GAME_API ClientlessFlightMgr { public : static ClientlessFlightMgr * instance(); // Estimates are transient alternatives in macro planning, not DB edges. - float Estimate(Player const * player, uint32 mapId, Position const & from, Position const & to) const; + float Estimate(Player const * player, uint32 mapId, Position const & from, Position const & to, bool recovery = false) const; bool Preferred(Player const * player, uint32 mapId, Position const & position) const; bool Enabled(Player const * player) const; void BeginPlanning(); diff --git a/src/server/game/World/ClientlessLuaEngine.cpp b/src/server/game/World/ClientlessLuaEngine.cpp index 3f6983287d..47ead95e23 100644 --- a/src/server/game/World/ClientlessLuaEngine.cpp +++ b/src/server/game/World/ClientlessLuaEngine.cpp @@ -1,3 +1,4 @@ +#include "AdventureProfessionPolicy.h" #include "ClientlessLuaEngine.h" #include "ClientlessPlayerMgr.h" #include "ClientlessActionExecutorMgr.h" @@ -383,6 +384,8 @@ bool ClientlessLuaEngine::LoadAdventureProfile(Player* player) profile.GroundMounts = ReadMountDictionary(_state, -1); profile.CanFreeFly = ReadBoolField(_state, -1, "can_free_fly", false); profile.FlightMounts = ReadMountDictionary(_state, -1, "flight_mounts"); + profile.CompanionSpell = uint32(std::max(0.0f, ReadFloatField(_state, -1, "companion_spell", 0))); + profile.CompanionLeashItem = uint32(std::max(0.0f, ReadFloatField(_state, -1, "companion_leash_item", 0))); } lua_pop(_state, 1); @@ -402,6 +405,25 @@ bool ClientlessLuaEngine::LoadAdventureProfile(Player* player) } lua_pop(_state, 1); + lua_getfield(_state,rootTable,"professions"); + if(lua_istable(_state,-1)) + { + lua_getfield(_state,-1,"primary"); + if(lua_istable(_state,-1)) + for(size_t index=1;index<=lua_rawlen(_state,-1);++index) + { + lua_rawgeti(_state,-1,index); + if(lua_type(_state,-1)==LUA_TSTRING) + { + std::string name=lua_tostring(_state,-1); + if(AdventureProfessionPolicy::PrimaryName(name))profile.PrimaryProfessions.insert(name); + else TC_LOG_WARN("server.adventurebot","PROFILE_UNKNOWN_PROFESSION guid=%u name='%s'",player->GetGUID().GetCounter(),name.c_str()); + } + lua_pop(_state,1); + } + lua_pop(_state,1); + } + lua_pop(_state,1); uint32 const guid = player->GetGUID().GetCounter(); _profiles[guid] = std::move(profile); ClientlessAdventureProfile const& stored = _profiles.at(guid); @@ -416,6 +438,8 @@ bool ClientlessLuaEngine::LoadAdventureProfile(Player* player) uint32(stored.Personality.size()), uint32(stored.RegionAffinity.size()), uint32(stored.ActivityAffinity.size())); + TC_LOG_INFO("server.adventurebot","PROFILE_PROFESSIONS guid=%u primary=%u",guid,uint32(stored.PrimaryProfessions.size())); + if (stored.CanGroundMount && stored.GroundMounts.empty()) TC_LOG_WARN("server.adventurebot", "[AdventureBot][Profile] guid=%u enables ground mounts but defines no ground_mounts", guid); diff --git a/src/server/game/World/ClientlessLuaEngine.h b/src/server/game/World/ClientlessLuaEngine.h index b72840276f..d8794896ef 100644 --- a/src/server/game/World/ClientlessLuaEngine.h +++ b/src/server/game/World/ClientlessLuaEngine.h @@ -6,6 +6,7 @@ #include #include #include +#include #include class ClientlessPlayerController; @@ -23,6 +24,7 @@ struct TC_GAME_API ClientlessWeightedMount struct TC_GAME_API ClientlessAdventureProfile { + std::unordered_set PrimaryProfessions; std::string CharacterName; std::string HomeRegion; std::string SourcePath; @@ -34,6 +36,7 @@ struct TC_GAME_API ClientlessAdventureProfile bool CanFreeFly = false; // Flight dictionaries use learned mount SPELL IDs, never display IDs. std::vector FlightMounts; + uint32 CompanionSpell = 0, CompanionLeashItem = 0; // Parsed now; consumed later by the weighted intent/day planner. std::unordered_map Personality; diff --git a/src/server/game/World/ClientlessTravelGraphMgr.cpp b/src/server/game/World/ClientlessTravelGraphMgr.cpp index ee2dd684ca..27919bebe4 100644 --- a/src/server/game/World/ClientlessTravelGraphMgr.cpp +++ b/src/server/game/World/ClientlessTravelGraphMgr.cpp @@ -497,6 +497,12 @@ bool ClientlessTravelGraphMgr::FindNearestNodeToPosition( return !nodeKey.empty(); } +ClientlessTravelNode const* ClientlessTravelGraphMgr::FindNode(std::string const& key) const +{ + auto const it = _nodes.find(key); + return it == _nodes.end() ? nullptr : &it->second; +} + bool ClientlessTravelGraphMgr::PlanAdaptiveRoute( Player const* player, std::string const& destinationNode, @@ -860,6 +866,7 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute( struct ExitCandidate { std::string FromNode; + std::string ToNode; uint32 EdgeId = 0; bool Reverse = false; uint32 EndIndex = 0; // in execution-direction original road points @@ -933,13 +940,16 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute( continue; ExitCandidate candidate; candidate.FromNode = edge.FromNode; + candidate.ToNode = edge.ToNode; candidate.EdgeId = edge.DatabaseId; candidate.Reverse = edge.Reverse; candidate.EndIndex = i; candidate.RoadCost = edge.Cost * (travelled / totalLength); candidate.DistanceSq = dsq; candidate.Point = point; - candidate.LocalCost = locationGoal && dsq <= locationAccessRadius*locationAccessRadius + bool const groundExitExhausted = blockedBridgeKeys && + blockedBridgeKeys->count("ground_exit_edge:" + identity); + candidate.LocalCost = locationGoal && !groundExitExhausted && dsq <= locationAccessRadius*locationAccessRadius ? std::sqrt(dsq) : std::numeric_limits::infinity(); ClientlessTravelNode exitNode; exitNode.MapId=point.MapId;exitNode.X=point.X;exitNode.Y=point.Y;exitNode.Z=point.Z; @@ -1603,6 +1613,7 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute( route.clear(); return false; } + route.back().GroundContinuationNode = route.back().NodeKey; route.back().GroundEndIndex = int32(exit.EndIndex); route.back().NodeKey = "virtual_ground_exit"; route.back().MapId = exit.Point.MapId; @@ -1635,6 +1646,7 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute( end.EdgeDatabaseId = exit.EdgeId; end.EdgeReverse = exit.Reverse; end.GroundEndIndex = int32(exit.EndIndex); + end.GroundContinuationNode = exit.ToNode; end.MapId = exit.Point.MapId; end.X = exit.Point.X; end.Y = exit.Point.Y; diff --git a/src/server/game/World/ClientlessTravelGraphMgr.h b/src/server/game/World/ClientlessTravelGraphMgr.h index becd608ece..7e3cbc70ec 100644 --- a/src/server/game/World/ClientlessTravelGraphMgr.h +++ b/src/server/game/World/ClientlessTravelGraphMgr.h @@ -94,6 +94,8 @@ struct TC_GAME_API ClientlessTravelRouteStep // C8.20: inclusive index in the ORIGINAL execution-direction road points. // -1 keeps the stored edge endpoint. Applied before GroundStartIndex. int32 GroundEndIndex = -1; + // A speculative virtual exit retains the real forward endpoint for execution. + std::string GroundContinuationNode; uint32 MapId = 0; float X = 0.0f; @@ -158,6 +160,7 @@ public: float& distance) const; uint32 GetNodeCount() const { return uint32(_nodes.size()); } + ClientlessTravelNode const* FindNode(std::string const& key) const; uint32 GetEdgeCount() const { return _edgeCount; } std::vector const* GetEdgePoints(uint32 edgeDatabaseId) const; diff --git a/src/server/game/World/ClientlessTravelMgr.cpp b/src/server/game/World/ClientlessTravelMgr.cpp index 692ef0eb67..78f24e9640 100644 --- a/src/server/game/World/ClientlessTravelMgr.cpp +++ b/src/server/game/World/ClientlessTravelMgr.cpp @@ -201,7 +201,10 @@ bool ClientlessTravelMgr::LaunchPath(Player* player, TravelRecord& record) return false; player->AttackStop(); - player->CastStop(); + // Preserve native move-allowed channels (for example companion leashes). + // Walking still interrupts casts that actually prevent movement. + if (player->IsMovementPreventedByCasting()) + player->CastStop(); player->StopMoving(); player->GetMotionMaster()->Clear(); record.ActiveSpline.clear(); @@ -359,12 +362,19 @@ bool ClientlessTravelMgr::LaunchPath(Player* player, TravelRecord& record) float const pz = points[i].z; float const segment = Distance3D(lastX, lastY, lastZ, px, py, pz); - if (segment <= 0.05f) + // Native MoveSpline validation requires at least 0.1 yards between + // internal points. Keep a small margin for coordinate roundoff. + constexpr float MinSplineSegment = 0.11f; + if (segment < MinSplineSegment) continue; if (accumulated + segment > MAX_LOCAL_SPLINE_LENGTH) { float const remaining = MAX_LOCAL_SPLINE_LENGTH - accumulated; + // Do not append an invalid tiny remainder at the 45-yard split. + // End at the last real point and continue with the next segment. + if (remaining < MinSplineSegment) + break; float const t = std::max(0.0f, std::min(1.0f, remaining / segment)); Position partial; diff --git a/src/server/scripts/Custom/clientless/adventure/profiles/arthoran.lua b/src/server/scripts/Custom/clientless/adventure/profiles/arthoran.lua index a4c6edb375..d77896dc09 100644 --- a/src/server/scripts/Custom/clientless/adventure/profiles/arthoran.lua +++ b/src/server/scripts/Custom/clientless/adventure/profiles/arthoran.lua @@ -17,10 +17,14 @@ return { micro_action_affinity = { drink = 1.5, rest = 1.2, speak = 1.0 }, + professions = { primary = { "mining", "blacksmithing" } }, + movement = { can_ground_mount = true, can_free_fly = true, flight_mounts = { [32235] = 100 }, -- Golden Gryphon, learned mount spell + companion_spell = 10673, -- Bombay Cat, native noncombat companion + companion_leash_item = 37460, -- Rope Pet Leash, native item-use spell ground_mount_min_distance = 45, ground_mount_speed_rate = 1.60, -- [mount display ID] = random weight @@ -52,5 +56,7 @@ return { travelling = 0.35, city_visit = 0.35, social = 0.60, + leisure = 0.60, + economy = 0.45, }, } diff --git a/src/server/scripts/Custom/clientless/adventure/profiles/generic.lua b/src/server/scripts/Custom/clientless/adventure/profiles/generic.lua index 8669b33795..00fbff6e74 100644 --- a/src/server/scripts/Custom/clientless/adventure/profiles/generic.lua +++ b/src/server/scripts/Custom/clientless/adventure/profiles/generic.lua @@ -6,6 +6,8 @@ return { home_region = "", }, + professions = { primary = {} }, -- No primary job is implicitly authorized. + movement = { can_ground_mount = true, ground_mount_min_distance = 60, diff --git a/tests/clientless/test_adventure_behavior_policy.py b/tests/clientless/test_adventure_behavior_policy.py index b8d9ae49ab..a9cc280814 100644 --- a/tests/clientless/test_adventure_behavior_policy.py +++ b/tests/clientless/test_adventure_behavior_policy.py @@ -22,6 +22,9 @@ int main(){ assert(locations==intents&&intents>=6&&intents<=24); unsigned run=0;std::string last; for(unsigned h=0;h<24;++h){assert(!day[h].Intent.empty()&&!day[h].Location.empty());if(day[h].Location==last)++run;else{run=1;last=day[h].Location;}assert(run<=4);} + // Intent choice survives a missing location; the location stage cannot veto it. + auto economic=Generate(random,0,[]{return "economy";},[](auto const&){return std::string();}); + for(auto const& slot:economic)assert(slot.Intent=="economy"&&slot.Location.empty()); intents=locations=0; auto roaming=Generate(random,1,[&](){++intents;return "adventure";},[&](auto const&){return "zone"+std::to_string(++locations);}); assert(locations==24);for(unsigned h=1;h<24;++h)assert(roaming[h].Location!=roaming[h-1].Location); diff --git a/tests/clientless/test_adventure_economy.py b/tests/clientless/test_adventure_economy.py new file mode 100644 index 0000000000..0fb14a5137 --- /dev/null +++ b/tests/clientless/test_adventure_economy.py @@ -0,0 +1,104 @@ +"""Execute economic role selection against production discovery and cue policy.""" +from pathlib import Path +import subprocess,tempfile +root=Path(__file__).resolve().parents[2] +source=(root/'src/server/game/World/AdventureSocialActions.cpp').read_text() +def function(sig): + a=source.index(sig);b=source.index('{',a);depth=1;e=b+1 + while depth:depth+=(source[e]=='{')-(source[e]=='}');e+=1 + return source[a:e] +code=r''' +#include "AdventureEconomyPolicy.h" +#include +#include "AdventureProfessionPolicy.h" +#include +#include +#include +#include +constexpr int UNIT_NPC_FLAGS=0,UNIT_NPC_FLAG_AUCTIONEER=2097152; +enum class HighGuid{Unit}; +struct Guid{int value=1;Guid(int v=1):value(v){}Guid(HighGuid,unsigned,unsigned low):value(low){}unsigned GetCounter(){return value;}bool IsEmpty(){return value==0;}}; +using ObjectGuid=Guid; +struct WorldObject{ + bool inWorld=true,phase=true;unsigned map=0;float x=0,z=0; + bool IsInWorld()const{return inWorld;}unsigned GetMapId()const{return map;}float GetPositionX()const{return x;}float GetPositionY()const{return 0;}float GetPositionZ()const{return z;}float GetCollisionHeight()const{return 2;} +}; +struct Unit:WorldObject{ + bool vendor=false,banker=false,auction=false,inn=false,alive=true,combat=false,flying=false,transit=false,critter=false,totem=false,friendly=true,spline=false;Guid owner{0},guid; + bool IsVendor(){return vendor;}bool IsBanker(){return banker;}bool HasFlag(int,int){return auction;}bool IsInnkeeper(){return inn;} + bool IsAlive(){return alive;}bool IsInCombat(){return combat;}bool IsInFlight(){return transit;}bool IsFlying(){return flying;}bool GetTransport(){return transit;} + bool IsCritter(){return critter;}bool IsTotem(){return totem;}Guid GetCharmerOrOwnerGUID(){return owner;}Guid GetGUID(){return guid;}bool IsSplineEnabled(){return spline;} +}; +struct Creature:Unit{}; +namespace VMAP{enum class ModelIgnoreFlags{Nothing};} +constexpr int LINEOFSIGHT_ALL_CHECKS=0; +struct NativeMap{bool clear=true;int queries=0;bool isInLineOfSight(int,float,float,float fromZ,float,float,float toZ,int,VMAP::ModelIgnoreFlags){++queries;assert(fromZ==2&&toZ==2);return clear;}}nativeMap; +struct Player:Unit{ + NativeMap* GetMap(){return &nativeMap;}int GetPhaseShift(){return 0;} + std::vector creatures;std::vector players;int playerQueries=0;bool los=true; + bool IsInPhase(WorldObject const* u){return u->phase;}bool IsFriendlyTo(Unit*u){return u->friendly;}bool IsWithinLOSInMap(WorldObject*){return los;} + void GetCreatureListWithEntryInGrid(std::vector&out,int,float){out=creatures;} + void GetPlayerListInGrid(std::vector&out,float){out=players;++playerQueries;} +}; +struct Anchor{float GetExactDist(WorldObject const*u)const{return std::hypot(u->x,u->z);}float GetPositionZ()const{return 0;}}; +struct AdventureSocialContext{Anchor Anchor;unsigned MapId=0;std::string ServiceKind,Intent="economy";}; +enum class ClientlessEntityType{Creature,Player}; +constexpr unsigned CLIENTLESS_CAP_VENDOR=1,CLIENTLESS_CAP_BANKER=8,CLIENTLESS_CAP_AUCTIONEER=32; +struct Entity{ClientlessEntityType Type=ClientlessEntityType::Creature;bool Alive=true;unsigned Capabilities=0,Entry=0,Guid=0;}; +struct Snapshot{float Radius=0;unsigned ScanAgeMs=1000;std::vector Entities;}; +Player* observer=nullptr; +struct Perception{Snapshot snapshot;Snapshot* GetSnapshot(unsigned){return &snapshot;} + void ScanNow(Player*p,float radius){observer=p;snapshot={};snapshot.Radius=radius; + for(auto u:p->creatures)if(std::hypot(u->x,u->z)<=radius) snapshot.Entities.push_back({ClientlessEntityType::Creature,u->alive,unsigned(u->vendor?1:0)|unsigned(u->banker?8:0)|unsigned(u->auction?32:0),0,unsigned(u->guid.value)}); + }}perception;auto sClientlessPerceptionMgr=&perception; +namespace ObjectAccessor{Creature* GetCreature(Player&p,ObjectGuid guid){for(auto u:p.creatures)if(u->guid.value==guid.value)return u;return nullptr;}} +struct Managed{bool IsManaged(unsigned){return true;}}managed;auto sClientlessPlayerMgr=&managed; +'''.replace('Anchor Anchor;','struct Anchor Anchor;') +for sig in ('bool InBounds(', 'bool Friendly(', 'bool ServiceMatches(', 'bool TargetVisible(', 'std::vector < Unit * > People('):code+=function(sig)+'\n' +code+=r''' +int main(){ + using namespace AdventureEconomyPolicy;using namespace AdventureSocialFlow; + Player p,bot;Creature vendor,banker,auction,inn,guard; + vendor.vendor=true;banker.banker=true;auction.auction=true;inn.inn=true; + p.creatures={&vendor,&banker,&auction,&inn,&guard};int nextGuid=10;for(auto u:p.creatures)u->guid.value=++nextGuid;p.players={&bot};AdventureSocialContext c; + for(auto kind:{"vendor_visit","goods","trade","vendor_compare"}){ + auto people=People(&p,kind,c);assert(people.size()==1&&people[0]==&vendor); + } + for(auto kind:{"bank_visit","banking"})assert(People(&p,kind,c)==std::vector{&banker}); + for(auto kind:{"auction_visit","auctions"})assert(People(&p,kind,c)==std::vector{&auction}); + for(auto kind:{"service_wait","service_finish"})assert(People(&p,kind,c).size()==3); + c.ServiceKind=LocationRequirement("economy_bank"); + assert(People(&p,"goods",c).empty());assert(People(&p,"service_wait",c)==std::vector{&banker}); + c.ServiceKind=LocationRequirement("economy_auction"); + assert(People(&p,"banking",c).empty());assert(People(&p,"service_wait",c)==std::vector{&auction}); + c.ServiceKind=""; + vendor.x=75;assert(People(&p,"goods",c)==std::vector{&vendor});vendor.x=0; + assert(p.playerQueries==0); // Clientless bots are never mistaken for service NPCs. + vendor.friendly=false;assert(People(&p,"goods",c).empty());vendor.friendly=true; + vendor.alive=false;assert(People(&p,"goods",c).empty());vendor.alive=true; + vendor.combat=true;assert(People(&p,"goods",c).empty());vendor.combat=false; + vendor.owner.value=5;assert(People(&p,"goods",c).empty());vendor.owner.value=0; + vendor.phase=false;assert(People(&p,"goods",c).empty());vendor.phase=true; + vendor.x=201;assert(People(&p,"goods",c).empty());vendor.x=0; + vendor.z=26;assert(People(&p,"goods",c).empty());vendor.z=0; + p.los=false;assert(People(&p,"goods",c)==std::vector{&vendor});p.los=true; // Discovery precedes the MMAP approach and final LOS check. + p.los=false;nativeMap.clear=true; + assert(TargetVisible(&p,&banker,"banking"));assert(nativeMap.queries==1); + assert(!TargetVisible(&p,&banker,"npc")); // Ordinary social visibility is preserved. + nativeMap.clear=false;assert(!TargetVisible(&p,&banker,"banking")); // A real wall still blocks the scene. + nativeMap.clear=true;p.los=true; + assert(People(&p,"order",c)==std::vector{&inn}); // Preserve ordinary innkeeper interactions. + for(auto kind:{"vendor_visit","goods","trade","vendor_compare","bank_visit","banking","auction_visit","auctions"}){ + assert(Economic(kind));auto steps=Steps(kind,20000); + assert(steps.front().Action==Cue::Greet&&steps.back().Action==Cue::Farewell); + for(auto step:steps)assert(step.Action!=Cue::Fire&&step.Action!=Cue::Dance&&step.Action!=Cue::Seat); + } + assert(!Economic("npc")&&Steps("unknown",10000).empty()); + assert(RequiredService("supplies")==Service::None&&Economic("supplies")); +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-economy-') as folder: + cpp=Path(folder)/'test.cpp';binary=Path(folder)/'test';cpp.write_text(code) + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + subprocess.run([str(binary)],check=True) +print('Economy: native service roles, friendly/phase/LOS/bounds gates, no bot service targets and coherent performative cues passed.') diff --git a/tests/clientless/test_adventure_economy_catalog.py b/tests/clientless/test_adventure_economy_catalog.py new file mode 100644 index 0000000000..ac9b41d1b2 --- /dev/null +++ b/tests/clientless/test_adventure_economy_catalog.py @@ -0,0 +1,35 @@ +"""Execute the additive economy migration, including role-gated authored seeds.""" +from pathlib import Path +import re,sqlite3 +root=Path(__file__).resolve().parents[2] +db=sqlite3.connect(':memory:') +base=(root/'sql/custom/world/2026_10_26_03_adventure_behavior.sql').read_text() +for table in ('vcore_adventure_location_intent','vcore_adventure_action','vcore_adventure_action_intent','vcore_adventure_dialog'): + text=re.search(r'CREATE TABLE IF NOT EXISTS '+table+r' \((.*?)\) ENGINE=',base,re.S).group(1) + db.execute('CREATE TABLE '+table+' ('+text+')') +db.executescript(''' +CREATE TABLE creature(guid INTEGER,id INTEGER,map INTEGER,position_x REAL,position_y REAL,position_z REAL,orientation REAL); +CREATE TABLE creature_template(entry INTEGER PRIMARY KEY,npcflag INTEGER); +INSERT INTO creature_template VALUES(1285,128),(2456,131072),(8719,2097152); +INSERT INTO creature VALUES(1,1285,0,-8831.75,596.356,95.7618,0.942478),(2,2456,0,-8908.35,639.24,99.6516,5.25344),(3,8719,0,-8813.8,661.005,99.616,3.59538); +CREATE TABLE vcore_clientless_world_point(point_key TEXT PRIMARY KEY,category TEXT,map INTEGER,position_x REAL,position_y REAL,position_z REAL,orientation REAL,enabled INTEGER,comment TEXT); +CREATE TABLE vcore_adventure_location(point_key TEXT PRIMARY KEY,display_name TEXT,source_type TEXT,region_key TEXT,zone_id INTEGER,faction INTEGER); +''') +sql=(root/'sql/custom/world/2026_10_27_03_adventure_economy.sql').read_text().replace('INSERT IGNORE','INSERT OR IGNORE') +db.executescript(sql) +assert db.execute("SELECT COUNT(*) FROM vcore_adventure_action_intent WHERE intent='economy'").fetchone()==(11,) +assert not db.execute("SELECT i.action_key FROM vcore_adventure_action_intent i LEFT JOIN vcore_adventure_action a USING(action_key) WHERE a.action_key IS NULL").fetchall() +assert db.execute('SELECT COUNT(*) FROM vcore_adventure_location WHERE faction=1 AND zone_id=1519').fetchone()==(3,) +assert db.execute("SELECT requirement FROM vcore_adventure_action WHERE action_key='economy_compare'").fetchone()==('vendor_compare',) +assert db.execute("SELECT COUNT(*) FROM vcore_adventure_dialog WHERE intent='economy'").fetchone()==(6,) +db.execute("UPDATE vcore_adventure_action_intent SET weight=7.25 WHERE action_key='economy_goods' AND intent='economy'") +db.execute("UPDATE vcore_clientless_world_point SET position_x=-8825 WHERE point_key='stormwind_economy_market'") +db.executescript(sql) +assert db.execute("SELECT weight FROM vcore_adventure_action_intent WHERE action_key='economy_goods' AND intent='economy'").fetchone()==(7.25,) +assert db.execute("SELECT position_x FROM vcore_clientless_world_point WHERE point_key='stormwind_economy_market'").fetchone()==(-8825,) +# Never seed a service location for an NPC that does not actually provide it. +db.execute('DELETE FROM vcore_adventure_location');db.execute('DELETE FROM vcore_clientless_world_point') +db.execute('UPDATE creature_template SET npcflag=0') +db.executescript(sql) +assert db.execute('SELECT COUNT(*) FROM vcore_clientless_world_point').fetchone()==(0,) +print('Economy catalog: eleven actions, three faction-bound service anchors, native flag gates and idempotent preservation passed.') diff --git a/tests/clientless/test_adventure_exploration.py b/tests/clientless/test_adventure_exploration.py new file mode 100644 index 0000000000..31819307b9 --- /dev/null +++ b/tests/clientless/test_adventure_exploration.py @@ -0,0 +1,64 @@ +"""Exercise production discovery/availability for non-interacting exploration scenes.""" +from pathlib import Path +import subprocess,tempfile +root=Path(__file__).resolve().parents[2] +source=(root/'src/server/game/World/AdventureSocialActions.cpp').read_text() +def function(sig): + a=source.index(sig);b=source.index('{',a);depth=1;e=b+1 + while depth:depth+=(source[e]=='{')-(source[e]=='}');e+=1 + return source[a:e] +code=r''' +#include "AdventureExplorationPolicy.h" +#include "AdventureProfessionPolicy.h" +#include +#include +#include +#include +#include +using uint32=unsigned; +constexpr int GAMEOBJECT_TYPE_GENERIC=5,GAMEOBJECT_TYPE_GOOBER=10,GAMEOBJECT_TYPE_TEXT=9,GAMEOBJECT_TYPE_CHAIR=7; +struct Guid{std::string ToString(){return "prop";}}; +struct WorldObject{ + bool world=true,phase=true;uint32 map=0;float x=0,z=0; + bool IsInWorld()const{return world;}uint32 GetMapId()const{return map;}float GetPositionZ()const{return z;} +}; +struct GameObject:WorldObject{bool spawned=true,visible=true,los=true;int type=5;bool isSpawned(){return spawned;}int GetGoType(){return type;}Guid GetGUID(){return {};}}; +struct Position{float GetExactDist(WorldObject const*p)const{return std::hypot(p->x,p->z);}float GetPositionZ()const{return 0;}}; +struct Player{ + std::vector objects;bool outdoors=true; + void GetGameObjectListWithEntryInGrid(std::vector&out,int,float radius){for(auto p:objects)if(std::hypot(p->x,p->z)<=radius)out.push_back(p);} + bool IsInPhase(WorldObject const*p){return p->phase;}bool CanSeeOrDetect(GameObject*p){return p->visible;}bool IsWithinLOSInMap(GameObject*p){return p->los;}bool IsOutdoors(){return outdoors;}bool IsInWater(){return false;}bool IsFalling(){return false;} +}; +struct AdventureSocialContext{Position Anchor;uint32 MapId=0;std::string Intent="adventure",LocationCategory="ruins";bool Festival=false,AllowCreateFire=true;std::vector TargetHistory;AdventureProfessionPolicy::Professions PrimaryProfessions;}; +struct AdventureMicroAction{std::string Requirement;}; +std::vector Objects(Player*,int,AdventureSocialContext&){return {};} +std::vector People(Player*,std::string const&,AdventureSocialContext&){return {};} +GameObject* Fire(Player*,AdventureSocialContext&){return nullptr;}bool CanMakeFire(Player*){return false;} +struct AdventureProfessionTargets{static std::vector Find(Player*,std::string const&,AdventureSocialContext&){return {};}}; +class AdventureSocialActions{public:static bool Available(Player*,AdventureMicroAction const&,AdventureSocialContext&);}; +''' +for sig in ('bool InBounds(', 'std::vector InspectionObjects(', 'bool AdventureSocialActions::Available('):code+=function(sig)+'\n' +code+=r''' +int main(){ + Player p;AdventureSocialContext c;GameObject prop;p.objects={&prop}; + for(int type:{5,9,10}){prop.type=type;assert(AdventureSocialActions::Available(&p,{"inspect"},c));} + for(int type:{0,1,3,6,7,11,15,21}){prop.type=type;assert(!AdventureSocialActions::Available(&p,{"inspect"},c));} + prop.type=5;prop.spawned=false;assert(InspectionObjects(&p,c).empty());prop.spawned=true; + prop.visible=false;assert(InspectionObjects(&p,c).empty());prop.visible=true; + prop.los=false;assert(InspectionObjects(&p,c).empty());prop.los=true; + prop.phase=false;assert(InspectionObjects(&p,c).empty());prop.phase=true; + prop.map=1;assert(InspectionObjects(&p,c).empty());prop.map=0; + prop.x=61;assert(InspectionObjects(&p,c).empty());prop.x=50;assert(!InspectionObjects(&p,c).empty());prop.x=0; + c.Intent="leisure";assert(!AdventureSocialActions::Available(&p,{"inspect"},c)&&!AdventureSocialActions::Available(&p,{"scout"},c));c.Intent="adventure"; + assert(AdventureSocialActions::Available(&p,{"scout"},c));p.outdoors=false; + assert(!AdventureSocialActions::Available(&p,{"vista"},c)&&AdventureSocialActions::Available(&p,{"equipment"},c));p.outdoors=true; + for(auto category:{"ruins","dungeon","mine"}){c.LocationCategory=category;assert(AdventureSocialActions::Available(&p,{"entrance"},c));} + c.LocationCategory="tavern";assert(!AdventureSocialActions::Available(&p,{"entrance"},c)); + // No gameobject use, loot, spellcast or inventory API is available in this adapter. +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-exploration-') as folder: + cpp=Path(folder)/'test.cpp';binary=Path(folder)/'test';cpp.write_text(code) + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + subprocess.run([str(binary)],check=True) +print('Exploration: visible native props only, no chests/traps/furniture, phase/map/LOS/range gates and contextual preparation passed.') diff --git a/tests/clientless/test_adventure_exploration_catalog.py b/tests/clientless/test_adventure_exploration_catalog.py new file mode 100644 index 0000000000..9033f36427 --- /dev/null +++ b/tests/clientless/test_adventure_exploration_catalog.py @@ -0,0 +1,34 @@ +"""Execute exploration upgrades and location-owned intent mappings twice.""" +from pathlib import Path +import re,sqlite3 +root=Path(__file__).resolve().parents[2] +db=sqlite3.connect(':memory:') +base=(root/'sql/custom/world/2026_10_26_03_adventure_behavior.sql').read_text() +for table in ('vcore_adventure_location_intent','vcore_adventure_action','vcore_adventure_action_intent','vcore_adventure_dialog'): + text=re.search(r'CREATE TABLE IF NOT EXISTS '+table+r' \((.*?)\) ENGINE=',base,re.S).group(1) + db.execute('CREATE TABLE '+table+' ('+text+')') +for name in ('2026_10_26_03_adventure_behavior.sql','2026_10_26_04_adventure_social.sql','2026_10_27_00_adventure_rest.sql'): + for statement in (root/'sql/custom/world'/name).read_text().split(';'): + match=re.search(r'INSERT IGNORE INTO (vcore_adventure_action|vcore_adventure_action_intent)\s+VALUES\s+(.*)',statement,re.S) + if match:db.executescript('INSERT OR IGNORE INTO '+match[1]+' VALUES '+match[2]+';') +db.executescript('''CREATE TABLE vcore_clientless_world_point(category TEXT);INSERT INTO vcore_clientless_world_point VALUES('tavern'),('settlement'),('zone'),('landmark'),('service'),('bank'),('travel_node'); +INSERT INTO vcore_adventure_location_intent VALUES('bank','economy',0),('landmark','economy',2.75); +''') +sql=(root/'sql/custom/world/2026_10_27_04_adventure_exploration.sql').read_text().replace('INSERT IGNORE','INSERT OR IGNORE') +db.executescript(sql) +assert db.execute("SELECT weight FROM vcore_adventure_action_intent WHERE action_key='explore' AND intent='adventure'").fetchone()==(0,) +assert db.execute("SELECT COUNT(*) FROM vcore_adventure_action WHERE action_key LIKE 'adventure_%'").fetchone()==(10,) +assert db.execute("SELECT kind,requirement FROM vcore_adventure_action WHERE action_key='adventure_explore'").fetchone()==('outing','explore') +assert not db.execute('SELECT i.action_key FROM vcore_adventure_action_intent i LEFT JOIN vcore_adventure_action a USING(action_key) WHERE a.action_key IS NULL').fetchall() +assert db.execute("SELECT weight FROM vcore_adventure_location_intent WHERE category='tavern' AND intent='economy'").fetchone()==(4,) +assert db.execute("SELECT weight FROM vcore_adventure_location_intent WHERE category='tavern' AND intent='leisure'").fetchone()==(1,) +assert not db.execute("SELECT * FROM vcore_adventure_location_intent WHERE category='travel_node'").fetchall() +# Explicit category weights and custom action weights survive repeat upgrades. +db.execute("UPDATE vcore_adventure_action_intent SET weight=7.25 WHERE action_key='explore' AND intent='adventure'") +db.execute("UPDATE vcore_adventure_action_intent SET weight=9.5 WHERE action_key='adventure_inspect' AND intent='adventure'") +db.executescript(sql) +assert db.execute("SELECT weight FROM vcore_adventure_action_intent WHERE action_key='explore' AND intent='adventure'").fetchone()==(7.25,) +assert db.execute("SELECT weight FROM vcore_adventure_action_intent WHERE action_key='adventure_inspect' AND intent='adventure'").fetchone()==(9.5,) +assert db.execute("SELECT weight FROM vcore_adventure_location_intent WHERE category='bank' AND intent='economy'").fetchone()==(0,) +assert db.execute("SELECT weight FROM vcore_adventure_location_intent WHERE category='landmark' AND intent='economy'").fetchone()==(2.75,) +print('Exploration catalog: ten actions, shared scenes, default wander replacement, explicit category eligibility and preserved edits passed.') diff --git a/tests/clientless/test_adventure_intent_state.py b/tests/clientless/test_adventure_intent_state.py index cd3ffca5df..2d0e0522d0 100644 --- a/tests/clientless/test_adventure_intent_state.py +++ b/tests/clientless/test_adventure_intent_state.py @@ -20,10 +20,10 @@ struct Object{} object; struct Map{Object* GetGameObject(int){return &object;}} map; struct Player { bool combat=false;uint32 area=87,zone=12,mapId=0; - Guid GetGUID(){return {};}bool IsInWorld(){return true;}bool IsInCombat(){return combat;} + Guid GetGUID(){return {};}bool IsFlying(){return false;}bool IsInWorld(){return true;}bool IsInCombat(){return combat;} uint32 GetMapId(){return mapId;}uint32 GetAreaId(){return area;}uint32 GetZoneId(){return zone;} float GetPositionX(){return 0;}float GetPositionY(){return 0;}float GetPositionZ(){return 0;} - float GetExactDist(float,float,float){return 0;}float GetExactDist(Object*){return 0;} + float GetExactDist(Position const&){return 0;}float GetExactDist(float,float,float){return 0;}float GetExactDist(Object*){return 0;} void SendPlaySpellVisualKit(int,int,int){}void SetUInt32Value(int,uint32){} bool IsWithinLOSInMap(Object*){return true;}void SetFacingToObject(Object*){} Map* GetMap(){return ↦} @@ -54,10 +54,12 @@ public: std::string Intent="social",Location="tavern",WantedIntent="social",WantedLocation="tavern",Detail,Micro; time_t Deadline=1000;uint32 Date=20261026,Timer=0,MicroTimer=0,GestureTimer=0,RetryTimer=0;int Hour=5; struct{bool Active=false;}Social; + struct{bool Active=false;}Recovery; + struct{bool Active=false,Flying=false,Progressive=false;std::vector Route;size_t Step=0;}Leisure; AdventureBehaviorPolicy::Day Plan;Position Anchor;uint32 AnchorMap=0;int WorkObject=0;uint32 WorkEmote=0;bool WorkPending=false; }; std::unordered_map _records{{26,{}}}; - int begun=0,fallbacks=0,micros=0,resets=0,switches=0,queues=0; + int begun=0,fallbacks=0,micros=0,resets=0,switches=0,queues=0,leisureUpdates=0; void Update(Player*,uint32); void Generate(Player*,Record&,uint32){} void SetWanted(Player*,Record& r,std::string const&i,std::string const&l,time_t d){++switches;r.WantedIntent=i;r.WantedLocation=l;r.Deadline=d;r.Dirty=true;r.State=Phase::Idle;} @@ -65,7 +67,9 @@ public: void Fallback(Player*,Record&){++fallbacks;} void ResetMicro(Player*,Record&r){++resets;r.Micro.clear();} void Micro(Player*,Record&){++micros;} + bool UpdateLeisure(Player*,Record&,uint32){++leisureUpdates;return true;} bool UpdateSocial(Player*,Record&,uint32){return true;} + bool UpdateRecovery(Player*,Record&,uint32){return true;} void Queue(Player*,Record&,std::string const&,std::string const&,std::string const&,bool=false){++queues;} }; ''' @@ -94,6 +98,9 @@ int main(){ // Deadline discards the old intent rather than extending the visit. now=1001;r.State=AdventureBehaviorMgr::Phase::OnSite; mgr.Update(&player,1000);assert(mgr.switches==2&&r.WantedIntent.empty()&&mgr.begun==1); + // Leashed companion distance is serviced at world cadence, not the 1 s planning clock. + r.Timer=1000;r.Leisure.Active=true;mgr.Update(&player,50); + assert(mgr.leisureUpdates==1&&r.Timer==950); } ''' with tempfile.TemporaryDirectory(prefix='vcore-adventure-state-') as folder: diff --git a/tests/clientless/test_adventure_leisure.py b/tests/clientless/test_adventure_leisure.py new file mode 100644 index 0000000000..787fea6859 --- /dev/null +++ b/tests/clientless/test_adventure_leisure.py @@ -0,0 +1,201 @@ +"""Execute leisure scene progression, native flight handover and pet-walk gating.""" +from pathlib import Path +import subprocess,tempfile +root=Path(__file__).resolve().parents[2] +source=(root/'src/server/game/World/AdventureBehaviorMgr.cpp').read_text() +def function(signature): + a=source.index(signature);b=source.index('{',a);depth=1;e=b+1 + while depth:depth+=(source[e]=='{')-(source[e]=='}');e+=1 + return source[a:e] +code=r''' +#include +#include +#include +#include +#include +#include +#include +#include +#include +using uint32=uint32_t; +#define TC_LOG_INFO(...) ((void)0) +constexpr float INVALID_HEIGHT=-100000; +constexpr int BASE_ATTACK=0,ITEM_SUBCLASS_WEAPON_FISHING_POLE=20,UNIT_NPC_EMOTESTATE=0,EMOTE_STATE_FISHING=379; +struct Player; +struct Position{ + float m_positionX=0,m_positionY=0,m_positionZ=0,o=0; + void Relocate(float x,float y,float z){m_positionX=x;m_positionY=y;m_positionZ=z;} + void Relocate(Player*);float GetPositionX()const{return m_positionX;}float GetPositionY()const{return m_positionY;}float GetPositionZ()const{return m_positionZ;} + float GetExactDist(Position const&p)const{return std::hypot(std::hypot(m_positionX-p.m_positionX,m_positionY-p.m_positionY),m_positionZ-p.m_positionZ);} +}; +struct PositionFullTerrainStatus{bool outdoors=true;}; +struct Terrain{ + bool outdoors=true;uint32 zone=1519; + void GetFullTerrainStatusForPosition(int,uint32,float,float,float,PositionFullTerrainStatus& s){s.outdoors=outdoors;} + void GetZoneAndAreaId(int,uint32,uint32& z,uint32& a,Position const&){z=zone;a=1;} +}terrain; +struct Map{float water=-1000,ground=0;Terrain* GetTerrain(){return &terrain;}float GetHeight(int,float,float,float,bool,float){return ground;}float GetWaterLevel(int,float,float){return water;}}map; +struct Guid{uint32 GetCounter(){return 26;}}; +struct Item{struct Template{uint32 GetSubClass(){return 20;}}t;Template* GetTemplate(){return &t;}}rod; +struct Creature:Position{}cat; +struct Player:Position{ + bool alive=true,combat=false,flying=false,outdoors=true,water=false,falling=false,hasRod=false;uint32 emote=0;int stops=0; + uint32 GetMapId(){return 0;}bool IsAlive(){return alive;}bool IsInCombat(){return combat;}bool IsFlying(){return flying;}bool IsInFlight(){return false;}bool GetTransport(){return false;} + bool IsOutdoors(){return outdoors;}bool IsInWater(){return water;}bool IsFalling(){return falling;}Guid GetGUID(){return {};} + int GetPhaseShift(){return 0;}Map* GetMap(){return ↦}Item* GetWeaponForAttack(int,bool){return hasRod?&rod:nullptr;} + void SetFacingTo(float f){o=f;}float GetOrientation(){return o;}void SetUInt32Value(int,uint32 v){emote=v;}uint32 GetUInt32Value(int){return emote;} + bool IsWithinLOS(float,float,float){return true;} + void StopMoving(){++stops;}float GetExactDist(Position const& p){return Position::GetExactDist(p);}float GetExactDist(Creature* p){return Position::GetExactDist(*p);} +}; +void Position::Relocate(Player*p){*this=*p;} +bool Unsafe(Player* p){return p->combat||p->flying;} +constexpr int PATHFIND_NORMAL=1; +struct PathGenerator{ + struct Point{float x,y,z;};std::vector path; + static inline bool reachable=true,broken=false;static inline int type=1; + PathGenerator(Player*){}void SetPathLengthLimit(float){} + bool CalculatePath(Position const&a,Position const&b){ + path.clear();int n=int(a.GetExactDist(b)/4)+1; + for(int i=0;i<=n;++i){float t=float(i)/n;path.push_back({a.m_positionX+(b.m_positionX-a.m_positionX)*t,a.m_positionY+(b.m_positionY-a.m_positionY)*t+20*std::sin(3.14159265f*t),a.m_positionZ+(b.m_positionZ-a.m_positionZ)*t});} + if(broken && path.size()>5) path[5].z+=10; + return reachable; + } + int GetPathType(){return type;}auto const& GetPath(){return path;} +}; +struct ClientlessCompanionScene{uint32 LeashSpell=0;bool Active=false,Ready=false,Leashed=false;}; +struct ClientlessCompanionMgr{ + static inline bool available=true,ready=true,valid=true;static inline int starts=0,resets=0; + static bool Available(Player*,uint32){return available;} + static bool Start(Player*,ClientlessCompanionScene& s,uint32,uint32){s.Active=true;s.Ready=false;++starts;return available;} + static bool Update(Player*,ClientlessCompanionScene& s,uint32){s.Ready=ready;return valid;} + static Creature* Resolve(Player*,ClientlessCompanionScene const&){return valid?&cat:nullptr;} + static void Reset(Player*,ClientlessCompanionScene& s){if(s.Active)++resets;s={};} +}; +struct Profile{bool CanGroundMount=true;float GroundMountMinDistance=45;std::vector GroundMounts{1};uint32 CompanionSpell=10673,CompanionLeashItem=37460;}profile; +struct Lua{int mounts=0,dismounts=0;Profile* GetAdventureProfile(uint32){return &profile;}bool PrepareGroundMount(Player*,float,char const*){++mounts;return true;}void DismountGroundMount(Player*,char const*){++dismounts;}}lua;auto sClientlessLuaEngine=&lua; +struct AdventureMicroAction{std::string Requirement;}; +struct Location{struct{std::string Category="leisure";float O=0;}Point;bool IsArea=false;uint32 AreaId=0,ZoneId=1519;}location; +struct Locations{Location* Find(std::string const&){return &location;}}locations;auto sAdventureLocationMgr=&locations; +enum class ClientlessTravelState{Moving,Arrived,PathRejected}; +struct ClientlessPathDiagnostics{bool Complete=true,Suspicious=false;float FinalDistance=0,PathLength=1;}; +struct Travel{bool AnalyzePath(Player*,Position const&,ClientlessPathDiagnostics&){return true;}struct{ClientlessTravelState State=ClientlessTravelState::Moving;}status;int cancels=0;void CancelTravel(uint32){++cancels;}auto GetStatus(uint32){return &status;}}travel;auto sClientlessTravelMgr=&travel; +enum class ClientlessFlightState{Mounting,Flying,Arrived,Failed}; +struct Flight{struct{ClientlessFlightState State=ClientlessFlightState::Mounting;}status;int starts=0;bool enabled=true;Position target;bool Enabled(Player*){return enabled;}bool Start(Player*,Position const&t,std::string&){++starts;target=t;status.State=ClientlessFlightState::Mounting;return true;}auto GetStatus(uint32){return &status;}}flight;auto sClientlessFlightMgr=&flight; +struct Manager{void ClearQueuedActions(uint32){}}manager;auto sClientlessPlayerMgr=&manager; +struct Executor{bool RequestStopAtNode(uint32){return false;}}executor;auto sClientlessActionExecutorMgr=&executor; +class AdventureBehaviorMgr{public: + enum class Phase{Idle,OnSite,Switching}; + struct Record{ + std::string Intent="leisure",Location="city",WantedIntent,WantedLocation,Detail;Position Anchor;uint32 AnchorMap=0,MicroTimer=240000;std::mt19937 Random{26}; + time_t Deadline=0;bool Dirty=false;std::unordered_set Tried;Phase State=Phase::OnSite; + struct LeisureScene{bool Active=false,Flying=false,Moving=false,StopRequested=false,Returning=false,PlannedWalk=false,Progressive=false;std::string Kind;Position Origin;std::vector Route,WalkTrace;std::size_t Step=0,OutboundSteps=0;uint32 Elapsed=0,LegElapsed=0,PauseMs=0,CompanionWait=0,CompletedLegs=0;ClientlessCompanionScene Companion;}Leisure; + }; + int moves=0,resets=0;bool lastRiding=false,moveAllowed=true;Position requested; + bool LocalMove(Player*,Record&,Position const& target,float,bool riding=false){++moves;lastRiding=riding;requested=target;travel.status.State=ClientlessTravelState::Moving;return moveAllowed;} + void ResetMicro(Player* p,Record&r){++resets;ResetLeisure(p,r);} + bool ProfessionWorkAvailable(Player*,Record&){return false;} + bool FishingDirection(Player*,float&)const; + bool LeisureAvailable(Player*,Record const&,AdventureMicroAction const&)const; + bool PlanLeisureWalk(Player*,Record&); + bool StartLeisure(Player*,Record&,AdventureMicroAction const&); + bool UpdateLeisure(Player*,Record&,uint32);void ResetLeisure(Player*,Record&); + void SetWanted(Player*,Record&,std::string const&,std::string const&,time_t); +}; +''' +for sig in ('bool AdventureBehaviorMgr::FishingDirection(', 'bool AdventureBehaviorMgr::PlanLeisureWalk(', 'bool AdventureBehaviorMgr::LeisureAvailable(', 'bool AdventureBehaviorMgr::StartLeisure(', 'bool AdventureBehaviorMgr::UpdateLeisure(', 'void AdventureBehaviorMgr::ResetLeisure(', 'void AdventureBehaviorMgr::SetWanted('):code+=function(sig)+'\n' +code+=r''' +int main(){ + AdventureBehaviorMgr mgr;AdventureBehaviorMgr::Record r;Player p; + assert(mgr.StartLeisure(&p,r,{"walk"})&&r.Leisure.PlannedWalk); + auto expected=r.Leisure.Route.size();auto outward=r.Leisure.OutboundSteps; + assert(outward>=3&&expected==2*outward); + assert(r.Leisure.Origin.GetExactDist(r.Leisure.Route[outward-1])>=65); + for(size_t i=0;i+10); + bool following=true;for(int i=0;i<25&&following;++i)following=mgr.UpdateLeisure(&p,r,1000); + assert(!following);mgr.ResetLeisure(&p,r);assert(ClientlessCompanionMgr::resets==1); + cat.Relocate(0,0,0);p.Relocate(0,0,0); + // Leashed walking stops before native 5 yd range and waits for a real catch-up. + assert(mgr.StartLeisure(&p,r,{"pet_walk"}));r.Leisure.Companion.Leashed=true; + before=mgr.moves;cat.Relocate(4.1f,0,0); + assert(mgr.UpdateLeisure(&p,r,50)&&mgr.moves==before&&r.Leisure.CompanionWait==50); + cat.Relocate(3.7f,0,0);assert(mgr.UpdateLeisure(&p,r,50)&&mgr.moves==before); + cat.Relocate(3,0,0);assert(mgr.UpdateLeisure(&p,r,50)&&mgr.moves==before+1&&r.Leisure.CompanionWait==0); + mgr.ResetLeisure(&p,r); + // Mounted outings use the same navigation with an explicitly selected riding gait. + assert(mgr.StartLeisure(&p,r,{"ride"}));assert(mgr.UpdateLeisure(&p,r,1000)&&mgr.lastRiding&&lua.mounts>0);mgr.ResetLeisure(&p,r); + // A flight switch waits for native landing and a return to its origin. + assert(mgr.StartLeisure(&p,r,{"flight"}));assert(mgr.UpdateLeisure(&p,r,1000)&&r.Leisure.Flying); + p.flying=true;int resets=mgr.resets;mgr.SetWanted(&p,r,"rest","inn",1234); + assert(r.Dirty&&r.Leisure.StopRequested&&mgr.resets==resets&&r.WantedIntent=="rest"); + assert(mgr.UpdateLeisure(&p,r,1000)&&r.Leisure.Step==0); // mounting/flying cannot fabricate arrival + p.flying=false;flight.status.State=ClientlessFlightState::Arrived; + assert(mgr.UpdateLeisure(&p,r,1000)&&r.Leisure.Moving); + p.Relocate(mgr.requested.GetPositionX(),mgr.requested.GetPositionY(),0);travel.status.State=ClientlessTravelState::Arrived; + assert(mgr.UpdateLeisure(&p,r,1000)&&r.Leisure.Returning&&r.Leisure.Route.size()==1&&r.Leisure.Flying); + flight.status.State=ClientlessFlightState::Arrived;assert(mgr.UpdateLeisure(&p,r,1000)); + p.Relocate(mgr.requested.GetPositionX(),mgr.requested.GetPositionY(),0);travel.status.State=ClientlessTravelState::Arrived; + assert(!mgr.UpdateLeisure(&p,r,1000)&&p.GetExactDist(r.Leisure.Origin)<0.01f);mgr.ResetLeisure(&p,r); + // Angling needs an authored bank, equipped fishing rod and real water. + assert(!mgr.LeisureAvailable(&p,r,{"fish"}));location.Point.Category="leisure_fishing";p.hasRod=true; + assert(!mgr.StartLeisure(&p,r,{"fish"}));map.water=2; + assert(mgr.StartLeisure(&p,r,{"fish"})&&p.emote==EMOTE_STATE_FISHING); + r.MicroTimer=0;assert(!mgr.UpdateLeisure(&p,r,1000));mgr.ResetLeisure(&p,r); + // Adventure foot exploration reuses coherent native routes, never pet/flight scenes. + r.Intent="adventure";r.MicroTimer=180000;p.outdoors=true;p.Relocate(0,0,0); + assert(mgr.LeisureAvailable(&p,r,{"explore"})&&mgr.LeisureAvailable(&p,r,{"patrol"})); + assert(!mgr.LeisureAvailable(&p,r,{"pet_walk"})&&!mgr.LeisureAvailable(&p,r,{"flight"})); + assert(mgr.StartLeisure(&p,r,{"explore"})&&r.Leisure.PlannedWalk&&r.Leisure.Route.size()>=6); + mgr.ResetLeisure(&p,r);p.outdoors=false;assert(!mgr.LeisureAvailable(&p,r,{"explore"})); + +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-leisure-') as folder: + cpp=Path(folder)/'test.cpp';binary=Path(folder)/'test';cpp.write_text(code) + subprocess.run(['c++','-std=c++17',str(cpp),'-o',str(binary)],check=True) + subprocess.run([str(binary)],check=True) +print('Leisure: substantial curved MMAP routes, mirrored return, interrupted return, rejected corridors, actual arrival, companion follow, riding, flight and fishing passed.') diff --git a/tests/clientless/test_adventure_leisure_catalog.py b/tests/clientless/test_adventure_leisure_catalog.py new file mode 100644 index 0000000000..a406b85509 --- /dev/null +++ b/tests/clientless/test_adventure_leisure_catalog.py @@ -0,0 +1,33 @@ +"""Execute the leisure migration against its catalog schema and test idempotence.""" +from pathlib import Path +import sqlite3 +root=Path(__file__).resolve().parents[2] +db=sqlite3.connect(':memory:') +# The existing seed schemas are translated only for SQLite's engine/type syntax. +base=(root/'sql/custom/world/2026_10_26_03_adventure_behavior.sql').read_text() +import re +for table in ('vcore_adventure_location_intent','vcore_adventure_action','vcore_adventure_action_intent','vcore_adventure_dialog'): + text=re.search(r'CREATE TABLE IF NOT EXISTS '+table+r' \((.*?)\) ENGINE=',base,re.S).group(1) + db.execute('CREATE TABLE '+table+' ('+text+')') +db.executescript(''' +CREATE TABLE game_tele(name TEXT PRIMARY KEY,map INTEGER,position_x REAL,position_y REAL,position_z REAL,orientation REAL); +INSERT INTO game_tele VALUES ('TradeDistrict',0,-8835.7,620.485,93.2388,0.772328); +CREATE TABLE vcore_clientless_world_point(point_key TEXT PRIMARY KEY,category TEXT,map INTEGER,position_x REAL,position_y REAL,position_z REAL,orientation REAL,enabled INTEGER,comment TEXT); +CREATE TABLE vcore_adventure_location(point_key TEXT PRIMARY KEY,display_name TEXT,source_type TEXT,region_key TEXT,zone_id INTEGER,faction INTEGER); +''') +for path in ('2026_10_26_03_adventure_behavior.sql','2026_10_26_04_adventure_social.sql','2026_10_27_00_adventure_rest.sql'): + # Populate only the existing shared action rows. No unrelated world data is needed. + sql=(root/'sql/custom/world'/path).read_text() + for statement in sql.split(';'): + match=re.search(r'INSERT IGNORE INTO (vcore_adventure_action|vcore_adventure_action_intent)\s+VALUES\s+(.*)',statement,re.S) + if match:db.executescript('INSERT OR IGNORE INTO '+match[1]+' VALUES '+match[2]+';') +sql=(root/'sql/custom/world/2026_10_27_02_adventure_leisure.sql').read_text().replace('INSERT IGNORE','INSERT OR IGNORE') +db.executescript(sql) +assert not db.execute("SELECT i.action_key FROM vcore_adventure_action_intent i LEFT JOIN vcore_adventure_action a USING(action_key) WHERE i.intent='leisure' AND a.action_key IS NULL").fetchall() +assert db.execute("SELECT kind,requirement FROM vcore_adventure_action WHERE action_key='leisure_pet_walk'").fetchone()==('leisure','pet_walk') +assert db.execute("SELECT zone_id,faction FROM vcore_adventure_location WHERE point_key='stormwind_leisure_trade'").fetchone()==(1519,1) +db.execute("UPDATE vcore_adventure_action_intent SET weight=11 WHERE action_key='leisure_pet_walk' AND intent='leisure'") +db.executescript(sql) +assert db.execute("SELECT weight FROM vcore_adventure_action_intent WHERE action_key='leisure_pet_walk' AND intent='leisure'").fetchone()==(11,) +assert db.execute("SELECT COUNT(*) FROM vcore_clientless_world_point WHERE point_key='stormwind_leisure_trade'").fetchone()==(1,) +print('Leisure migration: native city anchor, shared scene references, pet-walk mapping and preservation of edited weights passed.') diff --git a/tests/clientless/test_adventure_location_import.py b/tests/clientless/test_adventure_location_import.py new file mode 100644 index 0000000000..a2d0445a8f --- /dev/null +++ b/tests/clientless/test_adventure_location_import.py @@ -0,0 +1,60 @@ +"""Check production map reads with native Debug Field getters and location weights.""" +from pathlib import Path +import re,subprocess,tempfile +root=Path(__file__).resolve().parents[2] +source=(root/'src/server/game/World/AdventureLocationMgr.cpp').read_text() +field=(root/'src/server/database/Database/Field.cpp').read_text() +def function(text,sig): + a=text.index(sig);b=text.index('{',a);depth=1;e=b+1 + while depth:depth+=(text[e]=='{')-(text[e]=='}');e+=1 + return text[a:e] +code=r''' +#include "AdventureEconomyPolicy.h" +#include +#include +#include +#include +#include +using uint16=uint16_t;using uint32=uint32_t; +#define TRINITY_DEBUG + enum class DatabaseFieldTypes{Int16,Int32}; +struct Field{ + struct{char const* value;bool raw=false;}data;DatabaseFieldTypes type;mutable int errors=0; + bool IsType(DatabaseFieldTypes t)const{return type==t;}void LogWrongType(char const*)const{++errors;} + uint16 GetUInt16()const;uint32 GetUInt32()const; +}; +''' +code+=function(field,'uint16 Field::GetUInt16() const')+'\n'+function(field,'uint32 Field::GetUInt32() const') +code+=r''' +struct AdventureLocation{struct{uint32 MapId=0;std::string Category;}Point;bool IsArea=false;}; +struct AdventureLocationMgr{std::unordered_map> _types;float Weight(AdventureLocation const&,std::string const&)const;}; +''' +code+=function(source,'float AdventureLocationMgr::Weight(') +reload_map=re.search(r'l.Point.MapId = f\[3\].*?;',source).group() +tele_map=re.search(r's.Map = f\[2\].*?;',source).group() +npc_map=re.search(r's.Map = f\[3\].*?;',source).group() +code+=r''' +int main(){ + for(auto value:{"0","1","530","571"}){ + Field f[4]={{{value},DatabaseFieldTypes::Int16},{{value},DatabaseFieldTypes::Int16},{{value},DatabaseFieldTypes::Int16},{{value},DatabaseFieldTypes::Int16}}; + struct{uint32 Map=0;}s;AdventureLocation l; +'''+reload_map+tele_map+'''assert(l.Point.MapId==uint32(std::strtoul(value,nullptr,10))&&s.Map==l.Point.MapId); +'''+npc_map+r'''assert(s.Map==l.Point.MapId&&f[2].errors==0&&f[3].errors==0); + // Reproduce the original Debug failure, instead of treating every getter alike. + assert(f[3].GetUInt32()==0&&f[3].errors==1); + } + AdventureLocationMgr mgr;AdventureLocation place; + for(auto category:{"zone","settlement","tavern","bank","service","landmark","wilderness","mine","workshop"}){ + place.Point.Category=category;assert(mgr.Weight(place,"economy")==0);mgr._types[category]["economy"]=4;assert(mgr.Weight(place,"economy")==4);assert(mgr.Weight(place,"social")==0); + } + // Edited weights, including an explicit zero, override economy defaults. + place.Point.Category="settlement";mgr._types["settlement"]["economy"]=0; + assert(mgr.Weight(place,"economy")==0);mgr._types["settlement"]["economy"]=2.75; + assert(mgr.Weight(place,"economy")==2.75); +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-location-import-') as folder: + cpp=Path(folder)/'test.cpp';binary=Path(folder)/'test';cpp.write_text(code) + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + subprocess.run([str(binary)],check=True) +print('Locations: actual Debug SMALLINT reads retain continent IDs; explicit location eligibility and edited weight overrides passed.') diff --git a/tests/clientless/test_adventure_micro_reset.py b/tests/clientless/test_adventure_micro_reset.py index 539abe4c90..b3c86b696b 100644 --- a/tests/clientless/test_adventure_micro_reset.py +++ b/tests/clientless/test_adventure_micro_reset.py @@ -24,14 +24,17 @@ struct ObjectGuid{void Clear(){}}; struct SocialScene{}; struct AdventureSocialActions{static void Reset(Player*,SocialScene&){}}; class AdventureBehaviorMgr{public: - struct Record{SocialScene Social;std::string Micro="explore";int MicroTimer=100,GestureTimer=100;ObjectGuid WorkObject;int WorkEmote=0;bool WorkPending=false;}; + struct RecoveryScene{bool Active=false;}; + struct Record{SocialScene Social;RecoveryScene Recovery;std::string Micro="explore";int MicroTimer=100,GestureTimer=100;ObjectGuid WorkObject;int WorkEmote=0;bool WorkPending=false;}; + void ResetLeisure(Player*,Record&){} void ResetMicro(Player*,Record&); }; ''' code+=s[a:b]+r''' int main(){ AdventureBehaviorMgr mgr;AdventureBehaviorMgr::Record r;Player p; - mgr.ResetMicro(&p,r);assert(p.stops==1&&travel.cancels==1&&r.Micro.empty()); + r.Recovery.Active=true; + mgr.ResetMicro(&p,r);assert(p.stops==1&&travel.cancels==1&&r.Micro.empty()&&!r.Recovery.Active); r.Micro="drink";p.transport=true;mgr.ResetMicro(&p,r);assert(p.stops==1&&travel.cancels==1); p.transport=false;p.flying=true;r.Micro="look";mgr.ResetMicro(&p,r);assert(p.stops==1); p.flying=false;busy=true;r.Micro="look";mgr.ResetMicro(&p,r);assert(p.stops==1); diff --git a/tests/clientless/test_adventure_rest.py b/tests/clientless/test_adventure_rest.py new file mode 100644 index 0000000000..2000d663e0 --- /dev/null +++ b/tests/clientless/test_adventure_rest.py @@ -0,0 +1,117 @@ +"""Exercise production recovery selection/clock with native navigation adapters.""" +from pathlib import Path +import subprocess +import tempfile + +root = Path(__file__).resolve().parents[2] +source = (root / 'src/server/game/World/AdventureBehaviorMgr.cpp').read_text() + +def function(signature): + start = source.index(signature) + body = source.index('{', start) + end, depth = body + 1, 1 + while depth: + depth += (source[end] == '{') - (source[end] == '}') + end += 1 + return source[start:end] + +code = r''' +#include +#include +#include +#include +#include +using uint32=uint32_t; +#define TC_LOG_INFO(...) ((void)0) +constexpr int UNIT_STAND_STATE_SLEEP=3,UNIT_STAND_STATE_SIT=1; +struct Position { + float x=0,y=0,z=0; + float GetPositionZ()const{return z;} + float GetExactDist(float a,float b,float c)const{return std::sqrt((x-a)*(x-a)+(y-b)*(y-b)+(z-c)*(z-c));} +}; +struct Guid{uint32 GetCounter(){return 26;}}; +struct Player:Position { + uint32 map=0;bool water=false,falling=false,phase=true;int stand=0,poses=0; + std::vector occupants; + uint32 GetMapId(){return map;}Guid GetGUID(){return {};} + bool IsInWater(){return water;}bool IsFalling(){return falling;} + void GetPlayerListInGrid(std::vector& out,float){out=occupants;} + bool IsInPhase(Player* p){return p->phase;} + void SetFacingTo(float){}void SetStandState(int value){stand=value;++poses;} + int GetStandState(){return stand;} +}; +struct AdventureMicroAction{std::string Requirement;}; +struct AdventureLocation { + struct {std::string Id="bed",Category="rest_sleep";uint32 MapId=0;float X=0,Y=0,Z=0,O=0;}Point; + bool allowed=true; +}; +struct Locations { + std::vector points; + auto const& Locations()const{return points;} + AdventureLocation const* Find(std::string const& id){for(auto const& p:points)if(p.Point.Id==id)return &p;return nullptr;} +}locations; +auto sAdventureLocationMgr=&locations; +enum class ClientlessTravelState{Moving,Arrived,PathRejected}; +struct Travel { + struct Status{ClientlessTravelState State=ClientlessTravelState::Moving;}status; + bool present=true;Status const* GetStatus(uint32){return present?&status:nullptr;} +}travel; +auto sClientlessTravelMgr=&travel; +class AdventureBehaviorMgr { +public: + struct RecoveryScene{bool Active=true,Approaching=true;std::string Point="bed",Posture="sleep";uint32 Remaining=3000,ApproachElapsed=0;}; + struct Record{Position Anchor;uint32 AnchorMap=0;RecoveryScene Recovery;std::string Detail;}; + bool Allowed(Player*,AdventureLocation const& p,std::string const&)const{return p.allowed;} + bool RecoveryAvailable(Player*,Record const&,AdventureMicroAction const&)const; + bool UpdateRecovery(Player*,Record&,uint32); +}; +''' +# Avoid a class/member name collision in the adapter. +code = code.replace('struct Locations {', 'struct LocationStore {') +code += function('bool AdventureBehaviorMgr::RecoveryAvailable(') +code += function('bool AdventureBehaviorMgr::UpdateRecovery(') +code += r''' +int main(){ + AdventureBehaviorMgr mgr;AdventureBehaviorMgr::Record r;Player p; + AdventureMicroAction sleep{"sleep"},ground{"ground"},unknown{"anything"}; + assert(!mgr.RecoveryAvailable(&p,r,sleep)); + locations.points.push_back({}); + assert(mgr.RecoveryAvailable(&p,r,sleep)); + assert(!mgr.RecoveryAvailable(&p,r,ground)&&!mgr.RecoveryAvailable(&p,r,unknown)); + auto& point=locations.points[0]; + point.Point.Category="tavern";assert(!mgr.RecoveryAvailable(&p,r,sleep)); // no arbitrary tavern floor + point.Point.Category="rest_sleep";point.Point.MapId=1;assert(!mgr.RecoveryAvailable(&p,r,sleep)); + point.Point.MapId=0;point.allowed=false;assert(!mgr.RecoveryAvailable(&p,r,sleep)); + point.allowed=true;point.Point.X=31;assert(!mgr.RecoveryAvailable(&p,r,sleep)); + point.Point.X=0;point.Point.Z=13;assert(!mgr.RecoveryAvailable(&p,r,sleep));point.Point.Z=0; + // Walking cannot consume sleep time or trigger the sleep pose. + for(int n=0;n<10;++n)assert(mgr.UpdateRecovery(&p,r,1000)); + assert(p.poses==0&&r.Recovery.Remaining==3000); + travel.status.State=ClientlessTravelState::Arrived;p.x=2; + assert(!mgr.UpdateRecovery(&p,r,1000)&&p.poses==0);p.x=0; + Player occupant;p.occupants={&occupant}; + assert(!mgr.UpdateRecovery(&p,r,1000)&&p.poses==0);p.occupants.clear(); + assert(mgr.UpdateRecovery(&p,r,1000)&&p.stand==UNIT_STAND_STATE_SLEEP&&!r.Recovery.Approaching); + assert(mgr.UpdateRecovery(&p,r,1000));assert(mgr.UpdateRecovery(&p,r,1000)); + assert(!mgr.UpdateRecovery(&p,r,1000)); // full duration starts after arrival + r.Recovery={};travel.status.State=ClientlessTravelState::PathRejected; + assert(!mgr.UpdateRecovery(&p,r,1000)); + travel.status.State=ClientlessTravelState::Moving;r.Recovery.ApproachElapsed=60000; + assert(!mgr.UpdateRecovery(&p,r,1000)); + r.Recovery={};travel.status.State=ClientlessTravelState::Arrived; + locations.points.clear();assert(!mgr.UpdateRecovery(&p,r,1000)); // removed on catalog reload + locations.points.push_back({});p.water=true;assert(!mgr.UpdateRecovery(&p,r,1000));p.water=false; + p.falling=true;assert(!mgr.UpdateRecovery(&p,r,1000));p.falling=false; + p.map=1;assert(!mgr.UpdateRecovery(&p,r,1000));p.map=0; + r.Recovery.Posture="ground";assert(!mgr.UpdateRecovery(&p,r,1000)); + locations.points[0].Point.Category="rest_ground"; + assert(mgr.UpdateRecovery(&p,r,1000)&&p.stand==UNIT_STAND_STATE_SIT); + p.stand=0;assert(!mgr.UpdateRecovery(&p,r,1000)); // externally interrupted posture +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-rest-') as folder: + cpp, binary = Path(folder) / 'test.cpp', Path(folder) / 'test' + cpp.write_text(code) + subprocess.run(['c++', '-std=c++17', str(cpp), '-o', str(binary)], check=True) + subprocess.run([str(binary)], check=True) +print('Recovery: authored places, bounds, arrival, occupancy, full rest duration, failure, reload and interruption passed.') diff --git a/tests/clientless/test_adventure_rest_fire.py b/tests/clientless/test_adventure_rest_fire.py new file mode 100644 index 0000000000..8f4643ef66 --- /dev/null +++ b/tests/clientless/test_adventure_rest_fire.py @@ -0,0 +1,77 @@ +"""Execute the additive rest-fire migration and the production context policy.""" +from pathlib import Path +import sqlite3 +import subprocess +import tempfile + +root = Path(__file__).resolve().parents[2] +sql = (root / 'sql/custom/world/2026_10_27_01_adventure_rest_fire.sql').read_text() +sql = sql.replace('INSERT IGNORE', 'INSERT OR IGNORE') +db = sqlite3.connect(':memory:') +db.executescript(''' +CREATE TABLE vcore_adventure_action ( + action_key TEXT PRIMARY KEY,kind TEXT,min_seconds INTEGER,max_seconds INTEGER,requirement TEXT,emote_id INTEGER); +CREATE TABLE vcore_adventure_action_intent ( + action_key TEXT,intent TEXT,weight REAL,PRIMARY KEY(action_key,intent)); +INSERT INTO vcore_adventure_action VALUES ('social_fire','social',25,50,'fire',0); +INSERT INTO vcore_adventure_action_intent VALUES ('social_fire','social',1); +''') +db.executescript(sql) +assert db.execute("SELECT kind,min_seconds,max_seconds,requirement FROM vcore_adventure_action WHERE action_key='rest_fire'").fetchone() == ('social',45,75,'fire') +assert db.execute("SELECT intent,weight FROM vcore_adventure_action_intent WHERE action_key='rest_fire'").fetchall() == [('rest',3.0)] +db.execute("UPDATE vcore_adventure_action_intent SET weight=7 WHERE action_key='rest_fire'") +db.executescript(sql) +assert db.execute("SELECT weight FROM vcore_adventure_action_intent WHERE action_key='rest_fire'").fetchone() == (7.0,) +assert db.execute("SELECT max_seconds FROM vcore_adventure_action WHERE action_key='social_fire'").fetchone() == (50,) +source = (root / 'src/server/game/World/AdventureBehaviorMgr.cpp').read_text() +a = source.index('AdventureSocialContext AdventureBehaviorMgr::SocialContext(') +b = source.index('\nbool AdventureBehaviorMgr::UpdateSocial(', a) +method = source[a:b] +code = r''' +#include "AdventureProfessionPolicy.h" +#include +#include "AdventureEconomyPolicy.h" +#include +#include +#include +#include +#include +using uint32=uint32_t; +struct Position{}; +struct Guid{uint32 GetCounter(){return 26;}}; +struct Player{Guid GetGUID(){return {};}}; +struct Profile{AdventureProfessionPolicy::Professions PrimaryProfessions;std::string Locale="deDE";}profile; +struct Lua{Profile* GetAdventureProfile(uint32){return &profile;}}lua; +auto sClientlessLuaEngine=&lua; +struct Location{struct{std::string Category;}Point;}location; +struct Locations{bool present=true;Location* Find(std::string const&){return present?&location:nullptr;}}locations; +auto sAdventureLocationMgr=&locations; +struct AdventureSocialContext{ + Position Anchor;uint32 MapId;bool Festival;std::string Locale,Intent; + std::mt19937& Random;std::deque& TargetHistory;std::deque& VariantHistory; + std::function Move;bool AllowCreateFire=true;std::string ServiceKind,LocationCategory;AdventureProfessionPolicy::Professions PrimaryProfessions; +}; +class AdventureBehaviorMgr{public: + struct Record{Position Anchor;uint32 AnchorMap=0;std::string Location,Intent;std::mt19937 Random;std::deque TargetHistory,VariantHistory;}; + bool LocalMove(Player*,Record&,Position const&,float){return true;} + AdventureSocialContext SocialContext(Player*,Record&); +}; +''' +code += method + r''' +int main(){ + Player p;AdventureBehaviorMgr mgr;AdventureBehaviorMgr::Record r;r.Intent="rest"; + for(auto category:{"tavern","settlement","rest_seat","rest_sleep"}){ + location.Point.Category=category;assert(!mgr.SocialContext(&p,r).AllowCreateFire); + } + location.Point.Category="rest_ground";assert(mgr.SocialContext(&p,r).AllowCreateFire); + locations.present=false;assert(!mgr.SocialContext(&p,r).AllowCreateFire);locations.present=true; + location.Point.Category="tavern";r.Intent="social";assert(mgr.SocialContext(&p,r).AllowCreateFire); + r.Intent="adventure";assert(mgr.SocialContext(&p,r).AllowCreateFire); +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-rest-fire-policy-') as folder: + cpp, binary = Path(folder)/'test.cpp', Path(folder)/'test' + cpp.write_text(code) + subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) + subprocess.run([str(binary)],check=True) +print('Rest fire: shared scene mapping, additive migration, preserved weights and authored creation-place policy passed.') diff --git a/tests/clientless/test_adventure_social.py b/tests/clientless/test_adventure_social.py index 4d999dc9c1..d1829f6d16 100644 --- a/tests/clientless/test_adventure_social.py +++ b/tests/clientless/test_adventure_social.py @@ -10,6 +10,12 @@ def function(signature): return source[a:c] code=r''' #include "AdventureSocialFlow.h" +#include "AdventureEconomyPolicy.h" +#include "AdventureExplorationPolicy.h" +#include +#include +#include +#include "AdventureProfessionPolicy.h" #include #include #include @@ -17,56 +23,72 @@ code=r''' using uint32=uint32_t; using namespace AdventureSocialFlow; #define TC_LOG_INFO(...) ((void)0) +constexpr float INVALID_HEIGHT=-100000; +constexpr int EMOTE_STATE_USE_STANDING=69,EMOTE_STATE_WORK_MINING=233,EMOTE_STATE_WORK_CHOPWOOD=234,EMOTE_STATE_KNEEL=68; constexpr int CookingFire=818,UNIT_NPC_EMOTESTATE=0,UNIT_STAND_STATE_SIT=1,UNIT_STAND_STATE_SIT_LOW_CHAIR=4,CMSG_GAMEOBJ_USE=1; +constexpr int EMOTE_ONESHOT_QUESTION=6,EMOTE_ONESHOT_POINT=25,EMOTE_ONESHOT_USE_STANDING=432; constexpr int EMOTE_ONESHOT_WAVE=3,EMOTE_ONESHOT_TALK=1,EMOTE_ONESHOT_YES=273,EMOTE_ONESHOT_CHEER=4,EMOTE_STATE_DANCE=10; constexpr int SPELL_VISUAL_KIT_DRINK=438,SPELL_VISUAL_KIT_FOOD=406,GAMEOBJECT_TYPE_CHAIR=7,SPELL_CAST_OK=0; -struct ObjectGuid{int id=0;uint32 GetCounter(){return id;}bool IsEmpty()const{return !id;}std::string ToString()const{return std::to_string(id);}}; -struct Unit;struct GameObject; +struct ObjectGuid{int id=0;uint32 GetCounter(){return id;}bool operator==(ObjectGuid const& other)const{return id==other.id;}bool IsEmpty()const{return !id;}std::string ToString()const{return std::to_string(id);}}; +struct Unit;struct GameObject;struct Player; struct WorldObject{ int kind=0;ObjectGuid guid{1};virtual ~WorldObject()=default; float x=0,y=0,z=0,heading=0;float GetPositionX(){return x;}float GetOrientation(){return heading;}float GetPositionY(){return y;}float GetPositionZ(){return z;} + float GetAngle(WorldObject*p){return std::atan2(p->y-y,p->x-x);} Unit* ToUnit();GameObject* ToGameObject();ObjectGuid GetGUID(){return guid;} }; -struct Unit:WorldObject{Unit(){kind=1;}}; +struct Unit:WorldObject{bool service=false;Unit(){kind=1;}}; struct GameObject:WorldObject{ struct Info{float size=1;struct{int triggeredEvent=0;uint32 chairslots=1,chairheight=1;}chair;}info; GameObject(){kind=2;guid.id=2;} + bool spawned=true;bool isSpawned(){return spawned;} int GetGoType(){return GAMEOBJECT_TYPE_CHAIR;}Info* GetGOInfo(){return &info;} }; Unit* WorldObject::ToUnit(){return kind==1?static_cast(this):nullptr;} GameObject* WorldObject::ToGameObject(){return kind==2?static_cast(this):nullptr;} struct WorldPacket{WorldPacket(int,int){}WorldPacket& operator<<(ObjectGuid){return *this;}}; struct Session{int uses=0;void HandleGameObjectUseOpcode(WorldPacket&){++uses;}}; +struct Position{float m_positionX=0,m_positionY=0,m_positionZ=0;void Relocate(Player*);float GetPositionX()const{return m_positionX;}float GetPositionY()const{return m_positionY;}float GetPositionZ()const{return m_positionZ;}}; +struct NativeMap{float GetHeight(int,float,float,float,bool,float){return 0;}}nativeMap; struct Player:Unit{ Player(){x=2;} std::vector emotes;int faces=0,casts=0;bool casting=false,sit=false,los=true;float distance=2;Session session; ObjectGuid selection; + bool visible=true;bool CanSeeOrDetect(GameObject*){return visible;} + NativeMap* GetMap(){return &nativeMap;}int GetPhaseShift(){return 0;} bool IsBeingTeleported(){return false;}bool IsSitState(){return sit;}bool IsNonMeleeSpellCast(bool){return casting;} - float GetExactDist(WorldObject*){return distance;}void SetFacingToObject(WorldObject*){++faces;} - void SetFacingTo(float){}int chairStand=5;uint32 GetStandState(){return sit?chairStand:0;} + float GetExactDist(Position const&){return distance;}float GetExactDist(WorldObject*){return distance;}void SetFacingToObject(WorldObject*){++faces;} + std::vector headings;void SetFacingTo(float f){heading=f;headings.push_back(f);}int chairStand=5;uint32 GetStandState(){return sit?chairStand:0;} void SetSelection(ObjectGuid g){selection=g;}void SetUInt32Value(int,int){} void HandleEmoteCommand(int id){emotes.push_back(id);}void SendPlaySpellVisualKit(int,int,int){} void SetStandState(int){sit=true;}int CastSpell(Player*,int,bool){++casts;casting=true;return SPELL_CAST_OK;} bool IsWithinLOSInMap(WorldObject*){return los;}bool IsWithinLOS(float,float,float){return los;}bool GetGameObjectIfCanInteractWith(ObjectGuid){return true;}Session* GetSession(){return &session;} }; -struct Position{}; -struct AdventureSocialContext{}; +void Position::Relocate(Player*p){m_positionX=p->x;m_positionY=p->y;m_positionZ=p->z;} +struct AdventureSocialContext{bool AllowCreateFire=true;std::string Intent="social";AdventureProfessionPolicy::Professions PrimaryProfessions;Position Anchor;std::deque TargetHistory;int departures=0;bool reachable=true;bool Move(Position const&,float){++departures;return reachable;}}; struct AdventureSocialScene{ - bool Active=true,Approaching=false,Casting=false,WaitingChair=false,Seated=false; - std::string Action="social_npc",Kind="npc",TargetKey;ObjectGuid Target{1},PreviousSelection;Position Destination; - uint32 Elapsed=0,CastElapsed=0,CheckTimer=0,Repaths=0;Sequence Sequence; + bool Active=true,Approaching=false,Casting=false,WaitingChair=false,Seated=false,Departing=false; + std::string Action="social_npc",Kind="npc",TargetKey;ObjectGuid Target{1},PreviousSelection;Position Destination,Origin;float Facing=0; + uint32 Elapsed=0,CastElapsed=0,CheckTimer=0,Repaths=0,ServiceVisits=0,ServiceDuration=30000;Sequence Sequence; }; WorldObject* target=nullptr;GameObject* fire=nullptr;bool friendly=true,approach=true; WorldObject* Resolve(Player*,ObjectGuid g){return g.id?target:nullptr;} bool InBounds(Player*,WorldObject* t,AdventureSocialContext&){return t!=nullptr;} bool Friendly(Player*,Unit*,AdventureSocialContext&){return friendly;} +bool ServiceMatches(Unit* unit,std::string const&){return unit->service;} +bool TargetVisible(Player* p,WorldObject* target,std::string const&){return p->IsWithinLOSInMap(target);} +std::vector services; +std::vector People(Player*,std::string const&,AdventureSocialContext&){return services;} +templateT* Pick(Player*,std::vector const& choices,AdventureSocialContext&){return choices.empty()?nullptr:choices[0];} +void Remember(std::deque& history,std::string key){history.push_back(key);} bool Approach(Player*,AdventureSocialScene& s,WorldObject*,AdventureSocialContext&){s.Approaching=true;return approach;} GameObject* Fire(Player*,AdventureSocialContext&){return fire;} bool CanMakeFire(Player*){return true;} void Say(Player*,std::string const&,AdventureSocialContext&){} uint32 Reaction(AdventureSocialContext&){return 11;} -enum class ClientlessTravelState{Moving,Arrived}; +enum class ClientlessTravelState{Moving,Arrived,Rejected}; struct Travel{struct{ClientlessTravelState State=ClientlessTravelState::Moving;}status;auto GetStatus(uint32){return &status;}}travel;auto sClientlessTravelMgr=&travel; +struct AdventureProfessionTargets{static bool Valid(Player*,WorldObject*,std::string const&,AdventureSocialContext const&){return true;}}; class AdventureSocialActions{public:static bool Update(Player*,AdventureSocialScene&,uint32,AdventureSocialContext&);}; '''.replace('Sequence Sequence;', 'AdventureSocialFlow::Sequence Sequence;') code+=function('bool OnChair(')+'\n'+function('bool AtFront(')+'\n'+function('std::vector < Step > Steps(')+'\n'+function('bool AdventureSocialActions::Update(') @@ -119,10 +141,56 @@ int main(){ assert(AdventureSocialActions::Update(&p,s,1000,c)&&p.casts==1); p.casting=false;active=true;for(unsigned i=0;i<12&&active;++i)active=AdventureSocialActions::Update(&p,s,1000,c); assert(!active&&p.casts==1); + // A disappeared fire must not be recreated in a rest context that forbids creation. + c.AllowCreateFire=false;s={};s.Target.id=0;s.Sequence.Start(Steps("fire",30000)); + auto castCount=p.casts;assert(!AdventureSocialActions::Update(&p,s,1000,c)&&p.casts==castCount); + c.AllowCreateFire=true; // Conversely, a real newly spawned object is confirmed and approached. s={};s.Target.id=0;s.Sequence.Start(Steps("fire",30000)); assert(AdventureSocialActions::Update(&p,s,1000,c));p.casting=false;fire=&chair; assert(AdventureSocialActions::Update(&p,s,1000,c)&&s.Target.id==2&&s.Approaching&&!s.Casting); + // Service roles must still match while the scene is running. + target=&npc;fire=nullptr;npc.service=false;p.sit=false;p.x=2;p.distance=2; + s={};s.Kind="banking";s.Sequence.Start(Steps(s.Kind,15000)); + assert(!AdventureSocialActions::Update(&p,s,1000,c));npc.service=true; + // The visit stays active until actual departure arrival, without more cues. + s={};s.Kind="banking";s.Sequence.Start(Steps(s.Kind,15000)); + for(int i=0;i<60&&!s.Departing;++i) assert(AdventureSocialActions::Update(&p,s,1000,c)); + assert(s.Departing&&c.departures==1);auto gestures=p.emotes.size(); + travel.status.State=ClientlessTravelState::Moving; + assert(AdventureSocialActions::Update(&p,s,1000,c)&&p.emotes.size()==gestures); + travel.status.State=ClientlessTravelState::Rejected;assert(!AdventureSocialActions::Update(&p,s,1000,c)); + // Comparing explicitly changes to a different vendor, before departing. + Unit other;other.guid.id=3;other.service=true;services={&npc,&other}; + s={};s.Kind="vendor_compare";s.Sequence.Start(Steps(s.Kind,12000));travel.status.State=ClientlessTravelState::Arrived; + for(int i=0;i<60&&!s.ServiceVisits;++i) assert(AdventureSocialActions::Update(&p,s,1000,c)); + assert(s.ServiceVisits==1&&s.Target.id==3&&s.Approaching&&!s.Departing); + target=&other; + for(int i=0;i<60&&!s.Departing;++i) assert(AdventureSocialActions::Update(&p,s,1000,c)); + assert(s.Departing);assert(!AdventureSocialActions::Update(&p,s,1000,c)); + // No second vendor: never pretend a successful comparison or departure. + target=&npc;services={&npc};s={};s.Kind="vendor_compare";s.Sequence.Start({{Cue::Listen,1}}); + assert(AdventureSocialActions::Update(&p,s,1000,c)); + assert(!AdventureSocialActions::Update(&p,s,1000,c)&&!s.ServiceVisits&&!s.Departing); + + // Investigation waits for genuine arrival, then only gestures at the object. + s={};s.Kind="inspect_detail";s.Target.id=2;s.Sequence.Start(Steps(s.Kind,15000)); + target=&chair;p.sit=false;p.x=2;p.distance=2;p.visible=p.los=true;chair.spawned=true; + s.Approaching=true;travel.status.State=ClientlessTravelState::Moving; + auto oldUses=p.session.uses,oldCasts=p.casts;auto oldEmotes=p.emotes.size(); + assert(AdventureSocialActions::Update(&p,s,1000,c)&&p.emotes.size()==oldEmotes); + travel.status.State=ClientlessTravelState::Arrived; + active=true;for(int i=0;i<60&&active;++i) active=AdventureSocialActions::Update(&p,s,1000,c); + assert(!active&&p.session.uses==oldUses&&p.casts==oldCasts); + assert(std::find(p.emotes.begin()+oldEmotes,p.emotes.end(),EMOTE_ONESHOT_POINT)!=p.emotes.end()); + s={};s.Kind="inspect";s.Target.id=2;s.Sequence.Start(Steps(s.Kind,15000));chair.spawned=false; + oldEmotes=p.emotes.size();assert(!AdventureSocialActions::Update(&p,s,1000,c)&&p.emotes.size()==oldEmotes);chair.spawned=true; + p.visible=false;assert(!AdventureSocialActions::Update(&p,s,1000,c));p.visible=true; + // Looking around uses a fixed initial direction rather than spinning each tick. + s={};s.Kind="scout";s.Target.id=0;s.Facing=1.2f;s.Sequence.Start(Steps(s.Kind,15000));p.headings.clear(); + active=true;for(int i=0;i<60&&active;++i) active=AdventureSocialActions::Update(&p,s,1000,c); + assert(!active&&p.headings.size()==2&&std::fabs(p.headings[0]-0.45f)<0.001&&std::fabs(p.headings[1]-1.95f)<0.001); + } ''' with tempfile.TemporaryDirectory(prefix='vcore-social-test-') as folder: diff --git a/tests/clientless/test_adventure_social_fire.py b/tests/clientless/test_adventure_social_fire.py index c67da13a73..6925a20361 100644 --- a/tests/clientless/test_adventure_social_fire.py +++ b/tests/clientless/test_adventure_social_fire.py @@ -9,15 +9,22 @@ def function(signature): return s[a:e] code=r''' #include "AdventureBehaviorPolicy.h" +#include "AdventureProfessionPolicy.h" #include +#include "AdventureExplorationPolicy.h" #include +#include using uint32=uint32_t; using AdventureBehaviorPolicy::Normalize; constexpr uint32 CookingFire=818; -struct GameObject{bool active=true,bounds=true;uint32 spell=818;std::string name="Localised unknown name";float distance=2;bool isSpawned(){return active;}std::string GetName(){return name;}uint32 GetSpellId(){return spell;}}; -struct AdventureSocialContext{}; +struct Guid{std::string ToString(){return "fire";}}; +struct GameObject{Guid GetGUID(){return {};}bool active=true,bounds=true;uint32 spell=818;std::string name="Localised unknown name";float distance=2;bool isSpawned(){return active;}std::string GetName(){return name;}uint32 GetSpellId(){return spell;}}; +struct AdventureSocialContext{std::string Intent,LocationCategory;bool AllowCreateFire=true,Festival=false;std::vector TargetHistory;AdventureProfessionPolicy::Professions PrimaryProfessions;}; +struct AdventureMicroAction{std::string Requirement;}; +constexpr int GAMEOBJECT_TYPE_CHAIR=7; struct History{bool cooldown=false;bool HasCooldown(uint32 id){assert(id==818);return cooldown;}}; struct Player { + uint32 area=1,zone=1;uint32 GetAreaId(){return area;}uint32 GetZoneId(){return zone;} bool learned=false,outdoors=true,water=false,falling=false,casting=false;int learns=0;History history;std::vector objects; bool HasSpell(uint32 id){assert(id==818);return learned;}void LearnSpell(uint32 id,bool dependent){assert(id==818&&!dependent);learned=true;++learns;} bool IsOutdoors(){return outdoors;}bool IsInWater(){return water;}bool IsFalling(){return falling;}bool IsNonMeleeSpellCast(bool){return casting;} @@ -25,10 +32,20 @@ struct Player { void GetGameObjectListWithEntryInGrid(std::vector& out,int,float){out=objects;} }; bool InBounds(Player*,GameObject* go,AdventureSocialContext&){return go->bounds;} +enum class AreaFlags:uint32 {LinkedChat=0x100,AllowTradeChannel=8}; +struct Flags{uint32 value=0;bool HasFlag(AreaFlags flag)const{return (value&uint32(flag))!=0;}}; +struct Area{uint32 ParentAreaID=0,flags=0;Flags GetFlags()const{return {flags};}}; +struct Areas{std::unordered_map rows{{1,{}},{2,{0,0x100}},{3,{2,0}},{4,{0,8}}}; + Area const* LookupEntry(uint32 id){auto i=rows.find(id);return i==rows.end()?nullptr:&i->second;}}areas; +auto& sAreaTableStore=areas; struct Spells{bool exists=true;void* GetSpellInfo(uint32 id){assert(id==818);return exists?this:nullptr;}}spells;auto sSpellMgr=&spells; -class AdventureSocialActions{public:static void Prepare(Player*);}; +std::vector Objects(Player*,int,AdventureSocialContext&){return {};} +std::vector People(Player*,std::string const&,AdventureSocialContext&){return {};} +std::vector InspectionObjects(Player*,AdventureSocialContext&){return {};} +struct AdventureProfessionTargets{static std::vector Find(Player*,std::string const&,AdventureSocialContext&){return {};}}; +class AdventureSocialActions{public:static void Prepare(Player*);static bool Available(Player*,AdventureMicroAction const&,AdventureSocialContext&);}; ''' -code+=function('GameObject * Fire(')+'\n'+function('bool CanMakeFire(')+'\n'+function('void AdventureSocialActions::Prepare(') +code+=function('GameObject * Fire(')+'\n'+function('bool CanMakeFire(')+'\n'+function('void AdventureSocialActions::Prepare(')+'\n'+function('bool AdventureSocialActions::Available(') code+=r''' int main(){ Player p;AdventureSocialContext c;GameObject fire; @@ -37,8 +54,32 @@ int main(){ p.history.cooldown=true;assert(!CanMakeFire(&p));p.history.cooldown=false; p.outdoors=false;assert(!CanMakeFire(&p));p.outdoors=true; p.water=true;assert(!CanMakeFire(&p));p.water=false;p.falling=true;assert(!CanMakeFire(&p));p.falling=false; + // City rules apply even outdoors, including a city parent's unflagged district. + p.area=p.zone=2;assert(!CanMakeFire(&p)); + p.area=3;p.zone=1;assert(!CanMakeFire(&p)); + p.area=1;p.zone=2;assert(!CanMakeFire(&p)); + p.area=p.zone=4;assert(!CanMakeFire(&p)); // trade-channel town flag + p.area=999;p.zone=1;assert(!CanMakeFire(&p)); // unknown data never grants permission + areas.rows[5]={5,0};p.area=5;assert(!CanMakeFire(&p)); // malformed hierarchy + p.area=p.zone=1;assert(CanMakeFire(&p)); + p.objects={&fire};p.area=p.zone=2; + assert(AdventureSocialActions::Available(&p,{"fire"},c)); // existing city fire remains usable + assert(!AdventureSocialActions::Available(&p,{"make_fire"},c)); + p.outdoors=false;assert(AdventureSocialActions::Available(&p,{"fire"},c));p.outdoors=true; + p.objects.clear();assert(!AdventureSocialActions::Available(&p,{"fire"},c)); + p.area=p.zone=1; p.objects={&fire};assert(Fire(&p,c)==&fire); // native spell ID works regardless of locale/name fire.spell=0;assert(Fire(&p,c)==nullptr);fire.name="Basic Campfire";assert(Fire(&p,c)==&fire); + // Rest may create a fire only at an authored ground-rest location. Existing + // fires remain usable in a tavern or at another suitable resting location. + fire.spell=818;c.AllowCreateFire=false; + assert(AdventureSocialActions::Available(&p,{"fire"},c)); + assert(!AdventureSocialActions::Available(&p,{"make_fire"},c)); + p.objects.clear();assert(!AdventureSocialActions::Available(&p,{"fire"},c)); + c.AllowCreateFire=true;assert(AdventureSocialActions::Available(&p,{"fire"},c)); + assert(AdventureSocialActions::Available(&p,{"make_fire"},c)); + p.outdoors=false;assert(!AdventureSocialActions::Available(&p,{"fire"},c));p.outdoors=true; + p.objects={&fire}; fire.active=false;assert(Fire(&p,c)==nullptr);fire.active=true;fire.bounds=false;assert(Fire(&p,c)==nullptr); } ''' @@ -46,4 +87,4 @@ with tempfile.TemporaryDirectory(prefix='vcore-social-fire-') as folder: cpp=Path(folder)/'test.cpp';binary=Path(folder)/'test';cpp.write_text(code) subprocess.run(['c++','-std=c++17','-I',str(root/'src/server/game/World'),str(cpp),'-o',str(binary)],check=True) subprocess.run([str(binary)],check=True) -print('Native fire detection by spell ID, idempotent shared spell provisioning, cooldown and outdoor/water checks passed without a profession gate.') +print('Shared fire: native detection/provisioning, buildings/city/parent/zone restrictions, existing fires and outdoor/water checks passed.') diff --git a/tests/clientless/test_adventure_walk.py b/tests/clientless/test_adventure_walk.py index 1b8de9ed26..4156b5c23f 100644 --- a/tests/clientless/test_adventure_walk.py +++ b/tests/clientless/test_adventure_walk.py @@ -7,6 +7,8 @@ a=s.index('bool ClientlessTravelMgr::StartTravel(');b=s.index('void ClientlessTr start=s[a:b] a=s.index(' player->GetMotionMaster()->MoveSmoothPath(');b=s.index(' Position const& segmentEnd',a) launch=s[a:b] +a=s.index(' player->AttackStop();');b=s.index(' player->StopMoving();',a) +cast_setup=s[a:b] code=r''' #include #include @@ -19,6 +21,7 @@ struct Position{float GetPositionX()const{return 0;}float GetPositionY()const{re struct Guid{uint32 GetCounter(){return 26;}}; struct Motion{bool walk=false;int calls=0;void MoveSmoothPath(uint32,Position const*,std::size_t,bool w){walk=w;++calls;}}motion; struct Player{ + bool blocked=false;int castsStopped=0;void AttackStop(){}bool IsMovementPreventedByCasting(){return blocked;}void CastStop(){++castsStopped;} bool IsInWorld(){return true;}Guid GetGUID(){return {};}uint32 GetMapId(){return 0;}Motion* GetMotionMaster(){return &motion;} }; enum class ClientlessTravelState{Moving}; @@ -36,9 +39,11 @@ public: code+=launch+r''' return true;} }; -'''+start+r''' +'''+start+'\nvoid prepareMovement(Player* player){\n'+cast_setup+'\n}\n'+r''' int main(){ ClientlessTravelMgr mgr;Player p;Position goal; + prepareMovement(&p);assert(p.castsStopped==0); // native move-allowed channel survives + p.blocked=true;prepareMovement(&p);assert(p.castsStopped==1);p.blocked=false; mgr.StartTravel(&p,goal,false,false,true); assert(motion.walk&&mgr._records[26].Walk&&!mgr._records[26].AllowGroundMount); mgr.LaunchPath(&p,mgr._records[26]);assert(motion.walk); // repath preserves gait diff --git a/tests/clientless/test_clientless_companion.py b/tests/clientless/test_clientless_companion.py new file mode 100644 index 0000000000..be671f43ac --- /dev/null +++ b/tests/clientless/test_clientless_companion.py @@ -0,0 +1,113 @@ +"""Execute the production native companion/item adapter against deterministic core doubles.""" +from pathlib import Path +import subprocess,tempfile +root=Path(__file__).resolve().parents[2] +source=(root/'src/server/game/World/ClientlessCompanionMgr.cpp').read_text() +header=(root/'src/server/game/World/ClientlessCompanionMgr.h').read_text() +header='\n'.join(line for line in header.splitlines() if not line.startswith('#include')) +code=r''' +#include +#include +#include +#include +#include +#include +#include +using uint32=uint32_t;using uint8=uint8_t; +#define TC_GAME_API +#define TC_LOG_INFO(...) ((void)0) +#define TC_LOG_WARN(...) ((void)0) +struct ObjectGuid {int id=0;bool IsEmpty()const{return !id;}bool operator==(ObjectGuid b)const{return id==b.id;}bool operator!=(ObjectGuid b)const{return id!=b.id;}std::string ToString()const{return std::to_string(id);}uint32 GetCounter()const{return id;}}; +constexpr float DEFAULT_FOLLOW_ANGLE=1.0f; +constexpr uint32 SPELL_EFFECT_SUMMON=28,UNIT_CREATED_BY_SPELL=1,ITEM_SPELLTRIGGER_ON_USE=0,TARGET_FLAG_UNIT_MINIPET=0x10000,SPELL_CAST_OK=0; +enum class SummonTitle{Pet,Companion}; +struct Properties{int Title=1;}props; +struct PropertyStore{Properties const* LookupEntry(uint32 id){return id==41?&props:nullptr;}}propertyStore;auto& sSummonPropertiesStore=propertyStore; +struct SpellInfo {uint32 Id=10673;bool channel=false,moveAllowed=false;struct Effect{uint32 Effect=28,MiscValueB=41;};std::vector Effects{{}};bool IsChanneled()const{return channel;}bool IsMoveAllowedChannel()const{return moveAllowed;}}; +struct Spells{SpellInfo cat,leash;Spells(){leash.Id=48722;leash.Effects.clear();}SpellInfo const* GetSpellInfo(uint32 id){return id==10673?&cat:id==48722?&leash:nullptr;}}spells;auto sSpellMgr=&spells; +struct ItemTemplate{struct Effect{int Trigger=0,SpellID=48722;};std::vector Effects{{}};}itemTemplate; +struct Item{ItemTemplate const* GetTemplate(){return &itemTemplate;}uint8 GetBagSlot(){return 255;}uint8 GetSlot(){return 24;}ObjectGuid GetGUID(){return {7};}}item; +struct Objects{ItemTemplate const* GetItemTemplate(uint32 id){return id==37460?&itemTemplate:nullptr;}}objects;auto sObjectMgr=&objects; +namespace WorldPackets::Spells {struct SpellCastRequest{int SpellID=0;struct {uint32 Flags=0;std::optional Unit;}Target;};} +struct SpellCastRequestItemData{uint8 bag,slot;ObjectGuid guid;SpellCastRequestItemData(uint8 b,uint8 s,ObjectGuid g):bag(b),slot(s),guid(g){}}; +struct PendingSpellCastRequest{WorldPackets::Spells::SpellCastRequest request;SpellCastRequestItemData item;PendingSpellCastRequest(WorldPackets::Spells::SpellCastRequest&& r,SpellCastRequestItemData i):request(r),item(i){}}; +struct Creature{ + struct Motion{int follows=0;templatevoid MoveFollow(T*,float distance,float,bool formation,bool catchUp,bool face){assert(distance==1.5f&&!formation&&catchUp&&face);++follows;}}motion; + Motion* GetMotionMaster(){return &motion;} + ObjectGuid guid{2},owner{26};uint32 created=10673;bool alive=true,aura=false,summon=true;int dismissals=0,removals=0; + bool IsAlive(){return alive;}ObjectGuid GetOwnerGUID(){return owner;}ObjectGuid GetGUID(){return guid;}uint32 GetUInt32Value(uint32){return created;}uint32 GetEntry(){return 7385;} + bool HasAura(uint32 id,ObjectGuid caster){return aura&&id==48722&&caster.id==26;} + void RemoveAurasDueToSpell(uint32 id,ObjectGuid caster){assert(id==48722&&caster.id==26);aura=false;++removals;} + bool IsSummon(){return summon;}Creature* ToTempSummon(){return this;}void UnSummon(){++dismissals;alive=false;} +}; +struct History{bool cooldown=false;bool HasGlobalCooldown(SpellInfo const*){return cooldown;}}; +struct Player{ + bool learned=false,alive=true,combat=false,transport=false,taxi=false,flying=false,teleport=false,hasItem=false,casting=false,requestAllowed=true,applyLeash=true; + Creature* pet=nullptr;int casts=0,learns=0,adds=0,requests=0,interrupts=0;History history; + float GetExactDist(Creature*){return 2;}bool IsWithinLOSInMap(Creature*){return true;} + ObjectGuid GetGUID(){return {26};}bool IsInWorld(){return true;}bool IsAlive(){return alive;}bool IsInCombat(){return combat;}bool GetTransport(){return transport;}bool IsInFlight(){return taxi;}bool IsFlying(){return flying;}bool IsBeingTeleported(){return teleport;} + bool HasSpell(uint32 id){return id==10673&&learned;}void LearnSpell(uint32 id,bool){assert(id==10673);learned=true;++learns;} + Item* GetItemByEntry(uint32 id){return hasItem&&id==37460?&item:nullptr;}bool AddItem(uint32 id,int count){assert(id==37460&&count==1);++adds;hasItem=true;return true;} + ObjectGuid GetCritterGUID(){return pet?pet->guid:ObjectGuid{};} + int CastSpell(Player*,uint32 id,bool triggered){assert(id==10673&&!triggered);++casts;return SPELL_CAST_OK;} + bool CanRequestSpellCast(SpellInfo const*){return requestAllowed;}History* GetSpellHistory(){return &history;}bool IsNonMeleeSpellCast(bool){return casting;} + void RequestSpellCast(std::unique_ptr r,SpellInfo const* s){ + assert(s->Id==48722&&r->request.SpellID==48722&&r->request.Target.Flags==TARGET_FLAG_UNIT_MINIPET); + assert(r->request.Target.Unit->id==2&&r->item.guid.id==7&&r->item.bag==255&&r->item.slot==24); + ++requests;if(pet&&applyLeash)pet->aura=true; + } + void InterruptNonMeleeSpells(bool,uint32 id){assert(id==10673||id==48722);++interrupts;} +}; +namespace ObjectAccessor{Creature* GetCreature(Player& p,ObjectGuid guid){return p.pet&&p.pet->guid==guid?p.pet:nullptr;}} +''' +code+=header+'\n'+source[source.index('namespace\n'):]+r''' +int main(){ + Player p;ClientlessCompanionScene s;Creature cat; + assert(!ClientlessCompanionMgr::Prepare(&p,123,37460));assert(p.learns==0&&p.adds==0); + assert(ClientlessCompanionMgr::Prepare(&p,10673,37460));assert(p.learns==1&&p.adds==1); + assert(ClientlessCompanionMgr::Prepare(&p,10673,37460));assert(p.learns==1&&p.adds==1); + p.combat=true;assert(!ClientlessCompanionMgr::Start(&p,s,10673,37460));p.combat=false; + assert(ClientlessCompanionMgr::Start(&p,s,10673,37460)&&p.casts==1&&s.Summoned); + for(int i=0;i<4;++i)assert(ClientlessCompanionMgr::Update(&p,s,1000)&&!s.Ready); + p.pet=&cat;assert(ClientlessCompanionMgr::Update(&p,s,1000)&&s.Companion.id==2&&p.requests==1&&!s.Ready&&cat.motion.follows==1); + assert(ClientlessCompanionMgr::Update(&p,s,1000)&&s.Ready&&cat.aura); + ClientlessCompanionMgr::Reset(&p,s);assert(cat.dismissals==1&&cat.removals==1&&!s.Active); + // Reuse a matching pre-existing pet and leash without taking ownership of either. + cat.alive=true;cat.aura=true;p.pet=&cat; + assert(ClientlessCompanionMgr::Start(&p,s,10673,37460)&&!s.Summoned); + assert(ClientlessCompanionMgr::Update(&p,s,1000)&&s.Ready&&!s.OwnLeash); + ClientlessCompanionMgr::Reset(&p,s);assert(cat.dismissals==1&&cat.removals==1&&cat.aura&&cat.motion.follows==1); + // Another owner's or another spell's companion must not be replaced or used. + cat.owner.id=99;assert(!ClientlessCompanionMgr::Start(&p,s,10673,37460));cat.owner.id=26; + cat.created=999;assert(!ClientlessCompanionMgr::Start(&p,s,10673,37460));cat.created=10673; + // Missing optional item does not block a real pet walk. + p.hasItem=false;cat.aura=false;assert(ClientlessCompanionMgr::Start(&p,s,10673,37460)); + assert(ClientlessCompanionMgr::Update(&p,s,1000)&&s.Ready);ClientlessCompanionMgr::Reset(&p,s); + // The native item request is deferred until it can execute immediately. + p.hasItem=true;p.history.cooldown=true;assert(ClientlessCompanionMgr::Start(&p,s,10673,37460)); + auto requests=p.requests;assert(ClientlessCompanionMgr::Update(&p,s,1000)&&!s.Ready&&p.requests==requests); + p.history.cooldown=false;p.applyLeash=false;assert(ClientlessCompanionMgr::Update(&p,s,1000)); + for(int i=0;i<8;++i)assert(ClientlessCompanionMgr::Update(&p,s,1000));assert(s.Ready&&!cat.aura); + p.pet=nullptr;assert(!ClientlessCompanionMgr::Update(&p,s,1000));ClientlessCompanionMgr::Reset(&p,s); + // No fabricated companion after an unsuccessful normal summon cast. + assert(ClientlessCompanionMgr::Start(&p,s,10673,37460)); + bool active=true;for(int i=0;i<10&&active;++i)active=ClientlessCompanionMgr::Update(&p,s,1000); + assert(!active&&!s.Ready);ClientlessCompanionMgr::Reset(&p,s); + // Immobile channels are skipped; native move-allowed leash channels are used. + p.pet=&cat;spells.leash.channel=true;assert(ClientlessCompanionMgr::Start(&p,s,10673,37460)); + requests=p.requests;assert(ClientlessCompanionMgr::Update(&p,s,1000)&&s.Ready&&p.requests==requests); + ClientlessCompanionMgr::Reset(&p,s);spells.leash.moveAllowed=true;p.applyLeash=true; + assert(ClientlessCompanionMgr::Start(&p,s,10673,37460)); + assert(ClientlessCompanionMgr::Update(&p,s,1000)&&p.requests==requests+1); + assert(ClientlessCompanionMgr::Update(&p,s,1000)&&s.Ready&&cat.aura); + cat.aura=false;requests=p.requests; + assert(ClientlessCompanionMgr::Update(&p,s,1000)&&!s.Ready&&s.LeashRetries==1); + assert(ClientlessCompanionMgr::Update(&p,s,1000)&&p.requests==requests+1); + assert(ClientlessCompanionMgr::Update(&p,s,1000)&&s.Ready&&s.Leashed); +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-companion-') as folder: + cpp=Path(folder)/'test.cpp';binary=Path(folder)/'test';cpp.write_text(code) + subprocess.run(['c++','-std=c++17',str(cpp),'-o',str(binary)],check=True) + subprocess.run([str(binary)],check=True) +print('Native companion: provisioning, delayed summon, ownership, real item target, leash confirmation/timeout, reuse and cleanup passed.') diff --git a/tests/clientless/test_flight_policy.py b/tests/clientless/test_flight_policy.py index 1eb4170c21..ac74729a27 100644 --- a/tests/clientless/test_flight_policy.py +++ b/tests/clientless/test_flight_policy.py @@ -56,7 +56,7 @@ class ClientlessFlightMgr{public: uint32 areaCode=87,zoneCode=12; std::pair AreaZone(Player const*,uint32,Position const&)const{return {areaCode,zoneCode};} bool Enabled(Player const*)const;bool Preferred(Player const*,uint32,Position const&)const; - float Estimate(Player const*,uint32,Position const&,Position const&)const; + float Estimate(Player const*,uint32,Position const&,Position const&,bool recovery=false)const; void Fail(Player*,Record&,std::string const&); }; ''' @@ -79,6 +79,12 @@ int main(){ assert(mgr.Estimate(&p,571,a,b) +enum UnitMoveType { MOVE_WALK, MOVE_RUN, MOVE_FLIGHT }; +struct Spline { + bool finalized=true;float velocity=2.5f; + bool Finalized(){return finalized;}float Velocity(){return velocity;} +}; +struct Unit { + bool player=false,flying=false,walking=false; + Spline spline;Spline* movespline=&spline; + struct { unsigned flags=0;unsigned GetMovementFlags(){return flags;} }m_movementInfo; + bool IsPlayer(){return player;}bool IsFlying(){return flying;}bool IsWalking(){return walking;} + float GetSpeed(UnitMoveType t){return t==MOVE_WALK?2.5f:t==MOVE_FLIGHT?14.f:7.f;} +}; +UnitMoveType SelectSpeedType(unsigned flags){return flags?MOVE_WALK:MOVE_RUN;} +''' +code += source[start:end] +code += r''' +int main(){ + Unit cat,target;target.player=true;target.spline.finalized=false; + // SetWalk changes spline speed while player movement flags still select running. + assert(target.m_movementInfo.flags==0); + assert(GetVelocity(&cat,&target,true)==2.5f); + // Explicit server velocities, running splines and creature targets follow suit. + target.spline.velocity=1.75f;assert(GetVelocity(&cat,&target,true)==1.75f); + target.spline.velocity=7.f;assert(GetVelocity(&cat,&target,true)==7.f); + target.player=false;target.spline.velocity=3.f;assert(GetVelocity(&cat,&target,true)==3.f); + // Ordinary client movement retains native flag-based gait selection. + target.player=true;target.spline.finalized=true; + assert(GetVelocity(&cat,&target,true)==7.f); + target.m_movementInfo.flags=1;assert(GetVelocity(&cat,&target,true)==2.5f); + target.player=false;assert(GetVelocity(&cat,&target,true)==7.f); + // Independent followers keep their own walk/run/flight speed. + cat.walking=true;assert(GetVelocity(&cat,&target,false)==2.5f); + cat.walking=false;assert(GetVelocity(&cat,&target,false)==7.f); + cat.flying=true;assert(GetVelocity(&cat,&target,false)==14.f); +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-follow-velocity-') as folder: + cpp = Path(folder) / 'test.cpp' + binary = Path(folder) / 'test' + cpp.write_text(code) + subprocess.run(['c++', '-std=c++17', str(cpp), '-o', str(binary)], check=True) + subprocess.run([str(binary)], check=True) +print('Native follow: actual player/creature spline velocity, client gait and independent follower speeds passed.') diff --git a/tests/clientless/test_free_flight_planner.py b/tests/clientless/test_free_flight_planner.py index aa1ce8213f..9a9d777dfe 100644 --- a/tests/clientless/test_free_flight_planner.py +++ b/tests/clientless/test_free_flight_planner.py @@ -60,18 +60,25 @@ ClientlessTravelGraphMgr g;node(g,"A",0);node(g,"B",1000);edge(g,"A","B",1,1000) for(float x:{0.f,100.f,700.f,900.f,1000.f}){ClientlessTravelEdgePoint p;p.X=x;g._edgePoints[1].push_back(p);} ClientlessTravelLocationGoal goal;goal.X=700;goal.Y=20;goal.AnchorRadius=50; // A stored path exists. Its interior exit must still win without remote MMAP. -auto r=plan(g,{},goal,1);assert(r.back().GroundEndIndex==2);assert(r.back().X==700); +auto r=plan(g,{},goal,1);assert(r.back().GroundEndIndex==2);assert(r.back().X==700);assert(r.back().GroundContinuationNode=="B"); // Preserve a valid entry even when another entry reaches the endpoint cheaper. Player p;p.x=100;r=plan(g,p,goal,900);assert(r.front().NodeKey=="virtual_ground_entry");assert(r.back().GroundStartIndex==1);assert(r.back().GroundEndIndex==2); // Reverse direction uses execution-order indices. -ClientlessTravelGraphMgr rev=g;rev._edges.clear();edge(rev,"B","A",1,1000,true);p.x=900;goal.X=100;r=plan(rev,p,goal,1);assert(r.back().EdgeReverse);assert(r.back().GroundStartIndex==1);assert(r.back().GroundEndIndex==3); +ClientlessTravelGraphMgr rev=g;rev._edges.clear();edge(rev,"B","A",1,1000,true);p.x=900;goal.X=100;r=plan(rev,p,goal,1);assert(r.back().EdgeReverse);assert(r.back().GroundStartIndex==1);assert(r.back().GroundEndIndex==3);assert(r.back().GroundContinuationNode=="A"); // Blacklist the nearest failed exit: select the next eligible waypoint. goal.X=700;goal.AnchorRadius=250;r=plan(g,{},goal,1,{"exit:1:2F"});assert(r.back().GroundEndIndex==3); +// Once a whole direction has been traversed without a usable exit, its stale +// estimate must not cause another optimistic exit plan. The actual road stays usable. +{auto blocked=std::unordered_set{"ground_exit_edge:1F"}; + std::vector partial;bool complete;std::string reached,error; + goal.AnchorRadius=50; + Player startAtA;assert(g.PlanAdaptiveRoute(&startAtA,"B",1,200,partial,complete,reached,error,nullptr,&blocked,&goal)); + assert(!complete);for(auto const& step:partial)assert(step.NodeKey!="virtual_ground_exit");} // Regular anchors use the same estimated local cost without remote MMAP. goal.X=1000;goal.Y=0;goal.AnchorRadius=10;r=plan(g,{},goal,1);assert(r.back().NodeKey=="B");assert(r.back().GroundEndIndex==-1); // Forward entry after a transport can exit on the same road before its endpoint. ClientlessTravelGraphMgr f=g;node(f,"S",-1000);node(f,"T",100);edge(f,"S","T",2,1,false,"taxi");p.x=-1000;goal.X=700;goal.Y=20;goal.AnchorRadius=50;PathGenerator::available=true;PathGenerator::maxDistance=150; -r=plan(f,p,goal,1);assert(r.back().GroundStartIndex==1);assert(r.back().GroundEndIndex==2);assert(r[r.size()-2].NodeKey=="virtual_ground_entry"); +r=plan(f,p,goal,1);assert(r.back().GroundStartIndex==1);assert(r.back().GroundEndIndex==2);assert(r.back().GroundContinuationNode=="B");assert(r[r.size()-2].NodeKey=="virtual_ground_entry"); // A regular node outside the exit radius must not win an optimistic local leg. ClientlessTravelGraphMgr detour=g;node(detour,"N",300,0);edge(detour,"A","N",5,1,false,"taxi");goal.X=700;goal.Y=20;goal.AnchorRadius=1000;p.x=0;PathGenerator::available=false; r=plan(detour,p,goal,1);assert(r.back().NodeKey=="virtual_ground_exit"); diff --git a/tests/clientless/test_ground_exit_continuation.py b/tests/clientless/test_ground_exit_continuation.py new file mode 100644 index 0000000000..9623392780 --- /dev/null +++ b/tests/clientless/test_ground_exit_continuation.py @@ -0,0 +1,194 @@ +"""Execute production optional-exit methods with deterministic movement doubles.""" +from pathlib import Path +import subprocess +import tempfile + +root = Path(__file__).resolve().parents[2] +source = (root / 'src/server/game/World/ClientlessActionExecutorMgr.cpp').read_text() +header = (root / 'src/server/game/World/ClientlessActionExecutorMgr.h').read_text() +graph = (root / 'src/server/game/World/ClientlessTravelGraphMgr.h').read_text() + +def method(signature): + start = source.index(signature) + opening = source.index('{', start) + depth, end = 1, opening + 1 + while depth: + depth += (source[end] == '{') - (source[end] == '}') + end += 1 + return source[start:end] + +preamble = r''' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using uint8=uint8_t; using uint32=uint32_t; using uint64=uint64_t; using int32=int32_t; +#define TC_GAME_API +#define TC_LOG_INFO(...) ((void)0) +#define TC_LOG_WARN(...) ((void)0) +#define TC_LOG_DEBUG(...) ((void)0) +struct Player; +struct ClientlessAction; +struct Position { + float x=0,y=0,z=0,o=0; + void Relocate(float a,float b,float c,float d=0){x=a;y=b;z=c;o=d;} + void Relocate(Player const*); + float GetPositionX()const{return x;} float GetPositionY()const{return y;} + float GetPositionZ()const{return z;} float GetOrientation()const{return o;} +}; +struct Motion { + int launches=0;std::vector path; + void MoveSmoothPath(int,Position const* p,std::size_t count,bool){++launches;path.assign(p,p+count);} +}; +struct Player { + float x=0; bool spline=true, flying=false;Motion motion; + bool IsFlying()const{return flying;}bool IsSplineEnabled()const{return spline;} + bool IsInWorld()const{return true;}uint32 GetMapId()const{return 0;} + float GetPositionX()const{return x;}float GetPositionY()const{return 0;}float GetPositionZ()const{return 0;} + float GetOrientation()const{return 0;} + float GetExactDist(float a,float b,float c)const{return std::sqrt((x-a)*(x-a)+b*b+c*c);} + std::string GetName()const{return "Arthoran";} + Motion* GetMotionMaster(){return &motion;} +}; +void Position::Relocate(Player const* p){x=p->x;y=z=o=0;} +enum class ClientlessTravelState {Moving,Arrived,PathRejected}; +struct ClientlessPathDiagnostics {bool Complete=false;float FinalDistance=0,PathLength=0;}; +struct TravelStatus {ClientlessTravelState State=ClientlessTravelState::Moving;}; +struct Travel { + bool reachable=false, starts=true,rejectOnStart=false;int probes=0, launches=0,cancels=0;float targetX=0;TravelStatus status; + bool AnalyzePath(Player*,Position const&,ClientlessPathDiagnostics& nav){++probes;nav.Complete=reachable;nav.PathLength=40;return true;} + bool StartTravel(Player* p,Position const& pos,bool){++launches;targetX=pos.x;p->spline=false;status.State=starts&&!rejectOnStart?ClientlessTravelState::Moving:ClientlessTravelState::PathRejected;return starts;} + void CancelTravel(uint32){++cancels;} + TravelStatus const* GetStatus(uint32){return &status;} +} travel; +auto sClientlessTravelMgr=&travel; +enum class ClientlessFlightState {Mounting,Flying,Arrived,Failed}; +struct FlightStatus {ClientlessFlightState State=ClientlessFlightState::Mounting;}; +struct Flight { + bool enabled=false,starts=false,recovery=false;int launches=0;FlightStatus status; + void BeginPlanning(){} + float Estimate(Player*,uint32,Position const&,Position const&,bool fallback=false){recovery=fallback;return enabled?100:std::numeric_limits::infinity();} + bool Start(Player*,Position const&,std::string&){++launches;return starts;} + FlightStatus const* GetStatus(uint32){return &status;} +} flight; +auto sClientlessFlightMgr=&flight; +struct Lua {void PrepareGroundMount(Player*,float,char const*){}} lua; +auto sClientlessLuaEngine=&lua; +''' +structs = graph[graph.index('struct TC_GAME_API ClientlessTravelNode'):graph.index('class TC_GAME_API ClientlessTravelGraphMgr')] +cls = header[header.index('enum class ClientlessActionExecutionState'):header.index('#define sClientlessActionExecutorMgr')].replace('private:', 'public:') +doubles = r''' +struct Graph { + ClientlessTravelNode node; + std::vector points; + auto GetEdgePoints(uint32){return &points;} + ClientlessTravelNode const* FindNode(std::string const& key){return key==node.Key?&node:nullptr;} +} graph; +auto sClientlessTravelGraphMgr=&graph; +static int recoveries=0; +bool ClientlessActionExecutorMgr::RecoverTravel(Player*,uint32,Record&,uint32,std::string const&){++recoveries;return false;} +''' +methods = '\n'.join(method(sig) for sig in ( + 'bool StartGroundConnection(', + 'bool ClientlessActionExecutorMgr::PrepareRecordedGroundEdge(', + 'bool ClientlessActionExecutorMgr::GetTravelGoal(', + 'bool ClientlessActionExecutorMgr::TryFallbackFlight(', + 'void ClientlessActionExecutorMgr::CheckGroundExit(', + 'bool ClientlessActionExecutorMgr::ResumeRecordedEdge(', + 'void ClientlessActionExecutorMgr::UpdateGroundExit(', + 'bool ClientlessActionExecutorMgr::StartRecordedEdgePath(', +)) +tests = r''' +int main(){ + using Record=ClientlessActionExecutorMgr::Record; + ClientlessActionExecutorMgr mgr;Player p;Record r; + r.Active=true;r.Status.ActionName="travel_to_location";r.FinalX=100;r.FinalLocationId="inn"; + r.Route.resize(2);r.Route[0].NodeKey="entry";r.Route[1].NodeKey="gate"; + r.Route[1].EdgeType="ground";r.Route[1].EdgeDatabaseId=42;r.RouteStep=1; + for(float x:{0.f,20.f,40.f,60.f,80.f,100.f,120.f}){ + ClientlessTravelEdgePoint point;point.X=x;r.EdgePath.push_back(point); + } + r.EdgeNextPoint=2;r.RecoveryCount=4;r.ReplanAtGroundEnd=true; + // A virtual plan keeps the entire road after its proposed exit, to the real node. + graph.node.Key="gate";graph.node.X=120;graph.points=r.EdgePath; + Record virtualPlan=r;virtualPlan.Route[1].NodeKey="virtual_ground_exit"; + virtualPlan.Route[1].GroundContinuationNode="gate"; + virtualPlan.Route[1].GroundStartIndex=1;virtualPlan.Route[1].GroundEndIndex=3; + virtualPlan.Route.push_back({});virtualPlan.Route.back().EdgeType="free_flight"; + assert(mgr.PrepareRecordedGroundEdge(virtualPlan)); + assert(virtualPlan.Route[1].NodeKey=="gate" && virtualPlan.Route[1].GroundEndIndex==-1); + assert(virtualPlan.Route.size()==3 && virtualPlan.ReplanAtGroundEnd && virtualPlan.GroundFlightExit); + assert(virtualPlan.EdgePath.front().X==20 && virtualPlan.EdgePath.back().X==120); + // Reverse execution retains the same forward-only continuation in execution order. + virtualPlan=r;virtualPlan.Route[1].NodeKey="virtual_ground_exit"; + virtualPlan.Route[1].GroundContinuationNode="gate";virtualPlan.Route[1].EdgeReverse=true; + virtualPlan.Route[1].GroundStartIndex=1;virtualPlan.Route[1].GroundEndIndex=3; + assert(mgr.PrepareRecordedGroundEdge(virtualPlan)); + assert(virtualPlan.EdgePath.front().X==100 && virtualPlan.EdgePath.back().X==0); + // Twenty failed probes, not five: same route, edge, direction and active spline. + for(int i=0;i<20;++i){ + r.GroundExitCheckMs=0;mgr.CheckGroundExit(&p,26,r); + assert(r.Active && p.spline && !r.GroundExitActive && r.EdgePath.size()==7); + assert(r.RouteStep==1 && r.Route.size()==2 && r.Route[1].NodeKey=="gate"); + assert(r.RecoveryCount==4 && recoveries==0 && travel.cancels==0 && travel.launches==0); + assert(r.FailedBridgeKeys.empty() && r.FailedEdgeDatabaseIds.empty()); + mgr.CheckGroundExit(&p,26,r); // clock has not elapsed: do not probe again + } + assert(travel.probes==20 && r.GroundExitCheckMs==6000); + // A later valid probe selects the exit without pre-emptive route replacement. + travel.reachable=true;r.GroundExitCheckMs=0;mgr.CheckGroundExit(&p,26,r); + assert(r.GroundExitActive && !p.spline && travel.launches==1 && r.EdgePath.size()==7); + // If the accepted exit subsequently fails, reconnect only to the NEXT road point. + p.x=35;travel.status.State=ClientlessTravelState::PathRejected; + mgr.UpdateGroundExit(&p,26,r); + assert(r.GroundResumeActive && !r.GroundExitActive && travel.targetX==40 && recoveries==0); + p.x=40;travel.status.State=ClientlessTravelState::Arrived;mgr.UpdateGroundExit(&p,26,r); + assert(!r.GroundResumeActive && p.motion.launches==1 && p.motion.path.front().x==40); + assert(r.EdgeNextPoint==3 && r.EdgeSplinePoints.front()==3); + for(auto const& point:p.motion.path)assert(point.x>=40); // no replay towards entry + // An execution-query rejection after a successful probe resumes road immediately. + travel.starts=false;r.GroundExitCheckMs=0;p.spline=true; + mgr.CheckGroundExit(&p,26,r);assert(!r.GroundExitActive && p.motion.launches==2 && recoveries==0); + travel.starts=true;travel.rejectOnStart=true;r.GroundExitCheckMs=0;p.spline=true; + mgr.CheckGroundExit(&p,26,r);assert(!r.GroundExitActive && p.motion.launches==3 && recoveries==0); + travel.rejectOnStart=false; + // A successful local exit completes the original destination. + r.GroundExitCheckMs=0;mgr.CheckGroundExit(&p,26,r); + p.x=100;travel.status.State=ClientlessTravelState::Arrived;mgr.UpdateGroundExit(&p,26,r); + assert(!r.Active && r.Status.State==ClientlessActionExecutionState::Completed); + assert(r.Status.TargetName=="location:inn" && r.EdgePath.empty() && recoveries==0); + // A normal graph route with no speculative virtual end can also take a valid exit. + r.Active=true;r.ReplanAtGroundEnd=false;r.EdgePath.resize(1);r.EdgeNextPoint=0;r.GroundExitCheckMs=0; + mgr.CheckGroundExit(&p,26,r);assert(r.GroundExitActive); + // Missing regular travel triggers the separate recovery flight policy. + Record fallback;fallback.Status.ActionName="travel_to_location";fallback.FinalX=260; + flight.enabled=true;flight.starts=true; + assert(mgr.TryFallbackFlight(&p,26,fallback)); + assert(flight.recovery && fallback.FlightActive && fallback.RouteStep==1); + assert(fallback.Route.back().X==260 && fallback.FinalLocalLegPending); + assert(!mgr.TryFallbackFlight(&p,26,fallback)); // no repeated accepted fallback + // A failed flight departure from an optional exit also preserves forward road. + Record air;air=r;air.GroundExitActive=false;air.GroundFlightExit=true;air.GroundExitCheckMs=0; + air.EdgeNextPoint=0;air.EdgePath.resize(2);air.EdgePath[0].X=120;air.EdgePath[1].X=140; + travel.reachable=false;flight.starts=false;p.spline=false; + auto before=p.motion.launches;mgr.CheckGroundExit(&p,26,air); + assert(!flight.recovery && p.motion.launches==before+1 && !air.GroundExitActive); + // End-point rejoin does not launch an empty spline and fail the journey. + air.GroundResumeActive=true;air.GroundExitActive=false;p.x=140;travel.status.State=ClientlessTravelState::Arrived; + before=p.motion.launches;mgr.UpdateGroundExit(&p,26,air); + assert(!air.GroundResumeActive && p.motion.launches==before && air.Active); + std::cout<<"optional exits: repeated probes, retained route, delayed success, forward resume, flight fallback passed\n"; +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-ground-exit-') as folder: + cpp = Path(folder) / 'test.cpp' + binary = Path(folder) / 'test' + cpp.write_text(preamble + structs + cls + doubles + methods + tests) + subprocess.run(['c++', '-std=c++17', '-Wall', '-Wextra', '-Wno-unused-parameter', str(cpp), '-o', str(binary)], check=True) + subprocess.run([str(binary)], check=True) diff --git a/tests/clientless/test_local_spline_segments.py b/tests/clientless/test_local_spline_segments.py new file mode 100644 index 0000000000..86f2056eb2 --- /dev/null +++ b/tests/clientless/test_local_spline_segments.py @@ -0,0 +1,57 @@ +"""Check production local spline splitting against native MoveSpline validation.""" +from pathlib import Path +import subprocess,tempfile +root=Path(__file__).resolve().parents[2] +s=(root/'src/server/game/World/ClientlessTravelMgr.cpp').read_text() +a=s.index(' std::vector spline;');b=s.index(' if (spline.size() < 2)',a) +build=s[a:b] +n=(root/'src/server/game/Movement/Spline/MoveSpline.cpp').read_text() +a=n.index('bool MoveSplineInitArgs::_checkPathLengths()');b=n.index('\n/// ===',a);native=n[a:b] +code=r''' +#include +#include +#include +#include +#include +#include +using uint32=uint32_t; +constexpr float MAX_LOCAL_SPLINE_LENGTH=45; +struct Vector3{ + float x=0,y=0,z=0; + Vector3 operator-(Vector3 b)const{return {x-b.x,y-b.y,z-b.z};} + Vector3 operator+(Vector3 b)const{return {x+b.x,y+b.y,z+b.z};} + Vector3 operator/(float f)const{return {x/f,y/f,z/f};} + float length()const{return std::hypot(std::hypot(x,y),z);} +}; +struct Position:Vector3{ + void Relocate(float a,float b,float c,float){x=a;y=b;z=c;} + float GetPositionX()const{return x;}float GetPositionY()const{return y;}float GetPositionZ()const{return z;} +}; +struct Player{float GetPositionX(){return 0;}float GetPositionY(){return 0;}float GetPositionZ(){return 0;}float GetOrientation(){return 0;}}; +float Distance3D(float ax,float ay,float az,float bx,float by,float bz){return (Vector3{ax,ay,az}-Vector3{bx,by,bz}).length();} +struct MoveSplineInitArgs{std::vectorpath;struct{bool UncompressedPath=false;}flags;bool _checkPathLengths();}; +'''+native+'\nstd::vector Build(Player* player,std::vector const& points){\n'+build+'\nreturn spline;\n}\n'+r''' +void check(std::vector const& p){ + assert(p.size()>=2);MoveSplineInitArgs native;float length=0; + for(auto v:p)native.path.push_back({v.x,v.y,v.z}); + assert(native._checkPathLengths()); + for(std::size_t i=1;i=0.1f);length+=d;} + assert(length<=45.001f); +} +int main(){ + Player p; + // Native validation really rejects the old tiny clipped remainder. + MoveSplineInitArgs bad;bad.path={{0,0,0},{44.95f,0,0},{45,0,0}};assert(!bad._checkPathLengths()); + auto clipped=Build(&p,{{0,0,0},{4,0,0},{20,0,0},{44.95f,0,0},{49,0,0}}); + check(clipped);assert(clipped.back().x==44.95f); + auto tiny=Build(&p,{{0,0,0},{1,0,0},{1.06f,0,0},{2,0,0}});check(tiny);assert(tiny.size()==3); + auto normal=Build(&p,{{0,0,0},{10,0,0},{30,0,0},{50,0,0}});check(normal);assert(normal.back().x==45); + std::mt19937 rng(26);std::uniform_real_distribution step(0.001f,5); + for(int trial=0;trial<1000;++trial){std::vector points{{0,0,0}};float x=0;for(int i=0;i<60;++i){x+=step(rng);points.push_back({x,0,0});}check(Build(&p,points));} +} +''' +with tempfile.TemporaryDirectory(prefix='vcore-spline-split-') as folder: + cpp=Path(folder)/'test.cpp';binary=Path(folder)/'test';cpp.write_text(code) + subprocess.run(['c++','-std=c++17',str(cpp),'-o',str(binary)],check=True) + subprocess.run([str(binary)],check=True) +print('Production local spline clipping passes native path-length validation, tiny remainders and 1000 sampled paths.') diff --git a/tests/clientless/test_portal_use.py b/tests/clientless/test_portal_use.py index ec2768ae20..b0bea9d0b1 100644 --- a/tests/clientless/test_portal_use.py +++ b/tests/clientless/test_portal_use.py @@ -5,9 +5,19 @@ import tempfile ROOT = Path(__file__).resolve().parents[2] source = (ROOT / 'src/server/game/World/ClientlessActionExecutorMgr.cpp').read_text() -a = source.index('bool ClientlessActionExecutorMgr::StartPortalUse(') -b = source.index('bool ClientlessActionExecutorMgr::StartRecordedEdgePath(', a) -methods = source[a:b] +def production_method(signature): + start = source.index(signature) + opening = source.index('{', start) + depth, end = 1, opening + 1 + while depth: + depth += (source[end] == '{') - (source[end] == '}') + end += 1 + return source[start:end] + +methods = '\n'.join(production_method(signature) for signature in ( + 'bool ClientlessActionExecutorMgr::StartPortalUse(', + 'void ClientlessActionExecutorMgr::UpdatePortalUse(', +)) harness = r''' #include #include