0.1.219: Flugnetz und Weg zum Ziel im Levelplan (Version)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016onJCSHLwhs9udhC9ZLzk9
This commit is contained in:
Lacustat
2026-11-01 13:00:02 +01:00
co-authored by Claude Sonnet 5.5
parent fbbd324609
commit e1b89f4843
4 changed files with 541 additions and 8 deletions
+38 -2
View File
@@ -776,7 +776,7 @@ local function Snap(g, x, y)
end
-- A* ueber die Bloecke. Rueckgabe: Strecke in Yards oder nil
local function Search(g, from, to)
local function Search(g, from, to, wantPrev)
local nodes = g.nodes
local goal = nodes[to]
if not goal then return nil end
@@ -785,6 +785,7 @@ local function Search(g, from, to)
return 1.2 * math.sqrt(((n.bx + 0.5) * BLOCK * CELL - gx) ^ 2 + ((n.by + 0.5) * BLOCK * CELL - gy) ^ 2)
end
local dist, heap, size, done = { [from] = 0 }, {}, 0, {}
local prev = wantPrev and {} or nil
local function Push(k, pr)
size = size + 1
local i = size
@@ -816,7 +817,7 @@ local function Search(g, from, to)
local expanded = 0
while size > 0 do
local k = Pop()
if k == to then return dist[k] end
if k == to then return dist[k], prev end
if not done[k] then
done[k] = true
expanded = expanded + 1
@@ -825,6 +826,7 @@ local function Search(g, from, to)
local nd = dist[k] + cost
if not dist[nk] or nd < dist[nk] then
dist[nk] = nd
if prev then prev[nk] = k end
Push(nk, nd + H(nodes[nk]))
end
end
@@ -890,6 +892,40 @@ function Path.Distance(world, ax, ay, bx, by)
return da + cost + db_
end
-- Zwischenziele laengs des Wegenetzes von (ax, ay) nach (bx, by) (Zellraum, Yards): Liste { x, y } mit etwa "step" Yards Abstand,
-- ohne Start, mit Ziel als letztem Punkt. nil, wenn kein zusammenhaengendes Netz bekannt ist (dann Luftlinie).
function Path.Route(world, ax, ay, bx, by, step)
if type(world) ~= "number" then return nil end
local straight = math.sqrt((ax - bx) ^ 2 + (ay - by) ^ 2)
if straight < 2 * BLOCK * CELL then return nil end
local g = Graph(world)
if not g then return nil end
local sa = Snap(g, ax, ay)
local sb = Snap(g, bx, by)
if not sa or not sb or sa == sb or g.comp[sa] ~= g.comp[sb] then return nil end
local cost, prev = Search(g, sa, sb, true)
if not cost or not prev then return nil end
local chain, k, guard = {}, sb, 0
while k and guard < 5000 do
local nd = g.nodes[k]
table.insert(chain, 1, { (nd.bx + 0.5) * BLOCK * CELL, (nd.by + 0.5) * BLOCK * CELL })
if k == sa then break end
k = prev[k]
guard = guard + 1
end
step = step or 250
local out, last = {}, { ax, ay }
for i, p in ipairs(chain) do
if i == #chain then
out[#out + 1] = { bx, by }
elseif math.sqrt((p[1] - last[1]) ^ 2 + (p[2] - last[2]) ^ 2) >= step then
out[#out + 1] = p
last = p
end
end
return out, cost
end
function Path.ResetGraphs()
graphs = {}
end
+64 -5
View File
@@ -301,17 +301,76 @@ function Taxi.PlannerOn()
return not (db and db.settings and db.settings.taxiPlan == false)
end
-- Namen der Flugpunkte, die dieser Charakter kennt: { [Name] = true }
function Taxi.KnownNames()
local out = {}
local c = CharRec(false)
for id in pairs(c and c.known or {}) do
local nd = Taxi.Node(id)
if nd and nd.n then out[nd.n] = true end
end
return out
end
local edgeCache
local function PlayerFac()
local f = _G.UnitFactionGroup and _G.UnitFactionGroup("player")
return f == "Horde" and "H" or f == "Alliance" and "A" or nil
end
-- Ort eines Flugpunkts fuer den Levelplan: Karte (m, x, y) und/oder Zellraum cs = { Welt, x, y } (Yards)
local function EndPoint(nd, seed)
local p = {}
if nd.m and nd.x and nd.y then p.m, p.x, p.y = nd.m, nd.x, nd.y end
if nd.a and nd.b and nd.w then
p.cs = { nd.w, nd.b, nd.a }
elseif seed then
p.cs = { seed[2], seed[3], seed[4] }
end
if not p.m and not p.cs then return nil end
return p
end
-- Fluege als Kanten { id, k, t, wait, est, from, to }, nur zwischen Flugpunkten, die dieser Charakter kennt.
-- Gemessene Fluege gelten auch rueckwaerts (est = geschaetzt, bis selbst geflogen); dazu das mitgelieferte Flugnetz (Taxi.Seed)
-- fuer Strecken, die noch nie geflogen wurden. Wege ueber mehrere Flugpunkte findet der Levelplan selbst.
function Taxi.Edges()
if not Taxi.PlannerOn() then return {} end
local key = Codex.Trust and Codex.Trust.SelfKey and Codex.Trust.SelfKey() or "?"
if edgeCache and edgeCache.rev == Taxi.rev and edgeCache.key == key then return edgeCache.list end
local list = {}
local list, have = {}, {}
local seed = Taxi.Seed
local fac = PlayerFac()
local function Add(a, b, t, est)
local na, nb = Taxi.Node(a), Taxi.Node(b)
if not (na and nb and t) then return end
local pa = EndPoint(na, seed and seed.n[na.n])
local pb = EndPoint(nb, seed and seed.n[nb.n])
if not (pa and pb) then return end
have[a .. ">" .. b] = true
list[#list + 1] = { id = (est and "s" or "f") .. a .. ">" .. b, k = "flight", t = t, wait = 20, est = est or nil, name = nb.n, fn = na.n,
fa = a, fb = b, from = pa, to = pb }
end
for rid, r in pairs(Taxi.Routes()) do
local na, nb = Taxi.Node(r.a), Taxi.Node(r.b)
if na and nb and na.m and nb.m and r.t and Taxi.Known(r.a) and Taxi.Known(r.b) then
list[#list + 1] = { id = "f" .. rid, k = "flight", t = r.t, wait = 20, name = nb.n, fa = r.a, fb = r.b,
from = { m = na.m, x = na.x, y = na.y }, to = { m = nb.m, x = nb.x, y = nb.y } }
if r.t and Taxi.Known(r.a) and Taxi.Known(r.b) then Add(r.a, r.b, r.t) end
end
for rid, r in pairs(Taxi.Routes()) do
if r.t and Taxi.Known(r.a) and Taxi.Known(r.b) and not have[r.b .. ">" .. r.a] then Add(r.b, r.a, r.t, true) end
end
if seed then
local c = CharRec(false)
local byName = {}
for id in pairs(c and c.known or {}) do
local nd = Taxi.Node(id)
if nd and nd.n then byName[nd.n] = id end
end
for _, e in ipairs(seed.e) do
local a, b = byName[e[1]], byName[e[2]]
if a and b and not have[a .. ">" .. b] then
local fa, fb = seed.n[e[1]], seed.n[e[2]]
if not (fac and ((fa and fa[1] and fa[1] ~= fac) or (fb and fb[1] and fb[1] ~= fac))) then Add(a, b, e[3], true) end
end
end
end
edgeCache = { rev = Taxi.rev, key = key, list = list }
+437
View File
@@ -0,0 +1,437 @@
-- Freewood-OctoWoW-Codex: Flugnetz (erzeugt mit tools/build_taxi_seed.py aus der Datenbank; nicht von Hand aendern)
-- n[Name] = { Fraktion H/A/nil, Kontinent, x, y (Zellraum, Yards) }, e = { { von, nach, Sekunden }, ... }
local ADDON, NS = ...
local Codex = _G.Freewood and _G.Freewood.Codex
if not Codex or not Codex.Taxi then return end
local n = {
["Aerie Peak, The Hinterlands"] = { "A", 0, 284, -2003 },
["Alah'Thalas, Thalassian Highlands"] = { "A", 0, 4183, -2576 },
["Ambershire, Northwind"] = { "A", 0, -7576, 783 },
["Astranaar, Ashenvale"] = { "A", 1, 2827, -289 },
["Auberdine, Darkshore"] = { "A", 1, 6341, 558 },
["Bael Hardul, Stonetalon Mountains"] = { "A", 1, 875, -836 },
["Bloodvenom Post, Felwood"] = { "H", 1, 5068, -337 },
["Booty Bay, Stranglethorn"] = { "H", 0, -14272, 300 },
["Brackenwall Village, Dustwallow Marsh"] = { "H", 1, -3147, -2842 },
["Caelan's Rest, Lapidis Isle"] = { "A", 0, -11865, 3188 },
["Camp Mojache, Feralas"] = { "H", 1, -4420, 199 },
["Camp Taurajo, The Barrens"] = { "H", 1, -2381, -1883 },
["Canoe: Darkshore - Icepoint Rock"] = { "H", 1, 7837, -768 },
["Canoe: Icepoint Rock - Darkshore"] = { "H", 1, 13652, -6591 },
["Cenarion Hold, Silithus"] = { "H", 1, -6811, 837 },
["Chillwind Camp, Western Plaguelands"] = { "A", 0, 931, -1430 },
["Crossroads, The Barrens"] = { "H", 1, -442, -2596 },
["Crown Guard Tower, Eastern Plaguelands"] = { false, 0, 1858, -3658 },
["Darkshire, Duskwood"] = { "A", 0, -10516, -1262 },
["Dun Agrath, Wetlands"] = { "A", 0, -3952, -1332 },
["Dun Kithas, Grim Reaches"] = { "A", 0, -4941, -4857 },
["Eastern Plaguelands"] = { "H", 0, 2253, -5345 },
["Eastwall Tower, Eastern Plaguelands"] = { false, 0, 2499, -4743 },
["Everlook, Winterspring"] = { "A", 1, 6799, -4742 },
["Feathermoon, Feralas"] = { "A", 1, -4374, 3339 },
["Fishing Village, Teldrassil"] = { "A", 1, 8702, 991 },
["Flame Crest, Burning Steppes"] = { "H", 0, -7504, -2188 },
["Freewind Post, Thousand Needles"] = { "H", 1, -5408, -2414 },
["Gadgetzan, Tanaris"] = { "A", 1, -7224, -3735 },
["Gazzik's Workshop, Blackstone Island"] = { "H", 1, -571, -7850 },
["Gnomeregan Reclamation Facility, Dun Morogh"] = { "A", 0, -5048, 475 },
["Grom'gol, Stranglethorn"] = { "H", 0, -12414, 146 },
["Hammerfall, Arathi"] = { "H", 0, -916, -3497 },
["Ironforge Airfields, Dun Morogh"] = { "A", 0, -4493, -1581 },
["Ironforge, Dun Morogh"] = { "A", 0, -4822, -1155 },
["Kargath, Badlands"] = { "H", 0, -6634, -2180 },
["Lakeshire, Redridge"] = { "A", 0, -9429, -2231 },
["Light's Hope Chapel, Eastern Plaguelands"] = { "A", 0, 2271, -5341 },
["Marshal's Refuge, Un'Goro Crater"] = { false, 1, -6114, -1143 },
["Maul'Ogg Refuge, Gillijim's Isle"] = { "H", 0, -14087, 2269 },
["Menethil Harbor, Wetlands"] = { "A", 0, -3792, -783 },
["Moonglade"] = { "A", 1, 7458, -2487 },
["Moonhoof Village, Moonwhisper Coast"] = { false, 1, 8186, -6489 },
["Morgan's Vigil, Burning Steppes"] = { "A", 0, -8365, -2738 },
["Mudsprocket, Dustwallow Marsh"] = { "H", 1, -4570, -3222 },
["Narvalis Point, Moonwhisper Coast"] = { "A", 1, 8908, -5937 },
["Naxxramas"] = { false, 0, 3133, -3400 },
["Nethergarde Keep, Blasted Lands"] = { "A", 0, -11112, -3436 },
["Nighthaven, Moonglade"] = { "A", 1, 7794, -2403 },
["Nijel's Point, Desolace"] = { "A", 1, 139, 1326 },
["Nordanaar, Hyjal"] = { false, 1, 5498, -3691 },
["Northpass Tower, Eastern Plaguelands"] = { false, 0, 3109, -4285 },
["Northshire Abbey"] = { "H", 0, -8889, -1 },
["Orgrimmar, Durotar"] = { "H", 1, 1678, -4316 },
["Plaguewood Tower, Eastern Plaguelands"] = { false, 0, 2999, -3050 },
["Ratchet, The Barrens"] = { false, 1, -895, -3773 },
["Ravenshire, Gilneas"] = { "A", 0, -2165, 974 },
["Refuge Pointe, Arathi"] = { "A", 0, -1241, -2515 },
["Revantusk Village, The Hinterlands"] = { "H", 0, -635, -4720 },
["Rut'theran Village, Teldrassil"] = { "A", 1, 8644, 841 },
["SI:7 Outpost, Balor"] = { "A", 0, -9199, 2573 },
["Sentinel Hill, Westfall"] = { "A", 0, -10629, 1037 },
["Shadowprey Village, Desolace"] = { "H", 1, -1768, 3264 },
["Shatterblade Post, Grim Reaches"] = { "H", 0, -4013, -5305 },
["Shimmerstar Lake, Moonwhisper Coast"] = { false, 1, 6705, -6476 },
["Slickwick Oil Rig, Tanaris"] = { "H", 1, -9290, -1919 },
["Southshore Ferry, Hillsbrad"] = { false, 0, -986, -548 },
["Southshore, Hillsbrad"] = { "A", 0, -711, -515 },
["Sparkwater Port, Durotar"] = { "H", 1, 819, -5006 },
["Splintertree Post, Ashenvale"] = { "H", 1, 2302, -2525 },
["Steepcliff Port, Tirisfal Glades"] = { "H", 0, 2009, 2842 },
["Stillward Church, Gilneas"] = { "H", 0, -1301, 1161 },
["Stonard, Swamp of Sorrows"] = { "H", 0, -10457, -3279 },
["Stonetalon Peak, Stonetalon Mountains"] = { "A", 1, 2681, 1462 },
["Stormbreaker Point, Balor"] = { "H", 0, -8532, 2529 },
["Stormwind Harbor, Stormwind"] = { "A", 0, -8476, 1349 },
["Stormwind, Elwynn Forest"] = { "A", 0, -8841, 490 },
["Sun Rock Retreat, Stonetalon Mountains"] = { "H", 1, 967, 1040 },
["Talonbranch Glade, Felwood"] = { "A", 1, 6206, -1950 },
["Talrendis Point, Azshara"] = { "A", 1, 2722, -3881 },
["Tarren Mill, Hillsbrad"] = { "H", 0, 0, -860 },
["Tel Co. Basecamp, Tel'Abim"] = { false, 1, -8893, -6455 },
["Thalanaar, Feralas"] = { "A", 1, -4492, -776 },
["The Sepulcher, Silverpine Forest"] = { "H", 0, 479, 1537 },
["Thelsamar, Loch Modan"] = { "A", 0, -5422, -2930 },
["Theramore, Dustwallow Marsh"] = { "A", 1, -3825, -4517 },
["Thorium Point, Searing Gorge"] = { "A", 0, -6553, -1168 },
["Thunder Bluff, Mulgore"] = { "H", 1, -1197, 30 },
["Undercity, Tirisfal"] = { "H", 0, 1569, 268 },
["Valormok, Azshara"] = { "H", 1, 3662, -4390 },
["Zoram'gar Outpost, Ashenvale"] = { "H", 1, 3375, 997 },
}
local e = {
{ "Aerie Peak, The Hinterlands", "Chillwind Camp, Western Plaguelands", 50 },
{ "Aerie Peak, The Hinterlands", "Ironforge, Dun Morogh", 240 },
{ "Aerie Peak, The Hinterlands", "Light's Hope Chapel, Eastern Plaguelands", 154 },
{ "Aerie Peak, The Hinterlands", "Refuge Pointe, Arathi", 67 },
{ "Aerie Peak, The Hinterlands", "Southshore, Hillsbrad", 64 },
{ "Alah'Thalas, Thalassian Highlands", "Chillwind Camp, Western Plaguelands", 135 },
{ "Alah'Thalas, Thalassian Highlands", "Light's Hope Chapel, Eastern Plaguelands", 123 },
{ "Alah'Thalas, Thalassian Highlands", "Southshore, Hillsbrad", 192 },
{ "Ambershire, Northwind", "Stormwind, Elwynn Forest", 106 },
{ "Ambershire, Northwind", "Thorium Point, Searing Gorge", 79 },
{ "Astranaar, Ashenvale", "Auberdine, Darkshore", 138 },
{ "Astranaar, Ashenvale", "Bael Hardul, Stonetalon Mountains", 80 },
{ "Astranaar, Ashenvale", "Stonetalon Peak, Stonetalon Mountains", 144 },
{ "Astranaar, Ashenvale", "Talrendis Point, Azshara", 138 },
{ "Auberdine, Darkshore", "Astranaar, Ashenvale", 138 },
{ "Auberdine, Darkshore", "Feathermoon, Feralas", 438 },
{ "Auberdine, Darkshore", "Moonglade", 141 },
{ "Auberdine, Darkshore", "Nijel's Point, Desolace", 264 },
{ "Auberdine, Darkshore", "Rut'theran Village, Teldrassil", 80 },
{ "Auberdine, Darkshore", "Stonetalon Peak, Stonetalon Mountains", 166 },
{ "Auberdine, Darkshore", "Talonbranch Glade, Felwood", 176 },
{ "Auberdine, Darkshore", "Talrendis Point, Azshara", 281 },
{ "Auberdine, Darkshore", "Theramore, Dustwallow Marsh", 633 },
{ "Bael Hardul, Stonetalon Mountains", "Astranaar, Ashenvale", 80 },
{ "Bloodvenom Post, Felwood", "Crossroads, The Barrens", 226 },
{ "Bloodvenom Post, Felwood", "Everlook, Winterspring", 178 },
{ "Bloodvenom Post, Felwood", "Moonglade", 147 },
{ "Bloodvenom Post, Felwood", "Orgrimmar, Durotar", 236 },
{ "Bloodvenom Post, Felwood", "Valormok, Azshara", 217 },
{ "Booty Bay, Stranglethorn", "Caelan's Rest, Lapidis Isle", 121 },
{ "Booty Bay, Stranglethorn", "Darkshire, Duskwood", 160 },
{ "Booty Bay, Stranglethorn", "Grom'gol, Stranglethorn", 76 },
{ "Booty Bay, Stranglethorn", "Kargath, Badlands", 381 },
{ "Booty Bay, Stranglethorn", "Maul'Ogg Refuge, Gillijim's Isle", 61 },
{ "Booty Bay, Stranglethorn", "Sentinel Hill, Westfall", 170 },
{ "Booty Bay, Stranglethorn", "Stonard, Swamp of Sorrows", 250 },
{ "Booty Bay, Stranglethorn", "Stormwind, Elwynn Forest", 206 },
{ "Brackenwall Village, Dustwallow Marsh", "Crossroads, The Barrens", 151 },
{ "Brackenwall Village, Dustwallow Marsh", "Gadgetzan, Tanaris", 208 },
{ "Brackenwall Village, Dustwallow Marsh", "Orgrimmar, Durotar", 203 },
{ "Brackenwall Village, Dustwallow Marsh", "Thunder Bluff, Mulgore", 210 },
{ "Caelan's Rest, Lapidis Isle", "Booty Bay, Stranglethorn", 121 },
{ "Camp Mojache, Feralas", "Cenarion Hold, Silithus", 122 },
{ "Camp Mojache, Feralas", "Crossroads, The Barrens", 247 },
{ "Camp Mojache, Feralas", "Freewind Post, Thousand Needles", 100 },
{ "Camp Mojache, Feralas", "Gadgetzan, Tanaris", 187 },
{ "Camp Mojache, Feralas", "Shadowprey Village, Desolace", 188 },
{ "Camp Mojache, Feralas", "Thunder Bluff, Mulgore", 243 },
{ "Camp Taurajo, The Barrens", "Crossroads, The Barrens", 76 },
{ "Camp Taurajo, The Barrens", "Freewind Post, Thousand Needles", 130 },
{ "Camp Taurajo, The Barrens", "Mudsprocket, Dustwallow Marsh", 104 },
{ "Camp Taurajo, The Barrens", "Thunder Bluff, Mulgore", 81 },
{ "Canoe: Darkshore - Icepoint Rock", "Canoe: Icepoint Rock - Darkshore", 279 },
{ "Canoe: Icepoint Rock - Darkshore", "Canoe: Darkshore - Icepoint Rock", 279 },
{ "Cenarion Hold, Silithus", "Camp Mojache, Feralas", 122 },
{ "Cenarion Hold, Silithus", "Feathermoon, Feralas", 164 },
{ "Cenarion Hold, Silithus", "Gadgetzan, Tanaris", 177 },
{ "Cenarion Hold, Silithus", "Marshal's Refuge, Un'Goro Crater", 86 },
{ "Chillwind Camp, Western Plaguelands", "Aerie Peak, The Hinterlands", 50 },
{ "Chillwind Camp, Western Plaguelands", "Alah'Thalas, Thalassian Highlands", 141 },
{ "Chillwind Camp, Western Plaguelands", "Ironforge, Dun Morogh", 244 },
{ "Chillwind Camp, Western Plaguelands", "Light's Hope Chapel, Eastern Plaguelands", 137 },
{ "Chillwind Camp, Western Plaguelands", "Southshore, Hillsbrad", 80 },
{ "Crossroads, The Barrens", "Bloodvenom Post, Felwood", 226 },
{ "Crossroads, The Barrens", "Brackenwall Village, Dustwallow Marsh", 151 },
{ "Crossroads, The Barrens", "Camp Mojache, Feralas", 236 },
{ "Crossroads, The Barrens", "Camp Taurajo, The Barrens", 76 },
{ "Crossroads, The Barrens", "Freewind Post, Thousand Needles", 173 },
{ "Crossroads, The Barrens", "Gadgetzan, Tanaris", 282 },
{ "Crossroads, The Barrens", "Orgrimmar, Durotar", 134 },
{ "Crossroads, The Barrens", "Ratchet, The Barrens", 64 },
{ "Crossroads, The Barrens", "Splintertree Post, Ashenvale", 150 },
{ "Crossroads, The Barrens", "Sun Rock Retreat, Stonetalon Mountains", 140 },
{ "Crossroads, The Barrens", "Thunder Bluff, Mulgore", 171 },
{ "Crossroads, The Barrens", "Valormok, Azshara", 158 },
{ "Crossroads, The Barrens", "Zoram'gar Outpost, Ashenvale", 213 },
{ "Crown Guard Tower, Eastern Plaguelands", "Plaguewood Tower, Eastern Plaguelands", 48 },
{ "Darkshire, Duskwood", "Booty Bay, Stranglethorn", 160 },
{ "Darkshire, Duskwood", "Lakeshire, Redridge", 56 },
{ "Darkshire, Duskwood", "Nethergarde Keep, Blasted Lands", 91 },
{ "Darkshire, Duskwood", "Sentinel Hill, Westfall", 87 },
{ "Darkshire, Duskwood", "Stormwind, Elwynn Forest", 82 },
{ "Dun Agrath, Wetlands", "Ironforge Airfields, Dun Morogh", 29 },
{ "Dun Agrath, Wetlands", "Menethil Harbor, Wetlands", 20 },
{ "Dun Kithas, Grim Reaches", "Thelsamar, Loch Modan", 107 },
{ "Eastwall Tower, Eastern Plaguelands", "Plaguewood Tower, Eastern Plaguelands", 59 },
{ "Everlook, Winterspring", "Bloodvenom Post, Felwood", 183 },
{ "Everlook, Winterspring", "Moonglade", 114 },
{ "Everlook, Winterspring", "Narvalis Point, Moonwhisper Coast", 247 },
{ "Everlook, Winterspring", "Nordanaar, Hyjal", 250 },
{ "Everlook, Winterspring", "Orgrimmar, Durotar", 285 },
{ "Everlook, Winterspring", "Shimmerstar Lake, Moonwhisper Coast", 66 },
{ "Everlook, Winterspring", "Talonbranch Glade, Felwood", 115 },
{ "Everlook, Winterspring", "Talrendis Point, Azshara", 165 },
{ "Everlook, Winterspring", "Valormok, Azshara", 126 },
{ "Feathermoon, Feralas", "Auberdine, Darkshore", 438 },
{ "Feathermoon, Feralas", "Cenarion Hold, Silithus", 149 },
{ "Feathermoon, Feralas", "Nijel's Point, Desolace", 212 },
{ "Feathermoon, Feralas", "Thalanaar, Feralas", 145 },
{ "Flame Crest, Burning Steppes", "Kargath, Badlands", 94 },
{ "Flame Crest, Burning Steppes", "Stonard, Swamp of Sorrows", 199 },
{ "Flame Crest, Burning Steppes", "Thorium Point, Searing Gorge", 67 },
{ "Freewind Post, Thousand Needles", "Camp Mojache, Feralas", 100 },
{ "Freewind Post, Thousand Needles", "Camp Taurajo, The Barrens", 130 },
{ "Freewind Post, Thousand Needles", "Crossroads, The Barrens", 173 },
{ "Freewind Post, Thousand Needles", "Gadgetzan, Tanaris", 81 },
{ "Freewind Post, Thousand Needles", "Thunder Bluff, Mulgore", 211 },
{ "Gadgetzan, Tanaris", "Brackenwall Village, Dustwallow Marsh", 208 },
{ "Gadgetzan, Tanaris", "Camp Mojache, Feralas", 187 },
{ "Gadgetzan, Tanaris", "Cenarion Hold, Silithus", 185 },
{ "Gadgetzan, Tanaris", "Crossroads, The Barrens", 282 },
{ "Gadgetzan, Tanaris", "Freewind Post, Thousand Needles", 81 },
{ "Gadgetzan, Tanaris", "Marshal's Refuge, Un'Goro Crater", 97 },
{ "Gadgetzan, Tanaris", "Orgrimmar, Durotar", 328 },
{ "Gadgetzan, Tanaris", "Slickwick Oil Rig, Tanaris", 104 },
{ "Gadgetzan, Tanaris", "Tel Co. Basecamp, Tel'Abim", 111 },
{ "Gadgetzan, Tanaris", "Thalanaar, Feralas", 166 },
{ "Gadgetzan, Tanaris", "Theramore, Dustwallow Marsh", 144 },
{ "Gadgetzan, Tanaris", "Thunder Bluff, Mulgore", 272 },
{ "Gazzik's Workshop, Blackstone Island", "Sparkwater Port, Durotar", 115 },
{ "Gnomeregan Reclamation Facility, Dun Morogh", "Ironforge, Dun Morogh", 61 },
{ "Grom'gol, Stranglethorn", "Booty Bay, Stranglethorn", 76 },
{ "Grom'gol, Stranglethorn", "Kargath, Badlands", 306 },
{ "Grom'gol, Stranglethorn", "Stonard, Swamp of Sorrows", 176 },
{ "Grom'gol, Stranglethorn", "Stormbreaker Point, Balor", 190 },
{ "Hammerfall, Arathi", "Kargath, Badlands", 243 },
{ "Hammerfall, Arathi", "Revantusk Village, The Hinterlands", 85 },
{ "Hammerfall, Arathi", "Shatterblade Post, Grim Reaches", 186 },
{ "Hammerfall, Arathi", "Tarren Mill, Hillsbrad", 109 },
{ "Hammerfall, Arathi", "Undercity, Tirisfal", 243 },
{ "Ironforge Airfields, Dun Morogh", "Dun Agrath, Wetlands", 25 },
{ "Ironforge Airfields, Dun Morogh", "Ironforge, Dun Morogh", 80 },
{ "Ironforge, Dun Morogh", "Aerie Peak, The Hinterlands", 279 },
{ "Ironforge, Dun Morogh", "Chillwind Camp, Western Plaguelands", 276 },
{ "Ironforge, Dun Morogh", "Gnomeregan Reclamation Facility, Dun Morogh", 61 },
{ "Ironforge, Dun Morogh", "Ironforge Airfields, Dun Morogh", 80 },
{ "Ironforge, Dun Morogh", "Light's Hope Chapel, Eastern Plaguelands", 327 },
{ "Ironforge, Dun Morogh", "Menethil Harbor, Wetlands", 83 },
{ "Ironforge, Dun Morogh", "Refuge Pointe, Arathi", 237 },
{ "Ironforge, Dun Morogh", "Southshore, Hillsbrad", 193 },
{ "Ironforge, Dun Morogh", "Stormwind, Elwynn Forest", 197 },
{ "Ironforge, Dun Morogh", "Thelsamar, Loch Modan", 95 },
{ "Ironforge, Dun Morogh", "Thorium Point, Searing Gorge", 81 },
{ "Kargath, Badlands", "Booty Bay, Stranglethorn", 381 },
{ "Kargath, Badlands", "Flame Crest, Burning Steppes", 81 },
{ "Kargath, Badlands", "Grom'gol, Stranglethorn", 293 },
{ "Kargath, Badlands", "Hammerfall, Arathi", 246 },
{ "Kargath, Badlands", "Stonard, Swamp of Sorrows", 263 },
{ "Kargath, Badlands", "Thorium Point, Searing Gorge", 53 },
{ "Kargath, Badlands", "Undercity, Tirisfal", 466 },
{ "Lakeshire, Redridge", "Darkshire, Duskwood", 57 },
{ "Lakeshire, Redridge", "Morgan's Vigil, Burning Steppes", 57 },
{ "Lakeshire, Redridge", "Sentinel Hill, Westfall", 122 },
{ "Lakeshire, Redridge", "Stormwind, Elwynn Forest", 105 },
{ "Light's Hope Chapel, Eastern Plaguelands", "Aerie Peak, The Hinterlands", 152 },
{ "Light's Hope Chapel, Eastern Plaguelands", "Alah'Thalas, Thalassian Highlands", 123 },
{ "Light's Hope Chapel, Eastern Plaguelands", "Chillwind Camp, Western Plaguelands", 137 },
{ "Light's Hope Chapel, Eastern Plaguelands", "Ironforge, Dun Morogh", 345 },
{ "Light's Hope Chapel, Eastern Plaguelands", "Revantusk Village, The Hinterlands", 130 },
{ "Light's Hope Chapel, Eastern Plaguelands", "Undercity, Tirisfal", 245 },
{ "Marshal's Refuge, Un'Goro Crater", "Cenarion Hold, Silithus", 88 },
{ "Marshal's Refuge, Un'Goro Crater", "Gadgetzan, Tanaris", 97 },
{ "Maul'Ogg Refuge, Gillijim's Isle", "Booty Bay, Stranglethorn", 61 },
{ "Menethil Harbor, Wetlands", "Dun Agrath, Wetlands", 20 },
{ "Menethil Harbor, Wetlands", "Ironforge, Dun Morogh", 83 },
{ "Menethil Harbor, Wetlands", "Refuge Pointe, Arathi", 106 },
{ "Menethil Harbor, Wetlands", "Southshore Ferry, Hillsbrad", 195 },
{ "Menethil Harbor, Wetlands", "Southshore, Hillsbrad", 100 },
{ "Menethil Harbor, Wetlands", "Thelsamar, Loch Modan", 143 },
{ "Moonglade", "Auberdine, Darkshore", 133 },
{ "Moonglade", "Bloodvenom Post, Felwood", 147 },
{ "Moonglade", "Everlook, Winterspring", 114 },
{ "Moonglade", "Talonbranch Glade, Felwood", 58 },
{ "Moonhoof Village, Moonwhisper Coast", "Shimmerstar Lake, Moonwhisper Coast", 47 },
{ "Morgan's Vigil, Burning Steppes", "Lakeshire, Redridge", 57 },
{ "Morgan's Vigil, Burning Steppes", "Nethergarde Keep, Blasted Lands", 196 },
{ "Morgan's Vigil, Burning Steppes", "Stormwind, Elwynn Forest", 141 },
{ "Morgan's Vigil, Burning Steppes", "Thorium Point, Searing Gorge", 97 },
{ "Mudsprocket, Dustwallow Marsh", "Camp Taurajo, The Barrens", 104 },
{ "Narvalis Point, Moonwhisper Coast", "Everlook, Winterspring", 247 },
{ "Narvalis Point, Moonwhisper Coast", "Shimmerstar Lake, Moonwhisper Coast", 71 },
{ "Narvalis Point, Moonwhisper Coast", "Talrendis Point, Azshara", 262 },
{ "Nethergarde Keep, Blasted Lands", "Darkshire, Duskwood", 86 },
{ "Nethergarde Keep, Blasted Lands", "Morgan's Vigil, Burning Steppes", 195 },
{ "Nethergarde Keep, Blasted Lands", "Stormwind, Elwynn Forest", 177 },
{ "Nighthaven, Moonglade", "Rut'theran Village, Teldrassil", 142 },
{ "Nighthaven, Moonglade", "Thunder Bluff, Mulgore", 510 },
{ "Nijel's Point, Desolace", "Auberdine, Darkshore", 264 },
{ "Nijel's Point, Desolace", "Feathermoon, Feralas", 217 },
{ "Nijel's Point, Desolace", "Stonetalon Peak, Stonetalon Mountains", 112 },
{ "Nijel's Point, Desolace", "Theramore, Dustwallow Marsh", 288 },
{ "Nordanaar, Hyjal", "Everlook, Winterspring", 250 },
{ "Northpass Tower, Eastern Plaguelands", "Plaguewood Tower, Eastern Plaguelands", 46 },
{ "Orgrimmar, Durotar", "Bloodvenom Post, Felwood", 236 },
{ "Orgrimmar, Durotar", "Brackenwall Village, Dustwallow Marsh", 214 },
{ "Orgrimmar, Durotar", "Crossroads, The Barrens", 134 },
{ "Orgrimmar, Durotar", "Everlook, Winterspring", 285 },
{ "Orgrimmar, Durotar", "Gadgetzan, Tanaris", 328 },
{ "Orgrimmar, Durotar", "Splintertree Post, Ashenvale", 84 },
{ "Orgrimmar, Durotar", "Thunder Bluff, Mulgore", 197 },
{ "Orgrimmar, Durotar", "Valormok, Azshara", 93 },
{ "Plaguewood Tower, Eastern Plaguelands", "Crown Guard Tower, Eastern Plaguelands", 48 },
{ "Plaguewood Tower, Eastern Plaguelands", "Eastwall Tower, Eastern Plaguelands", 59 },
{ "Plaguewood Tower, Eastern Plaguelands", "Northpass Tower, Eastern Plaguelands", 46 },
{ "Ratchet, The Barrens", "Crossroads, The Barrens", 64 },
{ "Ratchet, The Barrens", "Talrendis Point, Azshara", 123 },
{ "Ratchet, The Barrens", "Theramore, Dustwallow Marsh", 98 },
{ "Ravenshire, Gilneas", "Southshore, Hillsbrad", 83 },
{ "Refuge Pointe, Arathi", "Aerie Peak, The Hinterlands", 67 },
{ "Refuge Pointe, Arathi", "Ironforge, Dun Morogh", 253 },
{ "Refuge Pointe, Arathi", "Menethil Harbor, Wetlands", 106 },
{ "Refuge Pointe, Arathi", "Southshore, Hillsbrad", 81 },
{ "Refuge Pointe, Arathi", "Thelsamar, Loch Modan", 153 },
{ "Revantusk Village, The Hinterlands", "Hammerfall, Arathi", 85 },
{ "Revantusk Village, The Hinterlands", "Light's Hope Chapel, Eastern Plaguelands", 130 },
{ "Revantusk Village, The Hinterlands", "Tarren Mill, Hillsbrad", 149 },
{ "Revantusk Village, The Hinterlands", "Undercity, Tirisfal", 267 },
{ "Rut'theran Village, Teldrassil", "Auberdine, Darkshore", 80 },
{ "Rut'theran Village, Teldrassil", "Nighthaven, Moonglade", 142 },
{ "SI:7 Outpost, Balor", "Sentinel Hill, Westfall", 67 },
{ "Sentinel Hill, Westfall", "Booty Bay, Stranglethorn", 174 },
{ "Sentinel Hill, Westfall", "Darkshire, Duskwood", 91 },
{ "Sentinel Hill, Westfall", "Lakeshire, Redridge", 122 },
{ "Sentinel Hill, Westfall", "SI:7 Outpost, Balor", 67 },
{ "Sentinel Hill, Westfall", "Stormwind, Elwynn Forest", 72 },
{ "Shadowprey Village, Desolace", "Camp Mojache, Feralas", 184 },
{ "Shadowprey Village, Desolace", "Sun Rock Retreat, Stonetalon Mountains", 186 },
{ "Shadowprey Village, Desolace", "Thunder Bluff, Mulgore", 168 },
{ "Shatterblade Post, Grim Reaches", "Hammerfall, Arathi", 186 },
{ "Shimmerstar Lake, Moonwhisper Coast", "Everlook, Winterspring", 66 },
{ "Shimmerstar Lake, Moonwhisper Coast", "Moonhoof Village, Moonwhisper Coast", 47 },
{ "Shimmerstar Lake, Moonwhisper Coast", "Narvalis Point, Moonwhisper Coast", 71 },
{ "Shimmerstar Lake, Moonwhisper Coast", "Talrendis Point, Azshara", 159 },
{ "Shimmerstar Lake, Moonwhisper Coast", "Valormok, Azshara", 110 },
{ "Slickwick Oil Rig, Tanaris", "Gadgetzan, Tanaris", 104 },
{ "Southshore Ferry, Hillsbrad", "Menethil Harbor, Wetlands", 195 },
{ "Southshore, Hillsbrad", "Aerie Peak, The Hinterlands", 64 },
{ "Southshore, Hillsbrad", "Alah'Thalas, Thalassian Highlands", 194 },
{ "Southshore, Hillsbrad", "Chillwind Camp, Western Plaguelands", 76 },
{ "Southshore, Hillsbrad", "Ironforge, Dun Morogh", 193 },
{ "Southshore, Hillsbrad", "Menethil Harbor, Wetlands", 100 },
{ "Southshore, Hillsbrad", "Ravenshire, Gilneas", 83 },
{ "Southshore, Hillsbrad", "Refuge Pointe, Arathi", 69 },
{ "Sparkwater Port, Durotar", "Gazzik's Workshop, Blackstone Island", 106 },
{ "Splintertree Post, Ashenvale", "Crossroads, The Barrens", 150 },
{ "Splintertree Post, Ashenvale", "Orgrimmar, Durotar", 90 },
{ "Splintertree Post, Ashenvale", "Valormok, Azshara", 90 },
{ "Splintertree Post, Ashenvale", "Zoram'gar Outpost, Ashenvale", 156 },
{ "Steepcliff Port, Tirisfal Glades", "Undercity, Tirisfal", 111 },
{ "Stillward Church, Gilneas", "Tarren Mill, Hillsbrad", 77 },
{ "Stonard, Swamp of Sorrows", "Booty Bay, Stranglethorn", 244 },
{ "Stonard, Swamp of Sorrows", "Flame Crest, Burning Steppes", 185 },
{ "Stonard, Swamp of Sorrows", "Grom'gol, Stranglethorn", 176 },
{ "Stonard, Swamp of Sorrows", "Kargath, Badlands", 263 },
{ "Stonetalon Peak, Stonetalon Mountains", "Astranaar, Ashenvale", 144 },
{ "Stonetalon Peak, Stonetalon Mountains", "Auberdine, Darkshore", 166 },
{ "Stonetalon Peak, Stonetalon Mountains", "Nijel's Point, Desolace", 112 },
{ "Stormbreaker Point, Balor", "Grom'gol, Stranglethorn", 190 },
{ "Stormbreaker Point, Balor", "Stormwind Harbor, Stormwind", 42 },
{ "Stormwind Harbor, Stormwind", "Stormbreaker Point, Balor", 42 },
{ "Stormwind, Elwynn Forest", "Ambershire, Northwind", 106 },
{ "Stormwind, Elwynn Forest", "Booty Bay, Stranglethorn", 229 },
{ "Stormwind, Elwynn Forest", "Darkshire, Duskwood", 82 },
{ "Stormwind, Elwynn Forest", "Ironforge, Dun Morogh", 197 },
{ "Stormwind, Elwynn Forest", "Lakeshire, Redridge", 105 },
{ "Stormwind, Elwynn Forest", "Morgan's Vigil, Burning Steppes", 141 },
{ "Stormwind, Elwynn Forest", "Nethergarde Keep, Blasted Lands", 165 },
{ "Stormwind, Elwynn Forest", "Sentinel Hill, Westfall", 72 },
{ "Sun Rock Retreat, Stonetalon Mountains", "Crossroads, The Barrens", 140 },
{ "Sun Rock Retreat, Stonetalon Mountains", "Shadowprey Village, Desolace", 134 },
{ "Sun Rock Retreat, Stonetalon Mountains", "Thunder Bluff, Mulgore", 163 },
{ "Talonbranch Glade, Felwood", "Auberdine, Darkshore", 176 },
{ "Talonbranch Glade, Felwood", "Everlook, Winterspring", 113 },
{ "Talonbranch Glade, Felwood", "Moonglade", 58 },
{ "Talonbranch Glade, Felwood", "Talrendis Point, Azshara", 265 },
{ "Talrendis Point, Azshara", "Astranaar, Ashenvale", 138 },
{ "Talrendis Point, Azshara", "Auberdine, Darkshore", 282 },
{ "Talrendis Point, Azshara", "Everlook, Winterspring", 167 },
{ "Talrendis Point, Azshara", "Narvalis Point, Moonwhisper Coast", 262 },
{ "Talrendis Point, Azshara", "Ratchet, The Barrens", 127 },
{ "Talrendis Point, Azshara", "Shimmerstar Lake, Moonwhisper Coast", 159 },
{ "Talrendis Point, Azshara", "Talonbranch Glade, Felwood", 266 },
{ "Talrendis Point, Azshara", "Theramore, Dustwallow Marsh", 220 },
{ "Tarren Mill, Hillsbrad", "Hammerfall, Arathi", 109 },
{ "Tarren Mill, Hillsbrad", "Revantusk Village, The Hinterlands", 149 },
{ "Tarren Mill, Hillsbrad", "Stillward Church, Gilneas", 77 },
{ "Tarren Mill, Hillsbrad", "The Sepulcher, Silverpine Forest", 89 },
{ "Tarren Mill, Hillsbrad", "Undercity, Tirisfal", 130 },
{ "Tel Co. Basecamp, Tel'Abim", "Gadgetzan, Tanaris", 111 },
{ "Thalanaar, Feralas", "Feathermoon, Feralas", 167 },
{ "Thalanaar, Feralas", "Gadgetzan, Tanaris", 160 },
{ "Thalanaar, Feralas", "Theramore, Dustwallow Marsh", 149 },
{ "The Sepulcher, Silverpine Forest", "Tarren Mill, Hillsbrad", 89 },
{ "The Sepulcher, Silverpine Forest", "Undercity, Tirisfal", 99 },
{ "Thelsamar, Loch Modan", "Dun Kithas, Grim Reaches", 107 },
{ "Thelsamar, Loch Modan", "Ironforge, Dun Morogh", 102 },
{ "Thelsamar, Loch Modan", "Menethil Harbor, Wetlands", 143 },
{ "Thelsamar, Loch Modan", "Refuge Pointe, Arathi", 153 },
{ "Theramore, Dustwallow Marsh", "Auberdine, Darkshore", 581 },
{ "Theramore, Dustwallow Marsh", "Gadgetzan, Tanaris", 144 },
{ "Theramore, Dustwallow Marsh", "Nijel's Point, Desolace", 288 },
{ "Theramore, Dustwallow Marsh", "Ratchet, The Barrens", 98 },
{ "Theramore, Dustwallow Marsh", "Talrendis Point, Azshara", 220 },
{ "Theramore, Dustwallow Marsh", "Thalanaar, Feralas", 153 },
{ "Thorium Point, Searing Gorge", "Ambershire, Northwind", 79 },
{ "Thorium Point, Searing Gorge", "Flame Crest, Burning Steppes", 67 },
{ "Thorium Point, Searing Gorge", "Ironforge, Dun Morogh", 88 },
{ "Thorium Point, Searing Gorge", "Kargath, Badlands", 53 },
{ "Thorium Point, Searing Gorge", "Morgan's Vigil, Burning Steppes", 90 },
{ "Thunder Bluff, Mulgore", "Brackenwall Village, Dustwallow Marsh", 223 },
{ "Thunder Bluff, Mulgore", "Camp Mojache, Feralas", 236 },
{ "Thunder Bluff, Mulgore", "Camp Taurajo, The Barrens", 81 },
{ "Thunder Bluff, Mulgore", "Crossroads, The Barrens", 149 },
{ "Thunder Bluff, Mulgore", "Freewind Post, Thousand Needles", 191 },
{ "Thunder Bluff, Mulgore", "Gadgetzan, Tanaris", 272 },
{ "Thunder Bluff, Mulgore", "Nighthaven, Moonglade", 510 },
{ "Thunder Bluff, Mulgore", "Orgrimmar, Durotar", 197 },
{ "Thunder Bluff, Mulgore", "Shadowprey Village, Desolace", 168 },
{ "Thunder Bluff, Mulgore", "Sun Rock Retreat, Stonetalon Mountains", 163 },
{ "Thunder Bluff, Mulgore", "Valormok, Azshara", 252 },
{ "Undercity, Tirisfal", "Hammerfall, Arathi", 243 },
{ "Undercity, Tirisfal", "Kargath, Badlands", 457 },
{ "Undercity, Tirisfal", "Light's Hope Chapel, Eastern Plaguelands", 245 },
{ "Undercity, Tirisfal", "Revantusk Village, The Hinterlands", 267 },
{ "Undercity, Tirisfal", "Steepcliff Port, Tirisfal Glades", 111 },
{ "Undercity, Tirisfal", "Tarren Mill, Hillsbrad", 130 },
{ "Undercity, Tirisfal", "The Sepulcher, Silverpine Forest", 99 },
{ "Valormok, Azshara", "Bloodvenom Post, Felwood", 217 },
{ "Valormok, Azshara", "Crossroads, The Barrens", 158 },
{ "Valormok, Azshara", "Everlook, Winterspring", 122 },
{ "Valormok, Azshara", "Orgrimmar, Durotar", 113 },
{ "Valormok, Azshara", "Shimmerstar Lake, Moonwhisper Coast", 110 },
{ "Valormok, Azshara", "Splintertree Post, Ashenvale", 87 },
{ "Valormok, Azshara", "Thunder Bluff, Mulgore", 241 },
{ "Zoram'gar Outpost, Ashenvale", "Crossroads, The Barrens", 213 },
{ "Zoram'gar Outpost, Ashenvale", "Splintertree Post, Ashenvale", 157 },
}
Codex.Taxi.Seed = { n = n, e = e }
+2 -1
View File
@@ -3,7 +3,7 @@
## Notes: Learns quests, creatures and drops while you play: who gives and takes a quest, rewards, objectives, drop chances.
## Notes-deDE: Lernt beim Spielen Quests, Kreaturen und Beute: wer eine Quest vergibt und annimmt, Belohnungen, Ziele, Drop-Chancen.
## Author: Lacustat
## Version: 0.1.218
## Version: 0.1.219
## Dependencies: Freewood-OctoWoW-Core
## SavedVariablesPerCharacter: FreewoodSnapshot
## OptionalDeps: Freewood-OctoWoW-CodexData, Freewood-OctoWoW-ForeverData
@@ -24,6 +24,7 @@ CodexPath.lua
CodexMapAPI.lua
CodexPathMap.lua
CodexTaxi.lua
CodexTaxiSeed.lua
CodexTaxiUI.lua
CodexTransport.lua
CodexSpots.lua