1
0
Bifurcation 0

Added functionality to track the elders based on their associated achievements, and the ability to clear the entire list.

"/qh find elder[s] achievement [elder_or_achievement]" will track the incomplete achievements of the specified elder or achievement, or all incomplete elder achievements if none is specified.

"/qh find elder[s] clear" will clear the tracker of all tracked elders regardless of completion.
Cette révision appartient à :
Nathanial.C.Jones 2012-02-10 00:59:22 +00:00
Parent 0496df0268
révision 92ca575dff
1 fichiers modifiés avec 127 ajouts et 88 suppressions

Voir le fichier

@ -137,37 +137,37 @@ end
local elders = { local elders = {
["Alliance"] = { -- Achievement 915 ["Alliance"] = { -- Achievement 915
["Bladeswift"] = {381, 39, 32, 8718}, --"Darnassus 39 32", ["Bladeswift"] = {381, 39, 32, 8718, 1999}, --"Darnassus 39 32",
["Bronzebeard"] = {341, 29, 16, 8866}, --"Ironforge 29 16", ["Bronzebeard"] = {341, 29, 16, 8866, 1997}, --"Ironforge 29 16",
["Hammershout"] = {30, 2, 10, 8646}, --"Elwynn Forest 34 50" ["Hammershout"] = { 30, 2, 10, 8646, 1998}, --"Elwynn Forest 34 50"
}, },
["Horde"] = { -- Achievement 914 ["Horde"] = { -- Achievement 914
["Darkhorn"] = {321, 52, 60, 8677}, --"Orgrimmar 52 60", ["Darkhorn"] = {321, 52, 60, 8677, 1991}, --"Orgrimmar 52 60",
["Wheathoof"] = {362, 73.0, 23.3, 8678}, --"Thunder Bluff 73.0 23.3", ["Wheathoof"] = {362, 73.0, 23.3, 8678, 1993}, --"Thunder Bluff 73.0 23.3",
["Darkcore"] = {382, 67, 38, 8648}, --"Undercity 67 38" ["Darkcore"] = {382, 67, 38, 8648, 1992}, --"Undercity 67 38"
}, },
["Kalimdor"] = { -- Achievement 911 ["Kalimdor"] = { -- Achievement 911
["Riversong"] = {43, 35.5, 48.9, 8725}, --"Ashenvale 35.5 48.9", ["Bladeleaf"] = { 41, 56.8, 53.1, 8715, 1951}, --"Teldrassil 56.8 53.1",
["Skygleam"] = {181, 64.8, 79.3, 8720}, --"Azshara 64.8 79.3", ["Bladesing"] = {261, 53, 35, 8719, 1966}, --"Silithus 53 35",
["High Mountain"] = {607, 41.5, 47.5, 8686}, --"Southern Barrens 41.5 47.5", ["Bloodhoof"] = { 9, 48, 53, 8673, 1953}, --"Mulgore 48 53",
["Moonwarden"] = {11, 48.5, 59.2, 8717}, --"Northern Barrens 48.5 59.2", ["Brightspear"] = {281, 53.0, 56.7, 8726, 1963}, --"Winterspring 53.0 56.7",
["Windtotem"] = {11, 68.4, 70, 8680}, --"Northern Barrens 68.4 70", ["Dreamseer"] = {161, 50, 28, 8684, 1961}, --"Tanaris 50 28",
["Starweave"] = {42, 49.5, 19.0, 8721}, --"Darkshore 49.5 19.0", ["Grimtotem"] = {121, 76.7, 37.9, 8679, 1955}, --"Feralas 76.7 37.9",
["Runetotem"] = {4, 53.2, 43.6, 8670}, --"Durotar 53.2 43.6", ["High Mountain"] = {607, 41.5, 47.5, 8686, 1919}, --"Southern Barrens 41.5 47.5",
["Nightwind"] = {182, 38.3, 52.9, 8723}, --"Felwood 38.3 52.9", ["Mistwalker"] = {121, 62.6, 31.1, 8685, 1956}, --"Feralas 62.6 31.1",
["Grimtotem"] = {121, 76.7, 37.9, 8679}, --"Feralas 76.7 37.9", ["Moonwarden"] = { 11, 48.5, 59.2, 8717, 1918}, --"Northern Barrens 48.5 59.2",
["Mistwalker"] = {121, 62.6, 31.1, 8685}, --"Feralas 62.6 31.1", ["Morningdew"] = { 61, 77.0, 75.6, 8724, 1959}, --"Thousand Needles 77.0 75.6",
["Bloodhoof"] = {9, 48, 53, 8673}, --"Mulgore 48 53", ["Nightwind"] = {182, 38.3, 52.9, 8723, 1957}, --"Felwood 38.3 52.9",
["Bladesing"] = {261, 53, 35, 8719}, --"Silithus 53 35", ["Primestone"] = {261, 30.7, 13.3, 8654, 1965}, --"Silithus 30.7 13.3",
["Primestone"] = {261, 30.7, 13.3, 8654}, --"Silithus 30.7 13.3", ["Ragetotem"] = {161, 36, 80, 8671, 1960}, --"Tanaris 36 80",
["Dreamseer"] = {161, 50, 28, 8684}, --"Tanaris 50 28", ["Riversong"] = { 43, 35.5, 48.9, 8725, 1954}, --"Ashenvale 35.5 48.9",
["Ragetotem"] = {161, 36, 80, 8671}, --"Tanaris 36 80", ["Runetotem"] = { 4, 53.2, 43.6, 8670, 1916}, --"Durotar 53.2 43.6",
["Bladeleaf"] = {41, 56.8, 53.1, 8715}, --"Teldrassil 56.8 53.1", ["Skygleam"] = {181, 64.8, 79.3, 8720, 1917}, --"Azshara 64.8 79.3",
["Skyseer"] = {61, 46.3, 51.0, 8682}, --"Thousand Needles 46.3 51.0", ["Skyseer"] = { 61, 46.3, 51.0, 8682, 1958}, --"Thousand Needles 46.3 51.0",
["Morningdew"] = {61, 77.0, 75.6, 8724}, --"Thousand Needles 77.0 75.6", ["Starweave"] = { 42, 49.5, 19.0, 8721, 1952}, --"Darkshore 49.5 19.0",
["Thunderhorn"] = {201, 51, 75, 8681}, --"Un'Goro Crater 51 75", ["Stonespire"] = {281, 60.0, 50.0, 8672, 1964}, --"Winterspring 60.0 50.0",
["Brightspear"] = {281, 53.0, 56.7, 8726}, --"Winterspring 53.0 56.7", ["Thunderhorn"] = {201, 51, 75, 8681, 1962}, --"Un'Goro Crater 51 75",
["Stonespire"] = {281, 60.0, 50.0, 8672}, --"Winterspring 60.0 50.0", ["Windtotem"] = { 11, 68.4, 70, 8680, 1920}, --"Northern Barrens 68.4 70",
}, },
["Eastern Kingdoms"] = { -- Achievement 912 ["Eastern Kingdoms"] = { -- Achievement 912
["Bellowrage"] = {19, 54, 49, 8647}, --"Blasted Lands 54 49", ["Bellowrage"] = {19, 54, 49, 8647}, --"Blasted Lands 54 49",
@ -189,92 +189,131 @@ local elders = {
["Skychaser"] = {39, 56, 47, 8675}, --"Westfall 56 47" ["Skychaser"] = {39, 56, 47, 8675}, --"Westfall 56 47"
}, },
["Northrend"] = { -- Achievement 1396 ["Northrend"] = { -- Achievement 1396
["Arp"] = {486, 57, 44, 13033}, --"Borean Tundra 57 44", ["Arp"] = {486, 57, 44, 13033, 5145}, --"Borean Tundra 57 44",
["Northal"] = {486, 34, 34, 13016}, --"Borean Tundra 34 34", ["Northal"] = {486, 34, 34, 13016, 5146}, --"Borean Tundra 34 34",
["Pamuya"] = {486, 43, 50, 13029}, --"Borean Tundra 43 50", ["Pamuya"] = {486, 43, 50, 13029, 5157}, --"Borean Tundra 43 50",
["Sardis"] = {486, 59, 66, 13012}, --"Borean Tundra 59 66", ["Sardis"] = {486, 59, 66, 13012, 5141}, --"Borean Tundra 59 66",
["Morthie"] = {488, 30, 56, 13014}, --"Dragonblight 30 56", ["Morthie"] = {488, 30, 56, 13014, 5143}, --"Dragonblight 30 56",
["Skywarden"] = {488, 35, 48, 13031}, --"Dragonblight 35 48", ["Skywarden"] = {488, 35, 48, 13031, 5159}, --"Dragonblight 35 48",
["Thoim"] = {488, 49, 78, 13019}, --"Dragonblight 49 78", ["Thoim"] = {488, 49, 78, 13019, 5154}, --"Dragonblight 49 78",
["Beldak"] = {490, 61, 28, 13013}, --"Grizzly Hills 61 28", ["Beldak"] = {490, 61, 28, 13013, 5142}, --"Grizzly Hills 61 28",
["Lunaro"] = {490, 81, 37, 13025}, --"Grizzly Hills 81 37", ["Lunaro"] = {490, 81, 37, 13025, 5149}, --"Grizzly Hills 81 37",
["Whurain"] = {490, 64, 47, 13030}, --"Grizzly Hills 64 47", ["Whurain"] = {490, 64, 47, 13030, 5158}, --"Grizzly Hills 64 47",
["Bluewolf"] = {501, 49, 14, 13026}, --"Wintergrasp 49 14", ["Bluewolf"] = {501, 49, 14, 13026, 5150}, --"Wintergrasp 49 14",
["Sandrene"] = {493, 50, 64, 13018}, --"Sholazar Basin 50 64", ["Sandrene"] = {493, 50, 64, 13018, 5147}, --"Sholazar Basin 50 64",
["Wanikaya"] = {493, 64, 49, 13024}, --"Sholazar Basin 64 49", ["Wanikaya"] = {493, 64, 49, 13024, 5148}, --"Sholazar Basin 64 49",
["Fargal"] = {495, 29, 74, 13015}, --"Storm Peaks 29 74", ["Fargal"] = {495, 29, 74, 13015, 5144}, --"Storm Peaks 29 74",
["Graymane"] = {495, 41, 85, 13028}, --"Storm Peaks 41 85", ["Graymane"] = {495, 41, 85, 13028, 5155}, --"Storm Peaks 41 85",
["Muraco"] = {495, 64, 51, 13032}, --"Storm Peaks 64 51", ["Muraco"] = {495, 64, 51, 13032, 5160}, --"Storm Peaks 64 51",
["Stonebeard"] = {495, 31, 38, 13020}, --"Storm Peaks 31 38", ["Stonebeard"] = {495, 31, 38, 13020, 5156}, --"Storm Peaks 31 38",
["Tauros"] = {496, 59, 56, 13027}, --"Zul'Drak 59 56" ["Tauros"] = {496, 59, 56, 13027, 5151}, --"Zul'Drak 59 56"
}, },
["Cataclysm"] = { -- Achievement 6006 ["Cataclysm"] = { -- Achievement 6006
["Moonlance"] = {615, 57, 86, 29738}, -- Biel'aran Ridge, Shimmering Expanse ["Moonlance"] = {615, 57, 86, 29738, 18154}, -- Biel'aran Ridge, Shimmering Expanse
["Windsong"] = {606, 27, 62, 29739}, -- Sanctuary of Malorne, Hyjal ["Windsong"] = {606, 27, 62, 29739, 18156}, -- Sanctuary of Malorne, Hyjal
["Evershade"] = {606, 63, 23, 29740}, -- Nordrassil, Hyjal ["Evershade"] = {606, 63, 23, 29740, 18155}, -- Nordrassil, Hyjal
["Stonebrand"] = {640, 50, 55, 29735}, -- Temple of Earth, Deepholm ["Stonebrand"] = {640, 50, 55, 29735, 18157}, -- Temple of Earth, Deepholm
["Deepforge"] = {640, 28, 69, 29734}, -- Stonehearth, Deepholm ["Deepforge"] = {640, 28, 69, 29734, 18158}, -- Stonehearth, Deepholm
["Menkhaf"] = {720, 66, 19, 29742}, -- Khartut's Tomb, Uldum ["Menkhaf"] = {720, 66, 19, 29742, 18159}, -- Khartut's Tomb, Uldum
["Sekhemi"] = {720, 32, 63, 29741}, -- Ruins of Ammon, Uldum ["Sekhemi"] = {720, 32, 63, 29741, 18160}, -- Ruins of Ammon, Uldum
["Firebeard"] = {700, 51, 71, 29737}, -- Dunward Town Square, Dunward Ruins, Twilight Highlands ["Firebeard"] = {700, 51, 71, 29737, 18161}, -- Dunward Town Square, Dunward Ruins, Twilight Highlands
["Darkfeather"] = {700, 52, 33, 29736} -- Thundermar Ruins, Twilight Highlands ["Darkfeather"] = {700, 52, 33, 29736, 18162} -- Thundermar Ruins, Twilight Highlands
}, },
--[===[ Placeholder for Elders of the Dungeons. If enabled prior to 2013, stored coordinates should be the map ID of the zone where the instance is located and the coordinates of the entrance. With any luck, by 2013 dungeons will be mapable. Coordinates listed in comment after each elder need to have floor numbers determined, where necessary, ASAP. --[===[ Placeholder for Elders of the Dungeons. If enabled prior to 2013, stored coordinates should be the map ID of the zone where the instance is located and the coordinates of the entrance. With any luck, by 2013 dungeons will be mapable. Coordinates listed in comment after each elder need to have floor numbers determined, where necessary, ASAP.
["Dungeons"] = { -- Achievement 910 ["Dungeons"] = { -- Achievement 910
["Wildmane"] = {,,,8676}, -- Zul'Farrak 34.52 39.35 ["Wildmane"] = {,,,8676, 1910}, -- Zul'Farrak 34.52 39.35
["Splitrock"] = {,,,8635}, -- Maraudon 51.47, 93.7 ["Splitrock"] = {,,,8635, 1912}, -- Maraudon 51.47, 93.7
["Morndeep"] = {,,,8619}, -- Blackrock Depths 50.52 62.97 ["Morndeep"] = {,,,8619, 1914}, -- Blackrock Depths 50.52 62.97
["Jarten"] = {,,,13017}, -- Utgarde Keep 47.4, 69.54 ["Jarten"] = {,,,13017, 5259}, -- Utgarde Keep 47.4, 69.54
["Nurgen"] = {,,,13022}, -- Azjol-Nerub 21.78 43.62 ["Nurgen"] = {,,,13022, 5261}, -- Azjol-Nerub 21.78 43.62
["Ohanzee"] = {,,,13065}, -- Gundrak 45.7 61.55 ["Ohanzee"] = {,,,13065, 5263}, -- Gundrak 45.7 61.55
["Chogan'gada"] = {,,,13067}, -- Utgarde Pinnacle 47.71 22.99 ["Chogan'gada"] = {,,,13067, 5265}, -- Utgarde Pinnacle 47.71 22.99
["Starsong"] = {,,,8713}, -- Sunken Temple 62.92 34.46 ["Starsong"] = {,,,8713, 1911}, -- Sunken Temple 62.92 34.46
["Stonefort"] = {,,,8644}, -- Blackrock Spire 61.82 40 ["Stonefort"] = {,,,8644, 1913}, -- Blackrock Spire 61.82 40
["Farwhisper"] = {,,,8727}, -- Stratholme 78.62 22.14 ["Farwhisper"] = {,,,8727, 1915}, -- Stratholme 78.62 22.14
["Igasho"] = {,,,13021}, -- The Nexus 55.18 64.74 ["Igasho"] = {,,,13021, 5260}, -- The Nexus 55.18 64.74
["Kilias"] = {,,,13023}, -- Drak'tharon Keep 68.85 79.17 ["Kilias"] = {,,,13023, 5262}, -- Drak'tharon Keep 68.85 79.17
["Yurauk"] = {,,,13066} -- Halls of Stone 29.39 62.03 ["Yurauk"] = {,,,13066, 5264} -- Halls of Stone 29.39 62.03
} }
--]===] --]===]
} }
trackedElders = {}
local function UpdateElders() local function UpdateElders()
local qid = GetQuestID() local elder, elderinfo
for achievement, eldrs in pairs(elders) do local qid = GetQuestID()
for elder, elderinfo in pairs(eldrs) do for elder, elderinfo in pairs(trackedElders) do
local z, x, y, id = unpack(elderinfo) local z, x, y, id = unpack(elderinfo)
if id == qid then if id == qid then
QH_FindCoord(x, y, z, elder) QH_FindCoord(x, y, z, elder)
end trackedElders[elder] = nil
end return
end
end end
end end
QH_Event("QUEST_COMPLETE", UpdateElders) QH_Event("QUEST_COMPLETE", UpdateElders)
local function QH_FindElders(elder_or_achievement, all_elders) local function QH_FindElders(elder_or_achievement, all_elders, forAchievement)
if elder_or_achievement == "CLEAR" then
for elder, elderinfo in pairs(trackedElders) do
local z, x, y = unpack(elderinfo)
QH_FindCoord(x, y, z, elder)
end
trackedElders = {}
return
end
local achievement_match, elder_match = false, false local achievement_match, elder_match = false, false
local elderCount = 0
for achievement, eldrs in pairs(elders) do for achievement, eldrs in pairs(elders) do
if not all_elders then if not all_elders then
if elder_or_achievement == string.upper(achievement) then achievement_match = true end if elder_or_achievement == string.upper(achievement) then achievement_match = true end
end end
for elder, elder_info in pairs(eldrs) do for elder, elder_info in pairs(eldrs) do
local locz, locx, locy, qid = unpack(elder_info) local locz, locx, locy, qid, aid = unpack(elder_info)
local okToAdd = true local okToAdd = true
if qid and QHQuestsCompleted and QHQuestsCompleted[qid] then if forAchievement then
if aid then
local _, _, completed = GetAchievementCriteriaInfo(aid)
if completed then okToAdd = false end
end
elseif qid and QHQuestsCompleted and QHQuestsCompleted[qid] then
okToAdd = false okToAdd = false
end end
if okToAdd then if okToAdd then
if not all_elders then if not all_elders then
if achievement_match then -- just add it if achievement_match then -- just add it
QH_FindCoord(locx, locy, locz, elder) QH_FindCoord(locx, locy, locz, elder)
if trackedElders[elder] then trackedElders[elder] = nil
else
trackedElders[elder] = elder_info
elderCount = elderCount + 1
end
elseif elder_or_achievement == string.upper(elder) then -- We have input and it's not an achievement, so it must be an elder. elseif elder_or_achievement == string.upper(elder) then -- We have input and it's not an achievement, so it must be an elder.
elder_match = true elder_match = true
QH_FindCoord(locx, locy, locz, elder) QH_FindCoord(locx, locy, locz, elder)
if trackedElders[elder] then trackedElders[elder] = nil
else
trackedElders[elder] = elder_info
elderCount = elderCount + 1
end
break -- We've found him or her. break -- We've found him or her.
end -- No need for else here. We alread know we don't need everything so we either have an achievement or we have an elder. end -- No need for else here. We alread know we don't need everything so we either have an achievement or we have an elder.
else -- We came in without an input, therefore we add all. else -- We came in without an input, therefore we add all.
QH_FindCoord(locx, locy, locz, elder) QH_FindCoord(locx, locy, locz, elder)
if trackedElders[elder] then trackedElders[elder] = nil
else
trackedElders[elder] = elder_info
elderCount = elderCount + 1
end
end end
end end
end end
@ -282,29 +321,29 @@ local function QH_FindElders(elder_or_achievement, all_elders)
if achievement_match or elder_match then break end -- We've done our match. if achievement_match or elder_match then break end -- We've done our match.
end end
local shownEldersCount = 0 if elderCount == 0 then QuestHelper:TextOut("No elders were added.") end
if shownElders then for k, _ in pairs(shownElders) do shownEldersCount = shownEldersCount + 1 end end
if shownEldersCount > 0 then shownElders = nil end
end end
function QH_FindName(name) function QH_FindName(name)
local locd = name:match("^loc (.+)") local locd = name:match("^loc (.+)")
local elder_loc local forAchievement = false, elder_loc, temp
if not locd then if not locd then
if name:find("^elders?") then if name:find("^elders?") then
elder_loc = name:match("elders? (.+)") if name:find("^elders? achievement") then
if not elder_loc then elder_loc = true end forAchievement = true
elder_loc = name:match("elders? achievement (.+)")
else
elder_loc = name:match("elders? (.+)")
end
end end
end end
if locd then if locd then
QH_FindLoc(locd) QH_FindLoc(locd)
elseif elder_loc then elseif elder_loc then
if elder_loc == true then QH_FindElders(nil, true) if elder_loc == true then QH_FindElders(nil, true, forAchievement)
else QH_FindElders(string.upper(elder_loc)) else QH_FindElders(string.upper(elder_loc), false, forAchievement)
end end
else else
if not DB_Ready() then if not DB_Ready() then