1
0
Bifurcation 0

Pathfinding fixed with new zones added. Astrolabe still needs new data, but meh, that is relatively minor for now. This is a releasable fix\!

Cette révision appartient à :
Nathanial.C.Jones 2010-12-02 02:06:03 +00:00
Parent bc524fb64c
révision 65401fe2c7
5 fichiers modifiés avec 2043 ajouts et 2008 suppressions

Fichier diff supprimé car celui-ci est trop grand Voir la Diff

Voir le fichier

@ -467,7 +467,7 @@ QH_Event("ADDON_LOADED", function (addonid)
QuestHelper.loading_init3:SetPercentage(0.1)
QH_Collector_Init()
QuestHelper.loading_init3:SetPercentage(0.5)
--DB_Init()
DB_Init()
QuestHelper.loading_init3:SetPercentage(0.9)
self.player_level = UnitLevel("player")

Voir le fichier

@ -19,12 +19,12 @@ local BLASTED_LANDS_PORTAL = {33,0.575,0.511, "Blasted Lands portal site"}
local static_horde_routes =
{
{{7, 0.505, 0.124}, {38, 0.313, 0.303}, 210}, -- Durotar <--> Grom'gol Base Camp
{{38, 0.316, 0.289}, {43, 0.621, 0.591}, 210}, -- Grom'gol Base Camp <--> Tirisfal Glades
{{43, 0.605, 0.587}, {7, 0.509, 0.141}, 210}, -- Tirisfal Glades <--> Durotar
-- {{7, 0.505, 0.124}, {38, 0.313, 0.303}, 210}, -- Durotar <--> Grom'gol Base Camp
-- {{38, 0.316, 0.289}, {43, 0.621, 0.591}, 210}, -- Grom'gol Base Camp <--> Tirisfal Glades
-- {{43, 0.605, 0.587}, {7, 0.509, 0.141}, 210}, -- Tirisfal Glades <--> Durotar
{{45, 0.549, 0.11}, {52, 0.495, 0.148}, 60}, -- Undercity <--> Silvermoon City
{{7, 0.413, 0.178}, {65, 0.414, 0.536}, 210}, -- Durotar <--> Warsong Hold
-- {{7, 0.413, 0.178}, {65, 0.414, 0.536}, 210}, -- Durotar <--> Warsong Hold
{{43, 0.591, 0.590}, {70, 0.777, 0.283}, 210}, -- Tirisfal Glades <--> Vengeance Landing
{{60, 0.592, 0.483}, SILVERMOON_CITY_PORTAL, 60, true, nil, "SILVERMOON_CITY_PORTAL"}, -- Shattrath City --> Silvermoon City
@ -48,8 +48,8 @@ local static_horde_routes =
local static_alliance_routes =
{
{QuestHelper_ConvertCoordsToWrath({36, 0.639, 0.083}, true), {25, 0.764, 0.512}, 180}, -- Deeprun Tram
{{10, 0.718, 0.565}, {51, 0.047, 0.636}, 210}, -- Theramore Isle <--> Menethil Harmor
{{36, 0.228, 0.560}, {16, 0.323, 0.441}, 210}, -- Stormwind City <--> Auberdine
{{10, 0.718, 0.565}, {51, 0.047, 0.636}, 210}, -- Theramore Isle <--> Menethil Harbor
{{36, 0.228, 0.560}, {16, 0.323, 0.441}, 210}, -- Stormwind City <--> Auberdine
{{36, 0.183, 0.255}, {65, 0.597, 0.694}, 210}, -- Stormwind City <--> Valiance Keep
{{51, 0.047, 0.571}, {70, 0.612, 0.626}, 210}, -- Menethil <--> Daggercap Bay
@ -189,13 +189,15 @@ local static_zone_transitions =
{1, 11, 0.118, 0.69}, -- Orgrimmar <--> The Barrens
{17, 14, 0.899, 0.46}, -- Feralas <--> Thousand Needles
{6, 11, 0.836, 0.973}, -- Stonetalon Mountains <--> The Barrens
--[[ Alterac Mountains no longer exist.
{26, 48, 0.521, 0.7}, -- Alterac Mountains <--> Hillsbrad Foothills
{26, 35, 0.173, 0.482}, -- Alterac Mountains <--> Silverpine Forest
{26, 50, 0.807, 0.347}, -- Alterac Mountains <--> Western Plaguelands
--]]
{39, 51, 0.454, 0.89}, -- Arathi Highlands <--> Wetlands
{39, 48, 0.2, 0.293}, -- Arathi Highlands <--> Hillsbrad Foothills
{27, 29, 0.49, 0.071}, -- Badlands <--> Loch Modan
-- {27, 32, -0.005, 0.636}, -- Badlands <--> Searing Gorge -- This is the "alliance-only" locked path, I'm disabling it for now entirely
--{27, 32, -0.005, 0.636}, -- Badlands <--> Searing Gorge -- This is the "alliance-only" locked path, I'm disabling it for now entirely
{33, 46, 0.519, 0.051}, -- Blasted Lands <--> Swamp of Sorrows
{40, 30, 0.79, 0.842}, -- Burning Steppes <--> Redridge Mountains
{47, 31, 0.324, 0.363}, -- Deadwind Pass <--> Duskwood
@ -226,7 +228,7 @@ local static_zone_transitions =
{29, 51, 0.252, 0}, -- Loch Modan <--> Wetlands
-- These are just guesses, since I haven't actually been to these areas.
--{58, 60, 0.783, 0.545}, -- Nagrand <--> Shattrath City -- this is aldor-only
{58, 60, 0.783, 0.545}, -- Nagrand <--> Shattrath City -- this is aldor-only
{60, 55, 0.782, 0.492}, -- Shattrath City <--> Terokkar Forest
{54, 59, 0.842, 0.284}, -- Blade's Edge Mountains <--> Netherstorm
{54, 57, 0.522, 0.996}, -- Blade's Edge Mountains <--> Zangarmarsh
@ -275,8 +277,10 @@ function load_graph_links()
end
local function do_routes(routes)
for _, v in ipairs(routes) do
for k, v in ipairs(routes) do
if not v.level_limit or v.level_limit <= UnitLevel("player") then
QuestHelper:Assert(v[1], tostring(k) .. " is the key, v[1].")
QuestHelper:Assert(v[2], tostring(k) .. " is the key, v[2]. v[1] is " .. tostring(v[1])) -- breaks here
local src = convert_coordinate(v[1])
local dst = convert_coordinate(v[2])
QuestHelper: Assert(src.x and dst.x)
@ -300,7 +304,10 @@ function load_graph_links()
do_routes(faction_db)
do_routes(static_shared_routes)
for _, v in ipairs(static_zone_transitions) do
for k, v in ipairs(static_zone_transitions) do
QuestHelper:Assert(v[1], tostring(k) .. " is the key, v[1]-2.")
QuestHelper:Assert(v[3], tostring(k) .. " is the key, v[3]-2.")
QuestHelper:Assert(v[4], tostring(k) .. " is the key, v[4]-2.")
local src = convert_coordinate({v[1], v[3], v[4]})
local dst = convert_coordinate({v[1], v[3], v[4]})
dst.p = v[2]
@ -310,6 +317,8 @@ function load_graph_links()
end
do
QuestHelper:Assert(dark_portal_route[1], "DPR1")
QuestHelper:Assert(dark_portal_route[2], "DPR2")
local src = convert_coordinate(dark_portal_route[1])
local dst = convert_coordinate(dark_portal_route[2])
src.map_desc = {QHFormat("WAYPOINT_REASON", QHFormat("ZONE_BORDER_SIMPLE", QuestHelper_NameLookup[dark_portal_route[2]]))}

Voir le fichier

@ -2,7 +2,8 @@ QuestHelper_File["upgrade.lua"] = "4.0.1.$svnversion$"
QuestHelper_Loadtime["upgrade.lua"] = GetTime()
QuestHelper_Zones =
{{[0]="Kalimdor",
{
{[0]="Kalimdor",
[1]="Ahn'Qiraj: The Fallen Kingdom",
[2]="Ashenvale",
[3]="Azshara",
@ -97,13 +98,12 @@ QuestHelper_Zones =
[11]="Wintergrasp",
[12]="Zul'Drak",
},
{[0]="The Maelstrom",
{[0]="The Maelstrom Continent",
[1]="Deepholm",
[2]="Kezan",
[3]="The Lost Isles",
[4]="The Maelstrom"
},
[-77]={[0]="ScarletEnclave_Continent", [1]="ScarletEnclave"},
[-80]={[0]="UtgardeKeep1_Continent", [1]="UtgardeKeep1"},
@ -168,88 +168,112 @@ QuestHelper_Zones =
-- This will be translated to [LOCALE_NAME] = INDEX by QuestHelper_BuildZoneLookup.
-- Additionally, [CONT_INDEX][ZONE_INDEX] = INDEX will also be added.
QuestHelper_IndexLookup =
{["Hinterlands"] = {42, 2, 30},
["Moonglade"] = {160, 1, 13},
["ThousandNeedles"] = {163, 1, 24},
["Winterspring"] = {19, 1, 28},
["BloodmystIsle"] = {159, 1, 5},
["TerokkarForest"] = {55, 3, 7},
["Arathi"] = {39, 2, 2},
["EversongWoods"] = {41, 2, 11},
["Dustwallow"] = {160, 1, 10},
["Badlands"] = {27, 2, 3},
["Darkshore"] = {159, 1, 6},
["Orgrimmar"] = {161, 1, 17},
["BladesEdgeMountains"] = {54, 3, 1},
["Undercity"] = {45, 2, 35},
["Desolace"] = {160, 1, 8},
["Netherstorm"] = {59, 3, 4},
["Barrens"] = {161, 1, 16},
["SouthernBarrens"] = {162, 1, 19},
["Tanaris"] = {163, 1, 21},
["StormwindCity"] = {173, 2, 26},
["Zangarmarsh"] = {57, 3, 8},
["Durotar"] = {160, 1, 9},
["Hellfire"] = {56, 3, 2},
["Silithus"] = {162, 1, 18},
["ShattrathCity"] = {60, 3, 6},
["ShadowmoonValley"] = {53, 3, 5},
["SwampOfSorrows"] = {46, 2, 28},
["SilvermoonCity"] = {52, 2, 24},
["Darnassus"] = {159, 1, 7},
["AzuremystIsle"] = {159, 1, 4},
["Elwynn"] = {37, 2, 10},
["StranglethornJungle"] = {168, 2, 18},
["StranglethornVale"] = {173, 2, 27},
["TheCapeOfStranglethorn"] = {174, 2, 29},
["EasternPlaguelands"] = {34, 2, 9},
["Duskwood"] = {31, 2, 8},
["WesternPlaguelands"] = {50, 2, 37},
["Westfall"] = {49, 2, 38},
["Ashenvale"] = {159, 1, 2},
["Teldrassil"] = {163, 1, 22},
["Redridge"] = {30, 2, 19},
{
["Orgrimmar"] = {1, 1, 17},
["Ashenvale"] = {2, 1, 2},
["AzuremystIsle"] = {3, 1, 4},
["Desolace"] = {4, 1, 8},
["Silithus"] = {5, 1, 18},
["StonetalonMountains"] = {6, 1, 20},
["Durotar"] = {7, 1, 9},
["Tanaris"] = {8, 1, 21},
["BloodmystIsle"] = {9, 1, 5},
["Dustwallow"] = {10, 1, 10},
["Barrens"] = {11, 1, 16},
["TheExodar"] = {12, 1, 23},
["Felwood"] = {13, 1, 11},
["ThousandNeedles"] = {14, 1, 24},
["Aszhara"] = {15, 1, 3},
["Darkshore"] = {16, 1, 6},
["Feralas"] = {17, 1, 12},
["UngoroCrater"] = {18, 1, 27},
["Mulgore"] = {161, 1, 15},
["Winterspring"] = {19, 1, 28},
["Moonglade"] = {20, 1, 13},
["Darnassus"] = {21, 1, 7},
["Mulgore"] = {22, 1, 15},
["ThunderBluff"] = {23, 1, 25},
["Teldrassil"] = {24, 1, 22},
["Ironforge"] = {25, 2, 14},
["Felwood"] = {160, 1, 11},
["HillsbradFoothills"] = {166, 2, 13},
["DeadwindPass"] = {47, 2, 6},
["BurningSteppes"] = {40, 2, 5},
["Ghostlands"] = {44, 2, 12},
["Tirisfal"] = {43, 2, 31},
["TheExodar"] = {163, 1, 23},
["Wetlands"] = {51, 2, 39},
["Alterac"] = {26, 2, 1},
["Badlands"] = {27, 2, 3},
["DunMorogh"] = {28, 2, 7},
["LochModan"] = {29, 2, 17},
["Redridge"] = {30, 2, 19},
["Duskwood"] = {31, 2, 8},
["SearingGorge"] = {32, 2, 22},
["BlastedLands"] = {33, 2, 4},
["EasternPlaguelands"] = {34, 2, 9},
["Silverpine"] = {35, 2, 25},
["LochModan"] = {29, 2, 17},
["Feralas"] = {160, 1, 12},
["DunMorogh"] = {28, 2, 7},
["Alterac"] = {26, 2, 1},
["ThunderBluff"] = {163, 1, 25},
["Aszhara"] = {159, 1, 3},
["StonetalonMountains"] = {163, 1, 20},
["StormwindCity"] = {36, 2, 26},
["Elwynn"] = {37, 2, 10},
["StranglethornVale"] = {38, 2, 27},
["Arathi"] = {39, 2, 2},
["BurningSteppes"] = {40, 2, 5},
["EversongWoods"] = {41, 2, 11},
["Hinterlands"] = {42, 2, 30},
["Tirisfal"] = {43, 2, 31},
["Ghostlands"] = {44, 2, 12},
["Undercity"] = {45, 2, 35},
["SwampOfSorrows"] = {46, 2, 28},
["DeadwindPass"] = {47, 2, 6},
["HillsbradFoothills"] = {48, 2, 13},
["Westfall"] = {49, 2, 38},
["WesternPlaguelands"] = {50, 2, 37},
["Wetlands"] = {51, 2, 39},
["SilvermoonCity"] = {52, 2, 24},
["ShadowmoonValley"] = {53, 3, 5},
["BladesEdgeMountains"] = {54, 3, 1},
["TerokkarForest"] = {55, 3, 7},
["Hellfire"] = {56, 3, 2},
["Zangarmarsh"] = {57, 3, 8},
["Nagrand"] = {58, 3, 3},
["Netherstorm"] = {59, 3, 4},
["ShattrathCity"] = {60, 3, 6},
["Kalimdor"] = {61, 1, 0},
["Azeroth"] = {62, 2, 0},
["Expansion01"] = {63, 3, 0},
["Sunwell"] = {64, 2, 15},
["Northrend"] = {76, 4, 0},
["Sunwell"] = {64, 2, 15},
["BoreanTundra"] = {65, 4, 1},
["CrystalsongForest"] = {66, 4, 2},
["Dalaran"] = {67, 4, 3},
["Dragonblight"] = {68, 4, 4},
["GrizzlyHills"] = {69, 4, 5},
["HowlingFjord"] = {70, 4, 6},
["HrothgarsLanding"] = {153, 4, 7}, -- wooo consecutive numbering
["IcecrownGlacier"] = {71, 4, 8},
["SholazarBasin"] = {72, 4, 9},
["TheStormPeaks"] = {73, 4, 10},
["LakeWintergrasp"] = {74, 4, 11},
["ZulDrak"] = {75, 4, 12},
["Northrend"] = {76, 4, 0},
["HrothgarsLanding"] = {153, 4, 7}, -- wooo consecutive numbering
["AhnQirajTheFallenKingdom"] = {158, 1, 1},
["Hyjal"] = {198, 1, 14},
["SouthernBarrens"] = {203, 1, 19},
["Uldum"] = {164, 1, 26},
["VashjirDepths"] = {165, 2, 1},
["VashjirKelpForest"] = {167, 2, 16},
["StranglethornJungle"] = {168, 2, 18},
["RuinsofGilneas"] = {169, 2, 20},
["RuinsofGilneasCity"] = {170, 2, 21},
["VashjirRuins"] = {171, 2, 23},
["TheCapeOfStranglethorn"] = {174, 2, 29},
["TolBarad"] = {175, 2, 32},
["TolBaradDailyArea"] = {176, 2, 33},
["TwilightHighlands_terrain1"] = {177, 2, 34},
["Vashjir"] = {178, 2, 36},
["Deepholm"] = {179, 5, 1},
["Kezan"] = {180, 5, 2},
["TheLostIsles"] = {181, 5, 3},
["TheMaelstrom"] = {182, 5, 4},
["TheMaelstromContinent"] = {183, 5, 0},
["TwilightHighlands"] = {184, 2, 34},
["Hyjal_terrain1"] = {185, 1, 14},
["ScarletEnclave_Continent"] = {77, -77, 0}, ["ScarletEnclave"] = {78, -77, 1},
["UtgardeKeep1_Continent"] = {79, -80, 0}, ["UtgardeKeep1"] = {80, -80, 1},
@ -308,18 +332,11 @@ QuestHelper_IndexLookup =
["TheForgeofSouls_Continent"] = {154, -117, 0}, ["TheForgeofSouls"] = {155, -117, 1},
["PitofSaron_Continent"] = {156, -118, 0}, ["PitofSaron"] = {157, -118, 1},
["AhnQirajTheFallenKingdom"] = {158, 1, 1}, ["Hyjal"] = {160, 1, 14},
["Uldum"] = {164, 1, 26}, ["VashjirDepths"] = {165, 2, 1},
["VashjirKelpForest"] = {167, 2, 16}, ["RuinsofGilneas"] = {169, 2, 20},
["RuinsofGilneasCity"] = {170, 2, 21}, ["VashjirRuins"] = {171, 2, 23},
["TolBarad"] = {175, 2, 32}, ["TolBaradDailyArea"] = {176, 2, 33},
["TwilightHighlands_terrain1"] = {177, 2, 34}, ["Vashjir"] = {178, 2, 36},
["TwilightHighlands"] = {184, 2, 34},
["Deepholm"] = {179, 5, 1}, ["Kezan"] = {180, 5, 2},
["TheLostIsles"] = {181, 5, 3}, ["TheMaelstrom"] = {182, 5, 4},
["TheMaelstromContinent"] = {183, 5, 0}, ["Hyjal_terrain1"] = {185, 1, 14}
-- yes virginia 183 is currently the end
}
QuestHelper_RestrictedZones = { -- Everything defaults to "nil"
@ -361,24 +378,22 @@ function QuestHelper_BuildZoneLookup()
QuestHelper_Zones[c] = {}
local tpx = QuestHelper.Astrolabe:GetMapVirtualZones(c)
tpx[0] = cname
for z, zname in pairs(tpx) do
local base_name = QuestHelper.Astrolabe:GetMapTexture(c, z)
local index = original_lookup[base_name] and original_lookup[base_name][1]
local altered_index = "!!! QuestHelper_IndexLookup entry needs update: [%q] = {%s, %s, %s}"
local altered_zone = "!!! QuestHelper_Zones entry needs update: [%s][%s] = %q -- was %s"
if not index then
QuestHelper_ErrorCatcher_ExplicitError(false, altered_index:format(tostring(base_name), tostring(next_index), tostring(c), tostring(z)))
--QuestHelper:TextOut(altered_index:format(tostring(base_name), tostring(next_index), tostring(c), tostring(z)))
next_index = next_index + 1
else
if QuestHelper_Locale == "enUS" then
if original_lookup[base_name][2] ~= c or original_lookup[base_name][3] ~= z then
QuestHelper_ErrorCatcher_ExplicitError(false, altered_index:format(base_name, index, c, z))
--QuestHelper:TextOut(altered_index:format(base_name, index, c, z))
end
if not original_zones[c] or original_zones[c][z] ~= zname then
@ -404,20 +419,24 @@ function QuestHelper_BuildZoneLookup()
for name, index in pairs(original_lookup) do
if index[2] == -1 then
--[[ assert(not QuestHelper_IndexLookup[name]) ]]
--assert(not QuestHelper_IndexLookup[name])
QuestHelper_IndexLookup[name] = index[1]
end
end
for k, v in pairs(QuestHelper_ZoneLookup) do
if type(k) == "number" then
if v[1] == 1 or v[1] == 2 or v[1] == 4 then -- weh
--QuestHelper:TextOut(tostring(k) .. " " .. tostring(v[1]))
if v[1] == 1 or v[1] == 2 or v[1] == 4 or v[1] == 5 then -- weh
QuestHelper_ParentLookup[k] = 0
else
QuestHelper_ParentLookup[k] = v[1]
end
end
end
-- Sanity is failing BEFORE exiting the function... Duplicate indices... owa tagu siam.
-- It's still failing now. BUT... That happens to be because The Maelstrom and The Maelstrom Continent Share the same damn name in QuestHelper_Zones. We need to rectify this... LOOK AT SAUR'S CODE.
QuestHelper:Assert(QuestHelper:ZoneSanity())
else
-- Called from some lua script.
local original_lookup = QuestHelper_IndexLookup
@ -428,7 +447,7 @@ function QuestHelper_BuildZoneLookup()
local pair = {i[2], i[3]}
local name = QuestHelper_Zones[pair[1]][pair[2]]
--[[ assert(index and name) ]]
--assert(index and name)
if not QuestHelper_IndexLookup[pair[1]] then QuestHelper_IndexLookup[pair[1]] = {} end
QuestHelper_IndexLookup[pair[1]][pair[2]] = index
@ -439,11 +458,14 @@ function QuestHelper_BuildZoneLookup()
QuestHelper_ZoneLookup[name] = pair
QuestHelper_ZoneLookup[index] = pair
end
QuestHelper:Assert(QuestHelper:ZoneSanity())
end
if Cartographer_Notes and not Cartographer_Notes.fixed_that_bug_that_causes_POI_to_crash_when_you_change_to_hrothgars_landing then
Cartographer_Notes.SetNote = cartugh
end
-- We are broken by the time we get here. Time to turn these TextOut's to Errors.
QuestHelper:Assert(QuestHelper:ZoneSanity())
end
local convert_lookup =
@ -490,7 +512,7 @@ local function QuestHelper_ConvertFaction(faction)
if faction == 1 or faction == "Alliance" or faction == FACTION_ALLIANCE then return 1
elseif faction == 2 or faction == "Horde" or faction == FACTION_HORDE then return 2
else
--[[ assert(false, "Unknown faction: "..faction.."'") ]]
--assert(false, "Unknown faction: "..faction.."'")
end
end

Voir le fichier

@ -81,7 +81,7 @@ function QuestHelper:ZoneSanity()
end
--[[ assert(name) ]]
-- c,z should be equal to name, unless c = 5 and z = 0, in which case it should be equal to name .. " Continent"
if QuestHelper_Zones[c][z] ~= name then
sane = false
QuestHelper:TextOut(string.format("'%s' has the wrong ID (should be %d,%d).", name, c, z))
@ -97,12 +97,12 @@ function QuestHelper:ZoneSanity()
local index = QuestHelper_IndexLookup[name]
if QuestHelper_ZoneLookup[index] ~= pair then
sane = false
QuestHelper:TextOut("ZoneLookup['"..name.."'] isn't equal to ZoneLookup["..index.."]")
QuestHelper:TextOut("ZoneLookup['"..name.."'] isn't equal to ZoneLookup["..index.."] they are "..tostring(QuestHelper_ZoneLookup[name]).." and "..tostring(QuestHelper_ZoneLookup[index])..", respectively.")
end
if not index or QuestHelper_NameLookup[index] ~= name then
sane = false
QuestHelper:TextOut("NameLookup["..(index or "???").."'] doesn't equal '"..name.."'")
QuestHelper:TextOut("NameLookup["..(index or "???").."] doesn't equal '"..name.."', it is "..tostring(QuestHelper_NameLookup[index]))
end
end
end