v9.7.2: Ebonhold Database integration and core logic refinements
This commit is contained in:
@@ -0,0 +1,283 @@
|
||||
---@class AscensionLoader
|
||||
---@type table
|
||||
local AscensionLoader = QuestieLoader:CreateModule("AscensionLoader")
|
||||
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
|
||||
---@type table
|
||||
local AscensionDB = QuestieLoader:ImportModule("AscensionDB")
|
||||
_G.AscensionDB = _G.AscensionDB or AscensionDB
|
||||
|
||||
local _overridesInjected = false
|
||||
local _zonesApplied = false
|
||||
|
||||
local function _LoadIfString(data, label)
|
||||
if not data then return nil end
|
||||
if type(data) == "string" then
|
||||
local fn, err = loadstring(data)
|
||||
if not fn then
|
||||
if Questie and Questie.Debug then
|
||||
Questie:Debug(Questie.DEBUG_CRITICAL, "[AscensionLoader] loadstring failed for " .. tostring(label) .. ": " .. tostring(err))
|
||||
end
|
||||
return nil
|
||||
end
|
||||
local ok, tbl = pcall(fn)
|
||||
if not ok then
|
||||
if Questie and Questie.Debug then
|
||||
Questie:Debug(Questie.DEBUG_CRITICAL, "[AscensionLoader] executing chunk failed for " .. tostring(label) .. ": " .. tostring(tbl))
|
||||
end
|
||||
return nil
|
||||
end
|
||||
return tbl
|
||||
end
|
||||
return data
|
||||
end
|
||||
|
||||
local function _MergeInto(dst, src)
|
||||
if type(dst) ~= "table" or type(src) ~= "table" then return end
|
||||
for id, entry in pairs(src) do
|
||||
dst[id] = entry
|
||||
end
|
||||
end
|
||||
|
||||
-- Apply Ascension custom uiMapId->areaId mappings into ZoneDB (used by map/Journey)
|
||||
function AscensionLoader:ApplyZoneTables()
|
||||
if _zonesApplied then return end
|
||||
if not AscensionZoneTables or not AscensionZoneTables.uiMapIdToAreaId then return end
|
||||
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
if not ZoneDB then return end
|
||||
|
||||
ZoneDB.private = ZoneDB.private or {}
|
||||
ZoneDB.private.uiMapIdToAreaId = ZoneDB.private.uiMapIdToAreaId or {}
|
||||
ZoneDB.private.areaIdToUiMapId = ZoneDB.private.areaIdToUiMapId or {}
|
||||
ZoneDB.private.subZoneToParentZone = ZoneDB.private.subZoneToParentZone or {}
|
||||
|
||||
for uiMapId, areaId in pairs(AscensionZoneTables.uiMapIdToAreaId) do
|
||||
if uiMapId and areaId then
|
||||
-- Always set these mappings (remove the nil check to ensure they're set)
|
||||
ZoneDB.private.uiMapIdToAreaId[uiMapId] = areaId
|
||||
|
||||
-- Ascension uses custom map ids for spawns/waypoints (e.g. 1238 for Northshire Valley).
|
||||
-- QuestieMap draws by converting AreaId->UiMapId, so register these ids as self-mapping.
|
||||
ZoneDB.private.areaIdToUiMapId[uiMapId] = uiMapId
|
||||
|
||||
-- Register subzone to parent zone mapping so GetParentZoneId works with Ascension zones
|
||||
if uiMapId ~= areaId then
|
||||
ZoneDB.private.subZoneToParentZone[uiMapId] = areaId
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Also map parentMapIDs (e.g. 10138) to a usable uiMapId to avoid fallback errors.
|
||||
if AscensionUiMapData and AscensionUiMapData.uiMapData then
|
||||
for uiMapId, data in pairs(AscensionUiMapData.uiMapData) do
|
||||
if uiMapId and ZoneDB.private.areaIdToUiMapId[uiMapId] == nil then
|
||||
ZoneDB.private.areaIdToUiMapId[uiMapId] = uiMapId
|
||||
end
|
||||
if data and type(data.parentMapID) == "number" and ZoneDB.private.areaIdToUiMapId[data.parentMapID] == nil then
|
||||
ZoneDB.private.areaIdToUiMapId[data.parentMapID] = uiMapId
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Register zone sort names for custom zones
|
||||
if AscensionZoneTables.zoneSort then
|
||||
ZoneDB.private.zoneSort = ZoneDB.private.zoneSort or {}
|
||||
for zoneId, zoneName in pairs(AscensionZoneTables.zoneSort) do
|
||||
ZoneDB.private.zoneSort[zoneId] = zoneName
|
||||
end
|
||||
end
|
||||
-- Clear cached zone lookups after adding custom zones
|
||||
if QuestieDB and QuestieDB.private and QuestieDB.private.zoneCache then
|
||||
QuestieDB.private.zoneCache = {}
|
||||
end
|
||||
|
||||
-- Clear auto-blacklist since zone validation might have changed
|
||||
if QuestieDB and QuestieDB.autoBlacklist then
|
||||
QuestieDB.autoBlacklist = {}
|
||||
end
|
||||
_zonesApplied = true
|
||||
end
|
||||
|
||||
-- Inject Ascension tables into QuestieDB *Overrides* so QueryQuestSingle/QueryNPCSingle can see them
|
||||
function AscensionLoader:InjectOverrides()
|
||||
if _overridesInjected then return end
|
||||
_overridesInjected = true
|
||||
|
||||
-- Apply zone tables FIRST, before any ZoneDB functions use the local variables
|
||||
AscensionLoader:ApplyZoneTables()
|
||||
|
||||
QuestieDB.npcDataOverrides = QuestieDB.npcDataOverrides or {}
|
||||
QuestieDB.objectDataOverrides = QuestieDB.objectDataOverrides or {}
|
||||
QuestieDB.itemDataOverrides = QuestieDB.itemDataOverrides or {}
|
||||
QuestieDB.questDataOverrides = QuestieDB.questDataOverrides or {}
|
||||
|
||||
local npcData = _LoadIfString(AscensionDB and AscensionDB.npcData, "AscensionDB.npcData")
|
||||
local objectData = _LoadIfString(AscensionDB and AscensionDB.objectData, "AscensionDB.objectData")
|
||||
local itemData = _LoadIfString(AscensionDB and AscensionDB.itemData, "AscensionDB.itemData")
|
||||
local questData = _LoadIfString(AscensionDB and AscensionDB.questData, "AscensionDB.questData")
|
||||
|
||||
_MergeInto(QuestieDB.npcDataOverrides, npcData)
|
||||
_MergeInto(QuestieDB.objectDataOverrides, objectData)
|
||||
_MergeInto(QuestieDB.itemDataOverrides, itemData)
|
||||
_MergeInto(QuestieDB.questDataOverrides, questData)
|
||||
|
||||
-- Keep a lightweight list of custom quest ids for search/UI (DO NOT touch QuestPointers; those are numeric stream pointers)
|
||||
if type(questData) == "table" then
|
||||
QuestieDB.ascensionQuestIds = QuestieDB.ascensionQuestIds or {}
|
||||
for questId, _ in pairs(questData) do
|
||||
if type(questId) == "number" then
|
||||
QuestieDB.ascensionQuestIds[questId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Keep a lightweight list of custom NPC ids for search/UI
|
||||
if type(npcData) == "table" then
|
||||
QuestieDB.ascensionNpcIds = QuestieDB.ascensionNpcIds or {}
|
||||
for npcId, _ in pairs(npcData) do
|
||||
if type(npcId) == "number" then
|
||||
QuestieDB.ascensionNpcIds[npcId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Keep a lightweight list of custom object ids for search/UI
|
||||
if type(objectData) == "table" then
|
||||
QuestieDB.ascensionObjectIds = QuestieDB.ascensionObjectIds or {}
|
||||
for objectId, _ in pairs(objectData) do
|
||||
if type(objectId) == "number" then
|
||||
QuestieDB.ascensionObjectIds[objectId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Keep a lightweight list of custom item ids for search/UI
|
||||
if type(itemData) == "table" then
|
||||
QuestieDB.ascensionItemIds = QuestieDB.ascensionItemIds or {}
|
||||
for itemId, _ in pairs(itemData) do
|
||||
if type(itemId) == "number" then
|
||||
QuestieDB.ascensionItemIds[itemId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Hook ZoneDB.Initialize to inject custom zones BEFORE standard zones are processed
|
||||
do
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
if ZoneDB then
|
||||
local originalZoneInitialize = ZoneDB.Initialize
|
||||
if type(originalZoneInitialize) == "function" then
|
||||
function ZoneDB:Initialize(...)
|
||||
-- Apply custom zones FIRST, before standard zone processing
|
||||
AscensionLoader:ApplyZoneTables()
|
||||
|
||||
-- Then initialize standard zones
|
||||
return originalZoneInitialize(self, ...)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Hook QuestieDB.Initialize to guarantee timing for overrides
|
||||
do
|
||||
local originalInitialize = QuestieDB and QuestieDB.Initialize
|
||||
if type(originalInitialize) == "function" then
|
||||
function QuestieDB:Initialize(...)
|
||||
-- 1) Inject overrides before the DB handles are created
|
||||
AscensionLoader:InjectOverrides()
|
||||
|
||||
local ret = originalInitialize(self, ...)
|
||||
|
||||
-- 2) Refresh Journey caches (zoneMap/zones) so "Quests by Zone" sees the new data
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
local QuestieJourney = QuestieLoader:ImportModule("QuestieJourney")
|
||||
if ZoneDB and QuestieJourney then
|
||||
QuestieJourney.zoneMap = ZoneDB:GetZonesWithQuests(true)
|
||||
QuestieJourney.zones = ZoneDB:GetRelevantZones()
|
||||
|
||||
-- Clear the UI cache so the tree gets rebuilt
|
||||
if QuestieJourney.private then
|
||||
QuestieJourney.private.treeCache = nil
|
||||
QuestieJourney.private.lastZoneSelection = {}
|
||||
end
|
||||
|
||||
-- If the Journey window is open, rebuild the current tab
|
||||
if QuestieJourneyFrame and QuestieJourneyFrame:IsShown() and QuestieJourney.tabGroup then
|
||||
local p = QuestieJourney.private
|
||||
if p and p.containerCache and p.lastOpenWindow then
|
||||
p:HandleTabChange(p.containerCache, p.lastOpenWindow)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return ret
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- >>> NEW: Make QuestieDB.GetQuest work for Ascension override quests (Journey needs this)
|
||||
do
|
||||
local originalGetQuest = QuestieDB.GetQuest
|
||||
if type(originalGetQuest) == "function" then
|
||||
function QuestieDB.GetQuest(questId)
|
||||
local q = originalGetQuest(questId)
|
||||
if q then return q end
|
||||
|
||||
-- Fallback: build a minimal quest object from QueryQuestSingle (works with overrides)
|
||||
local name = QuestieDB.QueryQuestSingle(questId, "name")
|
||||
if not name then return nil end
|
||||
|
||||
local level = QuestieDB.QueryQuestSingle(questId, "level") or QuestieDB.QueryQuestSingle(questId, "questLevel")
|
||||
local reqLevel = QuestieDB.QueryQuestSingle(questId, "requiredLevel") or QuestieDB.QueryQuestSingle(questId, "minLevel")
|
||||
local desc = QuestieDB.QueryQuestSingle(questId, "objectiveText") or QuestieDB.QueryQuestSingle(questId, "description") or QuestieDB.QueryQuestSingle(questId, "details")
|
||||
|
||||
-- Build the Starts field from startedBy (CRITICAL for available quests to show icons!)
|
||||
local startedBy = QuestieDB.QueryQuestSingle(questId, "startedBy")
|
||||
|
||||
local starts = {
|
||||
NPC = startedBy and startedBy[1] or {},
|
||||
GameObject = startedBy and startedBy[2] or {},
|
||||
Item = startedBy and startedBy[3] or {},
|
||||
}
|
||||
|
||||
-- Also get other fields needed for quest display
|
||||
local finishedBy = QuestieDB.QueryQuestSingle(questId, "finishedBy")
|
||||
local specialFlags = QuestieDB.QueryQuestSingle(questId, "specialFlags")
|
||||
local isRepeatable = specialFlags and (bit.band(specialFlags, 1) ~= 0) or false
|
||||
|
||||
-- Questie modules expect these common fields
|
||||
return {
|
||||
Id = questId,
|
||||
id = questId,
|
||||
name = name,
|
||||
level = level or reqLevel or 0,
|
||||
requiredLevel = reqLevel or 0,
|
||||
Description = desc, -- Journey tooltip reads quest.Description
|
||||
Starts = starts, -- CRITICAL: AvailableQuests needs this!
|
||||
finishedBy = finishedBy,
|
||||
IsRepeatable = isRepeatable,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Ensure zones also get applied when Questie finishes loading (covers edge cases)
|
||||
do
|
||||
local f = CreateFrame("Frame")
|
||||
f:RegisterEvent("ADDON_LOADED")
|
||||
f:SetScript("OnEvent", function(_, _, name)
|
||||
if name ~= "Questie-335" then return end
|
||||
if C_Timer and C_Timer.After then
|
||||
C_Timer.After(0, function() AscensionLoader:ApplyZoneTables() end)
|
||||
else
|
||||
AscensionLoader:ApplyZoneTables()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
return AscensionLoader
|
||||
@@ -0,0 +1,109 @@
|
||||
---@type table
|
||||
local AscensionDB = QuestieLoader:CreateModule("AscensionDB")
|
||||
|
||||
AscensionDB.itemData = AscensionDB.itemData or {
|
||||
|
||||
--Elwynn Forest
|
||||
|
||||
[559159]={[1]="Oracular Idol",[2]={161717},[3]=nil,[4]=nil,[5]=1660036,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=nil,[13]=0},
|
||||
[5055565]={[1]="Tattered Orders",[2]={991516},[3]=nil,[4]=nil,[5]=100074,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=nil,[13]=0},
|
||||
[558956]={[1]="Elgris Blossom Petals",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=12,[13]=0,[14]={162814},[15]={1660056}},
|
||||
[558957]={[1]="Dun Kazad Liquor Concentrate",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=12,[13]=0,[14]={162811},[15]={1660056}},
|
||||
[558958]={[1]="Pumpkin Juice",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=12,[13]=0,[14]={162809},[15]={1660056}},
|
||||
[558959]={[1]="Murloc Eyeball",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=12,[13]=0,[14]={162826},[15]={1660056}},
|
||||
[558960]={[1]="Agria's Incomplete Potion",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={1660056}},
|
||||
[558961]={[1]="Pumpkin",[2]=nil,[3]={999014},[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=0,[13]=5},
|
||||
[558962]={[1]="Melon",[2]=nil,[3]={999013},[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=0,[13]=5},
|
||||
[558963]={[1]="Apple",[2]=nil,[3]={999015},[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=0,[10]=0,[11]=nil,[12]=0,[13]=5},
|
||||
[157001]={[1]="Gem Encrusted Spider Silk",[2]={43},[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=2048,[8]=nil,[9]=1,[10]=0,[11]=0,[12]=12,[13]=0,[14]=nil,[15]={17001}},
|
||||
[157006]={[1]="Simple Crystal Vial",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=0,[8]=nil,[9]=5,[10]=0,[11]=nil,[12]=12,[13]=0,[14]=nil,[15]={17003},[16]=157006},
|
||||
[157002]={[1]="Depleted Mana Gem",[2]={474},[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17002}},
|
||||
[157007]={[1]="Gnoll Sword",[2]={97},[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=6,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17004}},
|
||||
[157008]={[1]="Gnoll Axe",[2]={478},[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=10,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17004}},
|
||||
[157012]={[1]="Smudged Note",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil,[7]=0,[8]=nil,[9]=1,[10]=1,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17005}},
|
||||
[157014]={[1]="Mirror Lake Apple",[2]=nil,[3]={9017008},[4]=nil,[5]=nil,[6]=nil,[7]=nil,[8]=nil,[9]=1,[10]=8,[11]=nil,[12]=15,[13]=0,[14]=nil,[15]={17008}},
|
||||
[559130] = {[1]="Lost Page I",[3]={900001},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660001}},
|
||||
[559131] = {[1]="Lost Page II",[3]={900002},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660001}},
|
||||
[559132] = {[1]="Lost Page III",[3]={900003},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660001}},
|
||||
[559133] = {[1]="Lost Page IV",[3]={900004},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660001}},
|
||||
|
||||
--Dan Morogh
|
||||
|
||||
[254000] = {[1]="Security Bot AN-29",[2]={254004},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254000}},
|
||||
[254001] = {[1]="Security Bot AN-32",[2]={254005},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254001}},
|
||||
[559142] = {[1]="Radiant Armor Piece",[2]={161772},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660008}},
|
||||
[559161] = {[1]="Contamination Extractor",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660010}},
|
||||
[559162] = {[1]="Radioactive Slime Mutagen",[2]={161776},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660010}},
|
||||
[559163] = {[1]="Radiation Sprayer",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660011}},
|
||||
[558964] = {[1]="Thunderbrew Hop",[3]={2300550},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660077}},
|
||||
[558950] = {[1]="Gornarn Blunderbuss",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660079}},
|
||||
[558965] = {[1]="Reusable Mechanical Parts",[2]={162888,162889,162890},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660078}},
|
||||
[254002] = {[1]="Mirsinth's Totem",[2]={254006},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254004}},
|
||||
[662336] = {[1]="Frostpine Log",[3]={244620},[9]=1,[10]=0,[12]=12,[13]=0,[15]={500005}},
|
||||
|
||||
--Teldrassil
|
||||
|
||||
[559143] = {[1]="Cut of Good Meat",[3]={2300512},[9]=1,[10]=0,[12]=0,[13]=0,[15]={1660014}},
|
||||
[559144] = {[1]="Good Flesh Amalgam",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660015}},
|
||||
[559145] = {[1]="Blessed Good Flesh Amalgam",[15]={1660015}},
|
||||
|
||||
--Durotar
|
||||
|
||||
[11584] = {'Cactus Apple Surprise',nil,nil,nil,nil,nil,nil,nil,5,0,0,4,0,nil,{254010}},
|
||||
[254005] = {'Strange Flower',nil,{254001},nil,nil,nil,nil,nil,1,0,0,12,0,nil,{254008}},
|
||||
[254006] = {'Xaitoth\'s Blood',{254015},nil,nil,nil,nil,nil,nil,1,0,0,12,0,nil,nil},
|
||||
[559146] = {'Witch’s Amulet',nil,nil,nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660019}},
|
||||
[559148] = {'Bat Spiritual Essence',{161793},nil,nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660020}},
|
||||
[559149] = {'Spider Spiritual Essence',{161795},nil,nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660020}},
|
||||
[559150] = {'Serpent Spiritual Essence',{161794},nil,nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660020}},
|
||||
[559155] = {'Spiritual Unrest',{30719},nil,nil,nil,nil,nil,nil,0,0,0,4,0,nil,nil},
|
||||
[559158] = {'Unremarkable Stone',nil,nil,nil,nil,nil,nil,1,1,0,0,12,0,nil,nil},
|
||||
[559172] = {'Fire Elemental Shackles',nil,{1064805},nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660021}},
|
||||
[559173] = {'Earth Elemental Shackles',nil,{2392807},nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660021}},
|
||||
[559174] = {'Air Elemental Shackles',nil,{3478505},nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660021}},
|
||||
[559175] = {'Water Elemental Shackles',nil,{4541078},nil,nil,nil,nil,nil,1,0,0,4,0,nil,{1660021}},
|
||||
[558973] = {[1]="Empty Dirgran's Pitcher",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660064}},
|
||||
[558974] = {[1]="Full Dirgran's Pitcher",[3]={5954415},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660064}},
|
||||
[254007] = {[1]="Metallic Debris",[3]={254003},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254011}},
|
||||
[558966] = {[1]="Elven Relic of Old",[3]={2300551,2300558,2300556,2300555,2300553,2300554,2300557},[10]=0,[12]=0,[13]=0,[15]={1660063}},
|
||||
[254008] = {[1]="Ouru'Gai Crystal",[3]={254002},[9]=1,[10]=0,[12]=12,[13]=0,[15]={254014}},
|
||||
|
||||
--Tirisfal Glades
|
||||
|
||||
[16333] = {[1]="Samuel's Remains",[2]={1919},[9]=1,[10]=0,[12]=12,[13]=0,[15]={6395}},
|
||||
[559164] = {[1]="Gaudy Painting",[3]={2300528},[9]=1,[10]=0,[12]=0,[13]=0,[15]={1660028}},
|
||||
[559165] = {[1]="Shimmering Jewel",[3]={2300529},[9]=1,[10]=0,[12]=0,[13]=0,[15]={1660028}},
|
||||
[559166] = {[1]="Crystal Ball",[2]={108586},[3]={2300530},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660028}},
|
||||
[559167] = {[1]="Family Signet",[2]={108586},[3]={2300531},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660028}},
|
||||
[559138] = {[1]="Majordomo’s Key Fragment",[2]={161753},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660026}},
|
||||
[559139] = {[1]="Maid’s Key Fragment",[2]={161754},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660026}},
|
||||
[559140] = {[1]="Stablemaster’s Key Fragment",[2]={161755},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660026}},
|
||||
[354655] = {[1]="Rod Toxicstrike's Concoction",[9]=1,[10]=0,[12]=12,[13]=0,[15]={254064}},
|
||||
[558953] = {[1]="Encapsulated Necrotic Spores",[3]={2300545},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660051}},
|
||||
[558954] = {[1]="Clinging Necrotic Spores",[2]={162842},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660051}},
|
||||
[558955] = {'Scarlet Letter',{162857},nil,nil,{1660053},nil,nil,nil,1,0,0,12,0,nil,nil},
|
||||
[354678] = {[1]="Lieutenant Sanders's Head",[2]={13158},[9]=1,[10]=1,[12]=12,[13]=0,[15]={254056}},
|
||||
[354654] = {[1]="Ralden's Transformation Elixir",[9]=1,[10]=0,[12]=12,[13]=0,[15]={254057}},
|
||||
|
||||
--Mulgore
|
||||
|
||||
[559156] = {[1]="Grimtotem Marauder Mane",[2]={161809},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660030}},
|
||||
[559168] = {[1]="Offering Bone",[2]={161810},[3]={2300532},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660035}},
|
||||
[559151] = {[1]="Grimtotem Armor Piece",[3]={2300514},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660032}},
|
||||
[559152] = {[1]="Exalted Pendant",[3]={2300515},[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660032}},
|
||||
[558972] = {[1]="Full Sanctuary Amphora",[3]={5195711},[15]={1660067}},
|
||||
[558971] = {[1]="Empty Sanctuary Amphora",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660067}},
|
||||
[558967] = {[1]="Holy Water Blessing",[9]=1,[10]=0,[12]=12,[13]=0,[15]={1660068}},
|
||||
[558968] = {[1]="Prairie Sap",[3]={2300552},[9]=0,[10]=0,[12]=0,[13]=0,[15]={1660069}},
|
||||
[558969] = {[1]="Kodo Tallow",[2]={162909,2972,2973,2974},[9]=0,[10]=0,[12]=12,[13]=0,[15]={1660069}},
|
||||
[662335] = {[1]="Ritual Totem",[2]={2965,2964},[9]=1,[10]=0,[12]=12,[13]=0,[15]={500004}},
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
AscensionItemDB=AscensionItemDB or {}
|
||||
AscensionItemDB.itemData=AscensionDB.itemData
|
||||
@@ -0,0 +1,229 @@
|
||||
---@type table
|
||||
local AscensionDB = QuestieLoader:CreateModule("AscensionDB")
|
||||
|
||||
AscensionDB.npcData = AscensionDB.npcData or {
|
||||
|
||||
|
||||
--Beginner's Book of Ascension
|
||||
|
||||
[75118]={"Beginner's Book of Ascension",89,89,1,1,1,{[14]={{42.4,68.7},{52.2,43.2},{56.2,74.7}},[17]={{28.4,67.0},{63.2,37.0},{52.1,30.2}},[3430]={{44.2,70.9},{38.3,21.4},{47.0,46.1}},[12]={{48.1,41.9},{43.1,66.6}},[1]={{30.1,71.7},{46.9,52.4}},[141]={{58.7,44.3},{57.5,57.5}},[85]={{31.5,65.9},{61.4,53.0}},[3524]={{49.1,51.3},{80.7,46.3}},[215]={{47.1,60.9}},[148]={{37.3,44.0}},[130]={{43.4,41.8}},[38]={{34.9,47.7}},[3433]={{47.6,31.6}},[3525]={{55.1,59.6}},[44]={{28.2,47.7}},[331]={{36.3,49.3}},[10]={{73.9,48.0}},[40]={{56.9,54.7}}},nil,nil,{1903520},{1903520},31,"AH",nil,3},
|
||||
|
||||
--Elwynn Forest
|
||||
|
||||
[97921]={[1]='Garion Hunter',[2]=327,[3]=327,[4]=10,[5]=10,[6]=0,[7]={[12]={{43.97,64.16}}},[8]=nil,[9]=12,[10]={4420430,1903556},[11]={4420430},[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[161700]={[1]='Bianca Spada',[2]=158,[3]=158,[4]=8,[5]=8,[6]=0,[7]={[12]={{48.1,42.4}}},[8]=nil,[9]=12,[10]={1660000},[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=3},
|
||||
[161701]={[1]='Moroi Spada',[2]=293,[3]=293,[4]=11,[5]=11,[6]=0,[7]={[1238]={{39.89,51.29}}},[8]=nil,[9]=12,[10]={1660001,1660002},[11]={1660000},[12]=12,[13]="A",[14]="Seminarian of Northshire Abbey",[15]=3},
|
||||
[161702]={[1]='Sister Alma',[2]=4058,[3]=4058,[4]=55,[5]=55,[6]=0,[7]={[12]={{52.4,35}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="Ancient Priestess of Northshire",[15]=3},
|
||||
[161705]={[1]='Injured Northshire Guard',[2]=510,[3]=510,[4]=17,[5]=17,[6]=0,[7]={[12]={{54.9,39.5}}},[8]=nil,[9]=12,[10]={1660005},[11]={1660005},[12]=72,[13]="AH",[14]="Injured Northshire Guard",[15]=3},
|
||||
[161712]={[1]='Accursed Censor',[2]=341,[3]=341,[4]=4,[5]=4,[6]=0,[7]={[12]={{51.7,27.6}}},[8]=nil,[9]=12,[10]=nil,[11]={1660038},[12]=25,[13]=nil,[14]="",[15]=0},
|
||||
[161713]={[1]='Wayward Theologian',[2]=341,[3]=341,[4]=7,[5]=7,[6]=0,[7]={[12]={{60.5,28.7}}},[8]=nil,[9]=12,[10]=nil,[11]={1660004},[12]=25,[13]=nil,[14]="",[15]=0},
|
||||
[161716]={[1]='Shadewell Murloc',[2]=100,[3]=134,[4]=3,[5]=3,[6]=0,[7]={[12]={{58.11,31.87},{57.92,32.08},{57.29,32.93},{57.24,32.18},{57.74,31.54},{58.57,31.1},{58.33,30.11},{58.18,29.24},{58.36,28.44},{58.65,28.72},{58.79,29.02},{58.73,28.03},{59.24,26.92},{59.36,26.22},{58.98,25.92},{58.31,25.83},{58.31,25.15},{57.68,25.61},{57.82,26.2}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=25,[13]=nil,[14]="",[15]=0},
|
||||
[161717]={[1]='Shadewell Murloc Oracle',[2]=100,[3]=134,[4]=3,[5]=3,[6]=0,[7]={[12]={{58.25,31.47},{58.63,30.72},{58.54,29.36},{56.56,33.84},{59.02,25.53},{59.29,26.58}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[161736]={[1]='Defias Plunderer',[2]=100,[3]=134,[4]=3,[5]=3,[6]=0,[7]={[12]={{55.62,38.74},{55.28,38.61},{54.83,38.23},{55.43,36.8},{56.1,37.49},{55.22,37.71},{55.52,37.63},{55.66,38.2},{55.67,37.51},{55.59,37.54},{55.66,38.05},{56.03,36.58}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=25,[13]=nil,[14]="",[15]=0},
|
||||
[161844]={[1]='Father Harnos',[2]=205,[3]=205,[4]=8,[5]=8,[6]=0,[7]={[12]={{49.16,41.71}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[162800]={[1]='Dulcinea',[2]=510,[3]=510,[4]=17,[5]=17,[6]=0,[7]={[12]={{43.11,65.90}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="Maid of House Spada",[15]=3},
|
||||
[162802]={[1]='Aldia Crayon',[2]=1394,[3]=1394,[4]=30,[5]=30,[6]=0,[7]={[12]={{30.72,57.72}}},[8]=nil,[9]=12,[10]={1660057},[11]={1660056,1660057},[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[162805]={[1]="Clara the Mad",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{43.22,70.87}}},[8]=nil,[9]=12,[10]={1660058},[11]={1660058},[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[162806]={[1]='Aliscar Lend',[2]=1593,[3]=1593,[4]=32,[5]=32,[6]=0,[7]={[12]={{44.59,62.99}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[162943]={[1]='Arcane Projection of Aliscar',[2]=1593,[3]=1593,[4]=32,[5]=32,[6]=0,[7]={[12]={{44.44,63.39}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[162809]={[1]="Rowena",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{43.2,66.9}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[162811]={[1]="Darron",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{42.5,65.9}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[162814]={[1]="Ainora",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{43.6,62.6}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[162815]={[1]="Aldia",[2]=120,[3]=120,[4]=20,[5]=20,[6]=0,[7]={[12]={{34.4,82.9}}},[8]=nil,[9]=12,[10]={1660056},[11]={1660056},[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[162807]={[1]='Harvend Thorm',[2]=1923,[3]=1923,[4]=35,[5]=35,[6]=0,[7]={[12]={{42.42,70.12}}},[8]=nil,[9]=12,[10]={1660059},[11]={},[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[162801]={[1]='Eldor Hammer',[2]=688,[3]=688,[4]=21,[5]=21,[6]=0,[7]={[12]={{43.96,70.25}}},[8]=nil,[9]=12,[10]={},[11]={1660059},[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[162826]={[1]="Joaquin",[2]=120,[3]=120,[4]=8,[5]=8,[6]=0,[7]={[12]={{46.6,65.3}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[991516]={[1]='Suspicious Guard',[2]=309,[3]=309,[4]=8,[5]=8,[6]=0,[7]={[12]={{58.12,80.04}}},[8]=nil,[9]=12,[10]={},[11]={},[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[9000017]={[1]='Esyra',[2]=211,[3]=211,[4]=9,[5]=9,[6]=0,[7]={[12]={{64.90,69.80}}},[8]=nil,[9]=12,[10]={17003,17002},[11]={17003,17002},[12]=72,[13]="AH",[14]="",[15]=3},
|
||||
[197]={[1]="Marshal McBride",[2]=484,[3]=484,[4]=20,[5]=20,[6]=0,[7]={[12]={{48.0,41.9}}},[8]=nil,[9]=12,[10]={7,15,21,54,3100,3101,3102,3103,3104,3105},[11]={7,15,21,783},[12]=12,[13]="A",[14]=nil,[15]=3},
|
||||
[240]={[1]="Marshal Dughan",[2]=713,[3]=713,[4]=25,[5]=25,[6]=0,[7]={[12]={{42.96,65.78}}},[8]=nil,[9]=12,[10]={35,59,62,76,109,147,239},[11]={39,40,54,62,76,123,147,176},[12]=12,[13]="A",[14]=nil,[15]=3},
|
||||
[250]={[1]="Pa Maclure",[2]=120,[3]=120,[4]=6,[5]=6,[6]=0,[7]={[12]={{42.7,89.3}}},[8]=nil,[9]=12,[10]={17000},[11]={17000},[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[253]={[1]="William Pestle",[2]=120,[3]=120,[4]=6,[5]=6,[6]=0,[7]={[12]={{44.29,66.56}}},[8]=nil,[9]=12,[10]={60,61,112,114},[11]={60,107,112},[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[261]={[1]="Guard Thomas",[2]=1003,[3]=1003,[4]=30,[5]=30,[6]=0,[7]={[12]={{73.97,72.18}}},[8]=nil,[9]=12,[10]={37,39,46,52,109,17004},[11]={35,46,52,71,17004},[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[295]={[1]="Innkeeper Farley",[2]=1003,[3]=1003,[4]=30,[5]=30,[6]=0,[7]={[12]={{44.77,66.8}}},[8]=nil,[9]=12,[10]={70},[11]={69,2158},[12]=12,[13]="A",[14]="Innkeeper",[15]=66179},
|
||||
[658]={[1]="Sten Stoutarm",[2]=102,[3]=102,[4]=5,[5]=5,[6]=0,[7]={[1]={{29.87,71.88}}},[8]=nil,[9]=1,[10]={179,233,3106,3107,3108,3109,3110,3112,3113,3114,3115},[11]={179},[12]=55,[13]="A",[14]=nil,[15]=3},
|
||||
[713]={[1]="Balir Frosthammer",[2]=102,[3]=102,[4]=5,[5]=5,[6]=0,[7]={[1]={{29.92,71.16}}},[8]=nil,[9]=1,[10]={170},[11]={170},[12]=55,[13]="A",[14]=nil,[15]=2},
|
||||
[823]={[1]="Deputy Willem",[2]=417,[3]=417,[4]=18,[5]=18,[6]=0,[7]={[12]={{48.0,43.6}}},[8]=nil,[9]=12,[10]={6,18,783,3903,5261},[11]={6,18},[12]=12,[13]="A",[14]=nil,[15]=2},
|
||||
[917]={[1]="Keryn Sylvius",[2]=222,[3]=222,[4]=11,[5]=11,[6]=0,[7]={[12]={{44.89,66.70}}},[8]=nil,[9]=12,[10]={2205,2300},[11]=nil,[12]=12,[13]="A",[14]="Rogue Trainer",[15]=51},
|
||||
[955]={[1]="Sergeant De Vries",[2]=198,[3]=198,[4]=10,[5]=10,[6]=0,[7]={[12]={{24.08,73.2}}},[8]=nil,[9]=12,[10]={17008},[11]={17008},[12]=12,[13]="A",[14]="Morale Officer",[15]=640},
|
||||
[6778]={[1]="Melika Isenstrider",[2]=222,[3]=222,[4]=11,[5]=11,[6]=0,[7]={[12]={{44.47,67.03}}},[8]=nil,[9]=12,[10]=nil,[11]=nil,[12]=12,[13]="A",[14]="Assistant Innkeeper",[15]=2},
|
||||
[11916]={[1]="Imelda",[2]=713,[3]=713,[4]=25,[5]=25,[6]=0,[7]={[1519]={{33.71,62.6}}},[8]=nil,[9]=1519,[10]=nil,[11]={17005},[12]=12,[13]="A",[14]=nil,[15]=1},
|
||||
[466] = {'General Marcus Jonathan',42780,42780,72,72,1,{[1519]={{69.17,82.72}}},nil,1519,{100466,121},{120},12,"A","High Commander of Stormwind Defense",2},
|
||||
|
||||
--Dun Morogh
|
||||
--NPCs
|
||||
[254000] = {[1]="Efry Cogspark",[2]=299,[3]=299,[4]=10,[5]=10,[6]=0,[7]={[1239]={{65.49,45.96}},[38]={{35.20,48.60}}},[9]=1239,[10]={254000,254001,254002},[11]={254000,254001,254005},[12]=12,[13]="A"},
|
||||
[161718] = {[1]="Groldha",[2]=187,[3]=187,[4]=8,[5]=8,[6]=0,[7]={[1239]={{62.70,43.90}}},[9]=1239,[10]={1660006,1660009},[12]=12,[13]="A"},
|
||||
[161720] = {[1]="Arathror",[2]=584,[3]=584,[4]=20,[5]=20,[6]=0,[7]={[1239]={{41,33.96}}},[9]=1239,[10]={1660008,1660009,1660039},[11]={1660007,1660008},[12]=12,[13]="A"},
|
||||
[161719] = {'Dead Crewman',212,212,9,9,0,{[1239]={{33.80,52.80}}},nil,1239,{1660007},{1660006},72,"AH","",0},
|
||||
[161820] = {[1]="Redna",[2]=187,[3]=187,[4]=8,[5]=8,[6]=0,[7]={[1239]={{35.34,32.31}}},[9]=1239,[10]={1660010},[11]={1660010,1660039},[12]=72,[13]="AH"},
|
||||
[161839] = {[1]="Lahud",[2]=91,[3]=91,[4]=3,[5]=3,[6]=0,[7]={[1239]={{55.23,21.02}}},[9]=1239,[10]={1660011},[11]={1660011},[12]=72,[13]="AH"},
|
||||
[162882] = {[1]="Norhi Thunderbrew",[2]=329,[3]=329,[4]=13,[5]=13,[6]=0,[7]={[1239]={{63.04,45.22}}},[9]=1239,[10]={1660076},[12]=12,[13]="A"},
|
||||
[254002] = {'Mountaineer Tagnur',22690,22690,57,57,0,{[1]={{36.20,62.40}}},nil,1,{254003}, {254002},72,"A","",3},
|
||||
[162883] = {'Eyma Thunderbrew',395,395,15,15,0,{[1]={{47.30,52.70}}},nil,1,{1660077}, {1660076,1660077},72,"A","",3},
|
||||
[7954] = {'Binjy Featherwhistle',2769,2769,50,50,0,{[1]={{49.15,48.13}}},nil,1,{4420432,1903556},{14084,4420432,1903556},875,"A","Mechanostrider Pilot",83},
|
||||
[162901] = {[1]="Gravedigger Nonuid",[2]=503,[3]=503,[4]=18,[5]=18,[6]=0,[7]={[1]={{48.87,52.65}}},[9]=1,[10]={1660080},[11]={1660080},[12]=12,[13]="A"},
|
||||
[162891] = {[1]="Gornarn",[2]=239,[3]=239,[4]=10,[5]=10,[6]=0,[7]={[1]={{49.23,53.74}}},[9]=1,[10]={1660079},[11]={1660079},[12]=12,[13]="A"},
|
||||
[162917] = {'Target',122,122,5,5,0,{[1]={{49.00,53.70}}},nil,1,{}, {},72,"A","",3},
|
||||
[162884] = {[1]="Ikoras",[2]=212,[3]=212,[4]=9,[5]=9,[6]=0,[7]={[1]={{48.90,55.90}}},[8]=nil,[9]=1,[10]={1660078},[11]={1660078},[12]=12,[13]="A",[14]=nil,[15]=0},
|
||||
[254003] = {'Mirsinth the Exile',478,478,10,10,0,{[1]={{36.80,52.00}}},nil,1,{}, {254003},12,"A","",3},
|
||||
[765556] = {[1]="Brunna Ironhew",[2]=267,[3]=267,[4]=11,[5]=11,[6]=0,[7]={[1]={{62.5,57.49}}},[9]=1,[10]={500005},[11]={500005},[12]=12,[13]="A"},
|
||||
[764536] = {[1]="Old Kargan Stouthew",[2]=239,[3]=239,[4]=10,[5]=10,[6]=0,[7]={[1]={{61.9,57.74}}},[9]=1,[10]={500006},[11]={500006},[12]=12,[13]="A"},
|
||||
--Creatures
|
||||
[254004] = {'Damaged Security Bot',161,161,1,1,0,{[1239]={{31.41,73.19}}},nil,1239,nil,nil,72,nil,nil,0},
|
||||
[254005] = {'Security Bot AN-32',161,161,1,1,0,{[1239]={{59.16,82.95}}},nil,1239,nil,nil,72,nil,nil,0},
|
||||
[161772] = {[1]="Radiant Fanatic",[2]=78,[3]=78,[4]=3,[5]=3,[6]=0,[7]={[1239]={{43.84,25.51},{43.04,26.69},{41.49,26.36},{40.51,24.75},{42.05,24.54},{38.7,22.71},{38.94,20.46},{39.17,17.75},{38.54,17.54},{42.34,17.51},{41.7,19.44},{42.55,20.73},{45.74,21.15}}},[9]=1239},
|
||||
[161776] = {'Radiant Slime',91,122,3,3,0,{[1239]={{49.80,20.31},{50.18,19.95},{49.47,23.21},{50.80,21.77},{51.38,22.23},{51.73,22.81},{52.99,23.20},{53.56,24.08},{55.20,22.80},{55.16,24.53},{54.90,25.98},{57.82,23.08},{58.30,22.87},{55.12,27.21},{58.59,29.38},{57.96,29.33},{58.37,30.84},{60.31,23.03},{60.99,23.35},{61.24,21.61}}},nil,1239,nil,nil,72,nil,nil,0},
|
||||
[161835] = {'Right Hand of His Majesty',311,311,4,4,1,{[1239]={{56.04,24.44}}},nil,1239,nil,nil,72,nil,nil,0},
|
||||
[161775] = {'His Radiant Majesty',414,414,7,7,1,{[1239]={{59.81,26.35}}},nil,1239,nil,nil,72,nil,nil,0},
|
||||
[161786] = {'Radiant Devotee',91,122,3,3,0,{[1239]={{50.89,19.79},{53.29,22.45},{54.28,21.74},{50.47,22.60},{50.08,23.43},{49.82,23.66},{49.45,19.25},{51.25,20.38},{50.74,18.11},{51.15,17.81},{51.78,20.05},{52.48,20.85},{53.84,19.47},{53.95,19.13},{53.19,18.76},{54.40,24.45},{54.00,24.39},{55.64,24.86},{56.32,27.38},{56.94,27.45},{57.22,25.45},{57.42,25.12},{53.40,21.65},{53.08,24.47},{52.38,23.56},{52.15,24.75},{55.46,19.19},{56.89,19.36}}},nil,1239,nil,nil,72,nil,nil,0},
|
||||
[162888] = {'Out-of-Control Automaton v1.1',122,122,6,6,0,{[1]={{49.84,55.71},{51.03,54.78},{51.86,56.41},{52.63,56.26},{53.65,55.68}}},nil,1,nil,nil,72,"AH",nil,0},
|
||||
[162889] = {'Out-of-Control Automaton v1.2',144,144,6,6,0,{[1]={{50.4,56.03},{50.45,55.24},{50.72,54.47},{51.43,56.29},{52.1,55.31},{52.59,56.14}}},nil,1,nil,nil,72,"AH",nil,0},
|
||||
[162890] = {'Out-of-Control Automaton v1.3',165,165,7,7,0,{[1]={{50.41,55.61},{51.37,55.85},{52.52,55.87},{53.69,55.47}}},nil,1,nil,nil,72,"AH",nil,0},
|
||||
[254006] = {[1]="Jun'Kon",[2]=161,[3]=161,[4]=8,[5]=8,[6]=0,[7]={[1]={{21.59,51.64}}},[9]=1},
|
||||
[76555] = {[1]="Icehide",[2]=563,[3]=563,[4]=14,[5]=14,[6]=1,[7]={[1]={{64.85,58.42}}},[9]=1},
|
||||
|
||||
--Teldrassil
|
||||
--NPCs
|
||||
[2083] = {'Syral Bladeleaf',247,247,12,12,0,{[141]={{57.2,56.83}}},nil,141,{489,997,1581},{1581},80,"A",nil,2},
|
||||
[2078] = {'Athridas Bearmantle',222,222,11,11,0,{[141]={{57.34,56.11}}},nil,141,{475,483,486},{476,483,486},80,"A",nil,2},
|
||||
[2151] = {'Moon Priestess Amara',713,713,25,25,0,{[141]={{55.30,58.40}}},nil,141,{487,489},{487},79,"A",nil,2},
|
||||
[3567] = {'Tallonkai Swiftroot',222,222,11,11,0,{[141]={{57.36,55.35}}},nil,141,{932,2438,2459},{932,2438,2459},80,"A",nil,2},
|
||||
[6736] = {'Innkeeper Keldamyr',1003,1003,30,30,0,{[141]={{57.26, 60.00}}},nil,141,nil,{2159},80,"A","Innkeeper",66179},
|
||||
[6780] = {'Porthannius',137,137,7,7,0,{[141]={{54.58,84.52}}},nil,141,{2159},nil,80,"A",nil,2},
|
||||
[449169] = {[1]="Sylindra Starweave",[2]=299,[3]=327,[4]=10,[5]=10,[6]=0,[7]={[141]={{56.26,57.01}}},[9]=141,[10]={1903556,449169,},[11]={1903556,449169},[12]=12,[13]="A"},
|
||||
[161725] = {[1]="Thariel Wingstroke",[2]=293,[3]=293,[4]=11,[5]=11,[6]=0,[7]={[1243]={{51.34,67.86},{51.44,67.98}}},[9]=1243,[10]={1660012,1660071},[11]={1660085},[12]=12,[13]="A"},
|
||||
[161726] = {[1]="Aryandel",[2]=361,[3]=361,[4]=13,[5]=13,[6]=0,[7]={[1243]={{62.03,35.03}}},[9]=1243,[10]={1660013},[11]={1660012},[12]=12,[13]="A"},
|
||||
[161727] = {[1]="Lady Aegya",[2]=433,[3]=433,[4]=-1,[5]=-1,[6]=3,[7]={[1243]={{69.64,24.5}}},[9]=1243,[10]={1660014,1660015,1660085},[11]={1660013,1660014,1660016},[12]=12,[13]="A"},
|
||||
[161728] = {[1]="Gilgaen",[2]=640,[3]=640,[4]=20,[5]=20,[6]=0,[7]={[1243]={{68.87,21.74}}},[9]=1243,[10]={1660016},[11]={1660015},[12]=12,[13]="A"},
|
||||
[161848] = {[1]="Eldya",[2]=181,[3]=181,[4]=7,[5]=7,[6]=0,[7]={[1243]={{66.32,35.46},{66.32,35.46}}},[9]=1243,[10]={1660017},[11]={1660017},[12]=12,[13]="A"},
|
||||
[161916] = {[1]="Sheelem",[2]=181,[3]=181,[4]=7,[5]=7,[6]=0,[7]={[1243]={{72.08,32.99}}},[9]=1243,[10]={1660040},[11]={1660040},[12]=12,[13]="A"},
|
||||
[162879] = {[1]="Kaladir",[2]=232,[3]=232,[4]=9,[5]=9,[6]=0,[7]={[141]={{56.48,59.67}}},[9]=141,[10]={1660074},[11]={1660074},[12]=12,[13]="A"},
|
||||
[162880] = {[1]="Adrilia Soultemper",[2]=1113,[3]=1113,[4]=27,[5]=27,[6]=0,[7]={[141]={{57.03,52.30}}},[9]=141,[10]={1660073},[11]={1660072,1660073},[12]=12,[13]="A"},
|
||||
[162881] = {[1]="Alenna Whisperbough",[2]=940,[3]=940,[4]=25,[5]=25,[6]=0,[7]={[141]={{59.35,58.93}}},[9]=141,[10]={1660075},[11]={1660075},[12]=12,[13]="A"},
|
||||
[162870] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.20,52.00},{57.70,50.50}}},[9]=141},
|
||||
[162871] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.10,51.90},{57.10,50.30}}},[9]=141},
|
||||
[162872] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.50,51.50},{58.30,48.80}}},[9]=141},
|
||||
[162873] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.20,48.70},{57.80,49.60}}},[9]=141},
|
||||
[162856] = {[1]="Theren-Dion Sentinel",[2]=144,[3]=158,[4]=6,[5]=7,[6]=0,[7]={[141]={{58.60,50.90},{57.30,50.00}}},[9]=141},
|
||||
--Creatures
|
||||
[161735] = {[1]="Rotworm",[2]=29,[3]=35,[4]=1,[5]=2,[6]=0,[7]={[2031]={{53.97,33.06},{53.33,28.5},{51.23,56.05},{36.2,54.26},{36.66,55.04},{39.02,51.87},{64.99,68.22},{65.8,66.49},{65.6,65.18},{52.47,63.9},{51.88,66.98},{54.03,63.64},{53.36,63.55},{51.11,68.3},{53.05,77.85},{52.37,80.54}},[1243]={{71.45,30.52}}},[9]=2031},
|
||||
[161782] = {[1]="Fallen Aspirant",[2]=79,[3]=112,[4]=3,[5]=3,[6]=0,[7]={[2031]={{47.65,38.09},{48.3,38.18},{51.23,56.05},{52.08,59.8},{52.87,64.32},{40.42,74.45},{47.95,61.11}}},[9]=2031},
|
||||
[161783] = {[1]="Aberrant Flesh Remnant",[2]=100,[3]=100,[4]=3,[5]=3,[6]=0,[7]={[1243]={{65.35,20.54}}},[9]=1243},
|
||||
[161784] = {[1]="Elydna Wingstroke",[2]=945,[3]=945,[4]=7,[5]=7,[6]=1,[7]={[1243]={{71.73,21.17}}},[9]=1243},
|
||||
[161787] = {[1]="Fretful Withered Treant",[2]=100,[3]=134,[4]=3,[5]=3,[6]=0,[7]={[1243]={{54.16,42.06},{58.8,49.23},{58.46,43.54},{58.95,44.98},{59.71,46.38},{57.67,45.94},{57.01,42.63},{56.49,40.05},{54.87,43.18},{55.27,44.46},{55.59,45.04},{60.5,44.16},{61.3,40.07},{60.35,38.47},{59.11,39.23},{58.78,39.82},{53.92,43.47}}},[9]=1243},
|
||||
[161832] = {[1]="Rotting Flesh Spawn",[2]=403,[3]=403,[4]=4,[5]=4,[6]=1,[7]={[2031]={{50.51,61.86}}},[9]=2031},
|
||||
[162874] = {[1]="Frenzied Vulture",[2]=158,[3]=158,[4]=7,[5]=7,[6]=0,[7]={[141]={{59.88,48.94},{59.52,49.65}}},[9]=141},
|
||||
[162876] = {[1]="Barkshredder Termite",[2]=158,[3]=158,[4]=6,[5]=6,[6]=0,[7]={[141]={{54.86,61.82},{55.06,60.88},{55.3,60.28},{54.89,59.49},{54.74,62.82}}},[9]=141},
|
||||
[162877] = {[1]="Barkshredder Queen",[2]=205,[3]=205,[4]=8,[5]=8,[6]=0,[7]={[141]={{54.96,59.31}}},[9]=141},
|
||||
[162925] = {[1]="Vulture Egg",[2]=27,[3]=27,[4]=7,[5]=7,[6]=0,[7]={[141]={{59.32,49.26},{59.88,48.91}}},[9]=141,[12]=72,[13]="AH"},
|
||||
|
||||
--Durotar
|
||||
--NPCs
|
||||
[3287] = {'Hana\'zua',55,55,2,2,0,{[1244]={{34.24,46.61}}},nil,1244,{790,804},{790},126,"H",nil,2},
|
||||
[161732] = {'Esgramor',326,326,12,12,0,{[1244]={{44.75,66.92}}},nil,1244,{1660018,1660022,1660023,1660061},{1660021,1660022,1660023},29,"H","",0},
|
||||
[161733] = {'Swa’li',361,361,13,13,0,{[1244]={{35.57,41.53}}},nil,1244,{1660037,1660019},{1660018,1660037},29,"H","",0},
|
||||
[161734] = {'Anjali',232,232,9,9,0,{[2030]={{14.74,50.80}}},nil,2030,{1660020,1660041,1660021},{1660019,1660041,1660020},29,"H","",0},
|
||||
[254011] = {'Sakari',801,801,20,20,0,{[1244]={{42.58,61.97}}},nil,1244,{254008,254009,254010},{254008,254009},29,"H","",0},
|
||||
[7953] = {'Xar\'Ti',2769,2769,50,50,0,{[14]={{55.28,75.49}}},nil,14,{4420437,1903557},{14088,4420437,1903557},126,"H","Riding Trainer",83},
|
||||
[162839] = {[1]="Karagar",[2]=678,[3]=678,[4]=22,[5]=22,[6]=0,[7]={[14]={{53,40.92},{53,40.92},{53,40.92}}},[9]=14,[10]={1660062,1660087,1660089},[11]={1660061},[12]=29,[13]="H"},
|
||||
[162840] = {[1]="Rilly",[2]=329,[3]=329,[4]=13,[5]=13,[6]=0,[7]={[14]={{57.19,41.85}}},[9]=14,[10]={1660063},[11]={1660063},[12]=29,[13]="H"},
|
||||
[162838] = {'Foreman Dirgran',239,239,10,10,0,{[14]={{51.15,40.67}}},nil,5,{1660064},{1660064},29,"H","",0},
|
||||
[162836] = {'Thirsty Peon',144,144,8,8,0,{[14]={{50.80,39.90},{50.60,39.90},{50.70,39.40},{50.60,39.30},{50.70,39.10},{50.50,39.00},{50.40,38.70},{50.50,38.60},{50.30,38.60},{50.40,38.30},{50.30,38.10},{50.20,38.10},{50.00,38.50},{49.90,38.60},{50.10,38.70}}},nil,14,nil,nil,29,"H",nil,0},
|
||||
[254012] = {[1]="Queen Erethina",[2]=731,[3]=731,[4]=20,[5]=20,[6]=0,[7]={[14]={{48.92,34.82}}},[9]=14,[10]={254012},[11]={254011,254012},[12]=72,[13]="AH"},
|
||||
[254013] = {'Sakari',731,731,20,20,0,{[1637]={{56.30,32.50}}},nil,1637,{254014}, {254013},126,"H",nil,2},
|
||||
[254014] = {'Sakari',731,731,20,20,0,{[17]={{62.40,10.20}}},nil,17,{254015}, {254014,254015},126,"H",nil,2},
|
||||
--Creatures
|
||||
[30719] = {'Uneasy Citizen',nil,nil,nil,nil,nil,{[1244]={{44.54,63.16},{45.80,63.18},{43.80,62.37},{40.61,62.07},{40.29,65.35},{38.91,66.86},{37.62,67.10},{34.40,64.39},{34.13,65.10},{34.86,66.58},{42.11,71.20},{43.17,71.49}}},nil,1244,{559155}},
|
||||
[161790] = {'Hirsutta the Witch',1000,1000,7,7,1,{[1244]={{27.50,33.58},{28.14,33.95}}},nil,1244,nil},
|
||||
[161792] = {'Elder Guardian Spirit',100,134,3,3,0,{[1244]={{36.05,24.76},{36.02,24.86},{36.15,24.85},{36.11,24.92}},[2030]={{15.24,54.18},{44.30,66.59},{49.86,82.31},{49.73,81.90},{49.39,82.65},{73.27,58.79},{68.42,35.12},{69.04,35.12},{14.99,57.19},{14.91,57.05},{14.69,56.15},{14.92,51.82},{14.86,53.20},{14.68,56.62},{15.38,56.79},{16.40,56.70},{15.72,57.06},{14.95,54.90},{15.02,54.64},{14.79,56.29},{14.97,56.39},{14.75,56.26},{14.71,55.93},{16.01,57.57},{14.97,57.08},{15.25,56.50}}},nil,2030,{559175}},
|
||||
[161793] = {'Sinister Bat',100,134,3,3,0,{[2030]={{47.39,40.03},{44.41,56.04},{42.71,58.67},{43.98,67.17},{45.49,73.12},{46.82,77.89},{47.26,76.27},{50.41,78.72},{71.26,42.00},{65.52,35.27}}},nil,2030,nil},
|
||||
[161794] = {'Sinister Snake',100,134,3,3,0,{[2030]={{16.87,41.78},{18.68,37.45},{20.41,36.96},{22.27,39.15},{25.81,36.57},{28.02,36.25},{28.95,38.23},{34.84,41.81},{39.14,46.66},{44.51,49.30},{75.08,61.00}}},nil,2030,nil},
|
||||
[161795] = {'Sinister Spider',100,134,3,3,0,{[2030]={{49.41,76.57},{54.99,83.38},{70.19,76.11},{72.83,72.78},{73.23,58.00},{77.18,58.24},{79.99,60.88},{74.75,50.15},{73.86,42.19},{67.59,37.73},{66.51,34.42}}},nil,2030,nil},
|
||||
[161807] = {'Voodoo Devotee',94,125,4,4,0,{[1244]={{32.20,51.26},{30.76,50.13},{29.95,50.76},{29.99,52.77},{31.88,49.68},{32.26,47.30},{30.44,49.24},{31.39,41.65},{32.36,37.75},{31.12,36.71},{32.31,55.94},{33.37,53.37},{32.20,51.32},{30.91,52.63},{30.96,51.11},{31.29,46.45},{31.02,36.65}}},nil,1244,nil},
|
||||
[161833] = {'Techla\'Tu, The Gatekeeper',403,403,4,4,1,{[2030]={{53.19,66.45}}},nil,2030,nil},
|
||||
[161854] = {'Enchanted Tiki Mask',134,134,3,3,0,{[1244]={{34.60,38.13}}},nil,1244,nil},
|
||||
[161855] = {'Chattering Tiki Mask',100,100,3,3,0,{[1244]={{31.19,44.56}}},nil,1244,nil},
|
||||
[161856] = {'Possessed Tiki Mask',134,134,3,3,0,{[1244]={{36.98,41.30}}},nil,1244,nil},
|
||||
[254015] = {'Xaitoth',225,225,3,3,0,{[1217]={{50.31,60.68}}},nil,1217,{254006}},
|
||||
[162834] = {'Rivenruin Myrmidon',144,144,6,7,0,{[14]={{58.09,41.23},{57.90,40.96},{58.07,39.50},{58.26,39.18},{58.18,38.86},{57.99,37.85},{57.66,37.84},{56.54,38.47},{57.44,38.77},{58.31,36.91},{57.92,36.80},{58.16,37.21},{57.37,37.59},{57.45,38.47},{57.77,38.37},{57.72,39.44},{57.62,39.18}}},nil,14,nil,nil,72,nil,nil,0},
|
||||
[162835] = {'Rivenruin Sorceress',134,134,6,7,0,{[14]={{58.31,40.96},{57.63,37.39},{57.72,38.79},{58.30,36.21},{57.91,36.25},{57.94,35.76},{57.84,35.53},{57.21,39.23},{56.32,39.68},{55.57,39.12}}},nil,14,nil,nil,72,nil,nil,0},
|
||||
[162916] = {[1]="Rivenruin Brute",[2]=165,[3]=165,[4]=8,[5]=8,[6]=0,[7]={[14]={{59.06,39.29}}},[9]=14},
|
||||
[162841] = {'Bagamul Skyfang',2484,2484,41,41,0,{[14]={{51.77,44.36}}},nil,14,{1660065},{1660065},29,"H","",0},
|
||||
[254016] = {[1]="Queen Erethina",[2]=1323,[3]=1323,[4]=12,[5]=12,[6]=0,[7]={[17]={{62.4,10.2}}},[9]=17},
|
||||
|
||||
--Tirisfal Glades
|
||||
--NPCs
|
||||
[161739] = {'Anthon',165,165,7,7,0,{[1240]={{50.53,58.18}}},nil,1240,{1660024},{},29,"H","",0},
|
||||
[161740] = {'Riscell Cain',329,329,13,13,0,{[1240]={{28.40,55.10}}},nil,1240,{1660025}, {1660024,1660050},72,"H","",3},
|
||||
[161742] = {[1]="Deathguard Eric",[2]=395,[3]=395,[4]=15,[5]=15,[6]=0,[7]={[1240]={{27.66,55.67}}},[9]=1240,[10]={1660029,1660050},[11]={1660029},[12]=29,[13]="H",3},
|
||||
[161746] = {[1]="Kalis",[2]=298,[3]=298,[4]=12,[5]=12,[6]=0,[7]={[1240]={{27.93,55.11}}},[9]=1240,[10]={1660042},[11]={1660042},[12]=29,[13]="H",3},
|
||||
[161747] = {[1]="Thris",[2]=362,[3]=362,[4]=14,[5]=14,[6]=0,[7]={[1240]={{27.87,54.59}}},[9]=1240,[10]={1660028},[11]={1660028},[12]=29,[13]="H",3},
|
||||
[161741] = {'Exsangue',584,584,20,20,0,{[1240]={{15.90,46.00}}},nil,1240,{}, {1660026},29,"H","",3},
|
||||
[4773] = {'Velma Warnam',1003,1003,30,30,0,{[85]={{59.40,51.30}}},nil,85,{4420434,1903557},{14089,4420434,1903557},68,"H","Riding Trainer",83},
|
||||
[162843] = {'Apothecary Flemer',267,267,11,11,0,{[85]={{58.10,52.40}}},nil,1420,{}, {1660050},29,"H","",3},
|
||||
[1518] = {'Apothecary Johaan',484,484,20,20,0,{[85]={{58.40,52.80}}},nil,85,{367,368,369,407,445,492},{365,367,368,369},68,"H","Royal Apothecary Society",2},
|
||||
[1519] = {'Deathguard Simmer',1210,1210,23,23,0,{[85]={{38.80,55.80}}},nil,85,{365},nil,68,"H",nil,2},
|
||||
[749136] = {[1]="Rod Toxicstrike",[2]=366,[3]=366,[4]=10,[5]=10,[6]=0,[7]={[85]={{43.97,39.21}}},[9]=85,[10]={254064},[11]={254064},[12]=29,[13]="H"},
|
||||
[162844] = {[1]="Delcard Sading",[2]=466,[3]=466,[4]=17,[5]=17,[6]=0,[7]={[85]={{59.9,52.76}}},[9]=85,[10]={1660052},[11]={1660052},[12]=29,[13]="H"},
|
||||
[162847] = {[1]="Dark Priestess Ashara",[2]=1188,[3]=1188,[4]=29,[5]=29,[6]=0,[7]={[85]={{59.76,54.57}}},[9]=85,[10]={1660054},[11]={1660054},[12]=29,[13]="H"},
|
||||
[991483] = {[1]="Father Alastor",[2]=348,[3]=348,[4]=15,[5]=15,[6]=0,[7]={[85]={{70.54,63.73},{70.53,63.75}}},[9]=85,[10]={254053,254054},[11]={254053,254054},[12]=29,[13]="H"},
|
||||
[764555] = {[1]="Warden Kaelthar Graveborn",[2]=584,[3]=584,[4]=15,[5]=15,[6]=0,[7]={[85]={{76.08,45.05}}},[9]=85,[10]={254056},[12]=29,[13]="H"},
|
||||
[764554] = {'Apothecary Ralden',584,584,15,15,0,{[85]={{75.80,44.70}}},nil,85,{}, {254056},29,"H","Royal Apothecary Society",3},
|
||||
--Creatures
|
||||
[161762] = {[1]="Mother",[2]=122,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{15.97,69.18}}},[9]=1240},
|
||||
[161763] = {[1]="Father",[2]=91,[3]=91,[4]=3,[5]=3,[6]=0,[7]={[1240]={{16.02,65.36}}},[9]=1240},
|
||||
[161764] = {[1]="Cousin Salem",[2]=122,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{18.46,71.3}}},[9]=1240},
|
||||
[161765] = {[1]="Uncle Abel",[2]=103,[3]=103,[4]=3,[5]=3,[6]=0,[7]={[1240]={{20.08,66.61}}},[9]=1240},
|
||||
[161836] = {[1]="Hound of House Cain",[2]=311,[3]=311,[4]=4,[5]=4,[6]=1,[7]={[1240]={{14.52,45.35}}},[9]=1240},
|
||||
[161752] = {[1]="Ghoul",[2]=91,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{17.58,47.57},{17.49,45.07},{19.17,47.16},{18.7,46.25},{21.21,47.45},{20.54,46.05},{19.86,42.33},{14.52,47.64},{15.4,50.51}}},[9]=1240},
|
||||
[161743] = {[1]="Necrotic Bear",[2]=91,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{17.12,64.35},{19.18,41.61},{17.97,40.44}}},[9]=1240},
|
||||
[161749] = {[1]="Zombie",[2]=91,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1240]={{23.89,57.08},{23.19,55.84},{22.55,55.46},{23.35,54.84},{22.54,53.83},{21.57,53.79},{21.7,52.63},{25.33,53.73},{25.52,52.49},{26.27,52.61},{19.68,56.24},{19.44,56.82},{19.57,57.86},{18.59,57.18},{19.07,59.82},{19.27,60.74},{21.12,62.22},{21.13,58.48},{22.37,59.22},{21.2,50.87},{20.61,50.48},{16.81,55.72},{17.18,56.47},{17.4,55.7}}},[9]=1240},
|
||||
[161753] = {[1]="Brainless Majordomo",[2]=97,[3]=115,[4]=3,[5]=3,[6]=0,[7]={[1240]={{19.99,47.87}}},[9]=1240},
|
||||
[161754] = {[1]="Brainless Maid",[2]=97,[3]=97,[4]=3,[5]=3,[6]=0,[7]={[1240]={{14.32,46.3},{12.95,48.68}}},[9]=1240},
|
||||
[161755] = {[1]="Brainless Stablemaster",[2]=87,[3]=87,[4]=3,[5]=3,[6]=0,[7]={[1240]={{18.5,52.72}}},[9]=1240},
|
||||
[161757] = {[1]="Aberrant Progeny",[2]=913,[3]=913,[4]=7,[5]=7,[6]=1,[7]={[1240]={{17.28,46.49}}},[9]=1240},
|
||||
[254584] = {'Mallek the Tormented',289,289,9,9,0,{[85]={{51.40,35.30}}},nil,1420},
|
||||
[162842] = {'Sporephase Guardian',144,144,8,8,0,{[85]={{56.43,54.70},{56.72,55.75},{56.09,56.09},{57.95,57.73},{58.18,55.41},{57.56,54.83},{57.12,54.84},{56.47,54.91},{56.36,56.53},{57.31,56.98},{57.43,56.69},{57.85,56.49},{58.33,56.28},{57.64,55.29},{57.44,55.95},{57.66,54.14},{56.97,54.39}}},nil,85,nil,nil,72,nil,nil,0},
|
||||
[162853] = {[1]="Brightwater Rebel",[2]=144,[3]=144,[4]=8,[5]=8,[6]=0,[7]={[85]={{67.01,50.35},{68.3,51},{67.34,51.06},{67.39,52.15}}},[9]=85},
|
||||
[162854] = {[1]="Brightwater Rebel",[2]=144,[3]=144,[4]=8,[5]=8,[6]=0,[7]={[85]={{67.21,50.76},{67.11,50.01},{66.51,50.17},{67.06,51.94}}},[9]=85},
|
||||
[162857] = {[1]="Alric Sading",[2]=144,[3]=144,[4]=8,[5]=8,[6]=0,[7]={[85]={{67.33,51.87}}},[9]=85},
|
||||
[162859] = {[1]="Scarlet Soldier",[2]=144,[3]=144,[4]=8,[5]=8,[6]=0,[7]={[85]={{63.74,46.02},{63.74,45.52},{63.2,46.72},{62.63,47.04},{63.34,47.44}}},[9]=85},
|
||||
[162860] = {[1]="Scarlet Mage",[2]=134,[3]=134,[4]=8,[5]=8,[6]=0,[7]={[85]={{64.51,46.79},{63.51,46.49},{63.72,45.06},{62.66,47.23},{63.6,47.79}}},[9]=85},
|
||||
[162861] = {[1]="Scarlet Battler",[2]=122,[3]=165,[4]=8,[5]=8,[6]=0,[7]={[85]={{65,46.98},{64.45,46.62},{63.5,44.7},{63.35,45.82},{63.31,47.09}}},[9]=85},
|
||||
[254936] = {[1]="Jorum Balnir",[2]=656,[3]=656,[4]=12,[5]=12,[6]=1,[7]={[85]={{77.1,59.94}}},[9]=85},
|
||||
[254937] = {[1]="Vara Balnir",[2]=656,[3]=656,[4]=12,[5]=12,[6]=1,[7]={[85]={{77.5,62}}},[9]=85},
|
||||
[254938] = {[1]="Jarim Balnir",[2]=656,[3]=656,[4]=12,[5]=12,[6]=1,[7]={[85]={{74.84,61.01},{74.7,61.74}}},[9]=85},
|
||||
[13158] = {'Lieutenant Sanders',276,276,12,12,0,{[85]={{86.82,42.40}}},nil,85,nil,nil,72,nil,nil,0},
|
||||
|
||||
--Mulgore
|
||||
--NPCs
|
||||
[161817] = {'Redhorn',239,239,10,10,0,{[1245]={{30.83,28.37}}},nil,1245,{1660030},{},29,"H","",0},
|
||||
[161818] = {'Morriga Hollowhoof',348,348,15,15,0,{[1245]={{64.84,66.09}}},nil,1245,{1660031,1660035},{1660030,1660033},29,"H","",0},
|
||||
[161819] = {'Sage Nauchol',301,301,13,13,0,{[1245]={{72.33,88.30}}},nil,1245,{1660032,1660033},{1660031,1660032},29,"H","",0},
|
||||
[161840] = {'Hyena Spirit',239,239,10,10,0,{[1245]={{68.71,89.81}}},nil,1245,{1660043,1660034},{1660035,1660043,1660034},72,"AH","",0},
|
||||
[162902] = {'Handros',187,187,8,8,0,{[1245]={{28.86,32.82}}},nil,1245,{1660066},{},29,"H","",0},
|
||||
[162903] = {'Ammus Grey-Eye',429,429,16,16,0,{[1245]={{14.42,28.93}}},nil,1245,{1660067,1660070},{1660066,1660070},29,"H","",0},
|
||||
[162904] = {'Arkan Fairwind',212,212,9,9,0,{[1245]={{14.60,29.50}}},nil,1245,{}, {},29,"H","",0},
|
||||
[162906] = {'Sage Muudren',584,584,20,20,0,{[215]={{44.22,59.08}}},nil,215,{1660068},{1660067},29,"H","",0},
|
||||
[162908] = {'Ancestress Emnil',1756,1756,35,35,0,{[215]={{39.93,60.78}}},nil,215,{1660069},{1660069},29,"H","",0},
|
||||
[991485] = {'Tharok Windhoof',499,499,20,20,0,{[215]={{46.76,49.48}}},nil,215,{500004},{500004},29,"H","",0},
|
||||
[3690] = {'Kar Stormsinger',2138,2138,44,44,0,{[215]={{47.65,58.47}}},nil,215,{4420435,1903557},{14087,4420435,1903557},104,"H","Riding Trainer",83},
|
||||
--Creatures
|
||||
[161809] = {'Grimtotem Marauder',91,122,3,3,0,{[1245]={{46.69,53.15},{47.52,52.49},{47.90,56.97},{49.80,56.32},{49.55,59.98},{49.88,61.54},{52.64,62.10},{52.37,60.74},{52.47,57.32},{54.38,54.50},{55.30,58.82},{54.49,59.65},{50.84,64.79},{52.70,64.85},{54.13,64.67},{55.40,66.38},{56.91,64.29},{56.99,62.19},{57.21,59.75},{58.72,57.71},{61.06,59.71},{59.46,63.35},{57.84,69.81},{59.60,69.59},{60.85,70.88},{62.33,72.02},{60.04,73.13},{61.51,74.79}}},nil,1245,{559156}},
|
||||
[161810] = {'Grimtotem Patrol',91,122,3,3,0,{[1245]={{61.84,68.48},{62.43,74.60},{64.72,76.08},{61.10,73.88},{57.66,78.70},{58.01,80.26},{59.62,81.12},{62.04,83.40},{66.10,84.68},{70.24,85.86},{71.83,88.29},{66.38,84.65}}},nil,1245,{559168}},
|
||||
[161834] = {'Cruel Carrion Spirit',311,311,4,4,1,{[1245]={{71.02,86.27}}},nil,1245,nil},
|
||||
[161850] = {[1]="Aquiline Totem",[2]=122,[3]=122,[4]=3,[5]=3,[6]=0,[7]={[1245]={{82.03,81.96}}},[9]=1245},
|
||||
[161851] = {[1]="Owlish Totem",[2]=103,[3]=103,[4]=3,[5]=3,[6]=0,[7]={[1245]={{77.22,84.66}}},[9]=1245},
|
||||
[161852] = {[1]="Taurine Totem",[2]=103,[3]=103,[4]=3,[5]=3,[6]=0,[7]={[1245]={{81.84,77.56}}},[9]=1245},
|
||||
[161816] = {'Malgorm Hollowhoof',663,663,7,7,1,{[1245]={{79.07,74.63}}},nil,1245,nil},
|
||||
[162907] = {[1]="Devouring Fire",[2]=144,[3]=144,[4]=6,[5]=6,[6]=0,[7]={[215]={{42.41,58.84},{41.83,59.47},{41.33,58.85},{41.49,58.01},{42.58,59.83},{42.52,60.66},{41.73,60.46},{40.99,59.53},{40.43,58.67},{39.86,58.04},{40.72,57.42}}},[9]=215},
|
||||
[162909] = {'Thick Kodo',144,144,6,6,0,{[215]={{38.25,63.41},{41.26,62.62},{41.67,62.98},{41.12,63.15},{39.95,62.79}}},nil,215,nil,nil,72,nil,nil,0},
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
-- Backward compatibility (if any code still references AscensionNpcDB.npcData)
|
||||
AscensionNpcDB = AscensionNpcDB or {}
|
||||
AscensionNpcDB.npcData = AscensionDB.npcData
|
||||
@@ -0,0 +1,129 @@
|
||||
---@type table
|
||||
local AscensionDB = QuestieLoader:CreateModule("AscensionDB")
|
||||
|
||||
AscensionDB.objectData = AscensionDB.objectData or {
|
||||
|
||||
-- Path of Ascension
|
||||
|
||||
[9908168]={[1]="Resurrect in Closest Town or Capital",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil},
|
||||
[9942043]={[1]="Learn Novice Riding from the Riding Trainer",[2]=nil,[3]=nil,[4]={[12]={{43.97,64.16}},[141]={{56.29,57.01}},[215]={{47.69,58.52}},[14]={{55.28,75.49}},[1]={{49.15,48.13}},[85]={{59.40,51.30}}},[5]=12,[6]=nil},
|
||||
[9903556]={[1]="Pets Tab (Shift+P), Mounts Tab, Summon Mount",[2]=nil,[3]=nil,[4]={[12]={{43.97,64.16}},[141]={{56.29,57.01}},[215]={{47.69,58.52}},[14]={{55.28,75.49}},[1]={{49.15,48.13}},[85]={{59.40,51.30}}},[5]=12,[6]=nil},
|
||||
[9903553]={[1]="Open the Dungeon Finder (I) / Green Eye",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil},
|
||||
[9903554]={[1]="Select dungeon(s) then click Find Group",[2]=nil,[3]=nil,[4]=nil,[5]=nil,[6]=nil},
|
||||
[9905201]={[1]="Talk to the Beginner's Book of Ascension",[2]=nil,[3]=nil,[4]={[14]={{42.4,68.7},{52.2,43.2},{56.2,74.7}},[17]={{28.4,67.0},{63.2,37.0},{52.1,30.2}},[3430]={{44.2,70.9},{38.3,21.4},{47.0,46.1}},[12]={{48.1,41.9},{43.1,66.6}},[1]={{30.1,71.7},{46.9,52.4}},[141]={{58.7,44.3},{57.5,57.5}},[85]={{31.5,65.9},{61.4,53.0}},[3524]={{49.1,51.3},{80.7,46.3}},[215]={{47.1,60.9}},[148]={{37.3,44.0}},[130]={{43.4,41.8}},[38]={{34.9,47.7}},[3433]={{47.6,31.6}},[3525]={{55.1,59.6}},[44]={{28.2,47.7}},[331]={{36.3,49.3}},[10]={{73.9,48.0}},[40]={{56.9,54.7}}},[5]=12,[6]=nil},
|
||||
[9905202]={[1]="Select Train Me and rank up your spells",[2]=nil,[3]=nil,[4]={[14]={{42.4,68.7},{52.2,43.2},{56.2,74.7}},[17]={{28.4,67.0},{63.2,37.0},{52.1,30.2}},[3430]={{44.2,70.9},{38.3,21.4},{47.0,46.1}},[12]={{48.1,41.9},{43.1,66.6}},[1]={{30.1,71.7},{46.9,52.4}},[141]={{58.7,44.3},{57.5,57.5}},[85]={{31.5,65.9},{61.4,53.0}},[3524]={{49.1,51.3},{80.7,46.3}},[215]={{47.1,60.9}},[148]={{37.3,44.0}},[130]={{43.4,41.8}},[38]={{34.9,47.7}},[3433]={{47.6,31.6}},[3525]={{55.1,59.6}},[44]={{28.2,47.7}},[331]={{36.3,49.3}},[10]={{73.9,48.0}},[40]={{56.9,54.7}}},[5]=12,[6]=nil},
|
||||
[9903540]={[1]="Visit an Innkeeper and select \"Make this inn your home\"",[2]=nil,[3]=nil,[4]={[12]={{44.77,66.8},{43.45,66.2}},[1]={{47.38,52.52},{47.22,52.19}},[11]={{10.7,60.95}},[267]={{51.17,58.93},{62.78,19.03}},[17]={{51.99,29.89},{62.05,39.41},{45.58,59.04}},[1537]={{18.15,51.45}},[85]={{61.71,52.05}},[33]={{31.49,29.75},{27.04,77.31}},[15]={{66.59,45.22},{41.93,74.17},{36.89,32.35}},[44]={{27.01,44.82}},[38]={{35.53,48.4}},[1657]={{67.42,15.65}},[141]={{57.26, 60.00}},[148]={{37.04,44.13}},[331]={{36.99,49.22},{73.99,60.65}},[130]={{43.18,41.28}},[1519]={{60.39,75.28}},[1497]={{67.74,37.89}},[1638]={{45.81,64.71}},[215]={{46.62,61.09}},[10]={{73.87,44.41}},[14]={{51.51,41.64}},[1637]={{54.1,68.41},{51.14,72.6}},[8]={{45.16,56.66}},[406]={{47.47,62.13},{35.79,5.74}},[440]={{52.51,27.91}},[357]={{30.97,43.49},{74.8,45.18}},[47]={{14.15,41.57},{78.14,81.38}},[40]={{52.86,53.72}},[3]={{2.81,45.85}},[45]={{73.84,32.46}},[405]={{66.27,6.55},{24.09,68.21}},[400]={{46.07,51.52}},[618]={{61.36,38.83}},[1377]={{51.89,39.16}},[3430]={{43.67,71.31},{48.16,47.66}},[139]={{75.85,52.21}},[3433]={{48.91,32.42}},[3524]={{48.37,49.2}},[3483]={{56.71,37.47},{54.22,63.6},{26.88,59.53},{23.35,36.36}},[3487]={{79.48,58.21},{67.86,72.89}},[3557]={{59.59,19.4}},[3525]={{55.85,59.81}},[3521]={{30.66,50.93},{67.17,49.32},{78.49,62.94},{41.85,26.22}},[2367]={{-1,-1}},[3518]={{56.73,34.51},{54.22,76.1}},[3519]={{48.76,45.05},{56.7,53.27}},[3703]={{28.29,49.36},{56.32,81.54}},[3520]={{30.24,27.74},{37.06,58.27},{56.32,59.84},{61.12,28.24},{66.25,87.13}},[3522]={{53.37,55.42},{35.8,63.88},{76.09,60.31},{60.98,68.11},{62.86,38.31}},[3523]={{43.36,36.14},{31.96,64.42}},[495]={{58.39,62.45},{30.86,41.45},{49.51,10.78},{60.48,15.86},{52.15,66.41},{79.73,30.84},{25.39,59.85}},[4080]={{51.18,33.88}},[3537]={{58.29,68.05},{41.92,54.48},{57.12,18.72},{76.26,37.18},{49.67,10.19},{78.39,49.28}},[394]={{59.56,26.3},{65.42,46.89},{31.97,60.28},{20.79,64.58}},[65]={{38.19,46.65},{76.87,63.13},{77.41,51.77},{28.89,56.09},{48.14,74.76},{59.8,54.24}},[3711]={{26.75,59.27}},[4395]={{39.52,71.43},{50.25,39.52},{40.53,55.57},{65.61,32.16},{50.41,41.46},{44.66,63.34},{67.38,35.35}},[66]={{40.83,66.26},{59.33,57.3}},[67]={{41.09,85.91},{28.71,74.38},{37.13,49.52},{30.89,37.36},{67.61,50.61},{48.86,65.04}},[210]={{43.99,22.18},{76.19,19.66},{76.1,23.96}}},[5]=12,[6]=nil},
|
||||
|
||||
--Elwynn Forest
|
||||
|
||||
[900001]={[1]="Lost Page I",[4]={[12]={{50.29,42.06}}},[5]=12,[6]=nil},
|
||||
[900002]={[1]="Lost Page II",[4]={[12]={{49.60,39.60}}},[5]=12,[6]=nil},
|
||||
[900003]={[1]="Lost Page III",[4]={[12]={{49.50,40.80}}},[5]=12,[6]=nil},
|
||||
[900004]={[1]="Lost Page IV",[4]={[12]={{49.60,39.70}}},[5]=12,[6]=nil},
|
||||
[999005]={[1]="Abbess’ Journal Purified",[2]=nil,[3]=nil,[4]={[12]={{51.5,27.5}}},[5]=12,[6]=nil},
|
||||
[999006]={[1]="Abbess’s Staff Purified",[2]=nil,[3]=nil,[4]={[12]={{55.9,30.2}}},[5]=12,[6]=nil},
|
||||
[999007]={[1]="Heretical Idol Purified",[2]=nil,[3]=nil,[4]={[12]={{52.3,29.4}}},[5]=12,[6]=nil},
|
||||
[999008]={[1]="Jeweled Relic Purified",[2]=nil,[3]=nil,[4]={[12]={{53.4,31.1}}},[5]=12,[6]=nil},
|
||||
[999010]={[1]="Hidden Path",[2]=nil,[3]=nil,[4]={[12]={{55.3,37.9}}},[5]=12,[6]=nil},
|
||||
[999011]={[1]="Ruined Estate",[2]=nil,[3]=nil,[4]={[12]={{58.7,33.3}}},[5]=12,[6]=nil},
|
||||
[999012]={[1]="Wayward Theologian",[2]=nil,[3]=nil,[4]={[12]={{60.5,28.7}}},[5]=12,[6]=nil},
|
||||
[999013]={[1]="Melon",[2]=nil,[3]=nil,[4]={[12]={{41.54,67.68},{41.58,67.31},{41.59,67.55},{41.48,67.36},{41.36,67.49},{41.29,67.57},{41.29,67.42},{41.40,67.28},{41.31,67.25},{41.11,67.52}}},[5]=12,[6]=0},
|
||||
[999014]={[1]="Pumpkin",[2]=nil,[3]=nil,[4]={[12]={{42.05,67.64},{42.22,67.53},{42.25,67.66}}},[5]=12,[6]=0},
|
||||
[999015]={[1]="apple",[2]=nil,[3]=nil,[4]={[12]={{45.07,64.83},{45.09,64.96},{45.03,64.98},{45.04,65.22},{45.11,65.17},{45.21,65.02},{45.19,64.93},{45.26,64.91},{45.46,64.92},{45.51,65.02},{45.55,64.92},{45.57,65.08},{45.51,65.14},{45.55,65.19},{45.39,65.20},{45.36,65.18},{45.32,65.13}}},[5]=12,[6]=0},
|
||||
[96000]={[1]="Maclure Supplies",[2]=nil,[3]=nil,[4]={[12]={{48.0,86.9},{48.0,86.9}}},[5]=12,[6]=0},
|
||||
[2300579]={[1]="Kobold Warren",[2]=nil,[3]=nil,[4]={[12]={{40.4,73.2},{38.2,76.6},{39.3,77.1},{45.6,77.0},{44.6,77.4},{44.7,78.8},{43.3,79.2},{42.3,73.4},{42.3,78.0},{40.5,78.2},{42.3,78.8},{40.5,80.3},{41.2,74.4},{43.5,76.7},{39.5,76.0},{38.4,73.8},{41.0,76.7},{42.4,76.0}}},[5]=12,[6]=0},
|
||||
[9000057]={[1]="Mirror Shard",[2]=nil,[3]=nil,[4]={[12]={{30.92,58.76},{30.80,58.09},{31.08,57.76},{31.05,57.52},{31.45,58.88},{31.22,58.97},{31.87,59.18},{30.35,59.43},{29.78,59.24},{30.44,58.11},{30.06,57.97},{31.20,57.50}}},[5]=12,[6]=nil},
|
||||
[9017008]={[1]="Mirror Lake Harvest",[2]=nil,[3]=nil,[4]={[12]={{30.15,66.70},{30.24,66.40},{30.37,66.87},{30.52,66.35},{30.59,67.24},{30.71,66.86},{30.80,66.50},{31.02,66.95},{31.19,66.74},{31.24,66.35},{31.49,66.67}}},[5]=12,[6]=nil},
|
||||
[9900730]={[1]="Stolen Supply Crate",[2]=nil,[3]=nil,[4]={[12]={{56.75,80.60},{56.90,79.96},{56.88,81.37},{57.11,81.04},{57.55,79.73},{57.78,80.52},{57.39,80.87},{56.90,79.94},{57.02,79.06},{56.98,78.56}}},[5]=12,[6]=nil},
|
||||
[99017005]={[1]="Smudged Note",[2]={17005},[3]=nil,[4]={[12]={{64.57,41.80}}},[5]=12,[6]=nil},
|
||||
[4673875] = {"Explore Stormwind to your heart's content, then visit Flightmaster Dungar Longdrink to fly to Westfall to continue your adventure",nil,nil,{[1519]={{71.00,72.66}}},1519,0},
|
||||
|
||||
--Dun Morogh
|
||||
|
||||
[2300507] = {[1]="Plating examined",[4]={[1239]={{37.8,58.23}}},[5]=1239},
|
||||
[2300508] = {[1]="Crate examined",[4]={[1239]={{36.66,56.12}}},[5]=1239},
|
||||
[2300509] = {[1]="Crystal shards examined",[4]={[1239]={{35.98,53.44}}},[5]=1239},
|
||||
[2300510] = {[1]="Banner examined",[4]={[1239]={{35.31,51.84}}},[5]=1239},
|
||||
[5401381] = {[1]="Hidden path tread",[4]={[1239]={{39.38,36.91}}},[5]=1239},
|
||||
[5883992] = {[1]="Ask Arathror to help you put on the disguise",[4]={[1239]={{40.99,33.93}}},[5]=1239},
|
||||
[5888887] = {[1]="Radiant Devotees doused",[4]={[1239]={{50.89,19.79},{53.29,22.45},{54.28,21.74},{50.47,22.60},{50.08,23.43},{49.82,23.66},{49.45,19.25},{51.25,20.38},{50.74,18.11},{51.15,17.81},{51.78,20.05},{52.48,20.85},{53.84,19.47},{53.95,19.13},{53.19,18.76},{54.40,24.45},{54.00,24.39},{55.64,24.86},{56.32,27.38},{56.94,27.45},{57.22,25.45},{57.42,25.12},{53.40,21.65},{53.08,24.47},{52.38,23.56},{52.15,24.75},{55.46,19.19},{56.89,19.36}}},[5]=1239},
|
||||
[2300550] = {"Thunderbrew Hop",nil,nil,{[1]={{47.80,56.07},{47.87,55.58},{48.05,55.99},{47.91,56.32},{47.86,56.57},{48.15,56.66},{48.37,56.65}}},1,0},
|
||||
[5855933] = {[1]="Listen to Gravedigger Nonuid",[4]={[1]={{48.87,52.65}}},[5]=1},
|
||||
[244620] = {"Dun Morogh Tree",nil,nil,{[1]={{62.93,57.82},{46.76,52.29},{58.25,53.55},{58.38,54.34},{59.23,54.10},{58.42,57.43},{59.80,58.73},{60.68,58.27},{60.81,56.51},{60.33,55.39},{62.01,55.44},{63.67,55.44},{64.25,55.74},{64.09,54.75},{64.69,55.49},{62.81,57.06},{63.51,57.04},{64.34,59.66},{63.94,60.69},{63.14,60.37},{63.40,61.16},{62.21,60.30},{61.76,60.21},{61.58,59.79},{61.14,60.81},{60.77,61.21},{60.54,61.47}}},1,0},
|
||||
|
||||
--Teldrassil
|
||||
|
||||
[2300512] = {[1]="Cut of Good Meat",[4]={[2031]={{47.9,38.62},{47.83,38.14},{51.23,56.05},{52.08,59.8},{52.87,64.32}}},[5]=2031},
|
||||
[2300513] = {[1]="Sanctified flesh offered",[4]={[1243]={{72.55,20.55}}},[5]=1243},
|
||||
[2300526] = {[1]="Newborns saved",[4]={[1243]={{71.96,21.98}}},[5]=1243},
|
||||
[5943833] = {[1]="Butterflies delivered",[4]={[1243]={{65.9,35.18}}},[5]=1243},
|
||||
[5166357] = {[1]="Carrion Path traversed",[4]={[1243]={{61.66,36.17}}},[5]=1243},
|
||||
[5911478] = {[1]="Communion completed",[4]={[1243]={{71.95,21.56}}},[5]=1243},
|
||||
[5005829] = {[1]="Flesh sanctified at the Moonwell",[4]={[1243]={{65.35,20.54}}},[5]=1243},
|
||||
[5861249] = {[1]="Speak with Lady Aegya",[4]={[1243]={{69.64,24.5}}},[5]=1243},
|
||||
[5405229] = {[1]="Speak with Thariel Wingstroke",[4]={[1243]={{51.44,67.98}}},[5]=1243},
|
||||
[5388202] = {[1]="Vulture Egg destroyed",[4]={[141]={{59.44,49.3},{57.91,50.7}}},[5]=141},
|
||||
[5399902] = {[1]="Listen to Aleena Whisperbough",[4]={[141]={{59.35,58.93}}},[5]=141},
|
||||
|
||||
--Durotar
|
||||
|
||||
[1064805] = {"Elemental Fire",nil,nil,{[1244]={{35.31,24.22}}},1244,0},
|
||||
[2392807] = {"Elemental Earth",nil,nil,{[1244]={{35.71,23.16}}},1244,0},
|
||||
[3478505] = {"Elemental Air",nil,nil,{[1244]={{36.38,23.63}}},1244,0},
|
||||
[4541078] = {"Elemental Water",nil,nil,{[1244]={{36.11,24.92}}},1244,0},
|
||||
[254001] = {"Strange Flower",nil,nil,{[1244]={{35.64,35.81}}},1244,0},
|
||||
[6649507] = {"Report delivered to Esgramor",nil,nil,{[1244]={{44.77,67.11}}},1244,0},
|
||||
[9070546] = {"Speak with Karagar in Razor Hill.",nil,nil,{[1244]={{44.80,67.09}}},1244,0},
|
||||
[2036820] = {"Magical barrier crossed",nil,nil,{[2030]={{16.15,59.24}}},2030,0},
|
||||
[254004] = {"Crude Centaur Drawing",{254011},{254010},{[14]={{46.55,78.75}}},14,0},
|
||||
[254003] = {[1]="Metallic Debris",[4]={[14]={{53.04,63.63},{52.79,65.08},{53.69,64.74},{54.05,62.31},{53.29,59.17},{53.96,57.62},{52.66,55.41},{52.81,53.54},{52.9,51.52}}},[5]=14},
|
||||
[2300551] = {[1]="Elven Relic of Old",[4]={[14]={{58.26,39.18},{57.57,39.15}}},[5]=14},
|
||||
[2300553] = {[1]="Elven Relic of Old",[4]={[14]={{57.54,37.43},{58.55,39.36}}},[5]=14},
|
||||
[2300554] = {[1]="Elven Relic of Old",[4]={[14]={{57.51,37.37},{58.81,38.5},{58.16,37.21}}},[5]=14},
|
||||
[2300555] = {[1]="Elven Relic of Old",[4]={[14]={{57.78,40.33},{59.04,39.44},{57.99,36.24}}},[5]=14},
|
||||
[2300556] = {[1]="Elven Relic of Old",[4]={[14]={{57.78,38.4},{57.84,35.53}}},[5]=14},
|
||||
[2300557] = {[1]="Elven Relic of Old",[4]={[14]={{57.83,38.81},{58.14,35.53}}},[5]=14},
|
||||
[2300558] = {[1]="Elven Relic of Old",[4]={[14]={{58.06,38.53},{59.65,39.47},{58.81,38.16}}},[5]=14},
|
||||
[5954015] = {[1]="Listen to Bagamul Skyfang",[4]={[14]={{51.77,44.36}}},[5]=14},
|
||||
[5954415] = {[1]="Full Dirgran's Pitcher",[4]={[14]={{52.10,41.80}}},[5]=14},
|
||||
[254002] = {[1]="Ouru'Gai Crystal",[4]={[17]={{56.79,20.1}}},[5]=1413},
|
||||
[5777365] = {[1]="Reversion process observed",[4]={[17]={{62.36,10.25}}},[5]=17},
|
||||
|
||||
--Tirisfal Glades
|
||||
|
||||
[2300528] = {[1]="Gaudy Painting",[4]={[1240]={{15.83,47.58}}},[5]=1240},
|
||||
[2300529] = {[1]="Shimmering Jewel",[4]={[1240]={{19.83,48.08}}},[5]=1240},
|
||||
[2300530] = {[1]="Crystal Ball",[4]={[1240]={{17.67,47.52}}},[5]=1240},
|
||||
[2300531] = {[1]="Family Signet",[4]={[1240]={{18.62,45.61}}},[5]=1240},
|
||||
[2306601] = {[1]="Concoction Tested on Skeletons",[4]={[85]={{47.75,37.51},{42.39,33.63},{47.74,29.22},{47.88,34.06},{51.01,34.0},{43.32,32.55},{46.17,29.41},{46.6,31.97},{48.27,37.54},{44.88,35.97},{47.72,30.75},{48.21,30.36},{47.11,32.3},{50.45,31.51},{42.83,34.22},{47.33,30.18},{49.16,27.88},{43.59,28.6},{42.68,35.15},{43.87,30.53},{43.93,34.96},{45.63,30.43},{46.99,42.0},{45.27,42.87},{45.39,41.47},{47.44,38.28},{46.75,37.54},{44.39,38.28},{45.36,39.61},{48.33,39.46},{47.41,40.68},{46.77,39.86},{45.42,40.52},{45.15,37.54},{44.42,37.6},{45.26,32.42},{46.19,31.68},{45.27,34.88},{44.59,40.5},{48.91,42.83},{50.22,42.99},{49.88,36.82},{48.3,41.65},{47.58,42.83},{49.59,36.02},{49.22,33.88},{48.73,34.09},{49.02,34.13},{47.67,31.24},{49.02,35.26},{49.21,33.54},{46.87,33.38},{46.91,34.88},{49.24,36.25},{47.48,36.08},{42.69,32.27},{49.82,36.21}}},[5]=85},
|
||||
[2306602] = {[1]="Concoction Tested on Zombies",[4]={[85]={{51.31,28.1},{54.72,31.34},{53.41,30.39},{52.1,32.85},{49.76,30.26},{53.26,31.03},{49.73,28.59},{54.36,29.2},{52.67,26.02},{51.58,33.43},{50.58,29.08},{48.6,31.98},{52.53,26.32},{52.4,26.48},{51.28,31.46},{52.64,26.31},{52.55,26.88},{52.02,30.57},{52.24,26.36},{51.97,26.8},{52.63,27.0},{51.78,27.0},{51.9,25.84}}},[5]=85},
|
||||
[2306603] = {[1]="Concoction Tested on Banshees",[4]={[85]={{52.68,29.32},{55.16,29.96},{52.87,27.04},{54.74,29.53},{53.96,29.82},{51.87,31.48},{53.52,28.0},{52.01,26.7},{52.04,26.35},{50.98,30.53},{51.42,29.26},{52.23,27.45},{51.87,28.76},{52.61,25.83},{51.97,26.02},{52.03,25.63}}},[5]=85},
|
||||
[2306604] = {[1]="Unusal Subject Tested",[4]={[85]={{51.40,35.30}}},[5]=85},
|
||||
[5093560] = {[1]="Listen to Dark Priestess Ashara",[4]={[85]={{59.76,54.57}}},[5]=85},
|
||||
[192380] = {[1]="Gravestone",[4]={[85]={{70.1,63.1},{70,63.3},{70,63.4},{70,63.6},{69.9,63.5},{69.8,63.7},{69.9,63.8},{70,63.8},{70,63.9},{70.1,63.9},{70.2,64},{70.2,63.8},{70.1,63.7},{70.2,63.6},{70.3,63.6},{70.3,63.4},{70.4,63.3}}},[5]=85},
|
||||
[2300545] = {"Necrotic Spore",nil,nil,{[85]={{57.50,55.75},{57.70,55.74},{57.57,55.50},{57.40,55.30},{57.60,55.12},{57.81,55.01},{57.05,55.80},{57.03,55.51},{56.75,55.14},{56.72,54.76},{56.65,54.32},{57.68,54.42},{57.65,54.03},{57.12,53.67}}},85,0},
|
||||
[254678] = {[1]="Invincible's Gravestone Polished",[4]={[85]={{78.64,59.52}}},[5]=85},
|
||||
[254679] = {[1]="Scarlet Supplies Infected",[4]={[85]={{85.79,34.76},{86.42,34.59},{82.27,33.25},{81.36,31.72},{83.85,30.91}}},[5]=85},
|
||||
|
||||
--Mulgore
|
||||
|
||||
[5976414] = {[1]="Hard Basin discovered",[4]={[1245]={{66.53,84.56}}},[5]=1245},
|
||||
[2300532] = {[1]="Offering Bone",[4]={[1245]={{61.38,76.42},{58.01,80.26},{62.04,83.4}}},[5]=1245},
|
||||
[2300514] = {[1]="Grimtotem Armor Piece",[4]={[1245]={{72.63,81.8},{73.04,81.7},{73.78,81.66},{73.69,81.08},{73.31,81.12},{73.21,80.82},{72.88,80},{73.12,79.38},{73.35,79.77},{74.33,81.02},{74.57,80.03},{74.03,79.58},{73.57,78.94},{73.56,78.25}}},[5]=1245},
|
||||
[2300515] = {[1]="Exalted Pendant",[4]={[1245]={{75.66,75.24}}},[5]=1245},
|
||||
[2300527] = {"Aquiline Totem",nil,nil,{[1245]={{82.03,81.96}}},1245,0},
|
||||
[2300533] = {"Owlish Totem",nil,nil,{[1245]={{77.22,84.87}}},1245,0},
|
||||
[2300534] = {"Taurine Totem",nil,nil,{[1245]={{81.84,77.56}}},1245,0},
|
||||
[5299566] = {[1]="Listen to Ammus Grey-Eye",[4]={[1245]={{14.39,28.95}}},[5]=1245},
|
||||
[1942447] = {"Ask Nauchol to dress you in the disguise",nil,nil,{[1245]={{72.39,88.46}}},1245,0},
|
||||
[5195713] = {[1]="Parachute Used",[4]={[1245]={{14.63,29.54}}},[5]=1245},
|
||||
[5195711] = {[1]="Full Sanctuary Amphora",[4]={[1245]={{14.30,35.30}}},[5]=1245},
|
||||
[2300552] = {[1]="Prairie Sap",[4]={[215]={{39.84,61.47},{39.42,60.23},{38.88,59.72},{38.78,59.32},{38.57,59.96},{37.27,59.58},{38.06,60.83},{37.65,61.39},{38.21,62.16},{38.59,62.23},{39.21,62.32},{38.95,63.63},{38.5,63.88},{38.62,64.23}}},[5]=215},
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
-- Backward compatibility (if any code still references AscensionObjectDB.objectData/objectDat)
|
||||
AscensionObjectDB = AscensionObjectDB or {}
|
||||
AscensionObjectDB.objectData = AscensionDB.objectData
|
||||
@@ -0,0 +1,154 @@
|
||||
---@type table
|
||||
local AscensionDB = QuestieLoader:CreateModule("AscensionDB")
|
||||
|
||||
AscensionDB.questData = AscensionDB.questData or {
|
||||
|
||||
--Path of Ascension Quests
|
||||
|
||||
[1903520]={[1]="Path to Ascension: Rank Up Your Spells",[2]={{75118}},[3]={{75118}},[4]=7,[5]=8,[6]=0,[8]={"Talk to the Beginner's Book of Ascension: 0/1","Select Train Me and rank up your spells: 0/1"},[10]={nil,{{9905201,"Talk to the Beginner's Book of Ascension: 0/1"},{9905202,"Select Train Me and rank up your spells: 0/1"}}},[17]=nil,[30]=60},
|
||||
[1903540]={[1]="Path to Ascension: Visit an Innkeeper",[2]={{75118}},[3]={{75118}},[4]=7,[5]=8,[6]=0,[8]={"Visit an Innkeeper and select Make this inn your home."},[10]={nil,{{9903540,'Visit an Innkeeper and select "Make this inn your home": 0/1'}}},[17]=nil,[30]=60},
|
||||
[580168]={[1]="Path to Ascension: Less Running, More Ressing",[2]={{75118}},[3]={{75118}},[4]=8,[5]=8,[6]=0,[8]={"Cast Resurrect in Closest Town or Capital City next time you die.","Resurrect in Closest Town or Capital: 0/1"},[10]={nil,{{9908168,"Resurrect in Closest Town or Capital: 0/1"}}},[17]=nil,[30]=60},
|
||||
[4420430]={[1]="Path to Ascension: Novice Rider",[2]={{97921}},[3]={{97921}},[4]=6,[5]=8,[6]=0,[8]={"Learn how to ride and claim your first mount.","Learn Novice Riding from the Riding Trainer: 0/1"},[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=nil,[30]=60},
|
||||
[4420439] = {[1]="Path to Ascension: Novice Rider",[2]={{449169}},[4]=4,[5]=8,[6]=1101,[8]="Learn how to ride and claim your first mount.",[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=141,},
|
||||
[1903556]={[1]="Path to Ascension: Mount Up!",[2]={{97921,449169,7954}},[3]={{97921,449169,7954}},[4]=6,[5]=8,[6]=0,[8]={"Learn how to mount up!","Pets Tab (Shift+P), Mounts Tab, Summon Mount: 0/1"},[10]={nil,{{9903556,"Pets Tab (Shift+P), Mounts Tab, Summon Mount: 0/1"}}},[13]={4420430,4420432},[17]=nil,[30]=60},
|
||||
[1903553]={[1]="Path to Ascension: Dungeon Finder",[2]={{75118}},[3]={{75118}},[4]=15,[5]=15,[6]=0,[8]={"Open the Dungeon Finder and queue for a dungeon!","Open the Dungeon Finder (I) / Green Eye: 0/1","Select dungeon(s) then click Find Group: 0/1"},[10]={nil,{{9903553,"Open the Dungeon Finder (I) / Green Eye: 0/1"},{9903554,"Select dungeon(s) then click Find Group: 0/1"}}},[17]=12},
|
||||
[4420435]={[1]="Path to Ascension: Novice Rider",[2]={{3690}},[4]=7,[5]=9,[6]=690,[7]=0,[8]={"Learn how to ride and claim your first mount."},[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=215},
|
||||
[1903557]={[1]="Path to Ascension: Mount Up!",[2]={{3690,7953,4773}},[3]={{3690,7953,4773}},[4]=7,[5]=9,[6]=0,[7]=0,[8]={"Learn how to mount up!"},[10]={nil,{{9903556,"Pets Tab (Shift+P), Mounts Tab, Summon Mount: 0/1"}}},[13]={4420434,4420435,4420437},[17]=nil},
|
||||
[4420437]={[1]="Path to Ascension: Novice Rider",[2]={{7953}},[4]=6,[5]=8,[6]=690,[7]=0,[8]={"Learn how to ride and claim your first mount."},[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=14},
|
||||
[4420432] = {[1]="Path to Ascension: Novice Rider",[2]={{7954}},[3]={{7954}},[4]=5,[5]=9,[6]=1101,[8]="Learn how to ride and claim your first mount.",[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=1},
|
||||
[4420434]={[1]="Path to Ascension: Novice Rider",[2]={{4773}},[3]={{4773}},[4]=6,[5]=8,[6]=690,[7]=0,[8]={"Learn how to ride and claim your first mount."},[10]={nil,{{9942043,"Learn Novice Riding from the Riding Trainer: 0/1"}}},[17]=85},
|
||||
[100466]={[1]="Path to Ascension: Westfall",[2]={{466}},[4]=10,[5]=12,[6]=0,[7]=0,[8]={"Explore Stormwind to your heart's content, then visit Flightmaster Dungar Longdrink to fly to Westfall to continue your adventure."},[10]={nil,{{4673875}}},[17]=1519},
|
||||
|
||||
--Elwynn Forest
|
||||
|
||||
[17000]={[1]="Stolen Supplies",[2]={{250}},[3]={{250}},[4]=5,[5]=9,[6]=1101,[7]=nil,[8]={"Return the Stolen Supplies to Pa Maclure."},[9]=nil,[10]={nil,{{96000,"Retrieve the Stolen Supplies"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]=nil,[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]={{72,25}}},
|
||||
[100073]={[1]="Supply Run",[2]={{241}},[3]={{241}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]={"","Recover 4 Stolen Supply Crates from the Bandit Bastion, east of Goldshire.","","- Stolen Goods x 4"},[9]=nil,[10]={nil,{{9900730,"Stolen Supply Crate"}}},[11]=nil,[12]=nil,[13]={47},[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
[17001]={[1]="Extravagant Order",[2]={{241}},[3]={{241}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]={"","Return 4 Gem Encrusted Spider Silk to Tharynn Bouden.","","- Gem Encrusted Spider Silk x 4"},[9]=nil,[10]={nil,nil,{{157001,"Gem Encrusted Spider Silk"}}},[11]=nil,[12]=nil,[13]={47},[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
[17002]={[1]="The Master's Orders",[2]={{9000017}},[3]={{9000017}},[4]=8,[5]=10,[6]=1101,[7]=nil,[8]={"","Recover 10 Depleted Mana Gems and return to the Tower of Azora.","","- Depleted Mana Gem x 10"},[9]=nil,[10]={nil,nil,{{157002,"Depleted Mana Gem"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]=nil,[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]=nil,[27]=nil,[28]=nil,[29]=nil,[30]=nil},
|
||||
[17003]={[1]="Slimy Solution",[2]={{9000017}},[3]={{9000017}},[4]=8,[5]=10,[6]=1101,[7]=0,[8]={"Retrieve 10 Slimy Murloc Spittle Samples and return to the Tower of Azora."},[9]=nil,[10]={[5]={{{46,732},46,"Slimy Murloc Spittle Collected"}}},[11]=157006,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
[17004]={[1]="Disarming the Gnolls",[2]={{261}},[3]={{261}},[4]=8,[5]=10,[6]=1101,[7]=0,[8]={"","Retrieve 6 Gnoll Blades and 10 Gnoll Axes and return to Guard Thomas at the east Elwynn bridge.","","- Gnoll Sword x 6","- Gnoll Axe x 10"},[9]=nil,[10]={nil,nil,{{157007,"Gnoll Sword"},{157008,"Gnoll Axe"}}},[11]=nil,[12]=nil,[13]={35},[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
[17005]={[1]="Last Memento",[2]={nil,{99017005},nil},[3]={{11916}},[4]=8,[5]=10,[6]=1101,[7]=0,[8]={"","Return the Smudged Note to Imelda in Stormwind."},[11]=157012,[17]=12},
|
||||
[17008]={[1]="Reclaim the Harvest",[2]={{955}},[3]={{955}},[4]=8,[5]=10,[6]=1101,[7]=nil,[8]={"","Retrieve 8 Mirror Lake Apples and return them to Sergeant De Vries in Westbrook Garrison.","","- Mirror Lake Apple x 8"},[9]=nil,[10]={nil,nil,{{157014,"Mirror Lake Apple"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]=nil,[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]=nil,[27]=nil,[28]=nil,[29]=nil,[30]=nil,[31]={{nil,4,"Mirror Lake Harvest",1,{{"object",9017008}}}},[32]=nil},
|
||||
[1660056]={[1]="Agria's Medicine",[2]={{162815}},[3]={{162802}},[4]=5,[5]=8,[6]=1101,[7]=nil,[8]={"Buy the potion's ingredients at the Goldshire market: Elgris Blossom Petals, Dun Kazad Liquor Concentrate, Pumpkin Juice, and a Murloc Eyeball."},[9]=nil,[10]={[3]={{558956,"Collect Elgris Blossom Petals"},{558957,"Collect Dun Kazad Liquor Concentrate"},{558958,"Collect Pumpkin Juice"},{558959,"Collect Murloc Eyeball"}}},[11]=558960,[12]=nil,[13]={1660055},[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]={558956,558957,558958,558959},[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]={{72,250}}},
|
||||
[1660057]={[1]="Seven Years of Bad Luck",[2]={{162802}},[3]={{162802}},[4]=8,[5]=10,[6]=1101,[7]=nil,[8]={"Inspect the broken mirror shards that Aldia Crayon blames for the curse afflicting Lady Agria Spada."},[9]=nil,[10]={nil,{{9000057,"Mirror Shard Inspected"}}},[11]=nil,[12]=nil,[13]={1660056},[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
[1660058]={[1]="Worm-Eaten Apple",[2]={{162805}},[3]={{162805}},[4]=5,[5]=8,[6]=1101,[7]=nil,[8]={"Find and destroy the kobold warrens around Goldshire."},[9]=nil,[10]={nil,{{2300579,"Destroy Kobold Warrens"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12,[18]=nil,[19]=nil,[20]=nil,[21]=nil,[22]=nil,[23]=nil,[24]=nil,[25]=nil,[26]={{72,250}}},
|
||||
[1660059]={[1]="Goldshire's Generosity",[2]={{162807}},[3]={{162801}},[4]=6,[5]=8,[6]=1101,[8]={"","Gather Melons, Pumpkins, and Apples from the farms around Goldshire. Then deliver them to Eldor Hammer, leader of the refugees.","","- Pumpkin x 3","- Melon x 3","- Apple x 10"},[10]={nil,nil,{{558961},{558962},{558963}}},[13]={1660055},[17]=12,[23]=0,[24]=0},
|
||||
[1660000]={[1]="Bookworm",[2]={{161700}},[3]={{161701}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Speak with Seminarian Moroi, brother of Bianca Spada."},[9]=nil,[10]=nil,[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=9},
|
||||
[1660001]={[1]="Knowledge Corrupts",[2]={{161701}},[3]={{161701}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Recover the missing pages from Moroi’s unclassified manuscript, scattered throughout the abbey."},[9]=nil,[10]={nil,nil,{{559130},{559131},{559132},{559133}}},[11]=nil,[12]=nil,[13]={1660000},[14]=nil,[15]=nil,[16]=nil,[17]=9},
|
||||
[1660002]={[1]="The Ruins of Northshire",[2]={{161701}},[3]={{161702}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Locate the cellar entrance to the Secret Inquisitorial Dungeon."},[9]={"Secret Inquisitorial Dungeon entrance found: 0/1",{[12]={{52.30,36.30}}}},[10]=nil,[11]=nil,[12]={1660001},[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=9},
|
||||
[1660003]={[1]="Accursed Sisterhood",[2]={{161702}},[3]={{161702}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Purify the belongings of the former abbess, scattered throughout the Secret Inquisitorial Dungeon."},[9]=nil,[10]={nil,{{999005,"Abbess’ Journal purified"},{999006,"Abbess’s Staff purified"},{999007,"Heretical Idol purified"},{999008,"Jeweled Relic purified"}}},[11]=nil,[12]=nil,[13]={1660002},[14]=nil,[15]=nil,[16]=nil,[17]=9},
|
||||
[1660004]={[1]="Words That Shepherd Madness",[2]={{161702}},[3]={{161701}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Find the hidden path leading to the top of the waterfall and confront the sins of the former abbess of Northshire."},[9]=nil,[10]={[2]={{999010,"Hidden Path found"},{999011,"Ruined Estate discovered"},{999012,"Wayward Theologian confronted"}}},[11]=nil,[12]=nil,[13]={1660003},[14]=nil,[15]=nil,[16]=nil,[17]=9},
|
||||
[1660036]={[1]="Oracular Idol",[2]={nil,nil,{559159}},[3]={{161844}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Collect three Prophet's Oracular Orbs from the murloc oracles roaming the Shadewell Spring."},[9]=nil,[10]={nil,nil,{{559159,"Prophet's Oracular Orb"}}},[11]=559159,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=9},
|
||||
[100074]={[1]="A Betrayal Within",[2]={{5055565}},[3]={{240}},[4]=4,[5]=8,[6]=1101,[7]=nil,[8]={"","Return to Marshal Dughan."},[9]=nil,[10]=nil,[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
[1660055]={[1]="The Maid I Left Behind",[2]={{161700}},[3]={{162800}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]=nil,[9]=nil,[10]=nil,[11]=nil,[12]=nil,[13]={1660004},[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
[1660038]={[1]="The Saddest Among Us",[2]={{161702}},[3]={{161702}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Defeat the Cursed Censor in the Secret Inquisitorial Dungeon."},[9]=nil,[10]={[1]={{161712,"Accursed Censor slain"}}},[11]=nil,[12]=nil,[13]={1660002},[14]=nil,[15]=nil,[16]=nil,[17]=9},
|
||||
[1660005]={[1]="The Threat Swept Downstream",[2]={{161705}},[3]={{161705}},[4]=3,[5]=6,[6]=1101,[7]=nil,[8]={"Defeat the Defias lurking in the ruined tower and thin the ranks of the Shadewell murlocs atop the waterfall, across the rope bridge."},[9]=nil,[10]={[1]={{161736,"Defias Plunderer slain"},{161716,"Shadewell Murloc slain"}}},[11]=nil,[12]=nil,[13]={1660003},[14]=nil,[15]=nil,[16]=nil,[17]=9},
|
||||
[1660060]={[1]="Stay a While",[2]={{162806}},[3]={{162806}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]={"","Take a moment from the noise and haste and stay a while to listen to Aliscar Lend.","","- Listen to Aliscar Lend x 1"},[9]=nil,[10]={[1]={{162943,"Listen to Aliscar Lend"}}},[11]=nil,[12]=nil,[13]=nil,[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
[100071]={[1]="Defias Disruption",[2]={{6778}},[3]={{6778}},[4]=6,[5]=8,[6]=1101,[7]=nil,[8]={"","Thin the ranks of the Defias at the Bandit Bastion, east of Goldshire.","","- Defias Bandit x 6","- Defias Rogue Wizard x 4"},[9]=nil,[10]={[1]={{116,"Defias Bandit slain"},{474,"Defias Rogue Wizard slain"}}},[11]=nil,[12]=nil,[13]={47},[14]=nil,[15]=nil,[16]=nil,[17]=12},
|
||||
|
||||
--Dun Morogh
|
||||
|
||||
[254000] = {[1]="A Small Mistake",[2]={{254000}},[3]={{254000}},[4]=2,[5]=2,[6]=1101,[8]="Search the Frostmane Encampment for Clues.",[10]={nil,nil,{{254000}}},[17]=1239},
|
||||
[254001] = {[1]="We Found Her!",[2]={{254000}},[3]={{254000}},[4]=2,[5]=2,[6]=1101,[8]="Search for Nylrisa to the south-west of Brewnall Village.",[10]={nil,nil,{{254001}}},[13]={254000},[17]=1239},
|
||||
[254002] = {[1]="The Scout's Favor",[2]={{254000}},[3]={{254002}},[4]=1,[5]=2,[6]=1101,[8]="Slay 4 Rockjaw Raiders and meet with Mountaineer Tagnur on the other end of the tunnel.",[10]={{{1718}},nil,nil},[13]={57393},[17]=1239},
|
||||
[254003] = {[1]="Old Mirsinth",[2]={{254002}},[3]={{254003}},[4]=1,[5]=4,[6]=1101,[8]="Find the exiled Frostmane troll.",[13]={254002},[17]=1},
|
||||
[1660006] = {[1]="Smoke on the Wind",[2]={{161718}},[3]={{161719}},[4]=2,[5]=6,[6]=1101,[8]="Follow in the footsteps of Grelbin, son of Groldha, and investigate the source of the smoke.",[10]={{{2300507},{2300508},{2300509},{2300510}}},[17]=1239},
|
||||
[1660007] = {[1]="A Promising Path",[2]={{161719}},[3]={{161720}},[4]=2,[5]=6,[6]=1101,[8]="Follow the mountain path to uncover the location of the mysterious group.",[10]={nil,{{5401381}},nil},[13]={1660006},[17]=1239},
|
||||
[1660008] = {[1]="A Fitting Disguise",[2]={{161720}},[3]={{161720}},[4]=2,[5]=6,[6]=1101,[8]="Slay Radiant fanatics and collect their armor pieces. Deliver them to Arathror so he can craft a disguise.",[10]={nil,nil,{{559142}}},[13]={1660007},[17]=1239},
|
||||
[1660009] = {[1]="His Radiant Majesty",[2]={{161720}},[3]={{161718}},[4]=2,[5]=6,[6]=1101,[8]="Tell Arathror when you’re ready to don the disguise. Then infiltrate Radiance Town and slay the cult leader, His Radiant Majesty.",[10]={{{161775}},{{5883992}},nil},[13]={1660008},[17]=1239},
|
||||
[1660010] = {[1]="Deciphering Radiation",[2]={{161820}},[3]={{161820}},[4]=2,[5]=6,[6]=1101,[8]="Slay radioactive slimes in Radiance Town and use the Contamination Extractor on their corpses to harvest mutagen.",[10]={nil,nil,{{559162}}},[11]=559161,[17]=1239},
|
||||
[1660011] = {[1]="Soaking the Masses",[2]={{161839}},[3]={{161839}},[4]=2,[5]=6,[6]=1101,[8]="Use the Radiation Sprayer to douse Radiaville’s townsfolk with radiation.",[10]={nil,{{5888887}},nil},[11]=559163,[17]=1239},
|
||||
[1660039] = {[1]="Sever the Right Hand",[2]={{161720}},[3]={{161820}},[4]=2,[5]=6,[6]=1101,[8]="Defeat Right Hand of His Majesty in Radiance Town.",[10]={{{161835}},nil,nil},[13]={1660008},[17]=1239},
|
||||
[1660076] = {[1]="A Growing Business",[2]={{162882}},[3]={{162883}},[4]=4,[5]=8,[6]=1101,[8]="Speak with Eyma Thunderbrew at the Thunderbrew Distillery in Kharanos.",[17]=1239},
|
||||
[1660077] = {[1]="Thunderbrew's Hop",[2]={{162883}},[3]={{162883}},[4]=6,[5]=10,[6]=1101,[8]="Harvest seven Thunderbrew Hops from the Thunderbrew Distillery grounds in Kharanos.",[10]={nil,nil,{{558964}}},[13]={1660076},[17]=28},
|
||||
[1660080] = {[1]="Stay a While",[2]={{162901}},[3]={{162901}},[4]=6,[5]=10,[6]=1101,[8]="Take a moment from the noise and haste and stay a while to listen to Gravedigger Nonuid.",[10]={nil,{{5855933}},nil},[17]=1},
|
||||
[1660079] = {[1]="Live-Fire Demo",[2]={{162891}},[3]={{162891}},[4]=6,[5]=10,[6]=1101,[8]="Test Gornarn's Blunderbuss and ammo on the practice targets up on the ridge above Kharanos.",[10]={{{162917}},nil,nil},[11]=558950,[17]=1},
|
||||
[1660078] = {[1]="Bots on Strike",[2]={{162884}},[3]={{162884}},[4]=6,[5]=10,[6]=1101,[8]="Defeat Out-of-Control Automata clogging the Kharanos tunnel and recover Reusable Mechanical Parts from their remains.",[10]={{{162888},{162889},{162890}},nil,{{558965}}},[17]=1},
|
||||
[254004] = {[1]="A Brother's Betrayal",[2]={{254003}},[3]={{254003}},[4]=3,[5]=7,[6]=1101,[8]="Get Mirsinth the Exile’s totem from Jun’Kon at Frostmane Hold.",[10]={nil,nil,{{254002}}},[13]={254003},[17]=1},
|
||||
[254005] = {[1]="The True Story",[2]={{254003}},[3]={{254000}},[4]=6,[5]=10,[6]=1101,[8]="Find Efry Cogspark at the Stoutlager Inn in Thelsamar.",[13]={254004},[17]=1},
|
||||
[500005] = {[1]="Timber for the Coldhewn",[2]={{765556}},[3]={{765556}},[4]=6,[5]=10,[6]=1101,[8]="Chop down Dun Morogh trees near Coldhewn Camp and return with 12 Frostpine Logs.",[10]={nil,nil,{{662336}}},[17]=1},
|
||||
[500006] = {[1]="Icehide the Unbroken",[2]={{764536}},[3]={{764536}},[4]=7,[5]=11,[6]=1101,[8]="You’ve been asked to track and slay Icehide, the elite Frostsaber haunting Coldhewn Ridge above the camp.",[10]={{{76555}},nil,nil},[17]=1},
|
||||
|
||||
--Teldrassil
|
||||
|
||||
[1660012] = {[1]="The Carrion Road",[2]={{161725}},[3]={{161726}},[4]=2,[5]=6,[6]=1101,[8]="Walk the Carrion Path and defeat its guardians.",[10]={{{161787}},{{5166357}}},[17]=1243},
|
||||
[1660013] = {[1]="The Sister Who Never Returned",[2]={{161726}},[3]={{161727}},[4]=2,[5]=6,[6]=1101,[8]="Speak with Lady Aegya, leader of the Vulture’s Cult, and ask what became of Thariel’s sister, Elydna.",[10]={nil,{{5861249}}},[13]={1660012},[17]=1243},
|
||||
[1660014] = {[1]="Finding the Good Meat",[2]={{161727}},[3]={{161727}},[4]=2,[5]=6,[6]=1101,[8]="Gather five cuts of good meat from the Moonlit Ossuary within the Vulture Cult Eyrie.",[10]={nil,nil,{{559143}}},[13]={1660013},[17]=1243},
|
||||
[1660015] = {[1]="Transsubstantiating the Flesh",[2]={{161727}},[3]={{161728}},[4]=2,[5]=6,[6]=1101,[8]="Carry the gathered flesh to the Moonwell and sanctify it in the waters.",[10]={nil,{{5005829}},{{559145}}},[11]=559144,[13]={1660014},[17]=1243},
|
||||
[1660016] = {[1]="Communion Banquet",[2]={{161728}},[3]={{161727}},[4]=2,[5]=6,[6]=1101,[8]="Place the sanctified flesh upon the bowl in the Great Vulture’s nest. Then, aid Elydna in completing her communion.",[10]={nil,{{2300513},{5911478}}},[13]={1660015},[17]=1243},
|
||||
[1660017] = {[1]="A Trail of Petals",[2]={{161848}},[3]={{161848}},[4]=2,[5]=6,[6]=1101,[8]="Channel Eldya’s power over the newborns in the Great Nest to transform them into butterflies. Then guide the butterflies back to Eldya.",[10]={nil,{{2300526},{5943833}}},[13]={1660016},[17]=1243},
|
||||
[1660040] = {[1]="Restless entrails",[2]={{161916}},[3]={{161916}},[4]=2,[5]=6,[6]=1101,[8]="Defeat the Rotting Flesh Spawn in the Lunar Ossuary.",[10]={{{161832}},nil,nil},[17]=1243},
|
||||
[1660071] = {[1]="A Dark Warning",[2]={{161725}},[3]={{3567}},[4]=4,[5]=8,[6]=1101,[8]="Speak with Tallonkai Swiftroot in Dolanaar.",[13]={1660085},[17]=141},
|
||||
[1660072] = {[1]="The Aid of Theren-Dion",[2]={{3567}},[3]={{162880}},[4]=4,[5]=8,[6]=1101,[8]="Speak with the Sentinels at Theren-Dion Sanctuary and challenge them to duels to aid their training.",[10]={[5]={{{162856,162870,162871,162872,162873},"Theren-Dion Sentinel"}}},[13]={1660071},[17]=141},
|
||||
[1660073] = {[1]="No Place for Scavengers",[2]={{162880}},[3]={{162880}},[4]=4,[5]=8,[6]=1101,[8]="Destroy Vulture Eggs around the Theren-Dion Sanctuary near Dolanaar.",[10]={{{162925}},{{5388202}}},[13]={1660072},[17]=141},
|
||||
[1660074] = {[1]="Termites in Teldrassil",[2]={{162879}},[3]={{162879}},[4]=5,[5]=9,[6]=1101,[8]="Enter the bark of Teldrassil near Dolanaar and defeat the termites infesting its depths.",[10]={{{162876},{162877}}},[13]={1660071},[17]=141},
|
||||
[1660075] = {[1]="Stay a While",[2]={{162881}},[3]={{162881}},[4]=4,[5]=8,[6]=1101,[8]="Take a moment from the noise and haste and stay a while to listen to Alenna Whisperbough.",[10]={nil,{{5399902}}},[17]=141},
|
||||
[1660085] = {[1]="Elydna's Heirloom",[2]={{161727}},[3]={{161725}},[4]=3,[5]=7,[6]=1101,[8]="Speak with Thariel Wingstroke and deliver to him the pendant of his sister, Elydna.",[10]={nil,{{5405229}}},[13]={1660016},[17]=141},
|
||||
|
||||
--Durotar
|
||||
|
||||
[254008]={[1]="To Find a Cure",[2]={{254011}},[3]={{254011}},[4]=1,[5]=2,[6]=690,[7]=0,[8]={"Find the strange flower."},[10]={nil,nil,{{254005}}},[17]=1244},
|
||||
[254009]={[1]="A Dangerous Sample",[2]={{254011}},[3]={{254011}},[4]=1,[5]=2,[6]=690,[7]=0,[8]={"Collect demon blood from a strong demon."},[10]={nil,nil,{{254006}}},[13]={254008},[17]=1244},
|
||||
[254010]={[1]="Knowledge of the Centaurs",[2]={{254011}},[3]={{254004}},[4]=2,[5]=4,[6]=690,[7]=0,[8]={"Search the centaur camp for clues to the flower's properties."},[11]=11584,[13]={254009},[17]=1244},
|
||||
[1660018]={[1]="Those Who Fell",[2]={{161732}},[3]={{161733}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Use the Unremarkable Stone to extract samples of spiritual unrest from the restless orcs and trolls, and present your findings to the witch of Zeb'Goro."},[10]={nil,nil,{{559155}}},[11]=559158,[17]=1244},
|
||||
[1660019]={[1]="The Way is Shut",[2]={{161733}},[3]={{161734}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Use the amulet given to you by Swa'li to break through the magical barrier guarding the entrance to the Sinister Lair."},[10]={nil,{{2036820}},nil},[11]=559146,[13]={1660018},[17]=1244},
|
||||
[1660020]={[1]="The Sinister Triad",[2]={{161734}},[3]={{161734}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Gather the spiritual essences of the beasts haunting the Sinister Lair. You will need one from a spider, one from a bat, and one from a serpent."},[10]={nil,nil,{{559148},{559149},{559150}}},[13]={1660019},[17]=2030},
|
||||
[1660021]={[1]="So That He May Hear Again",[2]={{161734}},[3]={{161732}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Free the elementals next to the cave. Then, speak with Esgramor and tell him of Hirsutta's true intentions."},[10]={nil,{{6649507}},{{559172},{559173},{559174},{559175}}},[13]={1660020},[17]=2030},
|
||||
[1660022]={[1]="A Sinister Ritual",[2]={{161732}},[3]={{161732}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Confront Hirsutta the Witch and put an end to her dark ritual."},[10]={{{161790}},nil,nil},[13]={1660021},[17]=1244},
|
||||
[1660023]={[1]="Innocents for Sinners",[2]={{161732}},[3]={{161732}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Defeat the voodoo devotees guarding the path that leads to Hirsutta."},[10]={{{161807}},nil,nil},[13]={1660021},[17]=1244},
|
||||
[1660037]={[1]="Unease Makes Tongues Wag",[2]={{161733}},[3]={{161733}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Destroy the talking Tiki Masks around Zeb'Goro."},[10]={{{161854},{161855},{161856}},nil,nil},[11]=559146,[13]={1660018},[17]=1244},
|
||||
[1660041]={[1]="A Door Left Ajar",[2]={{161734}},[3]={{161734}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Defeat Techla'tu, Gatekeeper, in the Sinister Lair."},[10]={{{161833},{161793},{161792}},nil,nil},[13]={1660019},[17]=2030},
|
||||
[1660061]={[1]="Esgramor's Master",[2]={{161732}},[3]={{162839}},[4]=4,[5]=8,[6]=690,[7]=0,[8]={"Speak with Karagar in Razor Hill."},[10]={nil,{{9070546}},nil},[13]={1660022},[17]=1244},
|
||||
[254011]={[1]="Shinies!",[2]={{254004}},[4]=2,[5]=4,[6]=690,[7]=0,[8]={"Collect metallic debris."},[10]={nil,nil,{{254007}}},[13]={254010},[17]=14},
|
||||
[1660062] = {[1]="Echoes of Hirsutta",[2]={{162839}},[3]={{162839}},[4]=4,[5]=8,[6]=690,[8]="Defeat naga in Rivenruin Cave on the Durotar coast.",[10]={{{162834},{162835},{162916}}},[13]={1660061},[17]=14},
|
||||
[1660063] = {[1]="Auction the Past",[2]={{162840}},[3]={{162840}},[4]=4,[5]=8,[6]=690,[8]="Recover Elven Relics of Old from the ruins in Rivenruin Cave, Durotar.",[10]={nil,nil,{{558966}}},[17]=14},
|
||||
[1660065]={[1]="Stay a While",[2]={{162841}},[3]={{162841}},[4]=6,[5]=8,[6]=690,[7]=0,[8]={"Take a moment from the noise and haste and stay a while to listen to Bagamul Skyfang."},[10]={nil,{{5954015}}},[17]=14},
|
||||
[1660064] = {[1]="Durotar's Dire Drought",[2]={{162838}},[3]={{162838}},[4]=6,[5]=8,[6]=690,[8]="Fill the pitcher with water from one of the pools outside Razor Hill, then give the mine peons a drink.",[10]={{{162836,"Thirsty peons served"}},nil,{{558974,"Full Dirgran's Pitcher"}}},[11]=558973,[17]=14},
|
||||
[254012] = {[1]="The Queen's Decree",[2]={{254012}},[3]={{254012}},[4]=5,[5]=7,[6]=690,[8]="Slay harpies for Queen Erethina.",[10]={{{3115},{3116}}},[13]={254011},[17]=14},
|
||||
[254013] = {[1]="Avianna's Rose",[2]={{254012}},[3]={{254013}},[4]=6,[5]=10,[6]=690,[8]="Bring the information you learned to Sakari in Orgrimmar.",[13]={254012},[17]=14},
|
||||
[254014] = {[1]="The Last Piece",[2]={{254013}},[3]={{254014}},[4]=6,[5]=10,[6]=690,[8]="Find Ouru’gai Crystal in the Barrens.",[10]={nil,nil,{{254008}}},[13]={254014},[17]=1413},
|
||||
[254015] = {[1]="Reversion",[2]={{254014}},[3]={{254014}},[4]=6,[5]=10,[6]=690,[8]="Watch Sakari create the cure.",[10]={{{254016}},{{5777365}}},[13]={254014},[17]=1413},
|
||||
|
||||
--Tirisfal Glades
|
||||
|
||||
[363] = {"Rude Awakening",{{1568}},{{1569}},1,1,16,nil,{"Speak with Shadow Priest Sarvis."},nil,{{{1512}},nil,nil},nil,nil,nil,nil,nil,nil,154,nil,nil,nil,nil,364,524296,nil,nil,{{68,75}}},
|
||||
[6395] = {[1]="Marla's Last Wish",[2]={{1661}},[3]={{1661}},[4]=3,[5]=5,[6]=690,[8]="Bring Samuel Fipps' Remains to Marla's Grave, then return to Novice Elreth.",[10]={{{1919}},{{178090,"Samuel's Remains Buried"}},{{16333}}},[13]={364},[17]=1240,[21]={16333},[27]={{nil,4,"Samuel's Remains Buried",0,{{"object",178090}}}}},
|
||||
[1660024]={[1]="Monsters With Noble Intentions",[2]={{161739}},[3]={{161740}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Speak with Riscell Cain at the Heritage League camp."},[17]=1240},
|
||||
[1660025] = {[1]="Restless Family Members",[2]={{161740}},[3]={{161740}},[4]=3,[5]=6,[6]=690,[8]="Purify the remains of Riscell’s deceased relatives in the Cain Family Crypt, and send their spirits back to the Afterlife.",[10]={{{161762},{161763},{161764},{161765}},nil,nil},[13]={1660024},[17]=1240},
|
||||
[1660026] = {[1]="An Unspeakable Secret",[2]={{161740}},[3]={{161741}},[4]=3,[5]=6,[6]=690,[8]="Retrieve the key fragments held by the manor’s majordomo, maid, and stablemaster.",[10]={nil,nil,{{559138},{559139},{559140}}},[13]={1660025},[17]=1240},
|
||||
[1660028] = {[1]="A Noble Heritage",[2]={{161747}},[3]={{161747}},[4]=3,[5]=6,[6]=690,[8]="Explore Cain Family Manor and recover whatever valuables remain. Then bring them to Thris.",[10]={nil,nil,{{559164},{559165},{559166},{559167}}},[13]={1660025},[17]=1240},
|
||||
[1660027] = {[1]="The True Heir of the Cains",[2]={{161741}},[4]=3,[5]=6,[6]=690,[8]="Use the key to access the basement and defeat the creature within.",[10]={{{161757}}},[13]={1660026},[17]=1240},
|
||||
[1660029] = {[1]="The Friends We Make Along the Way",[2]={{161742}},[3]={{161742}},[4]=3,[5]=6,[6]=690,[8]="Slay the creatures prowling Cain Manor: zombies, ghouls, and bears.",[10]={{{161743},{161752},{161749}},nil,nil},[13]={1660025},[17]=1240},
|
||||
[1660042] = {[1]="I'm Home",[2]={{161746}},[3]={{161746}},[4]=3,[5]=6,[6]=690,[8]="Defeat the Hound of House Cain behind the manor.",[10]={{{161836}},nil,nil},[13]={1660025},[17]=1240},
|
||||
[1660050] = {[1]="Apothecary Flemer",[2]={{161742}},[3]={{162843}},[4]=4,[5]=8,[6]=690,[8]="Speak with Apothecary Flemer in Brill.",[10]={nil,nil,nil},[13]={1660029},[17]=1240},
|
||||
[254064] = {[1]="The Nature of Freedom",[2]={{749136}},[3]={{749136}},[4]=4,[5]=8,[6]=690,[8]="Test Rod Toxicstrike's concoction on 3 zombies, 3 skeletons, 3 banshees, and Mallek the Tormented",[10]={{{1522},{1530},{1534},{254584}},{{2306601},{2306602},{2306603},{2306604}},nil},[11]=354655,[17]=85},
|
||||
[1660052] = {[1]="Spotless Standing",[2]={{162844}},[3]={{162844}},[4]=5,[5]=9,[6]=690,[8]="Find the Forsaken Rebels entrenched along the shores of Brightwater Lake and put them down.",[10]={{{162857},{162853},{162854}},nil,nil},[17]=85},
|
||||
[1660054] = {[1]="Stay a While",[2]={{162847}},[3]={{162847}},[4]=4,[5]=8,[6]=690,[8]="Take a moment from the noise and haste and stay a while to listen to Dark Priestess Ashara.",[10]={nil,{{5093560}},nil},[17]=85},
|
||||
[1660051] = {[1]="More Than the Sum of its Parts",[2]={{162843}},[3]={{162843}},[4]=4,[5]=8,[6]=690,[8]="Collect Necrotic Spores from the fungus in the abandoned tower overlooking Brill. They come in two forms: clinging to creatures and encapsulated in mucous globules on the ground.",[10]={nil,nil,{{558953},{558954}}},[13]={1660050},[17]=85},
|
||||
[1660053] = {[1]="Scarlet Correspondence",[2]={nil,nil,{{558955}}},[3]={{162844}},[4]=4,[5]=8,[8]="Find the Scarlet Crusade camp and put down their agents.",[10]={{{162859},{162860},{162861}},nil,nil},[17]=85},
|
||||
[254053] = {[1]="A Humble Duty",[2]={{991483}},[3]={{991483}},[4]=7,[5]=11,[6]=690,[8]="Polish 6 gravestones at Father Alastor's cemetary and Invincible's grave at Balnir Farmstead.",[10]={nil,{{192380},{254678}},nil},[17]=85},
|
||||
[254054] = {[1]="The Balnirs' Rest",[2]={{991483}},[3]={{991483}},[4]=8,[5]=12,[6]=690,[8]="Put the spirits of the Balnir family, Jorum Balnir, Vara Balnir, and Jarim Balnir to rest.",[10]={{{254936},{254937},{254938}},nil,nil},[17]=85},
|
||||
[254056] = {[1]="Brewing Disarray",[2]={{764555}},[3]={{764554}},[4]=8,[5]=12,[6]=690,[8]="Slay Lieutenant Sanders in Venomweb Vale and bring his head to Apothecary Ralden",[10]={nil,nil,{{354678}}},[17]=85},
|
||||
[254057] = {[1]="This Is Justice",[2]={{764554}},[3]={{764554}},[4]=8,[5]=12,[6]=690,[8]="Use Ralden's Transformation Elixir to infiltrate the Scarlet Monastery's courtyard and infect their supplies.",[10]={nil,{{254679}},nil},[11]=354654,[13]={254056},[17]=85},
|
||||
|
||||
--Mulgore
|
||||
|
||||
[1660030] = {[1]="Death and Tribute",[2]={{161817}},[3]={{161818}},[4]=3,[5]=4,[6]=690,[8]="Slay seven Grimtotem Marauders in Red Cloud Mesa, take their manes as proof, and deliver them to Lady Redhorn’s mistress.",[10]={nil,nil,{{559156}}},[17]=1245},
|
||||
[1660031]={[1]="Death and Exile",[2]={{161818}},[3]={{161819}},[4]=3,[5]=6,[5]=0,[7]=0,[8]={"Follow the Grimtotem Mountain Path to Hard Basin and show Morriga Hollowhoof’s ring to Sage Nauchol."},[10]={nil,{{5976414}},nil},[11]=559157,[13]={1660030},[17]=1245},
|
||||
[1660032]={[1]="Death and Dishonor",[2]={{161819}},[3]={{161819}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Gather pieces of armor and the identifying pendant of Three Totems warriors to complete your disguise."},[10]={nil,nil,{{559151},{559152}}},[11]=559151,[13]={1660031},[17]=1245},
|
||||
[1660033]={[1]="Death and Justice",[2]={{161819}},[3]={{161818}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Speak with Nauchol when you are ready for the disguise, then infiltrate Three Totems and slay Malgorm Hollowhoof."},[10]={{{161816}},{{1942447}}},[13]={1660032},[17]=1245,[27]={{nil,4,"Ask Nauchol to dress you in the disguise",0,{{"object",1942447}}},{nil,1,"Malgorm Hollowhoof",0,{{"monster",161816}}}}},
|
||||
[1660034]={[1]="Death by Laughter",[2]={{161840}},[3]={{161840}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Channel the Great Hyena’s blessing into the village totems and defeat the guardian spirits that protect them."},[10]={{{161850},{161851},{161852}},{{2300527},{2300533},{2300534}},nil},[13]={1660032},[17]=1245},
|
||||
[1660035]={[1]="To Whom I Devote",[2]={{161818}},[3]={{161840}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Gather bones along the mountain path and offer them at the Great Hyena’s altar in Hard Basin."},[10]={nil,nil,{{559168}}},[11]=559168,[13]={1660030},[17]=1245},
|
||||
[1660043]={[1]="Fighting Over Carrion",[2]={{161840}},[3]={{161840}},[4]=3,[5]=5,[6]=690,[7]=0,[8]={"Defeat the Cruel Carrion Spirit in Hard Basin."},[10]={{{161834}},nil,nil},[13]={1660035},[17]=1245},
|
||||
[1660066]={[1]="Smoke on the Horizon",[2]={{162902}},[3]={{162903}},[4]=3,[5]=6,[6]=690,[7]=0,[8]={"Speak with Ammus Grey-Eye at the summit of the Iris Sanctuary."},[13]={1660033},[17]=1245},
|
||||
[1660067] = {[1]="Amphora of Sacred Water",[2]={{162903}},[3]={{162906}},[4]=4,[5]=8,[6]=690,[8]="Fill the amphora with the blessed water of the Iris Sanctuary, and bring it to Sage Muudren in Bloodhoof Village.",[10]={nil,{{5195713},{5195711}},{{558972}}},[11]=558971,[13]={1660066},[17]=1245},
|
||||
[1660070] = {[1]="Stay a While",[2]={{162903}},[3]={{162903}},[4]=4,[5]=8,[6]=690,[8]="Take a moment from the noise and haste and stay a while to listen to Ammus Grey-Eye.",[10]={nil,{{5299566}}},[13]={1660066},[17]=1245},
|
||||
[1660068]={[1]="Exile of Embers",[2]={{162906}},[3]={{162906}},[4]=6,[5]=8,[6]=690,[7]=0,[8]={"Channel the blessing to weaken the fire elementals prowling around Ardunno's hut and banish them back to their elemental plane."},[10]={{{162907}},nil,nil},[11]=558967,[13]={1660067},[17]=1412},
|
||||
[1660069] = {[1]="The Smoke that Remembers",[2]={{162908}},[3]={{162908}},[4]=4,[5]=8,[6]=690,[8]="Obtain incense for Ancestor Emnil's altar. You will need Prairie Sage and Kodo Tallow.",[10]={nil,nil,{{558968},{558969}}},[13]={1660067},[17]=1412},
|
||||
[500004] = {[1]="The Circle’s Rite",[2]={{991485}},[3]={{991485}},[4]=6,[5]=10,[6]=690,[8]="Collect 8 Ritual Totems and bring them to Maur Tharok Windhoof at Stonefather's Circle.",[10]={nil,nil,{{662335}}},[17]=1412},
|
||||
|
||||
|
||||
}
|
||||
|
||||
AscensionQuestDB = AscensionQuestDB or {}
|
||||
AscensionQuestDB.questData = AscensionDB.questData
|
||||
@@ -0,0 +1,326 @@
|
||||
---@class AscensionUiMapData
|
||||
AscensionUiMapData = AscensionUiMapData or {}
|
||||
|
||||
AscensionUiMapData.uiMapData = {
|
||||
-- Alliance Starting Zone
|
||||
[2031] = {
|
||||
[1] = 302.51,
|
||||
[2] = 200.0,
|
||||
[3] = 581.66,
|
||||
[4] = 10745.9,
|
||||
instance = 1,
|
||||
mapID = 2031,
|
||||
name = "Moonlit Ossuary",
|
||||
mapType = 3,
|
||||
parentMapID = 10207,
|
||||
},
|
||||
[1230] = {
|
||||
[1] = 230.01,
|
||||
[2] = 153.34000000000015,
|
||||
[3] = 1685.0,
|
||||
[4] = 9881.67,
|
||||
instance = 1,
|
||||
mapID = 1230,
|
||||
name = "Upper Ban'ethil Barrow Den",
|
||||
mapType = 3,
|
||||
parentMapID = 262,
|
||||
},
|
||||
[1231] = {
|
||||
[1] = 380.01,
|
||||
[2] = 253.34000000000015,
|
||||
[3] = 1735.0,
|
||||
[4] = 9931.67,
|
||||
instance = 1,
|
||||
mapID = 1231,
|
||||
name = "Lower Ban'ethil Barrow Den",
|
||||
mapType = 3,
|
||||
parentMapID = 10133,
|
||||
},
|
||||
[1232] = {
|
||||
[1] = 279.5999999999999,
|
||||
[2] = 186.40000000000146,
|
||||
[3] = 1249.8,
|
||||
[4] = 10211.7,
|
||||
instance = 1,
|
||||
mapID = 1232,
|
||||
name = "Fel Rock",
|
||||
mapType = 3,
|
||||
parentMapID = 258,
|
||||
},
|
||||
[1243] = {
|
||||
[1] = 1450.0040000000001,
|
||||
[2] = 966.5999999999985,
|
||||
[3] = 1491.67,
|
||||
[4] = 11033.3,
|
||||
instance = 1,
|
||||
mapID = 1243,
|
||||
name = "Shadowglen",
|
||||
mapType = 3,
|
||||
parentMapID = 10143,
|
||||
},
|
||||
[1233] = {
|
||||
[1] = 480.0,
|
||||
[2] = 320.0,
|
||||
[3] = 1140.0,
|
||||
[4] = 11035.0,
|
||||
instance = 1,
|
||||
mapID = 1233,
|
||||
name = "Shadowthread Cave",
|
||||
mapType = 3,
|
||||
parentMapID = 257,
|
||||
},
|
||||
[1222] = {
|
||||
[1] = 323.25,
|
||||
[2] = 215.5,
|
||||
[3] = -445.875,
|
||||
[4] = -8985.0,
|
||||
instance = 0,
|
||||
mapID = 1222,
|
||||
name = "Jasperlode mine",
|
||||
mapType = 3,
|
||||
parentMapID = 10126,
|
||||
},
|
||||
[1220] = {
|
||||
[1] = 240.0,
|
||||
[2] = 160.0,
|
||||
[3] = 281.75,
|
||||
[4] = -9700.0,
|
||||
instance = 0,
|
||||
mapID = 1220,
|
||||
name = "Upper Fargodeep Mine",
|
||||
mapType = 3,
|
||||
parentMapID = 10124,
|
||||
},
|
||||
[1221] = {
|
||||
[1] = 255.0,
|
||||
[2] = 170.0,
|
||||
[3] = 289.25,
|
||||
[4] = -9710.0,
|
||||
instance = 0,
|
||||
mapID = 1221,
|
||||
name = "Lower Fargodeep Mine",
|
||||
mapType = 3,
|
||||
parentMapID = 10125,
|
||||
},
|
||||
[1238] = {
|
||||
[1] = 968.75,
|
||||
[2] = 645.8400000000001,
|
||||
[3] = 187.5,
|
||||
[4] = -8570.83,
|
||||
["mapType"] = 3,
|
||||
["parentMapID"] = 10138,
|
||||
["mapID"] = 1238,
|
||||
["instance"] = 0,
|
||||
["name"] = "Northshire Valley",
|
||||
},
|
||||
[1226] = {
|
||||
[1] = 279.0,
|
||||
[2] = 186.0,
|
||||
[3] = -27.0,
|
||||
[4] = -8500.0,
|
||||
["mapType"] = 3,
|
||||
["parentMapID"] = 10130,
|
||||
["mapID"] = 1226,
|
||||
["instance"] = 0,
|
||||
["name"] = "Echo Ridge Mine",
|
||||
},
|
||||
[2028] = {
|
||||
[1] = 1300.008,
|
||||
[2] = 866.67,
|
||||
[3] = 266.658,
|
||||
[4] = -7933.33,
|
||||
mapType = 3,
|
||||
parentMapID = 10196,
|
||||
mapID = 2028,
|
||||
instance = 0,
|
||||
name = "Shadewell Spring",
|
||||
},
|
||||
[1202] = {
|
||||
[1] = 204.99,
|
||||
[2] = 136.67,
|
||||
[3] = -660.0,
|
||||
[4] = 2948.83,
|
||||
mapType = 3,
|
||||
parentMapID = 796,
|
||||
mapID = 1202,
|
||||
instance = 0,
|
||||
name = "Scarlet Monastery Entrance",
|
||||
},
|
||||
|
||||
[2029] = {
|
||||
[1] = 499.9961,
|
||||
[2] = 333.33,
|
||||
[3] = -66.6719,
|
||||
[4] = -8500.0,
|
||||
mapType = 3,
|
||||
parentMapID = 10197,
|
||||
mapID = 2029,
|
||||
instance = 0,
|
||||
name = "Secret Inquisitorial Dungeon",
|
||||
},
|
||||
|
||||
[1239] = {
|
||||
[1] = 1266.8,
|
||||
[2] = 842.0,
|
||||
[3] = 1200.0,
|
||||
[4] = -5724.66,
|
||||
mapType = 3,
|
||||
parentMapID = 10139,
|
||||
mapID = 1239,
|
||||
instance = 0,
|
||||
name = "Coldridge Valley",
|
||||
},
|
||||
|
||||
[1215] = {
|
||||
[1] = 330.0,
|
||||
[2] = 220.0,
|
||||
[3] = 245.0,
|
||||
[4] = -6020.0,
|
||||
instance = 0,
|
||||
mapID = 1215,
|
||||
name = "Coldridge Pass",
|
||||
mapType = 3,
|
||||
parentMapID = 10120,
|
||||
},
|
||||
[1216] = {
|
||||
[1] = 505.5,
|
||||
[2] = 337.0,
|
||||
[3] = 32.75,
|
||||
[4] = -5313.0,
|
||||
instance = 0,
|
||||
mapID = 1216,
|
||||
name = "The Grizzled Den",
|
||||
mapType = 3,
|
||||
parentMapID = 10121,
|
||||
},
|
||||
[1214] = {
|
||||
[1] = 374.01,
|
||||
[2] = 249.34000000000015,
|
||||
[3] = -1542.99,
|
||||
[4] = -5486.83,
|
||||
instance = 0,
|
||||
mapID = 1214,
|
||||
name = "Gol'bolar Quarry",
|
||||
mapType = 3,
|
||||
parentMapID = 10119,
|
||||
},
|
||||
|
||||
-- Horde Starting Zone
|
||||
[1219] = {
|
||||
[1] = 270.0,
|
||||
[2] = 180.0,
|
||||
[3] = -4629.0,
|
||||
[4] = 1580.5,
|
||||
instance = 1,
|
||||
mapID = 1219,
|
||||
name = "Skull Rock",
|
||||
mapType = 3,
|
||||
parentMapID = 10123,
|
||||
},
|
||||
[2030] = {
|
||||
[1] = 550.29,
|
||||
[2] = 366.6328125,
|
||||
[3] = -4100.0,
|
||||
[4] = 0.0078125,
|
||||
instance = 1,
|
||||
mapID = 2030,
|
||||
name = "Sinister Lair",
|
||||
mapType = 3,
|
||||
parentMapID = 10205,
|
||||
},
|
||||
[1217] = {
|
||||
[1] = 266.0,
|
||||
[2] = 177.33,
|
||||
[3] = -4166.5,
|
||||
[4] = 5.5,
|
||||
instance = 1,
|
||||
mapID = 1217,
|
||||
name = "Burning Blade Coven",
|
||||
mapType = 3,
|
||||
parentMapID = 365,
|
||||
},
|
||||
[1244] = {
|
||||
[1] = 1350.0,
|
||||
[2] = 900.0,
|
||||
[3] = -3641.67,
|
||||
[4] = 0.0,
|
||||
instance = 1,
|
||||
mapID = 1244,
|
||||
name = "Valley of Trials",
|
||||
mapType = 3,
|
||||
parentMapID = 10144,
|
||||
},
|
||||
[1240] = {
|
||||
[1] = 1089.5900000000001,
|
||||
[2] = 727.0799999999999,
|
||||
[3] = 2147.92,
|
||||
[4] = 2270.83,
|
||||
instance = 0,
|
||||
mapID = 1240,
|
||||
name = "Deathknell",
|
||||
mapType = 3,
|
||||
parentMapID = 10140,
|
||||
},
|
||||
[1213] = {
|
||||
[1] = 220.0,
|
||||
[2] = 146.66999999999985,
|
||||
[3] = 2020.0,
|
||||
[4] = 2123.33,
|
||||
instance = 0,
|
||||
mapID = 1213,
|
||||
name = "Night Web's Hollow",
|
||||
mapType = 3,
|
||||
parentMapID = 10118,
|
||||
},
|
||||
[1245] = {
|
||||
[1] = 1799.8799999999999,
|
||||
[2] = 1200.0400000000004,
|
||||
[3] = 266.54,
|
||||
[4] = -2566.74,
|
||||
instance = 1,
|
||||
mapID = 1245,
|
||||
name = "Camp Narache",
|
||||
mapType = 3,
|
||||
parentMapID = 10146,
|
||||
},
|
||||
[1225] = {
|
||||
[1] = 741.0,
|
||||
[2] = 494.0,
|
||||
[3] = -818.0,
|
||||
[4] = -1436.0,
|
||||
instance = 1,
|
||||
mapID = 1225,
|
||||
name = "The Venture Co. Mine",
|
||||
mapType = 3,
|
||||
parentMapID = 10129,
|
||||
},
|
||||
[1224] = {
|
||||
[1] = 350.01,
|
||||
[2] = 233.32999999999993,
|
||||
[3] = 580.0,
|
||||
[4] = -2263.33,
|
||||
instance = 1,
|
||||
mapID = 1224,
|
||||
name = "Palemane Rock",
|
||||
mapType = 3,
|
||||
parentMapID = 10128,
|
||||
},
|
||||
}
|
||||
|
||||
local function ApplyUiMapData()
|
||||
if not QuestieCompat then return end
|
||||
if not AscensionUiMapData or not AscensionUiMapData.uiMapData then return end
|
||||
|
||||
QuestieCompat.UiMapData = QuestieCompat.UiMapData or {}
|
||||
|
||||
for uiMapId, data in pairs(AscensionUiMapData.uiMapData) do
|
||||
if QuestieCompat.UiMapData[uiMapId] == nil then
|
||||
QuestieCompat.UiMapData[uiMapId] = data
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if QuestieCompat and QuestieCompat.LoadUiMapData then
|
||||
hooksecurefunc(QuestieCompat, "LoadUiMapData", ApplyUiMapData)
|
||||
end
|
||||
ApplyUiMapData()
|
||||
@@ -0,0 +1,60 @@
|
||||
---@class AscensionZoneTables
|
||||
AscensionZoneTables = AscensionZoneTables or {}
|
||||
|
||||
AscensionZoneTables.uiMapIdToAreaId = AscensionZoneTables.uiMapIdToAreaId or {
|
||||
--Alliance
|
||||
[1238] = 12, -- Northshire Valley -> Elwynn Forest
|
||||
[2029] = 12, -- Secret Inquisitorial Dungeon -> Elwynn Forest
|
||||
[2028] = 12, -- Shadewell Spring -> Elwynn Forest
|
||||
[1226] = 12, -- Echo Ridge Mine -> Elwynn Forest
|
||||
[1222] = 12, -- Jasperlode mine -> Elwynn Forest
|
||||
[1239] = 1, -- Coldridge Valley -> Dun Morogh
|
||||
[1215] = 1, -- Coldridge Pass -> Dun Morogh
|
||||
[1216] = 1, -- The Grizzled Den -> Dun Morogh
|
||||
[1214] = 1, -- Gol'bolar Quarry -> Dun Morogh
|
||||
[1243] = 141, -- Shadowglen -> Teldrassil
|
||||
[1233] = 141, -- Shadowthread Cave -> Teldrassil
|
||||
[1232] = 141, -- Fel Rock -> Teldrassil
|
||||
[2031] = 141, -- Moonlit Ossuary -> Teldrassil
|
||||
[1230] = 141, -- Upper Ban'ethil Barrow Den -> Teldrassil
|
||||
[1231] = 141, -- Lower Ban'ethil Barrow Den -> Teldrassil
|
||||
--Horde
|
||||
[1244] = 14, -- Valley of Trials -> Durotar
|
||||
[1217] = 14, -- Burning Blade Coven -> Durotar
|
||||
[2030] = 14, -- Sinister Lair -> Durotar
|
||||
[1219] = 14, -- Skull Rock -> Durotar
|
||||
[1240] = 85, -- Deathknell -> Tirisfal Glades
|
||||
[1213] = 85, -- Night Web's Hollow -> Tirisfal Glades
|
||||
[1245] = 215, -- Camp Narache -> Mulgore
|
||||
[1225] = 215, -- The Venture Co. Mine -> Mulgore
|
||||
[1224] = 215, -- Palemane Rock -> Mulgore
|
||||
|
||||
}
|
||||
|
||||
-- Register zone sort names for custom zones so they can be used in quest zoneOrSort field
|
||||
AscensionZoneTables.zoneSort = AscensionZoneTables.zoneSort or {
|
||||
[1238] = "Northshire Valley",
|
||||
[2029] = "Secret Inquisitorial Dungeon",
|
||||
[2028] = "Shadewell Spring",
|
||||
[1226] = "Echo Ridge Mine",
|
||||
[1222] = "Jasperlode Mine",
|
||||
[1239] = "Coldridge Valley",
|
||||
[1215] = "Coldridge Pass",
|
||||
[1243] = "Shadowglen",
|
||||
[1233] = "Shadowthread Cave",
|
||||
[1244] = "Valley of Trials",
|
||||
[1217] = "Burning Blade Coven",
|
||||
[2030] = "Sinister Lair",
|
||||
[1240] = "Deathknell",
|
||||
[1213] = "Night Web's Hollow",
|
||||
[1245] = "Camp Narache",
|
||||
[1232] = "Fel Rock",
|
||||
[2031] = "Moonlit Ossuary",
|
||||
[1230] = "Upper Ban'ethil Barrow Den",
|
||||
[1231] = "Lower Ban'ethil Barrow Den",
|
||||
[1225] = "The Venture Co. Mine",
|
||||
[1224] = "Palemane Rock",
|
||||
[1219] = "Skull Rock",
|
||||
[1216] = "The Grizzled Den",
|
||||
[1214] = "Gol'bolar Quarry",
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,975 @@
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
|
||||
--- COMPATIBILITY ---
|
||||
local WOW_PROJECT_ID = QuestieCompat.WOW_PROJECT_ID
|
||||
local WOW_PROJECT_WRATH_CLASSIC = QuestieCompat.WOW_PROJECT_WRATH_CLASSIC
|
||||
|
||||
QuestieDB.sortKeys = {
|
||||
SEASONAL = -22,
|
||||
HERBALISM = -24,
|
||||
BATTLEGROUND = -25,
|
||||
WARLOCK = -61,
|
||||
WARRIOR = -81,
|
||||
SHAMAN = -82,
|
||||
FISHING = -101,
|
||||
BLACKSMITHING = -121,
|
||||
PALADIN = -141,
|
||||
MAGE = -161,
|
||||
ROGUE = -162,
|
||||
ALCHEMY = -181,
|
||||
LEATHERWORKING = -182,
|
||||
ENGINEERING = -201,
|
||||
HUNTER = -261,
|
||||
PRIEST = -262,
|
||||
DRUID = -263,
|
||||
TAILORING = -264,
|
||||
SPECIAL = -284,
|
||||
COOKING = -304,
|
||||
FIRST_AID = -324,
|
||||
DARKMOON_FAIRE = -364,
|
||||
LUNAR_FESTIVAL = -366,
|
||||
REPUTATION = -367,
|
||||
MIDSUMMER = -369,
|
||||
BREWFEST = -370,
|
||||
INSCRIPTION = -371,
|
||||
DEATHKNIGHT = -372,
|
||||
JEWELCRAFTING = -373,
|
||||
NOBLEGARDEN = -374,
|
||||
PILGRIMS_BOUNTY = -375,
|
||||
LOVE_IS_IN_THE_AIR = -376,
|
||||
NIGHTMARE_INCURSIONS = -641,
|
||||
}
|
||||
|
||||
local isWotlk = WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC
|
||||
|
||||
QuestieDB.factionTemplate = isWotlk and { -- [id] = EnemyGroup
|
||||
[1] = 12,
|
||||
[2] = 10,
|
||||
[3] = 12,
|
||||
[4] = 12,
|
||||
[5] = 10,
|
||||
[6] = 10,
|
||||
[7] = 0,
|
||||
[10] = 0,
|
||||
[11] = 12,
|
||||
[12] = 4,
|
||||
[14] = 1,
|
||||
[15] = 0,
|
||||
[16] = 1,
|
||||
[17] = 1,
|
||||
[18] = 1,
|
||||
[19] = 1,
|
||||
[20] = 1,
|
||||
[21] = 1,
|
||||
[22] = 1,
|
||||
[23] = 4,
|
||||
[24] = 1,
|
||||
[25] = 0,
|
||||
[26] = 1,
|
||||
[27] = 1,
|
||||
[28] = 1,
|
||||
[29] = 2,
|
||||
[30] = 1,
|
||||
[31] = 0,
|
||||
[32] = 0,
|
||||
[33] = 0,
|
||||
[34] = 0,
|
||||
[35] = 0,
|
||||
[36] = 0,
|
||||
[37] = 1,
|
||||
[38] = 1,
|
||||
[39] = 1,
|
||||
[40] = 1,
|
||||
[41] = 1,
|
||||
[42] = 0,
|
||||
[43] = 0,
|
||||
[44] = 1,
|
||||
[45] = 1,
|
||||
[46] = 1,
|
||||
[47] = 1,
|
||||
[48] = 1,
|
||||
[49] = 1,
|
||||
[50] = 1,
|
||||
[51] = 1,
|
||||
[52] = 0,
|
||||
[53] = 12,
|
||||
[54] = 1,
|
||||
[55] = 4,
|
||||
[56] = 12,
|
||||
[57] = 12,
|
||||
[58] = 0,
|
||||
[59] = 1,
|
||||
[60] = 1,
|
||||
[61] = 1,
|
||||
[62] = 1,
|
||||
[63] = 1,
|
||||
[64] = 4,
|
||||
[65] = 0,
|
||||
[66] = 1,
|
||||
[67] = 1,
|
||||
[68] = 2,
|
||||
[69] = 0,
|
||||
[70] = 1,
|
||||
[71] = 10,
|
||||
[72] = 1,
|
||||
[73] = 1,
|
||||
[74] = 1,
|
||||
[76] = 4,
|
||||
[77] = 0,
|
||||
[78] = 1,
|
||||
[79] = 12,
|
||||
[80] = 4,
|
||||
[81] = 1,
|
||||
[82] = 1,
|
||||
[83] = 2,
|
||||
[84] = 4,
|
||||
[85] = 10,
|
||||
[86] = 0,
|
||||
[87] = 1,
|
||||
[88] = 4,
|
||||
[89] = 1,
|
||||
[90] = 1,
|
||||
[91] = 1,
|
||||
[92] = 1,
|
||||
[93] = 1,
|
||||
[94] = 0,
|
||||
[95] = 1,
|
||||
[96] = 0,
|
||||
[97] = 0,
|
||||
[98] = 10,
|
||||
[99] = 0,
|
||||
[100] = 9,
|
||||
[101] = 4,
|
||||
[102] = 2,
|
||||
[103] = 1,
|
||||
[104] = 2,
|
||||
[105] = 10,
|
||||
[106] = 10,
|
||||
[107] = 1,
|
||||
[108] = 0,
|
||||
[109] = 1,
|
||||
[110] = 1,
|
||||
[111] = 1,
|
||||
[112] = 1,
|
||||
[113] = 0,
|
||||
[114] = 1,
|
||||
[115] = 12,
|
||||
[116] = 10,
|
||||
[118] = 2,
|
||||
[119] = 1,
|
||||
[120] = 0,
|
||||
[121] = 8,
|
||||
[122] = 4,
|
||||
[123] = 4,
|
||||
[124] = 4,
|
||||
[125] = 2,
|
||||
[126] = 2,
|
||||
[127] = 1,
|
||||
[128] = 1,
|
||||
[129] = 1,
|
||||
[130] = 1,
|
||||
[131] = 1,
|
||||
[132] = 1,
|
||||
[133] = 1,
|
||||
[134] = 1,
|
||||
[148] = 1,
|
||||
[149] = 0,
|
||||
[150] = 12,
|
||||
[151] = 4,
|
||||
[152] = 1,
|
||||
[153] = 0,
|
||||
[154] = 1,
|
||||
[168] = 1,
|
||||
[188] = 0,
|
||||
[189] = 0,
|
||||
[190] = 0,
|
||||
[208] = 0,
|
||||
[209] = 0,
|
||||
[210] = 12,
|
||||
[230] = 1,
|
||||
[231] = 8,
|
||||
[232] = 8,
|
||||
[233] = 1,
|
||||
[250] = 8,
|
||||
[270] = 1,
|
||||
[290] = 0,
|
||||
[310] = 1,
|
||||
[311] = 0,
|
||||
[312] = 1,
|
||||
[330] = 0,
|
||||
[350] = 0,
|
||||
[370] = 1,
|
||||
[371] = 4,
|
||||
[390] = 0,
|
||||
[410] = 1,
|
||||
[411] = 1,
|
||||
[412] = 2,
|
||||
[413] = 1,
|
||||
[414] = 1,
|
||||
[415] = 1,
|
||||
[416] = 0,
|
||||
[430] = 0,
|
||||
[450] = 1,
|
||||
[470] = 1,
|
||||
[471] = 0,
|
||||
[472] = 1,
|
||||
[473] = 0,
|
||||
[474] = 0,
|
||||
[475] = 8,
|
||||
[494] = 1,
|
||||
[495] = 8,
|
||||
[514] = 1,
|
||||
[534] = 4, --* Changed from 0 -> 4 to be hostile towards horde
|
||||
[554] = 7,
|
||||
[574] = 1,
|
||||
[575] = 1,
|
||||
[594] = 0,
|
||||
[614] = 0,
|
||||
[634] = 0,
|
||||
[635] = 0,
|
||||
[636] = 1,
|
||||
[637] = 8,
|
||||
[654] = 1,
|
||||
[655] = 5,
|
||||
[674] = 0,
|
||||
[694] = 4,
|
||||
[695] = 0,
|
||||
[714] = 2, --* Changed from 0 -> 2 to be hostile towards alliance
|
||||
[734] = 0,
|
||||
[735] = 0,
|
||||
[736] = 1,
|
||||
[754] = 1,
|
||||
[774] = 0,
|
||||
[775] = 0,
|
||||
[776] = 0,
|
||||
[777] = 0,
|
||||
[778] = 1,
|
||||
[794] = 0,
|
||||
[795] = 1,
|
||||
[814] = 0,
|
||||
[834] = 1,
|
||||
[854] = 8,
|
||||
[855] = 0,
|
||||
[874] = 4,
|
||||
[875] = 4,
|
||||
[876] = 2,
|
||||
[877] = 10,
|
||||
[894] = 4,
|
||||
[914] = 0,
|
||||
[934] = 1,
|
||||
[954] = 1,
|
||||
[974] = 1,
|
||||
[994] = 0,
|
||||
[995] = 2,
|
||||
[996] = 8,
|
||||
[1014] = 0,
|
||||
[1015] = 0,
|
||||
[1034] = 2,
|
||||
[1054] = 12,
|
||||
[1055] = 4,
|
||||
[1074] = 2,
|
||||
[1075] = 4,
|
||||
[1076] = 4,
|
||||
[1077] = 4,
|
||||
[1078] = 4,
|
||||
[1080] = 0,
|
||||
[1081] = 1,
|
||||
[1094] = 0,
|
||||
[1095] = 0,
|
||||
[1096] = 12,
|
||||
[1097] = 4,
|
||||
[1114] = 1,
|
||||
[1134] = 10,
|
||||
[1154] = 10,
|
||||
[1174] = 2,
|
||||
[1194] = 0,
|
||||
[1214] = 10,
|
||||
[1215] = 2,
|
||||
[1216] = 12,
|
||||
[1217] = 4,
|
||||
[1234] = 1,
|
||||
[1235] = 1,
|
||||
[1236] = 1,
|
||||
[1254] = 8,
|
||||
[1274] = 4,
|
||||
[1275] = 2,
|
||||
[1294] = 1,
|
||||
[1314] = 2,
|
||||
[1315] = 4,
|
||||
[1334] = 4,
|
||||
[1335] = 2,
|
||||
[1354] = 0,
|
||||
[1355] = 0,
|
||||
[1374] = 1,
|
||||
[1375] = 9,
|
||||
[1394] = 1,
|
||||
[1395] = 1,
|
||||
[1414] = 4,
|
||||
[1415] = 2,
|
||||
[1434] = 1,
|
||||
[1454] = 0,
|
||||
[1474] = 0,
|
||||
[1475] = 0,
|
||||
[1494] = 2,
|
||||
[1495] = 10,
|
||||
[1496] = 2,
|
||||
[1514] = 4,
|
||||
[1515] = 2,
|
||||
[1534] = 4,
|
||||
[1554] = 8,
|
||||
[1555] = 0,
|
||||
[1574] = 0,
|
||||
[1575] = 12,
|
||||
[1576] = 4,
|
||||
[1577] = 4,
|
||||
[1594] = 12,
|
||||
[1595] = 10,
|
||||
[1596] = 12,
|
||||
[1597] = 10,
|
||||
[1598] = 2,
|
||||
[1599] = 4,
|
||||
[1600] = 8,
|
||||
[1601] = 0,
|
||||
[1602] = 2,
|
||||
[1603] = 10,
|
||||
[1604] = 2,
|
||||
[1605] = 1,
|
||||
[1606] = 2,
|
||||
[1607] = 2,
|
||||
[1608] = 8,
|
||||
[1610] = 10,
|
||||
[1611] = 4,
|
||||
[1612] = 2,
|
||||
[1613] = 0,
|
||||
[1614] = 1,
|
||||
[1615] = 8,
|
||||
[1616] = 0,
|
||||
[1617] = 1,
|
||||
[1618] = 12,
|
||||
[1619] = 10,
|
||||
[1620] = 15,
|
||||
[1621] = 4,
|
||||
[1622] = 4,
|
||||
[1623] = 2,
|
||||
[1624] = 8,
|
||||
[1625] = 8,
|
||||
[1626] = 1,
|
||||
[1627] = 2,
|
||||
[1628] = 2,
|
||||
[1629] = 12,
|
||||
[1630] = 15,
|
||||
[1634] = 0,
|
||||
[1635] = 0,
|
||||
[1636] = 2,
|
||||
[1637] = 2,
|
||||
[1638] = 4,
|
||||
[1639] = 12,
|
||||
[1640] = 4,
|
||||
[1641] = 2,
|
||||
[1642] = 4,
|
||||
[1643] = 1,
|
||||
[1644] = 4,
|
||||
[1645] = 12,
|
||||
[1646] = 4,
|
||||
[1647] = 12,
|
||||
[1648] = 4,
|
||||
[1649] = 4,
|
||||
[1650] = 10,
|
||||
[1651] = 2,
|
||||
[1652] = 2,
|
||||
[1653] = 2,
|
||||
[1654] = 4,
|
||||
[1655] = 4,
|
||||
[1656] = 10,
|
||||
[1657] = 2,
|
||||
[1658] = 2,
|
||||
[1659] = 8,
|
||||
[1660] = 8,
|
||||
[1661] = 8,
|
||||
[1662] = 1,
|
||||
[1663] = 1,
|
||||
[1664] = 1,
|
||||
[1665] = 8,
|
||||
[1666] = 12,
|
||||
[1667] = 4,
|
||||
[1668] = 10,
|
||||
[1669] = 2,
|
||||
[1670] = 2,
|
||||
[1671] = 4,
|
||||
[1672] = 0,
|
||||
[1673] = 0,
|
||||
[1674] = 0,
|
||||
[1675] = 0,
|
||||
[1676] = 0,
|
||||
[1677] = 0,
|
||||
[1678] = 1,
|
||||
[1679] = 1,
|
||||
[1680] = 0,
|
||||
[1681] = 1,
|
||||
[1682] = 0,
|
||||
[1683] = 0,
|
||||
[1684] = 0,
|
||||
[1685] = 4,
|
||||
[1686] = 4,
|
||||
[1687] = 1,
|
||||
[1688] = 0,
|
||||
[1689] = 0,
|
||||
[1690] = 0,
|
||||
[1691] = 0,
|
||||
[1692] = 1,
|
||||
[1693] = 1,
|
||||
[1694] = 4,
|
||||
[1695] = 2,
|
||||
[1696] = 0,
|
||||
[1697] = 1,
|
||||
[1698] = 4,
|
||||
[1699] = 4,
|
||||
[1700] = 4,
|
||||
[1701] = 7,
|
||||
[1702] = 7,
|
||||
[1703] = 0,
|
||||
[1704] = 1,
|
||||
[1705] = 1,
|
||||
[1706] = 1,
|
||||
[1707] = 8,
|
||||
[1708] = 8,
|
||||
[1709] = 8,
|
||||
[1710] = 8,
|
||||
[1711] = 1,
|
||||
[1712] = 1,
|
||||
[1713] = 1,
|
||||
[1714] = 7,
|
||||
[1715] = 1,
|
||||
[1716] = 8,
|
||||
[1717] = 0,
|
||||
[1718] = 0,
|
||||
[1719] = 8,
|
||||
[1720] = 1,
|
||||
[1721] = 12,
|
||||
[1722] = 4,
|
||||
[1723] = 4,
|
||||
[1724] = 4,
|
||||
[1725] = 8,
|
||||
[1726] = 0,
|
||||
[1727] = 8,
|
||||
[1728] = 8,
|
||||
[1729] = 2,
|
||||
[1730] = 8,
|
||||
[1731] = 8,
|
||||
[1732] = 4,
|
||||
[1733] = 4,
|
||||
[1734] = 2,
|
||||
[1735] = 2,
|
||||
[1736] = 0,
|
||||
[1737] = 4,
|
||||
[1738] = 1,
|
||||
[1739] = 1,
|
||||
[1740] = 1,
|
||||
[1741] = 8,
|
||||
[1742] = 1,
|
||||
[1743] = 0,
|
||||
[1744] = 0,
|
||||
[1745] = 2,
|
||||
[1746] = 0,
|
||||
[1747] = 0,
|
||||
[1748] = 1,
|
||||
[1749] = 0,
|
||||
[1750] = 1,
|
||||
[1751] = 1,
|
||||
[1752] = 7,
|
||||
[1753] = 7,
|
||||
[1754] = 7,
|
||||
[1755] = 0,
|
||||
[1756] = 0,
|
||||
[1757] = 0,
|
||||
[1758] = 0,
|
||||
[1759] = 0,
|
||||
[1760] = 0,
|
||||
[1761] = 15,
|
||||
[1762] = 7,
|
||||
[1763] = 7,
|
||||
[1764] = 7,
|
||||
[1765] = 7,
|
||||
[1766] = 0,
|
||||
[1767] = 0,
|
||||
[1768] = 15,
|
||||
[1769] = 15,
|
||||
[1770] = 0,
|
||||
[1771] = 1,
|
||||
[1772] = 1,
|
||||
[1773] = 0,
|
||||
[1774] = 0,
|
||||
[1775] = 8,
|
||||
[1776] = 0,
|
||||
[1777] = 0,
|
||||
[1778] = 0,
|
||||
[1779] = 0,
|
||||
[1780] = 1,
|
||||
[1781] = 1,
|
||||
[1782] = 1,
|
||||
[1783] = 1,
|
||||
[1784] = 1,
|
||||
[1785] = 1,
|
||||
[1786] = 1,
|
||||
[1787] = 1,
|
||||
[1788] = 8,
|
||||
[1789] = 7,
|
||||
[1790] = 1,
|
||||
[1791] = 1,
|
||||
[1792] = 1,
|
||||
[1793] = 7,
|
||||
[1794] = 0,
|
||||
[1795] = 0,
|
||||
[1796] = 1,
|
||||
[1797] = 0,
|
||||
[1798] = 1,
|
||||
[1799] = 1,
|
||||
[1800] = 1,
|
||||
[1801] = 10,
|
||||
[1802] = 12,
|
||||
[1803] = 4,
|
||||
[1804] = 2,
|
||||
[1805] = 0,
|
||||
[1806] = 8,
|
||||
[1807] = 8,
|
||||
[1808] = 1,
|
||||
[1809] = 1,
|
||||
[1810] = 1,
|
||||
[1811] = 1,
|
||||
[1812] = 8,
|
||||
[1813] = 1,
|
||||
[1814] = 1,
|
||||
[1815] = 1,
|
||||
[1816] = 0,
|
||||
[1818] = 0,
|
||||
[1819] = 12,
|
||||
[1820] = 0,
|
||||
[1821] = 0,
|
||||
[1822] = 0,
|
||||
[1823] = 1,
|
||||
[1824] = 0,
|
||||
[1825] = 15,
|
||||
[1826] = 1,
|
||||
[1827] = 1,
|
||||
[1828] = 0,
|
||||
[1829] = 0,
|
||||
[1830] = 0,
|
||||
[1831] = 0,
|
||||
[1832] = 0,
|
||||
[1833] = 0,
|
||||
[1834] = 15,
|
||||
[1835] = 10,
|
||||
[1836] = 8,
|
||||
[1837] = 8,
|
||||
[1838] = 0,
|
||||
[1839] = 1,
|
||||
[1840] = 0,
|
||||
[1841] = 0,
|
||||
[1842] = 1,
|
||||
[1843] = 1,
|
||||
[1844] = 0,
|
||||
[1845] = 0,
|
||||
[1846] = 1,
|
||||
[1847] = 1,
|
||||
[1848] = 1,
|
||||
[1849] = 1,
|
||||
[1850] = 0,
|
||||
[1851] = 8,
|
||||
[1852] = 0,
|
||||
[1853] = 1,
|
||||
[1854] = 0,
|
||||
[1855] = 0,
|
||||
[1856] = 0,
|
||||
[1857] = 8,
|
||||
[1858] = 0,
|
||||
[1859] = 0,
|
||||
[1860] = 0,
|
||||
[1862] = 1,
|
||||
[1863] = 1,
|
||||
[1864] = 1,
|
||||
[1865] = 1,
|
||||
[1866] = 0,
|
||||
[1867] = 0,
|
||||
[1868] = 0,
|
||||
[1869] = 0,
|
||||
[1870] = 0,
|
||||
[1871] = 1,
|
||||
[1872] = 0,
|
||||
[1873] = 1,
|
||||
[1874] = 0,
|
||||
[1875] = 0,
|
||||
[1876] = 0,
|
||||
[1877] = 1,
|
||||
[1878] = 1,
|
||||
[1879] = 1,
|
||||
[1880] = 1,
|
||||
[1881] = 1,
|
||||
[1882] = 1,
|
||||
[1883] = 7,
|
||||
[1890] = 1,
|
||||
[1896] = 8,
|
||||
[1909] = 9,
|
||||
[1913] = 0,
|
||||
[1916] = 0,
|
||||
[1930] = 0,
|
||||
[1931] = 0,
|
||||
[1934] = 4,
|
||||
[1935] = 2,
|
||||
[1936] = 0,
|
||||
[1937] = 0,
|
||||
[1938] = 0,
|
||||
[1939] = 0,
|
||||
[1940] = 0,
|
||||
[1941] = 0,
|
||||
[1942] = 0,
|
||||
[1943] = 0,
|
||||
[1944] = 0,
|
||||
[1945] = 0,
|
||||
[1951] = 12,
|
||||
[1952] = 0,
|
||||
[1956] = 0,
|
||||
[1957] = 0,
|
||||
[1958] = 1,
|
||||
[1959] = 0,
|
||||
[1960] = 0,
|
||||
[1961] = 0,
|
||||
[1962] = 1,
|
||||
[1963] = 1,
|
||||
[1964] = 1,
|
||||
[1965] = 1,
|
||||
[1966] = 0,
|
||||
[1967] = 0,
|
||||
[1971] = 0,
|
||||
[1972] = 0,
|
||||
[1990] = 1,
|
||||
[1992] = 9,
|
||||
[1995] = 2,
|
||||
[1997] = 4,
|
||||
[1998] = 1,
|
||||
[2029] = 1,
|
||||
[2074] = 0,
|
||||
[3149] = 2,
|
||||
[3150] = 0,
|
||||
[3151] = 4,
|
||||
[3152] = 0,
|
||||
} or {
|
||||
[1] = 12,
|
||||
[2] = 10,
|
||||
[3] = 12,
|
||||
[4] = 12,
|
||||
[5] = 10,
|
||||
[6] = 10,
|
||||
[7] = 0,
|
||||
[10] = 0,
|
||||
[11] = 12,
|
||||
[12] = 4,
|
||||
[14] = 1,
|
||||
[15] = 0,
|
||||
[16] = 1,
|
||||
[17] = 1,
|
||||
[18] = 1,
|
||||
[19] = 1,
|
||||
[20] = 1,
|
||||
[21] = 1,
|
||||
[22] = 1,
|
||||
[23] = 4,
|
||||
[24] = 1,
|
||||
[25] = 0,
|
||||
[26] = 1,
|
||||
[27] = 1,
|
||||
[28] = 1,
|
||||
[29] = 2,
|
||||
[30] = 1,
|
||||
[31] = 0,
|
||||
[32] = 0,
|
||||
[33] = 0,
|
||||
[34] = 0,
|
||||
[35] = 0,
|
||||
[36] = 0,
|
||||
[37] = 1,
|
||||
[38] = 1,
|
||||
[39] = 1,
|
||||
[40] = 1,
|
||||
[41] = 1,
|
||||
[42] = 0,
|
||||
[43] = 0,
|
||||
[44] = 1,
|
||||
[45] = 1,
|
||||
[46] = 1,
|
||||
[47] = 1,
|
||||
[48] = 1,
|
||||
[49] = 1,
|
||||
[50] = 1,
|
||||
[51] = 1,
|
||||
[52] = 0,
|
||||
[53] = 12,
|
||||
[54] = 1,
|
||||
[55] = 4,
|
||||
[56] = 12,
|
||||
[57] = 12,
|
||||
[58] = 0,
|
||||
[59] = 1,
|
||||
[60] = 1,
|
||||
[61] = 1,
|
||||
[62] = 1,
|
||||
[63] = 1,
|
||||
[64] = 4,
|
||||
[65] = 0,
|
||||
[66] = 1,
|
||||
[67] = 1,
|
||||
[68] = 2,
|
||||
[69] = 0,
|
||||
[70] = 1,
|
||||
[71] = 10,
|
||||
[72] = 1,
|
||||
[73] = 1,
|
||||
[74] = 1,
|
||||
[76] = 4,
|
||||
[77] = 0,
|
||||
[78] = 1,
|
||||
[79] = 12,
|
||||
[80] = 4,
|
||||
[81] = 1,
|
||||
[82] = 1,
|
||||
[83] = 2,
|
||||
[84] = 4,
|
||||
[85] = 10,
|
||||
[86] = 0,
|
||||
[87] = 1,
|
||||
[88] = 4,
|
||||
[89] = 1,
|
||||
[90] = 1,
|
||||
[91] = 1,
|
||||
[92] = 1,
|
||||
[93] = 1,
|
||||
[94] = 0,
|
||||
[95] = 1,
|
||||
[96] = 0,
|
||||
[97] = 0,
|
||||
[98] = 10,
|
||||
[99] = 0,
|
||||
[100] = 9,
|
||||
[101] = 4,
|
||||
[102] = 2,
|
||||
[103] = 1,
|
||||
[104] = 2,
|
||||
[105] = 10,
|
||||
[106] = 10,
|
||||
[107] = 1,
|
||||
[108] = 0,
|
||||
[109] = 1,
|
||||
[110] = 1,
|
||||
[111] = 1,
|
||||
[112] = 1,
|
||||
[113] = 0,
|
||||
[114] = 1,
|
||||
[115] = 12,
|
||||
[116] = 10,
|
||||
[118] = 2,
|
||||
[119] = 1,
|
||||
[120] = 0,
|
||||
[121] = 8,
|
||||
[122] = 4,
|
||||
[123] = 4,
|
||||
[124] = 4,
|
||||
[125] = 2,
|
||||
[126] = 2,
|
||||
[127] = 1,
|
||||
[128] = 1,
|
||||
[129] = 1,
|
||||
[130] = 1,
|
||||
[131] = 1,
|
||||
[132] = 1,
|
||||
[133] = 1,
|
||||
[134] = 1,
|
||||
[148] = 1,
|
||||
[149] = 0,
|
||||
[150] = 12,
|
||||
[151] = 4,
|
||||
[152] = 1,
|
||||
[153] = 0,
|
||||
[154] = 1,
|
||||
[168] = 1,
|
||||
[188] = 0,
|
||||
[189] = 0,
|
||||
[190] = 0,
|
||||
[208] = 0,
|
||||
[209] = 0,
|
||||
[210] = 12,
|
||||
[230] = 1,
|
||||
[231] = 8,
|
||||
[232] = 8,
|
||||
[233] = 1,
|
||||
[250] = 8,
|
||||
[270] = 1,
|
||||
[290] = 0,
|
||||
[310] = 1,
|
||||
[311] = 0,
|
||||
[312] = 1,
|
||||
[330] = 0,
|
||||
[350] = 0,
|
||||
[370] = 1,
|
||||
[371] = 4,
|
||||
[390] = 0,
|
||||
[410] = 1,
|
||||
[411] = 1,
|
||||
[412] = 2,
|
||||
[413] = 1,
|
||||
[414] = 1,
|
||||
[415] = 1,
|
||||
[416] = 0,
|
||||
[430] = 0,
|
||||
[450] = 1,
|
||||
[470] = 1,
|
||||
[471] = 0,
|
||||
[472] = 1,
|
||||
[473] = 0,
|
||||
[474] = 0,
|
||||
[475] = 8,
|
||||
[494] = 1,
|
||||
[495] = 8,
|
||||
[514] = 1,
|
||||
[534] = 4, --* Changed from 0 -> 4 to be hostile towards horde
|
||||
[554] = 7,
|
||||
[574] = 1,
|
||||
[575] = 1,
|
||||
[594] = 0,
|
||||
[614] = 0,
|
||||
[634] = 0,
|
||||
[635] = 0,
|
||||
[636] = 1,
|
||||
[637] = 8,
|
||||
[654] = 1,
|
||||
[655] = 5,
|
||||
[674] = 0,
|
||||
[694] = 4,
|
||||
[695] = 0,
|
||||
[714] = 2, --* Changed from 0 -> 2 to be hostile towards alliance
|
||||
[734] = 0,
|
||||
[735] = 0,
|
||||
[736] = 1,
|
||||
[754] = 1,
|
||||
[774] = 0,
|
||||
[775] = 0,
|
||||
[776] = 0,
|
||||
[777] = 0,
|
||||
[778] = 1,
|
||||
[794] = 0,
|
||||
[795] = 1,
|
||||
[814] = 0,
|
||||
[834] = 1,
|
||||
[854] = 8,
|
||||
[855] = 0,
|
||||
[874] = 4,
|
||||
[875] = 4,
|
||||
[876] = 2,
|
||||
[877] = 10,
|
||||
[894] = 4,
|
||||
[914] = 0,
|
||||
[934] = 1,
|
||||
[954] = 1,
|
||||
[974] = 1,
|
||||
[994] = 0,
|
||||
[995] = 2,
|
||||
[996] = 8,
|
||||
[1014] = 0,
|
||||
[1015] = 0,
|
||||
[1034] = 2,
|
||||
[1054] = 12,
|
||||
[1055] = 4,
|
||||
[1074] = 2,
|
||||
[1075] = 4,
|
||||
[1076] = 4,
|
||||
[1077] = 4,
|
||||
[1078] = 4,
|
||||
[1080] = 0,
|
||||
[1081] = 1,
|
||||
[1094] = 0,
|
||||
[1095] = 0,
|
||||
[1096] = 12,
|
||||
[1097] = 4,
|
||||
[1114] = 1,
|
||||
[1134] = 10,
|
||||
[1154] = 10,
|
||||
[1174] = 2,
|
||||
[1194] = 0,
|
||||
[1214] = 10,
|
||||
[1215] = 2,
|
||||
[1216] = 12,
|
||||
[1217] = 4,
|
||||
[1234] = 1,
|
||||
[1235] = 1,
|
||||
[1236] = 1,
|
||||
[1254] = 8,
|
||||
[1274] = 4,
|
||||
[1275] = 2,
|
||||
[1294] = 1,
|
||||
[1314] = 2,
|
||||
[1315] = 4,
|
||||
[1334] = 4,
|
||||
[1335] = 2,
|
||||
[1354] = 0,
|
||||
[1355] = 0,
|
||||
[1374] = 1,
|
||||
[1375] = 9,
|
||||
[1394] = 1,
|
||||
[1395] = 1,
|
||||
[1414] = 4,
|
||||
[1415] = 2,
|
||||
[1434] = 1,
|
||||
[1454] = 0,
|
||||
[1474] = 0,
|
||||
[1475] = 0,
|
||||
[1494] = 2,
|
||||
[1495] = 10,
|
||||
[1496] = 2,
|
||||
[1514] = 4,
|
||||
[1515] = 2,
|
||||
[1534] = 4,
|
||||
[1554] = 8,
|
||||
[1555] = 0,
|
||||
[1574] = 0,
|
||||
[1575] = 12,
|
||||
[1576] = 4,
|
||||
[1577] = 4,
|
||||
[1594] = 12,
|
||||
[1595] = 10,
|
||||
[1596] = 12,
|
||||
[1597] = 10,
|
||||
[1598] = 2,
|
||||
[1599] = 4,
|
||||
[1600] = 8,
|
||||
[1601] = 0,
|
||||
[1605] = 1,
|
||||
[1606] = 2,
|
||||
[1607] = 2,
|
||||
[1608] = 8,
|
||||
[1611] = 4,
|
||||
[1612] = 2,
|
||||
[1613] = 0,
|
||||
[1614] = 1,
|
||||
[1615] = 8,
|
||||
[1616] = 0,
|
||||
[1617] = 1,
|
||||
[1618] = 12,
|
||||
[1619] = 10,
|
||||
[1620] = 15,
|
||||
[1621] = 4,
|
||||
[1622] = 4,
|
||||
[1624] = 8,
|
||||
[1625] = 8,
|
||||
[1626] = 1,
|
||||
[1630] = 15,
|
||||
[1634] = 0,
|
||||
[1635] = 0,
|
||||
[1641] = 2,
|
||||
[1642] = 4,
|
||||
[1673] = 0,
|
||||
[1676] = 0,
|
||||
[1677] = 0,
|
||||
[3149] = 2,
|
||||
[3150] = 0,
|
||||
[3151] = 4,
|
||||
[3152] = 0,
|
||||
}
|
||||
@@ -0,0 +1,440 @@
|
||||
-- this file is used for large table updates that are automatically generated, since fitting those into corrections is a bad idea
|
||||
-- not all of this data is validated as its generated from external sources
|
||||
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
|
||||
if Questie.IsClassic then
|
||||
local npcsToUpdate = {
|
||||
[239] = 2,
|
||||
[240] = 2,
|
||||
[313] = 18,
|
||||
[384] = 7,
|
||||
[715] = 2,
|
||||
[786] = 2,
|
||||
[931] = 9,
|
||||
[1218] = 19,
|
||||
[1261] = 7,
|
||||
[1295] = 16388,
|
||||
[1298] = 16388,
|
||||
[1299] = 16388,
|
||||
[1303] = 4,
|
||||
[1304] = 4,
|
||||
[1308] = 4,
|
||||
[1310] = 16388,
|
||||
[1314] = 16388,
|
||||
[1318] = 4,
|
||||
[1319] = 16388,
|
||||
[1324] = 16388,
|
||||
[1341] = 16388,
|
||||
[1348] = 16388,
|
||||
[1349] = 16388,
|
||||
[1350] = 16388,
|
||||
[1351] = 4,
|
||||
[1387] = 8,
|
||||
[1411] = 18,
|
||||
[1458] = 19,
|
||||
[1459] = 16404,
|
||||
[1460] = 7,
|
||||
[1519] = 2,
|
||||
[1571] = 9,
|
||||
[1701] = 16,
|
||||
[1755] = 2,
|
||||
[2122] = 18,
|
||||
[2130] = 18,
|
||||
[2153] = 2,
|
||||
[2299] = 8,
|
||||
[2389] = 8,
|
||||
[2397] = 4,
|
||||
[2405] = 0,
|
||||
[2409] = 8,
|
||||
[2432] = 8,
|
||||
[2439] = 2,
|
||||
[2464] = 2,
|
||||
[2465] = 2,
|
||||
[2487] = 2,
|
||||
[2491] = 2,
|
||||
[2497] = 2,
|
||||
[2621] = 0,
|
||||
[2663] = 4,
|
||||
[2670] = 6,
|
||||
[2700] = 2,
|
||||
[2708] = 2,
|
||||
[2737] = 0,
|
||||
[2771] = 2,
|
||||
[2785] = 2,
|
||||
[2789] = 2,
|
||||
[2796] = 0,
|
||||
[2801] = 16,
|
||||
[2802] = 16,
|
||||
[2808] = 6,
|
||||
[2818] = 16,
|
||||
[2835] = 8,
|
||||
[2851] = 8,
|
||||
[2858] = 9,
|
||||
[2859] = 9,
|
||||
[2861] = 8,
|
||||
[2870] = 16,
|
||||
[2880] = 20,
|
||||
[2881] = 20,
|
||||
[2910] = 2,
|
||||
[2920] = 2,
|
||||
[2941] = 9,
|
||||
[2981] = 2,
|
||||
[3001] = 16,
|
||||
[3079] = 16388,
|
||||
[3137] = 16,
|
||||
[3139] = 2,
|
||||
[3155] = 18,
|
||||
[3170] = 18,
|
||||
[3182] = 0,
|
||||
[3233] = 2,
|
||||
[3292] = 2,
|
||||
[3293] = 2,
|
||||
[3305] = 9,
|
||||
[3327] = 18,
|
||||
[3357] = 16,
|
||||
[3362] = 7,
|
||||
[3370] = 1536,
|
||||
[3401] = 18,
|
||||
[3411] = 6,
|
||||
[3418] = 2,
|
||||
[3443] = 2,
|
||||
[3467] = 0,
|
||||
[3502] = 0,
|
||||
[3628] = 0,
|
||||
[3679] = 0,
|
||||
[3685] = 7,
|
||||
[3841] = 8,
|
||||
[3845] = 2,
|
||||
[3846] = 2,
|
||||
[3848] = 2,
|
||||
[3881] = 6,
|
||||
[3936] = 2,
|
||||
[4161] = 1536,
|
||||
[4254] = 16,
|
||||
[4256] = 7,
|
||||
[4265] = 6,
|
||||
[4267] = 8,
|
||||
[4312] = 8,
|
||||
[4314] = 9,
|
||||
[4317] = 8,
|
||||
[4319] = 8,
|
||||
[4321] = 8,
|
||||
[4407] = 8,
|
||||
[4453] = 2,
|
||||
[4501] = 2,
|
||||
[4508] = 3,
|
||||
[4582] = 18,
|
||||
[4584] = 18,
|
||||
[4598] = 16,
|
||||
[4606] = 18,
|
||||
[4607] = 18,
|
||||
[4613] = 1536,
|
||||
[4618] = 2,
|
||||
[4730] = 7,
|
||||
[4731] = 7,
|
||||
[4885] = 7,
|
||||
[4921] = 2,
|
||||
[4941] = 2,
|
||||
[4963] = 2,
|
||||
[4974] = 1536,
|
||||
[4981] = 4,
|
||||
[5032] = 17,
|
||||
[5037] = 17,
|
||||
[5038] = 17,
|
||||
[5040] = 17,
|
||||
[5041] = 17,
|
||||
[5054] = 1536,
|
||||
[5086] = 3,
|
||||
[5130] = 1536,
|
||||
[5392] = 16,
|
||||
[5395] = 2,
|
||||
[5509] = 16388,
|
||||
[5510] = 16388,
|
||||
[5512] = 16390,
|
||||
[5698] = 0,
|
||||
[5749] = 7,
|
||||
[5750] = 7,
|
||||
[5753] = 7,
|
||||
[5782] = 2,
|
||||
[5843] = 0,
|
||||
[5848] = 0,
|
||||
[5875] = 2,
|
||||
[6026] = 8,
|
||||
[6027] = 7,
|
||||
[6030] = 16390,
|
||||
[6091] = 6,
|
||||
[6301] = 6,
|
||||
[6328] = 7,
|
||||
[6373] = 7,
|
||||
[6374] = 7,
|
||||
[6376] = 7,
|
||||
[6548] = 7,
|
||||
[6706] = 8,
|
||||
[6707] = 18,
|
||||
[6726] = 8,
|
||||
[6749] = 8192,
|
||||
[6782] = 2,
|
||||
[7172] = 3,
|
||||
[7233] = 2,
|
||||
[7770] = 2,
|
||||
[7823] = 8,
|
||||
[7824] = 8,
|
||||
[7879] = 6,
|
||||
[7937] = 2,
|
||||
[7952] = 7,
|
||||
[7955] = 7,
|
||||
[7957] = 3,
|
||||
[8018] = 9,
|
||||
[8019] = 8,
|
||||
[8020] = 8,
|
||||
[8214] = 0,
|
||||
[8320] = 0,
|
||||
[8383] = 2,
|
||||
[8416] = 2,
|
||||
[8582] = 2,
|
||||
[8586] = 2,
|
||||
[8609] = 8,
|
||||
[8610] = 8,
|
||||
[8664] = 2,
|
||||
[8665] = 20,
|
||||
[8923] = 0,
|
||||
[9022] = 0,
|
||||
[9087] = 7,
|
||||
[9177] = 2,
|
||||
[9460] = 0,
|
||||
[9540] = 2,
|
||||
[9598] = 2,
|
||||
[9679] = 0,
|
||||
[9976] = 8192,
|
||||
[9977] = 8192,
|
||||
[9978] = 8192,
|
||||
[9979] = 8192,
|
||||
[9980] = 8192,
|
||||
[9981] = 8192,
|
||||
[9982] = 8192,
|
||||
[9983] = 8192,
|
||||
[9984] = 8192,
|
||||
[9985] = 8192,
|
||||
[9986] = 8192,
|
||||
[9987] = 8192,
|
||||
[9988] = 8192,
|
||||
[9989] = 8192,
|
||||
[10045] = 8192,
|
||||
[10046] = 8192,
|
||||
[10047] = 8192,
|
||||
[10048] = 8192,
|
||||
[10049] = 8192,
|
||||
[10050] = 8192,
|
||||
[10051] = 8192,
|
||||
[10052] = 8192,
|
||||
[10053] = 8192,
|
||||
[10054] = 8192,
|
||||
[10055] = 8192,
|
||||
[10056] = 8192,
|
||||
[10057] = 8192,
|
||||
[10058] = 8192,
|
||||
[10059] = 8192,
|
||||
[10060] = 8192,
|
||||
[10061] = 8192,
|
||||
[10062] = 8192,
|
||||
[10063] = 8192,
|
||||
[10076] = 2,
|
||||
[10085] = 8192,
|
||||
[10118] = 6,
|
||||
[10181] = 2,
|
||||
[10260] = 2,
|
||||
[10296] = 0,
|
||||
[10299] = 0,
|
||||
[10370] = 16,
|
||||
[10378] = 9,
|
||||
[10540] = 0,
|
||||
[10583] = 8,
|
||||
[10665] = 2,
|
||||
[10666] = 2,
|
||||
[10740] = 2,
|
||||
[10776] = 1,
|
||||
[10897] = 8,
|
||||
[10917] = 2,
|
||||
[10931] = 2,
|
||||
[10941] = 2,
|
||||
[11064] = 3,
|
||||
[11069] = 8192,
|
||||
[11073] = 16,
|
||||
[11079] = 2,
|
||||
[11104] = 8192,
|
||||
[11105] = 8192,
|
||||
[11117] = 8192,
|
||||
[11119] = 8192,
|
||||
[11138] = 8,
|
||||
[11139] = 8,
|
||||
[11176] = 3,
|
||||
[11194] = 2,
|
||||
[11277] = 0,
|
||||
[11278] = 5,
|
||||
[11279] = 0,
|
||||
[11281] = 0,
|
||||
[11286] = 2,
|
||||
[11316] = 0,
|
||||
[11390] = 0,
|
||||
[11470] = 0,
|
||||
[11486] = 0,
|
||||
[11491] = 1,
|
||||
[11555] = 6,
|
||||
[11625] = 2,
|
||||
[11626] = 2,
|
||||
[11627] = 0,
|
||||
[11696] = 2,
|
||||
[11701] = 0,
|
||||
[11832] = 2,
|
||||
[11899] = 8,
|
||||
[11900] = 8,
|
||||
[11901] = 8,
|
||||
[11948] = 2,
|
||||
[11949] = 2,
|
||||
[12096] = 6,
|
||||
[12144] = 0,
|
||||
[12246] = 4,
|
||||
[12338] = 0,
|
||||
[12577] = 8,
|
||||
[12578] = 8,
|
||||
[12596] = 8,
|
||||
[12616] = 8,
|
||||
[12617] = 8,
|
||||
[12636] = 8,
|
||||
[12740] = 8,
|
||||
[12776] = 7,
|
||||
[12777] = 4,
|
||||
[12782] = 4,
|
||||
[12792] = 4,
|
||||
[12807] = 7,
|
||||
[13018] = 6,
|
||||
[13076] = 0,
|
||||
[13088] = 0,
|
||||
[13089] = 0,
|
||||
[13097] = 0,
|
||||
[13176] = 2,
|
||||
[13177] = 8,
|
||||
[13256] = 0,
|
||||
[13257] = 2,
|
||||
[13316] = 0,
|
||||
[13429] = 7,
|
||||
[13431] = 7,
|
||||
[13437] = 2,
|
||||
[13438] = 2,
|
||||
[13439] = 2,
|
||||
[13442] = 2,
|
||||
[13443] = 0,
|
||||
[13444] = 2,
|
||||
[13447] = 2,
|
||||
[13577] = 2,
|
||||
[13616] = 8194,
|
||||
[13617] = 8194,
|
||||
[14321] = 1,
|
||||
[14323] = 1,
|
||||
[14337] = 16389,
|
||||
[14338] = 2,
|
||||
[14351] = 0,
|
||||
[14353] = 0,
|
||||
[14358] = 2,
|
||||
[14368] = 2,
|
||||
[14369] = 0,
|
||||
[14371] = 4,
|
||||
[14381] = 2,
|
||||
[14382] = 2,
|
||||
[14383] = 2,
|
||||
[14395] = 0,
|
||||
[14401] = 1,
|
||||
[14450] = 6,
|
||||
[14522] = 4,
|
||||
[14581] = 4,
|
||||
[14624] = 16391,
|
||||
[14625] = 2,
|
||||
[14637] = 6,
|
||||
[14753] = 16390,
|
||||
[14754] = 16390,
|
||||
[14774] = 0,
|
||||
[14776] = 0,
|
||||
[14871] = 1,
|
||||
[15077] = 2,
|
||||
[15126] = 16390,
|
||||
[15127] = 16390,
|
||||
[15131] = 8192,
|
||||
[15165] = 2,
|
||||
[15177] = 9,
|
||||
[15178] = 9,
|
||||
[15199] = 7,
|
||||
[15293] = 4,
|
||||
[15350] = 3,
|
||||
[15351] = 3,
|
||||
[15354] = 5,
|
||||
[15362] = 3,
|
||||
[15378] = 2,
|
||||
[15379] = 2,
|
||||
[15380] = 2,
|
||||
[15458] = 1,
|
||||
[15459] = 3,
|
||||
[15460] = 3,
|
||||
[15469] = 3,
|
||||
[15471] = 7,
|
||||
[15477] = 3,
|
||||
[15508] = 3,
|
||||
[15512] = 3,
|
||||
[15515] = 3,
|
||||
[15522] = 3,
|
||||
[15525] = 3,
|
||||
[15528] = 3,
|
||||
[15529] = 3,
|
||||
[15532] = 3,
|
||||
[15533] = 3,
|
||||
[15534] = 3,
|
||||
[15535] = 3,
|
||||
[15589] = 2,
|
||||
[15609] = 3,
|
||||
[15610] = 3,
|
||||
[15611] = 3,
|
||||
[15700] = 3,
|
||||
[15702] = 3,
|
||||
[15703] = 3,
|
||||
[15704] = 3,
|
||||
[15707] = 3,
|
||||
[15736] = 3,
|
||||
[15737] = 3,
|
||||
[15738] = 3,
|
||||
[15739] = 3,
|
||||
[16002] = 2,
|
||||
[16031] = 2,
|
||||
[16032] = 2,
|
||||
[16033] = 3,
|
||||
[16094] = 8192,
|
||||
[16227] = 8,
|
||||
[16230] = 1,
|
||||
[16285] = 1,
|
||||
[16359] = 1,
|
||||
[16365] = 3,
|
||||
[16376] = 16391,
|
||||
[16384] = 1,
|
||||
[16395] = 1,
|
||||
[16431] = 3,
|
||||
[16433] = 1,
|
||||
[16434] = 1,
|
||||
[16435] = 1,
|
||||
[16436] = 1,
|
||||
[16439] = 1,
|
||||
[16478] = 3,
|
||||
[16484] = 3,
|
||||
[16531] = 3,
|
||||
[16543] = 4,
|
||||
[16786] = 2,
|
||||
[16787] = 0
|
||||
}
|
||||
|
||||
-- npcFlags table update
|
||||
for id, flags in pairs(npcsToUpdate) do
|
||||
if QuestieDB.npcData[id] then
|
||||
QuestieDB.npcData[id][QuestieDB.npcKeys.npcFlags] = flags
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,211 @@
|
||||
---@class HardcoreBlacklist
|
||||
local HardcoreBlacklist = QuestieLoader:CreateModule("HardcoreBlacklist")
|
||||
|
||||
|
||||
---@return table<QuestId, boolean>
|
||||
function HardcoreBlacklist:Load()
|
||||
return {
|
||||
[5892] = true, -- Irondeep Supplies
|
||||
[5893] = true, -- Coldtooth Supplies
|
||||
[6741] = true, -- More Booty!
|
||||
[6781] = true, -- More Armor Scraps
|
||||
[6801] = true, -- Lokholar the Ice Lord
|
||||
[6825] = true, -- Call of Air - Guse's Fleet
|
||||
[6826] = true, -- Call of Air - Jeztor's Fleet
|
||||
[6827] = true, -- Call of Air - Mulverick's Fleet
|
||||
[6846] = true, -- Begin the Attack!
|
||||
[6847] = true, -- Master Ryson's All Seeing Eye
|
||||
[6848] = true, -- Master Ryson's All Seeing Eye
|
||||
[6861] = true, -- Zinfizzlex's Portable Shredder Unit
|
||||
[6862] = true, -- Zinfizzlex's Portable Shredder Unit
|
||||
[6881] = true, -- Ivus the Forest Lord
|
||||
[6901] = true, -- Launch the Attack!
|
||||
[6941] = true, -- Call of Air - Vipore's Fleet
|
||||
[6942] = true, -- Call of Air - Slidore's Fleet
|
||||
[6943] = true, -- Call of Air - Ichman's Fleet
|
||||
[6982] = true, -- Coldtooth Supplies
|
||||
[6985] = true, -- Irondeep Supplies
|
||||
[7001] = true, -- Empty Stables
|
||||
[7002] = true, -- Ram Hide Harnesses
|
||||
[7026] = true, -- Ram Riding Harnesses
|
||||
[7027] = true, -- Empty Stables
|
||||
[7081] = true, -- Alterac Valley Graveyards
|
||||
[7082] = true, -- The Graveyards of Alterac
|
||||
[7101] = true, -- Towers and Bunkers
|
||||
[7102] = true, -- Towers and Bunkers
|
||||
[7121] = true, -- The Quartermaster
|
||||
[7122] = true, -- Capture a Mine
|
||||
[7123] = true, -- Speak with our Quartermaster
|
||||
[7124] = true, -- Capture a Mine
|
||||
[7141] = true, -- The Battle of Alterac
|
||||
[7142] = true, -- The Battle for Alterac
|
||||
[7161] = true, -- Proving Grounds
|
||||
[7162] = true, -- Proving Grounds
|
||||
[7163] = true, -- Rise and Be Recognized
|
||||
[7164] = true, -- Honored Amongst the Clan
|
||||
[7165] = true, -- Earned Reverence
|
||||
[7166] = true, -- Legendary Heroes
|
||||
[7167] = true, -- The Eye of Command
|
||||
[7168] = true, -- Rise and Be Recognized
|
||||
[7169] = true, -- Honored Amongst the Guard
|
||||
[7170] = true, -- Earned Reverence
|
||||
[7171] = true, -- Legendary Heroes
|
||||
[7172] = true, -- The Eye of Command
|
||||
[7181] = true, -- The Legend of Korrak
|
||||
[7202] = true, -- Korrak the Bloodrager
|
||||
[7221] = true, -- Speak with Prospector Stonehewer
|
||||
[7222] = true, -- Speak with Voggah Deathgrip
|
||||
[7223] = true, -- Armor Scraps
|
||||
[7224] = true, -- Enemy Booty
|
||||
[7241] = true, -- In Defense of Frostwolf
|
||||
[7261] = true, -- The Sovereign Imperative
|
||||
[7281] = true, -- Brotherly Love
|
||||
[7282] = true, -- Brotherly Love
|
||||
[7301] = true, -- Fallen Sky Lords
|
||||
[7302] = true, -- Fallen Sky Lords
|
||||
[7361] = true, -- Favor Amongst the Darkspear
|
||||
[7362] = true, -- Ally of the Tauren
|
||||
[7363] = true, -- The Human Condition
|
||||
[7364] = true, -- Gnomeregan Bounty
|
||||
[7365] = true, -- Staghelm's Requiem
|
||||
[7366] = true, -- The Archbishop's Mercy
|
||||
[7367] = true, -- Defusing the Threat
|
||||
[7368] = true, -- Defusing the Threat
|
||||
[7381] = true, -- The Return of Korrak
|
||||
[7382] = true, -- Korrak the Everliving
|
||||
[7385] = true, -- A Gallon of Blood
|
||||
[7386] = true, -- Crystal Cluster
|
||||
[7401] = true, -- WANTED: Dwarves!
|
||||
[7402] = true, -- WANTED: Orcs!
|
||||
[7421] = true, -- Darkspear Defense
|
||||
[7422] = true, -- Tuft it Out
|
||||
[7423] = true, -- I've Got A Fever For More Bone Chips
|
||||
[7424] = true, -- What the Hoof?
|
||||
[7425] = true, -- Staghelm's Mojo Jamboree
|
||||
[7426] = true, -- One Man's Love
|
||||
[7427] = true, -- Wanted: MORE DWARVES!
|
||||
[7428] = true, -- Wanted: MORE ORCS!
|
||||
[7788] = true, -- Vanquish the Invaders!
|
||||
[7789] = true, -- Quell the Silverwing Usurpers
|
||||
[7871] = true, -- Vanquish the Invaders!
|
||||
[7872] = true, -- Vanquish the Invaders!
|
||||
[7873] = true, -- Vanquish the Invaders!
|
||||
[7874] = true, -- Quell the Silverwing Usurpers
|
||||
[7875] = true, -- Quell the Silverwing Usurpers
|
||||
[7876] = true, -- Quell the Silverwing Usurpers
|
||||
[7886] = true, -- Talismans of Merit
|
||||
[7887] = true, -- Talismans of Merit
|
||||
[7888] = true, -- Talismans of Merit
|
||||
[7921] = true, -- Talismans of Merit
|
||||
[7922] = true, -- Mark of Honor
|
||||
[7923] = true, -- Mark of Honor
|
||||
[7924] = true, -- Mark of Honor
|
||||
[7925] = true, -- Mark of Honor
|
||||
[8001] = true, -- Warsong Outriders <NYI> <TXT>
|
||||
[8002] = true, -- Silverwing Sentinels <NYI> <TXT>
|
||||
[8080] = true, -- Arathi Basin Resources!
|
||||
[8081] = true, -- More Resource Crates
|
||||
[8105] = true, -- The Battle for Arathi Basin!
|
||||
[8114] = true, -- Control Four Bases
|
||||
[8115] = true, -- Control Five Bases
|
||||
[8120] = true, -- The Battle for Arathi Basin!
|
||||
[8121] = true, -- Take Four Bases
|
||||
[8122] = true, -- Take Five Bases
|
||||
[8123] = true, -- Cut Arathor Supply Lines
|
||||
[8124] = true, -- More Resource Crates
|
||||
[8154] = true, -- Arathi Basin Resources!
|
||||
[8155] = true, -- Arathi Basin Resources!
|
||||
[8156] = true, -- Arathi Basin Resources!
|
||||
[8157] = true, -- More Resource Crates
|
||||
[8158] = true, -- More Resource Crates
|
||||
[8159] = true, -- More Resource Crates
|
||||
[8160] = true, -- Cut Arathor Supply Lines
|
||||
[8161] = true, -- Cut Arathor Supply Lines
|
||||
[8162] = true, -- Cut Arathor Supply Lines
|
||||
[8163] = true, -- More Resource Crates
|
||||
[8164] = true, -- More Resource Crates
|
||||
[8165] = true, -- More Resource Crates
|
||||
[8166] = true, -- The Battle for Arathi Basin!
|
||||
[8167] = true, -- The Battle for Arathi Basin!
|
||||
[8168] = true, -- The Battle for Arathi Basin!
|
||||
[8169] = true, -- The Battle for Arathi Basin!
|
||||
[8170] = true, -- The Battle for Arathi Basin!
|
||||
[8171] = true, -- The Battle for Arathi Basin!
|
||||
[8260] = true, -- Arathor Basic Care Package
|
||||
[8261] = true, -- Arathor Standard Care Package
|
||||
[8262] = true, -- Arathor Advanced Care Package
|
||||
[8263] = true, -- Defiler's Basic Care Package
|
||||
[8264] = true, -- Defiler's Standard Care Package
|
||||
[8265] = true, -- Defiler's Advanced Care Package
|
||||
[8266] = true, -- Ribbons of Sacrifice
|
||||
[8267] = true, -- Ribbons of Sacrifice
|
||||
[8268] = true, -- Ribbons of Sacrifice
|
||||
[8269] = true, -- Ribbons of Sacrifice
|
||||
[8271] = true, -- Hero of the Stormpike
|
||||
[8272] = true, -- Hero of the Frostwolf
|
||||
[8289] = true, -- Talismans of Merit
|
||||
[8290] = true, -- Vanquish the Invaders
|
||||
[8291] = true, -- Vanquish the Invaders!
|
||||
[8292] = true, -- Talismans of Merit
|
||||
[8293] = true, -- Mark of Honor
|
||||
[8294] = true, -- Quell the Silverwing Usurpers
|
||||
[8295] = true, -- Quell the Silverwing Usurpers
|
||||
[8296] = true, -- Mark of Honor
|
||||
[8297] = true, -- Arathi Basin Resources!
|
||||
[8298] = true, -- More Resource Crates
|
||||
[8299] = true, -- Cut Arathor Supply Lines
|
||||
[8300] = true, -- More Resource Crates
|
||||
[8368] = true, -- Battle of Warsong Gulch
|
||||
[8367] = true, -- For Great Honor
|
||||
[8369] = true, -- Invaders of Alterac Valley
|
||||
[8370] = true, -- Conquering Arathi Basin
|
||||
[8371] = true, -- Concerted Efforts
|
||||
[8372] = true, -- Fight for Warsong Gulch
|
||||
[8374] = true, -- Claiming Arathi Basin
|
||||
[8375] = true, -- Remember Alterac Valley
|
||||
[8383] = true, -- Remember Alterac Valley
|
||||
[8384] = true, -- Claiming Arathi Basin
|
||||
[8385] = true, -- Concerted Efforts
|
||||
[8386] = true, -- Fight for Warsong Gulch
|
||||
[8387] = true, -- Invaders of Alterac Valley
|
||||
[8388] = true, -- For Great Honor
|
||||
[8389] = true, -- Battle of Warsong Gulch
|
||||
[8390] = true, -- Conquering Arathi Basin
|
||||
[8391] = true, -- Claiming Arathi Basin
|
||||
[8392] = true, -- Claiming Arathi Basin
|
||||
[8393] = true, -- Claiming Arathi Basin
|
||||
[8394] = true, -- Claiming Arathi Basin
|
||||
[8395] = true, -- Claiming Arathi Basin
|
||||
[8396] = true, -- Claiming Arathi Basin
|
||||
[8397] = true, -- Claiming Arathi Basin
|
||||
[8398] = true, -- Claiming Arathi Basin
|
||||
[8399] = true, -- Fight for Warsong Gulch
|
||||
[8400] = true, -- Fight for Warsong Gulch
|
||||
[8401] = true, -- Fight for Warsong Gulch
|
||||
[8402] = true, -- Fight for Warsong Gulch
|
||||
[8403] = true, -- Fight for Warsong Gulch
|
||||
[8404] = true, -- Fight for Warsong Gulch
|
||||
[8405] = true, -- Fight for Warsong Gulch
|
||||
[8406] = true, -- Fight for Warsong Gulch
|
||||
[8407] = true, -- Fight for Warsong Gulch
|
||||
[8408] = true, -- Fight for Warsong Gulch
|
||||
[8426] = true, -- Battle of Warsong Gulch
|
||||
[8427] = true, -- Battle of Warsong Gulch
|
||||
[8428] = true, -- Battle of Warsong Gulch
|
||||
[8429] = true, -- Battle of Warsong Gulch
|
||||
[8430] = true, -- Battle of Warsong Gulch
|
||||
[8431] = true, -- Battle of Warsong Gulch
|
||||
[8432] = true, -- Battle of Warsong Gulch
|
||||
[8433] = true, -- Battle of Warsong Gulch
|
||||
[8434] = true, -- Battle of Warsong Gulch
|
||||
[8435] = true, -- Battle of Warsong Gulch
|
||||
[8436] = true, -- Conquering Arathi Basin
|
||||
[8437] = true, -- Conquering Arathi Basin
|
||||
[8438] = true, -- Conquering Arathi Basin
|
||||
[8439] = true, -- Conquering Arathi Basin
|
||||
[8440] = true, -- Conquering Arathi Basin
|
||||
[8441] = true, -- Conquering Arathi Basin
|
||||
[8442] = true, -- Conquering Arathi Basin
|
||||
[8443] = true, -- Conquering Arathi Basin
|
||||
}
|
||||
end
|
||||
@@ -0,0 +1,436 @@
|
||||
---@class QuestieCorrections
|
||||
local QuestieCorrections = QuestieLoader:CreateModule("QuestieCorrections")
|
||||
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
---@type ZoneDB
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
---@type QuestieLib
|
||||
local QuestieLib = QuestieLoader:ImportModule("QuestieLib")
|
||||
---@type RamerDouglasPeucker
|
||||
local RamerDouglasPeucker = QuestieLoader:ImportModule("RamerDouglasPeucker")
|
||||
---@type QuestieEvent
|
||||
local QuestieEvent = QuestieLoader:ImportModule("QuestieEvent")
|
||||
---@type QuestieQuestBlacklist
|
||||
local QuestieQuestBlacklist = QuestieLoader:ImportModule("QuestieQuestBlacklist")
|
||||
---@type QuestieNPCBlacklist
|
||||
local QuestieNPCBlacklist = QuestieLoader:ImportModule("QuestieNPCBlacklist")
|
||||
---@type QuestieItemBlacklist
|
||||
local QuestieItemBlacklist = QuestieLoader:ImportModule("QuestieItemBlacklist")
|
||||
---@type HardcoreBlacklist
|
||||
local HardcoreBlacklist = QuestieLoader:ImportModule("HardcoreBlacklist")
|
||||
---@type SeasonOfDiscovery
|
||||
local SeasonOfDiscovery = QuestieLoader:ImportModule("SeasonOfDiscovery")
|
||||
|
||||
---@type QuestieQuestFixes
|
||||
local QuestieQuestFixes = QuestieLoader:ImportModule("QuestieQuestFixes")
|
||||
---@type QuestieClassicQuestReputationFixes
|
||||
local QuestieClassicQuestReputationFixes = QuestieLoader:ImportModule("QuestieClassicQuestReputationFixes")
|
||||
---@type QuestieNPCFixes
|
||||
local QuestieNPCFixes = QuestieLoader:ImportModule("QuestieNPCFixes")
|
||||
---@type QuestieItemFixes
|
||||
local QuestieItemFixes = QuestieLoader:ImportModule("QuestieItemFixes")
|
||||
---@type QuestieObjectFixes
|
||||
local QuestieObjectFixes = QuestieLoader:ImportModule("QuestieObjectFixes")
|
||||
|
||||
---@type QuestieTBCQuestFixes
|
||||
local QuestieTBCQuestFixes = QuestieLoader:ImportModule("QuestieTBCQuestFixes")
|
||||
---@type QuestieTBCNpcFixes
|
||||
local QuestieTBCNpcFixes = QuestieLoader:ImportModule("QuestieTBCNpcFixes")
|
||||
---@type QuestieTBCItemFixes
|
||||
local QuestieTBCItemFixes = QuestieLoader:ImportModule("QuestieTBCItemFixes")
|
||||
---@type QuestieTBCObjectFixes
|
||||
local QuestieTBCObjectFixes = QuestieLoader:ImportModule("QuestieTBCObjectFixes")
|
||||
|
||||
---@type QuestieWotlkQuestFixes
|
||||
local QuestieWotlkQuestFixes = QuestieLoader:ImportModule("QuestieWotlkQuestFixes")
|
||||
---@type QuestieWotlkNpcFixes
|
||||
local QuestieWotlkNpcFixes = QuestieLoader:ImportModule("QuestieWotlkNpcFixes")
|
||||
---@type QuestieWotlkItemFixes
|
||||
local QuestieWotlkItemFixes = QuestieLoader:ImportModule("QuestieWotlkItemFixes")
|
||||
---@type QuestieWotlkObjectFixes
|
||||
local QuestieWotlkObjectFixes = QuestieLoader:ImportModule("QuestieWotlkObjectFixes")
|
||||
|
||||
---@type IsleOfQuelDanas
|
||||
local IsleOfQuelDanas = QuestieLoader:ImportModule("IsleOfQuelDanas")
|
||||
|
||||
--- Automatic corrections
|
||||
local QuestieItemStartFixes = QuestieLoader:ImportModule("QuestieItemStartFixes")
|
||||
|
||||
--- COMPATIBILITY ---
|
||||
local C_Timer = QuestieCompat.C_Timer
|
||||
|
||||
--[[
|
||||
This file load the corrections of the database files.
|
||||
|
||||
It is a separate file so we can upstream those changes easier to cmangos and can still
|
||||
update the database files with a script.
|
||||
|
||||
Most of the corrections can be done by accessing a specific key instead of copying the
|
||||
whole object over and change it.
|
||||
You can find the keys at the beginning of each file (e.g. 'questKeys' are at the beginning of 'questDB.lua').
|
||||
|
||||
Further information on how to use this can be found at the wiki
|
||||
https://github.com/Questie/Questie/wiki/Corrections
|
||||
--]]
|
||||
|
||||
-- flags that can be used in corrections (currently only blacklists)
|
||||
QuestieCorrections.TBC_ONLY = 1 -- Hide only in TBC
|
||||
QuestieCorrections.CLASSIC_ONLY = 2 -- Hide only in Classic
|
||||
QuestieCorrections.WOTLK_ONLY = 3 -- Hide only in Wotlk
|
||||
QuestieCorrections.TBC_AND_WOTLK = 4 -- Hide in TBC and Wotlk
|
||||
QuestieCorrections.SOD_ONLY = 5 -- Hide when *not* Season of Discovery; use for SoD-only quests
|
||||
QuestieCorrections.HIDE_SOD = 6 -- Hide when Season of Discovery; use to hide quests that are not available in SoD
|
||||
QuestieCorrections.CLASSIC_AND_TBC = 7 -- Hide in both Classic and TBC
|
||||
|
||||
QuestieCorrections.killCreditObjectiveFirst = {} -- Only used for TBC quests
|
||||
|
||||
-- this function filters a table of values, if the value is TBC_ONLY or CLASSIC_ONLY, set it to true or nil if that case is met
|
||||
---@generic T
|
||||
---@param values T
|
||||
---@return T
|
||||
local function filterExpansion(values)
|
||||
local isClassic = Questie.IsClassic
|
||||
local isTBC = Questie.IsTBC
|
||||
local isWotlk = Questie.IsWotlk
|
||||
local isSoD = Questie.IsSoD
|
||||
for k, v in pairs(values) do
|
||||
if v == QuestieCorrections.WOTLK_ONLY then
|
||||
if isWotlk then
|
||||
values[k] = true
|
||||
else
|
||||
values[k] = nil
|
||||
end
|
||||
elseif v == QuestieCorrections.TBC_ONLY then
|
||||
if isTBC then
|
||||
values[k] = true
|
||||
else
|
||||
values[k] = nil
|
||||
end
|
||||
elseif v == QuestieCorrections.CLASSIC_ONLY then
|
||||
if isTBC or isWotlk then
|
||||
values[k] = nil
|
||||
else
|
||||
values[k] = true
|
||||
end
|
||||
elseif v == QuestieCorrections.TBC_AND_WOTLK then
|
||||
if isTBC or isWotlk then
|
||||
values[k] = true
|
||||
else
|
||||
values[k] = nil
|
||||
end
|
||||
elseif v == QuestieCorrections.SOD_ONLY then
|
||||
if not isSoD then
|
||||
values[k] = true
|
||||
else
|
||||
values[k] = nil
|
||||
end
|
||||
elseif v == QuestieCorrections.HIDE_SOD then
|
||||
if isSoD then
|
||||
values[k] = true
|
||||
else
|
||||
values[k] = nil
|
||||
end
|
||||
elseif v == QuestieCorrections.CLASSIC_AND_TBC then
|
||||
if isClassic or isTBC then
|
||||
values[k] = true
|
||||
else
|
||||
values[k] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
return values
|
||||
end
|
||||
|
||||
do
|
||||
local type, assert = type, assert
|
||||
--- Add runtime overrides for the database
|
||||
---@param override_table table<number, table<number, string|table|number>>
|
||||
---@param new_overrides table<number, table<number, string|table|number>>
|
||||
local function addOverride(override_table, new_overrides)
|
||||
assert(type(override_table) == "table", "Override table must be a table!")
|
||||
assert(type(new_overrides) == "table", "New overrides must be a table!")
|
||||
for id, data in pairs(new_overrides) do
|
||||
assert(type(id) == "number", "Override id must be a number!")
|
||||
assert(type(data) == "table", "Override data must be a table!")
|
||||
-- If no override exist assign it
|
||||
if not override_table[id] then
|
||||
override_table[id] = data
|
||||
else
|
||||
-- Override already exists, merge the new data
|
||||
for key, value in pairs(data) do
|
||||
override_table[id][key] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function QuestieCorrections:MinimalInit() -- db already compiled
|
||||
|
||||
-- Classic Era Corrections
|
||||
addOverride(QuestieDB.itemDataOverrides, QuestieItemFixes:LoadFactionFixes())
|
||||
addOverride(QuestieDB.npcDataOverrides, QuestieNPCFixes:LoadFactionFixes())
|
||||
addOverride(QuestieDB.objectDataOverrides, QuestieObjectFixes:LoadFactionFixes())
|
||||
addOverride(QuestieDB.questDataOverrides, QuestieQuestFixes:LoadFactionFixes())
|
||||
|
||||
-- TBC Corrections
|
||||
if (Questie.IsTBC or Questie.IsWotlk) then
|
||||
addOverride(QuestieDB.itemDataOverrides, QuestieTBCItemFixes:LoadFactionFixes())
|
||||
addOverride(QuestieDB.npcDataOverrides, QuestieTBCNpcFixes:LoadFactionFixes())
|
||||
addOverride(QuestieDB.objectDataOverrides, QuestieTBCObjectFixes:LoadFactionFixes())
|
||||
addOverride(QuestieDB.questDataOverrides, QuestieTBCQuestFixes:LoadFactionFixes())
|
||||
end
|
||||
|
||||
-- WOTLK Corrections
|
||||
if (Questie.IsWotlk) then
|
||||
addOverride(QuestieDB.npcDataOverrides, QuestieWotlkNpcFixes:LoadFactionFixes())
|
||||
addOverride(QuestieDB.itemDataOverrides, QuestieWotlkItemFixes:LoadFactionFixes())
|
||||
addOverride(QuestieDB.objectDataOverrides, QuestieWotlkObjectFixes:LoadFactionFixes())
|
||||
end
|
||||
|
||||
-- Season of Discovery Corrections
|
||||
if Questie.IsSoD then
|
||||
addOverride(QuestieDB.questDataOverrides, SeasonOfDiscovery:LoadFactionQuestFixes())
|
||||
end
|
||||
|
||||
QuestieCorrections.questItemBlacklist = filterExpansion(QuestieItemBlacklist:Load())
|
||||
QuestieCorrections.questNPCBlacklist = filterExpansion(QuestieNPCBlacklist:Load())
|
||||
QuestieCorrections.hiddenQuests = filterExpansion(QuestieQuestBlacklist:Load())
|
||||
|
||||
-- TBC Quel Danas Blacklist
|
||||
if Questie.db.global.isleOfQuelDanasPhase == IsleOfQuelDanas.MAX_ISLE_OF_QUEL_DANAS_PHASES then
|
||||
for id, hide in pairs(IsleOfQuelDanas.quests[Questie.db.global.isleOfQuelDanasPhase]) do
|
||||
-- This has to be a nil-check, because the value could be false
|
||||
if (QuestieCorrections.hiddenQuests[id] == nil) then
|
||||
QuestieCorrections.hiddenQuests[id] = hide
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Wotlk Blacklist
|
||||
if (Questie.IsWotlk) then
|
||||
-- We only add blacklist if no blacklist entry for the quest already exists
|
||||
for id, hide in pairs(QuestieQuestBlacklist.LoadAutoBlacklistWotlk()) do
|
||||
-- This has to be a nil-check, because the value could be false
|
||||
if (QuestieCorrections.hiddenQuests[id] == nil) then
|
||||
QuestieCorrections.hiddenQuests[id] = hide
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Hardcore Blacklist
|
||||
if (Questie.IsHardcore) then
|
||||
for id, _ in pairs(HardcoreBlacklist:Load()) do
|
||||
QuestieCorrections.hiddenQuests[id] = true
|
||||
end
|
||||
end
|
||||
|
||||
if QuestieCompat.Is335 then QuestieCompat.LoadBlacklists() end
|
||||
|
||||
if Questie.db.profile.showEventQuests then
|
||||
C_Timer.After(1, function()
|
||||
-- This is done with a delay because on startup the Blizzard API seems to be
|
||||
-- very slow and therefore the date calculation in QuestieEvents isn't done
|
||||
-- correctly.
|
||||
QuestieEvent:Load()
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---@param databaseTableName string The name of the QuestieDB field that should be manipulated (e.g. "itemData", "questData")
|
||||
---@param corrections table All corrections for the given databaseTableName (e.g. all quest corrections)
|
||||
---@param reversedKeys table The reverted QuestieDB keys for the given databaseTableName (e.g. QuestieDB.questKeys)
|
||||
---@param validationTables table Only used by the CI validation scripts to validate the corrections against the original database values and find irrelevant corrections
|
||||
---@param noOverwrites true? Do not overwrite existing values
|
||||
---@param noNewEntries true? Do not create new entries in the database
|
||||
local _LoadCorrections = function(databaseTableName, corrections, reversedKeys, validationTables, noOverwrites, noNewEntries)
|
||||
for id, data in pairs(corrections) do
|
||||
for key, value in pairs(data) do
|
||||
-- Create the id if missing unless noNewEntries is set
|
||||
if not QuestieDB[databaseTableName][id] and not noNewEntries then
|
||||
QuestieDB[databaseTableName][id] = {}
|
||||
end
|
||||
if validationTables and QuestieDB[databaseTableName][id] then
|
||||
if value and QuestieLib.equals(QuestieDB[databaseTableName][id][key], value) and validationTables[databaseTableName][id] and
|
||||
QuestieLib.equals(validationTables[databaseTableName][id][key], value) then
|
||||
Questie:Warning("Correction of " ..
|
||||
databaseTableName .. " " .. tostring(id) .. "." .. reversedKeys[key] .. " matches base DB! Value:" .. tostring(value))
|
||||
end
|
||||
end
|
||||
if QuestieDB[databaseTableName][id] then
|
||||
if noOverwrites and QuestieDB[databaseTableName][id][key] == nil then
|
||||
QuestieDB[databaseTableName][id][key] = value
|
||||
elseif not noOverwrites then
|
||||
QuestieDB[databaseTableName][id][key] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---@param validationTables table? Only used by the CI validation scripts to validate the corrections against the original database values and find irrelevant corrections
|
||||
function QuestieCorrections:Initialize(validationTables)
|
||||
QuestieQuestFixes:LoadMissingQuests()
|
||||
|
||||
-- Classic Corrections
|
||||
_LoadCorrections("questData", QuestieClassicQuestReputationFixes:Load(), QuestieDB.questKeysReversed, validationTables)
|
||||
_LoadCorrections("questData", QuestieQuestFixes:Load(), QuestieDB.questKeysReversed, validationTables)
|
||||
_LoadCorrections("npcData", QuestieNPCFixes:Load(), QuestieDB.npcKeysReversed, validationTables)
|
||||
_LoadCorrections("itemData", QuestieItemFixes:Load(), QuestieDB.itemKeysReversed, validationTables)
|
||||
_LoadCorrections("objectData", QuestieObjectFixes:Load(), QuestieDB.objectKeysReversed, validationTables)
|
||||
|
||||
if Questie.IsTBC or Questie.IsWotlk then
|
||||
_LoadCorrections("questData", QuestieTBCQuestFixes:Load(), QuestieDB.questKeysReversed, validationTables)
|
||||
_LoadCorrections("npcData", QuestieTBCNpcFixes:Load(), QuestieDB.npcKeysReversed, validationTables)
|
||||
_LoadCorrections("itemData", QuestieTBCItemFixes:Load(), QuestieDB.itemKeysReversed, validationTables)
|
||||
_LoadCorrections("objectData", QuestieTBCObjectFixes:Load(), QuestieDB.objectKeysReversed, validationTables)
|
||||
end
|
||||
|
||||
if Questie.IsWotlk then
|
||||
_LoadCorrections("questData", QuestieWotlkQuestFixes:Load(), QuestieDB.questKeysReversed, validationTables)
|
||||
_LoadCorrections("npcData", QuestieWotlkNpcFixes:LoadAutomatics(), QuestieDB.npcKeysReversed, validationTables)
|
||||
_LoadCorrections("npcData", QuestieWotlkNpcFixes:Load(), QuestieDB.npcKeysReversed, validationTables)
|
||||
_LoadCorrections("itemData", QuestieWotlkItemFixes:Load(), QuestieDB.itemKeysReversed, validationTables)
|
||||
_LoadCorrections("objectData", QuestieWotlkObjectFixes:Load(), QuestieDB.objectKeysReversed, validationTables)
|
||||
end
|
||||
|
||||
if Questie.IsSoD then
|
||||
_LoadCorrections("questData", SeasonOfDiscovery:LoadBaseQuests(), QuestieDB.questKeysReversed, validationTables)
|
||||
_LoadCorrections("questData", SeasonOfDiscovery:LoadQuests(), QuestieDB.questKeysReversed, validationTables)
|
||||
_LoadCorrections("npcData", SeasonOfDiscovery:LoadBaseNPCs(), QuestieDB.npcKeysReversed, validationTables)
|
||||
_LoadCorrections("npcData", SeasonOfDiscovery:LoadNPCs(), QuestieDB.npcKeysReversed, validationTables)
|
||||
_LoadCorrections("itemData", SeasonOfDiscovery:LoadBaseItems(), QuestieDB.itemKeysReversed, validationTables)
|
||||
_LoadCorrections("itemData", SeasonOfDiscovery:LoadItems(), QuestieDB.itemKeysReversed, validationTables)
|
||||
_LoadCorrections("objectData", SeasonOfDiscovery:LoadBaseObjects(), QuestieDB.objectKeysReversed, validationTables)
|
||||
_LoadCorrections("objectData", SeasonOfDiscovery:LoadObjects(), QuestieDB.objectKeysReversed, validationTables)
|
||||
end
|
||||
|
||||
--- Corrections that apply to all versions
|
||||
_LoadCorrections("itemData", QuestieItemStartFixes:LoadAutomaticQuestStarts(), QuestieDB.itemKeysReversed, validationTables, true, true)
|
||||
|
||||
if QuestieCompat.Is335 then QuestieCompat.LoadCorrections(_LoadCorrections, validationTables) end
|
||||
|
||||
local patchCount = 0
|
||||
for _, quest in pairs(QuestieDB.questData) do
|
||||
if (not quest[QuestieDB.questKeys.requiredRaces]) or quest[QuestieDB.questKeys.requiredRaces] == 0 then
|
||||
-- check against questgiver
|
||||
local canHorde = false
|
||||
local canAlliance = false
|
||||
local starts = quest[QuestieDB.questKeys.startedBy]
|
||||
if starts then
|
||||
starts = starts[1]
|
||||
if starts then
|
||||
for _, id in pairs(starts) do
|
||||
local npc = QuestieDB.npcData[id]
|
||||
if npc then
|
||||
local friendly = npc[QuestieDB.npcKeys.friendlyToFaction]
|
||||
if friendly then
|
||||
if friendly == "H" then
|
||||
canHorde = true
|
||||
elseif friendly == "A" then
|
||||
canAlliance = true
|
||||
elseif friendly == "AH" then
|
||||
canAlliance = true
|
||||
canHorde = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if canAlliance ~= canHorde then
|
||||
patchCount = patchCount + 1
|
||||
if canAlliance then
|
||||
quest[QuestieDB.questKeys.requiredRaces] = QuestieDB.raceKeys.ALL_ALLIANCE
|
||||
else
|
||||
quest[QuestieDB.questKeys.requiredRaces] = QuestieDB.raceKeys.ALL_HORDE
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
QuestieCorrections:MinimalInit()
|
||||
|
||||
end
|
||||
|
||||
local WAYPOINT_MIN_DISTANCE = 1.5 -- todo: make this a config value maybe?
|
||||
local ZONE_SCALES = {
|
||||
[ZoneDB.zoneIDs.STORMWIND_CITY] = 0.5,
|
||||
[ZoneDB.zoneIDs.IRONFORGE] = 0.5,
|
||||
[ZoneDB.zoneIDs.TELDRASSIL] = 0.5,
|
||||
|
||||
[ZoneDB.zoneIDs.ORGRIMMAR] = 0.5,
|
||||
[ZoneDB.zoneIDs.THUNDER_BLUFF] = 0.5,
|
||||
[ZoneDB.zoneIDs.UNDERCITY] = 0.5,
|
||||
}
|
||||
|
||||
|
||||
local abs, sqrt = math.abs, math.sqrt
|
||||
local function euclid(x, y, i, e)
|
||||
local xd = abs(x - i)
|
||||
local yd = abs(y - e)
|
||||
return sqrt(xd * xd + yd * yd)
|
||||
end
|
||||
|
||||
function QuestieCorrections:OptimizeWaypoints(waypointData)
|
||||
local newWaypointZones = {}
|
||||
for zone, waypointList in pairs(waypointData) do
|
||||
local newWaypointList = {}
|
||||
if waypointList[1] and type(waypointList[1][1]) == "number" then
|
||||
waypointList = {waypointList} -- corrections support both {{x,y}, ...} and {{{x,y}, ...}, {{x,y}, ...}, ...}
|
||||
end
|
||||
for _, waypoints in pairs(waypointList) do
|
||||
-- apply RDP algorithm
|
||||
local minDist = WAYPOINT_MIN_DISTANCE * (ZONE_SCALES[zone] or 1)
|
||||
local newWaypoints = RamerDouglasPeucker(waypoints, 0.1, true)
|
||||
|
||||
waypoints = newWaypoints
|
||||
newWaypoints = {}
|
||||
|
||||
-- subdivide waypoints where needed
|
||||
-- We do this because the clickable area of waypoint lines can only be a square, so lines need to be broken up in some places
|
||||
local lastWay
|
||||
for _, way in pairs(waypoints) do
|
||||
if lastWay then
|
||||
local dist = euclid(way[1], way[2], lastWay[1], lastWay[2])
|
||||
if dist > minDist then
|
||||
local divs = math.ceil(dist/minDist)
|
||||
for i=1,divs do
|
||||
local mul0 = i/divs
|
||||
local mul1 = 1-mul0
|
||||
newWaypoints[#newWaypoints+1] = {way[1] * mul0 + lastWay[1] * mul1, way[2] * mul0 + lastWay[2] * mul1}
|
||||
end
|
||||
else
|
||||
newWaypoints[#newWaypoints+1] = way
|
||||
end
|
||||
else
|
||||
newWaypoints[#newWaypoints+1] = way
|
||||
end
|
||||
lastWay = way
|
||||
end
|
||||
newWaypointList[#newWaypointList+1] = newWaypoints
|
||||
end
|
||||
newWaypointZones[zone] = newWaypointList
|
||||
end
|
||||
return newWaypointZones
|
||||
end
|
||||
|
||||
function QuestieCorrections:PreCompile() -- this happens only if we are about to compile the database. Run intensive preprocessing tasks here (like ramer-douglas-peucker)
|
||||
local waypointKey = QuestieDB.npcKeys["waypoints"]
|
||||
local npcData = QuestieDB.npcData
|
||||
|
||||
local count = 0
|
||||
for id, data in pairs(npcData) do
|
||||
local way = data[waypointKey]
|
||||
if way then
|
||||
npcData[id][waypointKey] = QuestieCorrections:OptimizeWaypoints(way)
|
||||
end
|
||||
|
||||
if count > 500 then -- 500 seems like a good number
|
||||
count = 0
|
||||
coroutine.yield()
|
||||
end
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,228 @@
|
||||
---@class QuestieItemBlacklist
|
||||
local QuestieItemBlacklist = QuestieLoader:CreateModule("QuestieItemBlacklist")
|
||||
|
||||
---@return table<ItemId, boolean>
|
||||
function QuestieItemBlacklist:Load()
|
||||
return {
|
||||
[765] = true, -- silverleaf
|
||||
[774] = true, -- malachite
|
||||
[785] = true, -- mageroyal
|
||||
[929] = true, -- Healing Potion
|
||||
[1179] = true, -- ice cold milk
|
||||
[1206] = true, -- moss agate
|
||||
[1210] = true, -- shadowgem
|
||||
[1529] = true, -- jade
|
||||
[1705] = true, -- lesser moonstone
|
||||
[2447] = true, -- peacebloom
|
||||
[2449] = true, -- earthroot
|
||||
[2450] = true, -- briarthorn
|
||||
[2452] = true, -- swiftthistle
|
||||
[2453] = true, -- bruiseweed
|
||||
[2455] = true, -- Minor Mana Potion
|
||||
[2589] = true, -- linen cloth
|
||||
[2592] = true, -- wool cloth
|
||||
[2842] = true, -- Silver Bar
|
||||
[2997] = true, -- bolt of wool
|
||||
[3355] = true, -- wild steelbloom
|
||||
[3356] = true, -- kingsblood
|
||||
[3357] = true, -- liferoot
|
||||
[3358] = true, -- khadgar's whisker
|
||||
[3369] = true, -- grave moss
|
||||
[3818] = true, -- fadeleaf
|
||||
[3819] = true, -- wintersbite
|
||||
[3820] = true, -- stranglekelp
|
||||
[3821] = true, -- goldthorn
|
||||
[3864] = true, -- citrine
|
||||
[4306] = true, -- silk cloth
|
||||
[4338] = true, -- mageweave
|
||||
[4625] = true, -- firebloom
|
||||
[5056] = true, -- root sample
|
||||
[7079] = true, -- globe of water
|
||||
[7909] = true, -- aquamarine
|
||||
[7910] = true, -- star ruby
|
||||
[8153] = true, -- wildvine
|
||||
[8244] = true, -- flawless-draenethyst-sphere
|
||||
[8831] = true, -- purple lotus
|
||||
[8836] = true, -- arthas tears
|
||||
[8838] = true, -- sungrass
|
||||
[8839] = true, -- blindweed
|
||||
[8845] = true, -- ghost mushroom
|
||||
[8846] = true, -- gromsblood
|
||||
[8932] = true, -- Alterac Swiss
|
||||
[8956] = true, -- Oil of Immolation
|
||||
[9061] = true, -- Goblin Rocket Fuel
|
||||
[10561] = true, -- Mithril Casing
|
||||
[10593] = true, -- imperfect-draenethyst-fragment
|
||||
[11178] = true, -- Large Radiant Shard
|
||||
[12207] = true, -- giant egg
|
||||
[12361] = true, -- blue sapphire
|
||||
[12363] = true, -- arcane crystal
|
||||
[12364] = true, -- huge emerald
|
||||
[12799] = true, -- large opal
|
||||
[12800] = true, -- azerothian diamond
|
||||
[13422] = true, -- stonescale-eel
|
||||
[13444] = true, -- major mana potion
|
||||
[13446] = true, -- Major Healing Potion
|
||||
[13461] = true, -- Greater Arcane Protection Potion
|
||||
[13463] = true, -- dreamfoil
|
||||
[13464] = true, -- golden sansam
|
||||
[13465] = true, -- mountain silversage
|
||||
[13466] = true, -- plaguebloom
|
||||
[13467] = true, -- icecap
|
||||
[13468] = true, -- black lotus
|
||||
[13757] = true, -- Lightning Eel
|
||||
[14047] = true, -- runecloth
|
||||
[14048] = true, -- bolt of runecloth
|
||||
[14227] = true, -- Ironweb Spider Silk
|
||||
[14344] = true, -- large brilliant shard
|
||||
[14530] = true, -- Heavy Runecloth Bandage
|
||||
[15992] = true, -- Dense Blasting Powder
|
||||
[18335] = true, -- Pristine Black Diamond
|
||||
[19440] = true, -- Powerful Anti-Venom
|
||||
[20452] = true, -- Smoked Desert Dumplings
|
||||
|
||||
-- stranglethorn pages
|
||||
[2725] = true,
|
||||
[2728] = true,
|
||||
[2730] = true,
|
||||
[2732] = true,
|
||||
[2734] = true,
|
||||
[2735] = true,
|
||||
[2738] = true,
|
||||
[2740] = true,
|
||||
[2742] = true,
|
||||
[2744] = true,
|
||||
[2745] = true,
|
||||
[2748] = true,
|
||||
[2749] = true,
|
||||
[2750] = true,
|
||||
[2751] = true,
|
||||
|
||||
-- shredder operating manual
|
||||
[16645] = true,
|
||||
[16646] = true,
|
||||
[16647] = true,
|
||||
[16648] = true,
|
||||
[16649] = true,
|
||||
[16650] = true,
|
||||
[16651] = true,
|
||||
[16652] = true,
|
||||
[16653] = true,
|
||||
[16654] = true,
|
||||
[16655] = true,
|
||||
[16656] = true,
|
||||
|
||||
--zul'gurub coins and bijous
|
||||
[19698] = true,
|
||||
[19699] = true,
|
||||
[19700] = true,
|
||||
[19701] = true,
|
||||
[19702] = true,
|
||||
[19703] = true,
|
||||
[19704] = true,
|
||||
[19705] = true,
|
||||
[19706] = true,
|
||||
[19707] = true,
|
||||
[19708] = true,
|
||||
[19709] = true,
|
||||
[19710] = true,
|
||||
[19711] = true,
|
||||
[19712] = true,
|
||||
[19713] = true,
|
||||
[19714] = true,
|
||||
[19715] = true,
|
||||
|
||||
--ahn'qiraj scarabs and idols
|
||||
[20858] = true,
|
||||
[20859] = true,
|
||||
[20860] = true,
|
||||
[20861] = true,
|
||||
[20862] = true,
|
||||
[20863] = true,
|
||||
[20864] = true,
|
||||
[20865] = true,
|
||||
[20866] = true,
|
||||
[20867] = true,
|
||||
[20868] = true,
|
||||
[20869] = true,
|
||||
[20870] = true,
|
||||
[20871] = true,
|
||||
[20872] = true,
|
||||
[20873] = true,
|
||||
[20874] = true,
|
||||
[20875] = true,
|
||||
[20876] = true,
|
||||
[20877] = true,
|
||||
[20878] = true,
|
||||
[20879] = true,
|
||||
[20889] = true,
|
||||
|
||||
--Tier 0.5 & Phase 5
|
||||
[4265] = true, -- Heavy Armor Kit
|
||||
[15564] = true, -- Rugged Armor Kit
|
||||
[16671] = true, -- Bindings of Elements
|
||||
[16673] = true, -- Cord of Elements
|
||||
[16680] = true, -- Beaststalker's Belt
|
||||
[16681] = true, -- Beaststalker's Bindings
|
||||
[16683] = true, -- Magister's Bindings
|
||||
[16685] = true, -- Magister's Belt
|
||||
[16696] = true, -- Devout Belt
|
||||
[16697] = true, -- Devout Bracers
|
||||
[16702] = true, -- Dreadmist Belt
|
||||
[16703] = true, -- Dreadmist Bracers
|
||||
[16705] = true, -- Dreadmist Wraps
|
||||
[16710] = true, -- Shadowcraft Bracers
|
||||
[16713] = true, -- Shadowcraft Belt
|
||||
[16714] = true, -- Wildheart Bracers
|
||||
[16716] = true, -- Wildheart Belt
|
||||
[16722] = true, -- Lightforge Bracers
|
||||
[16723] = true, -- Lightforge Belt
|
||||
[16735] = true, -- Bracers of Valor
|
||||
[16736] = true, -- Belt of Valor
|
||||
[20520] = true, -- Dark Rune
|
||||
|
||||
-- Phase 6
|
||||
[12811] = true, -- righteous orb
|
||||
[22525] = true, -- crypt fiend parts
|
||||
[22526] = true, -- bone fragments
|
||||
[22527] = true, -- core of elements
|
||||
[22528] = true, -- dark iron scraps
|
||||
[22529] = true, -- savage frond
|
||||
|
||||
-- TBC Phase 1
|
||||
[21887] = true, -- Knothide Leather
|
||||
[22445] = true, -- Arcane Dust
|
||||
[22572] = true, -- Mote of Air
|
||||
[22573] = true, -- Mote of Earth
|
||||
[22574] = true, -- Mote of Fire
|
||||
[22575] = true, -- Mote of Life
|
||||
[22576] = true, -- Mote of Mana
|
||||
[22577] = true, -- Mote of Shadow
|
||||
[22578] = true, -- Mote of Water
|
||||
[22786] = true, -- Dreaming Glory
|
||||
[22790] = true, -- Ancient Lichen
|
||||
[22829] = true, -- Super Healing Potion
|
||||
[22832] = true, -- Super Mana Potion
|
||||
[23445] = true, -- Fel Iron Bar
|
||||
[23793] = true, -- Heavy Knothide Leather
|
||||
[24246] = true, -- Sanguine Hibiscus
|
||||
[24368] = true, -- Coilfang Armaments
|
||||
[24401] = true, -- Unidentified Plant Parts
|
||||
[26042] = true, -- Oshu'gun Crystal Powder Sample
|
||||
[26043] = true, -- Oshu'gun Crystal Powder Sample
|
||||
[29425] = true, -- Mark of Kiljaeden
|
||||
[29426] = true, -- Firewing Signet
|
||||
[29460] = true, -- Ethereum Prison Key
|
||||
[29739] = true, -- Arcane Tome
|
||||
[29740] = true, -- Fel Armament
|
||||
[30809] = true, -- Mark of Sargeras
|
||||
[30810] = true, -- Sunfury Signet
|
||||
[32569] = true, -- Apexis Shard
|
||||
|
||||
-- Wrath of the Lich King : Phase 1
|
||||
[33470] = true, -- Frostweave Cloth
|
||||
[42780] = true, -- Relic of Ulduar
|
||||
[43013] = true, -- Chilled Meat
|
||||
|
||||
}
|
||||
end
|
||||
@@ -0,0 +1,23 @@
|
||||
---@class QuestieNPCBlacklist
|
||||
local QuestieNPCBlacklist = QuestieLoader:CreateModule("QuestieNPCBlacklist")
|
||||
---@type QuestieCorrections
|
||||
local QuestieCorrections = QuestieLoader:ImportModule("QuestieCorrections")
|
||||
|
||||
---@return table<NpcId, boolean>
|
||||
function QuestieNPCBlacklist:Load()
|
||||
return {
|
||||
[8001] = true,
|
||||
[13151] = QuestieCorrections.CLASSIC_ONLY, -- Syndicate Master Ryson
|
||||
[13153] = QuestieCorrections.CLASSIC_ONLY, -- Commander Mulfort
|
||||
[13154] = QuestieCorrections.CLASSIC_ONLY, -- Commander Louis Philips
|
||||
[13319] = QuestieCorrections.CLASSIC_ONLY, -- Commander Duffy
|
||||
[13320] = QuestieCorrections.CLASSIC_ONLY, -- Commander Karl Philips
|
||||
[13377] = QuestieCorrections.CLASSIC_ONLY, -- Master Engineer Zinfizzlex
|
||||
[13446] = QuestieCorrections.CLASSIC_ONLY, -- Field Marshal Teravaine
|
||||
[13449] = QuestieCorrections.CLASSIC_ONLY, -- Warmaster Garrick
|
||||
[15799] = QuestieCorrections.CLASSIC_ONLY, -- Colossus Researcher Eazel (AQ Opening event)
|
||||
[17544] = true, -- M'uru in Silvermoon City removed starting with SWP patch
|
||||
[21155] = true, -- Bloodelf War Effort Recruiter
|
||||
[178420] = QuestieCorrections.WOTLK_ONLY, -- removed in WotLK
|
||||
}
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,532 @@
|
||||
---@type QuestieQuestBlacklist
|
||||
local QuestieQuestBlacklist = QuestieLoader:ImportModule("QuestieQuestBlacklist")
|
||||
|
||||
local currentPhase = 5 -- TODO: Use API function which hopefully will come in the future
|
||||
|
||||
-- This function blacklists any quests in phases LATER than the currentPhase value
|
||||
-- so in Phase 1, quests in phases 2+ are blacklisted, in phase 2, phases 3+ are blacklisted, etc
|
||||
-- Phase 1 is omitted, because everything not in this list is supposed to be available in Phase 1
|
||||
local questsToBlacklistBySoMPhase = {
|
||||
[1] = {}, -- Phase 1 - Regular Phase 1 + Dire Maul + Tier 0.5 quests (this is required for counting, but should stay empty)
|
||||
[2] = { -- Phase 2 - World Bosses
|
||||
},
|
||||
[3] = { -- Phase 3 - BWL + Darkmoon Faire
|
||||
[7761] = true, -- Blackhand's Command BWL pre quest
|
||||
[7787] = true,
|
||||
-- Darkmoon Faire quests
|
||||
[7902] = true,
|
||||
[7903] = true,
|
||||
[8222] = true,
|
||||
[7901] = true,
|
||||
[7899] = true,
|
||||
[7940] = true,
|
||||
[7900] = true,
|
||||
[7907] = true,
|
||||
[7927] = true,
|
||||
[7929] = true,
|
||||
[7928] = true,
|
||||
[7946] = true,
|
||||
[8223] = true,
|
||||
[7934] = true,
|
||||
[7981] = true,
|
||||
[7943] = true,
|
||||
[7894] = true,
|
||||
[7933] = true,
|
||||
[7898] = true,
|
||||
[7885] = true,
|
||||
[7942] = true,
|
||||
[7883] = true,
|
||||
[7892] = true,
|
||||
[7937] = true,
|
||||
[7939] = true,
|
||||
[7893] = true,
|
||||
[7891] = true,
|
||||
[7896] = true,
|
||||
[7884] = true,
|
||||
[7882] = true,
|
||||
[7897] = true,
|
||||
[7895] = true,
|
||||
[7941] = true,
|
||||
[7881] = true,
|
||||
[7890] = true,
|
||||
[7889] = true,
|
||||
[7945] = true,
|
||||
[7935] = true,
|
||||
[7938] = true,
|
||||
[7944] = true,
|
||||
[7932] = true,
|
||||
[7930] = true,
|
||||
[7931] = true,
|
||||
[7936] = true,
|
||||
[9249] = true,
|
||||
[10939] = true,
|
||||
[10940] = true,
|
||||
[10941] = true,
|
||||
-----------------
|
||||
},
|
||||
[4] = { -- Phase 4 - Zul'Gurub
|
||||
[8411] = true,
|
||||
[8056] = true,
|
||||
[8057] = true,
|
||||
[8064] = true,
|
||||
[8065] = true,
|
||||
[8074] = true,
|
||||
[8075] = true,
|
||||
[8110] = true,
|
||||
[8111] = true,
|
||||
[8112] = true,
|
||||
[8113] = true,
|
||||
[8116] = true,
|
||||
[8117] = true,
|
||||
[8118] = true,
|
||||
[8119] = true,
|
||||
[8041] = true,
|
||||
[8042] = true,
|
||||
[8043] = true,
|
||||
[8044] = true,
|
||||
[8045] = true,
|
||||
[8046] = true,
|
||||
[8047] = true,
|
||||
[8048] = true,
|
||||
[8049] = true,
|
||||
[8050] = true,
|
||||
[8051] = true,
|
||||
[8052] = true,
|
||||
[8053] = true,
|
||||
[8054] = true,
|
||||
[8055] = true,
|
||||
[8058] = true,
|
||||
[8059] = true,
|
||||
[8060] = true,
|
||||
[8061] = true,
|
||||
[8062] = true,
|
||||
[8063] = true,
|
||||
[8066] = true,
|
||||
[8067] = true,
|
||||
[8068] = true,
|
||||
[8069] = true,
|
||||
[8070] = true,
|
||||
[8071] = true,
|
||||
[8072] = true,
|
||||
[8073] = true,
|
||||
[8076] = true,
|
||||
[8077] = true,
|
||||
[8078] = true,
|
||||
[8079] = true,
|
||||
[8101] = true,
|
||||
[8102] = true,
|
||||
[8103] = true,
|
||||
[8104] = true,
|
||||
[8106] = true,
|
||||
[8107] = true,
|
||||
[8108] = true,
|
||||
[8109] = true,
|
||||
[8141] = true,
|
||||
[8142] = true,
|
||||
[8143] = true,
|
||||
[8144] = true,
|
||||
[8145] = true,
|
||||
[8146] = true,
|
||||
[8147] = true,
|
||||
[8148] = true,
|
||||
[8184] = true,
|
||||
[8185] = true,
|
||||
[8186] = true,
|
||||
[8187] = true,
|
||||
[8188] = true,
|
||||
[8189] = true,
|
||||
[8190] = true,
|
||||
[8191] = true,
|
||||
[8192] = true,
|
||||
[8195] = true,
|
||||
[8196] = true,
|
||||
[8201] = true,
|
||||
[8227] = true,
|
||||
[8238] = true,
|
||||
[8239] = true,
|
||||
[8240] = true,
|
||||
[8243] = true,
|
||||
[8246] = true,
|
||||
[8446] = true,
|
||||
[8447] = true,
|
||||
[9208] = true,
|
||||
[9209] = true,
|
||||
[9210] = true,
|
||||
[8307] = true,
|
||||
[8313] = true,
|
||||
[8317] = true,
|
||||
[8282] = true,
|
||||
[8278] = true,
|
||||
[8323] = true,
|
||||
[8324] = true,
|
||||
[8275] = true,
|
||||
[8309] = true,
|
||||
[8310] = true,
|
||||
[8315] = true,
|
||||
[8319] = true,
|
||||
[8341] = true,
|
||||
[8342] = true,
|
||||
[8343] = true,
|
||||
[8331] = true,
|
||||
[8332] = true,
|
||||
[8333] = true,
|
||||
[8306] = true,
|
||||
[8321] = true,
|
||||
[8362] = true,
|
||||
[8364] = true,
|
||||
[9248] = true,
|
||||
[8281] = true,
|
||||
[8285] = true,
|
||||
[8279] = true,
|
||||
[8287] = true,
|
||||
[8314] = true,
|
||||
},
|
||||
[5] = { -- Phase 5 - AQ
|
||||
[8277] = true,
|
||||
[8280] = true,
|
||||
[8283] = true,
|
||||
[8284] = true,
|
||||
[8304] = true,
|
||||
[8318] = true,
|
||||
[8320] = true,
|
||||
[8361] = true,
|
||||
[8276] = true,
|
||||
[8747] = true,
|
||||
[8748] = true,
|
||||
[8749] = true,
|
||||
[8750] = true,
|
||||
[8752] = true,
|
||||
[8753] = true,
|
||||
[8754] = true,
|
||||
[8755] = true,
|
||||
[8757] = true,
|
||||
[8758] = true,
|
||||
[8759] = true,
|
||||
[8760] = true,
|
||||
[8800] = true,
|
||||
[8751] = true,
|
||||
[8756] = true,
|
||||
[8761] = true,
|
||||
[8801] = true,
|
||||
[8802] = true,
|
||||
[8764] = true,
|
||||
[8765] = true,
|
||||
[8766] = true,
|
||||
[8620] = true,
|
||||
[8621] = true,
|
||||
[8622] = true,
|
||||
[8623] = true,
|
||||
[8624] = true,
|
||||
[8625] = true,
|
||||
[8626] = true,
|
||||
[8627] = true,
|
||||
[8628] = true,
|
||||
[8629] = true,
|
||||
[8630] = true,
|
||||
[8631] = true,
|
||||
[8632] = true,
|
||||
[8633] = true,
|
||||
[8634] = true,
|
||||
[8637] = true,
|
||||
[8638] = true,
|
||||
[8639] = true,
|
||||
[8640] = true,
|
||||
[8641] = true,
|
||||
[8655] = true,
|
||||
[8656] = true,
|
||||
[8657] = true,
|
||||
[8658] = true,
|
||||
[8659] = true,
|
||||
[8660] = true,
|
||||
[8661] = true,
|
||||
[8662] = true,
|
||||
[8663] = true,
|
||||
[8664] = true,
|
||||
[8665] = true,
|
||||
[8666] = true,
|
||||
[8667] = true,
|
||||
[8668] = true,
|
||||
[8669] = true,
|
||||
[8689] = true,
|
||||
[8690] = true,
|
||||
[8691] = true,
|
||||
[8692] = true,
|
||||
[8693] = true,
|
||||
[8694] = true,
|
||||
[8695] = true,
|
||||
[8696] = true,
|
||||
[8697] = true,
|
||||
[8698] = true,
|
||||
[8699] = true,
|
||||
[8700] = true,
|
||||
[8701] = true,
|
||||
[8702] = true,
|
||||
[8703] = true,
|
||||
[8704] = true,
|
||||
[8705] = true,
|
||||
[8706] = true,
|
||||
[8707] = true,
|
||||
[8708] = true,
|
||||
[8709] = true,
|
||||
[8710] = true,
|
||||
[8711] = true,
|
||||
[8712] = true,
|
||||
[8728] = true,
|
||||
[8729] = true,
|
||||
[8730] = true,
|
||||
[8733] = true,
|
||||
[8734] = true,
|
||||
[8735] = true,
|
||||
[8736] = true,
|
||||
[8741] = true,
|
||||
[8742] = true,
|
||||
[8743] = true,
|
||||
[8745] = true,
|
||||
[8783] = true,
|
||||
[8784] = true,
|
||||
[8789] = true,
|
||||
[8790] = true,
|
||||
[8791] = true,
|
||||
[8602] = true,
|
||||
[8603] = true,
|
||||
[8606] = true,
|
||||
[8592] = true,
|
||||
[8593] = true,
|
||||
[8594] = true,
|
||||
[8595] = true,
|
||||
[8596] = true,
|
||||
[8597] = true,
|
||||
[8598] = true,
|
||||
[8599] = true,
|
||||
[8584] = true,
|
||||
[8585] = true,
|
||||
[8586] = true,
|
||||
[8587] = true,
|
||||
[8555] = true,
|
||||
[8556] = true,
|
||||
[8557] = true,
|
||||
[8558] = true,
|
||||
[8559] = true,
|
||||
[8560] = true,
|
||||
[8561] = true,
|
||||
[8562] = true,
|
||||
[8572] = true,
|
||||
[8573] = true,
|
||||
[8574] = true,
|
||||
[8575] = true,
|
||||
[8576] = true,
|
||||
[8577] = true,
|
||||
[8578] = true,
|
||||
[8496] = true,
|
||||
[8579] = true,
|
||||
[8544] = true,
|
||||
[8519] = true,
|
||||
[8856] = true,
|
||||
[8829] = true,
|
||||
[8497] = true,
|
||||
[8804] = true,
|
||||
[8805] = true,
|
||||
[8536] = true,
|
||||
[8857] = true,
|
||||
[8498] = true,
|
||||
[8806] = true,
|
||||
[8308] = true,
|
||||
[8858] = true,
|
||||
[8859] = true,
|
||||
[8807] = true,
|
||||
[8771] = true,
|
||||
[8773] = true,
|
||||
[8775] = true,
|
||||
[8777] = true,
|
||||
[8809] = true,
|
||||
[8787] = true,
|
||||
[8785] = true,
|
||||
[8538] = true,
|
||||
[8534] = true,
|
||||
[8738] = true,
|
||||
[8502] = true,
|
||||
[8537] = true,
|
||||
[8539] = true,
|
||||
[8786] = true,
|
||||
[8737] = true,
|
||||
[8687] = true,
|
||||
[8739] = true,
|
||||
[8501] = true,
|
||||
[8535] = true,
|
||||
[8808] = true,
|
||||
[8810] = true,
|
||||
[8740] = true,
|
||||
[8381] = true,
|
||||
[8779] = true,
|
||||
[8540] = true,
|
||||
[8541] = true,
|
||||
[8778] = true,
|
||||
[8780] = true,
|
||||
[8781] = true,
|
||||
[8782] = true,
|
||||
[8770] = true,
|
||||
[8772] = true,
|
||||
[8774] = true,
|
||||
[8776] = true,
|
||||
[8316] = true,
|
||||
[9023] = true,
|
||||
[8382] = true,
|
||||
[8286] = true,
|
||||
[8288] = true,
|
||||
[8301] = true,
|
||||
[8302] = true,
|
||||
[8303] = true,
|
||||
[8305] = true,
|
||||
[8548] = true,
|
||||
[8818] = true,
|
||||
[8817] = true,
|
||||
[8816] = true,
|
||||
[8815] = true,
|
||||
[8814] = true,
|
||||
[8820] = true,
|
||||
[8826] = true,
|
||||
[8825] = true,
|
||||
[8824] = true,
|
||||
[8823] = true,
|
||||
[8822] = true,
|
||||
[8821] = true,
|
||||
[8819] = true,
|
||||
},
|
||||
[6] = { --Phase 6 - Naxxramas
|
||||
[9085] = true,
|
||||
[9142] = true,
|
||||
[9165] = true,
|
||||
[9141] = true,
|
||||
[9033] = true,
|
||||
[9034] = true,
|
||||
[9036] = true,
|
||||
[9037] = true,
|
||||
[9038] = true,
|
||||
[9039] = true,
|
||||
[9040] = true,
|
||||
[9041] = true,
|
||||
[9042] = true,
|
||||
[9043] = true,
|
||||
[9044] = true,
|
||||
[9045] = true,
|
||||
[9046] = true,
|
||||
[9047] = true,
|
||||
[9048] = true,
|
||||
[9049] = true,
|
||||
[9050] = true,
|
||||
[9054] = true,
|
||||
[9055] = true,
|
||||
[9056] = true,
|
||||
[9057] = true,
|
||||
[9058] = true,
|
||||
[9059] = true,
|
||||
[9060] = true,
|
||||
[9061] = true,
|
||||
[9068] = true,
|
||||
[9069] = true,
|
||||
[9070] = true,
|
||||
[9071] = true,
|
||||
[9072] = true,
|
||||
[9073] = true,
|
||||
[9074] = true,
|
||||
[9075] = true,
|
||||
[9077] = true,
|
||||
[9078] = true,
|
||||
[9079] = true,
|
||||
[9080] = true,
|
||||
[9081] = true,
|
||||
[9082] = true,
|
||||
[9083] = true,
|
||||
[9084] = true,
|
||||
[9086] = true,
|
||||
[9087] = true,
|
||||
[9088] = true,
|
||||
[9089] = true,
|
||||
[9090] = true,
|
||||
[9091] = true,
|
||||
[9092] = true,
|
||||
[9093] = true,
|
||||
[9095] = true,
|
||||
[9096] = true,
|
||||
[9097] = true,
|
||||
[9098] = true,
|
||||
[9099] = true,
|
||||
[9100] = true,
|
||||
[9101] = true,
|
||||
[9102] = true,
|
||||
[9103] = true,
|
||||
[9104] = true,
|
||||
[9105] = true,
|
||||
[9106] = true,
|
||||
[9107] = true,
|
||||
[9108] = true,
|
||||
[9109] = true,
|
||||
[9110] = true,
|
||||
[9111] = true,
|
||||
[9112] = true,
|
||||
[9113] = true,
|
||||
[9114] = true,
|
||||
[9115] = true,
|
||||
[9116] = true,
|
||||
[9117] = true,
|
||||
[9118] = true,
|
||||
[9120] = true,
|
||||
[9121] = true,
|
||||
[9122] = true,
|
||||
[9123] = true,
|
||||
[9124] = true,
|
||||
[9125] = true,
|
||||
[9126] = true,
|
||||
[9127] = true,
|
||||
[9128] = true,
|
||||
[9129] = true,
|
||||
[9131] = true,
|
||||
[9132] = true,
|
||||
[9136] = true,
|
||||
[9137] = true,
|
||||
[9153] = true,
|
||||
[9211] = true,
|
||||
[9213] = true,
|
||||
[9221] = true,
|
||||
[9222] = true,
|
||||
[9223] = true,
|
||||
[9224] = true,
|
||||
[9225] = true,
|
||||
[9226] = true,
|
||||
[9227] = true,
|
||||
[9228] = true,
|
||||
[9229] = true,
|
||||
[9230] = true,
|
||||
[9232] = true,
|
||||
[9233] = true,
|
||||
[9234] = true,
|
||||
[9235] = true,
|
||||
[9236] = true,
|
||||
[9237] = true,
|
||||
[9238] = true,
|
||||
[9239] = true,
|
||||
[9240] = true,
|
||||
[9241] = true,
|
||||
[9242] = true,
|
||||
[9243] = true,
|
||||
[9244] = true,
|
||||
[9245] = true,
|
||||
[9246] = true,
|
||||
[9250] = true,
|
||||
[9251] = true,
|
||||
-- Silithus/EPL PvP
|
||||
[9248] = true,
|
||||
[9422] = true,
|
||||
[9415] = true,
|
||||
[9419] = true,
|
||||
[9416] = true,
|
||||
},
|
||||
}
|
||||
|
||||
---@return table<number, table<number, boolean>> @All quests that should be blacklisted separated by phase
|
||||
function QuestieQuestBlacklist:GetSoMQuestsToBlacklist()
|
||||
for phase = 1, currentPhase do
|
||||
questsToBlacklistBySoMPhase[phase] = {} -- empty table instead of nil to keep table size
|
||||
end
|
||||
return questsToBlacklistBySoMPhase
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,400 @@
|
||||
---@class QuestieObjectFixes
|
||||
local QuestieObjectFixes = QuestieLoader:CreateModule("QuestieObjectFixes")
|
||||
-------------------------
|
||||
--Import modules.
|
||||
-------------------------
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
---@type ZoneDB
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
|
||||
-- Further information on how to use this can be found at the wiki
|
||||
-- https://github.com/Questie/Questie/wiki/Corrections
|
||||
|
||||
function QuestieObjectFixes:Load()
|
||||
local objectKeys = QuestieDB.objectKeys
|
||||
local zoneIDs = ZoneDB.zoneIDs
|
||||
|
||||
return {
|
||||
[167] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSKWOOD]={{33.42,76.35}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSKWOOD,
|
||||
},
|
||||
[331] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.WETLANDS]={{32.2,50.8},{32.3,48.4},{32.3,48.6},{32.7,51},{33.2,46.4},{33.3,49},{33.4,47.4},{33.4,47.6},{33.4,51.5},{33.8,48.6},{33.9,46.6},{34.1,49.7},{34.2,47.6},{34.2,50.8},{34.3,45.7},{34.4,44.4},{34.4,44.5},{34.7,52.5},{34.8,50.3},{34.9,47},{35,47.9},{35.1,51.5},{35.2,44.3},{35.2,44.5},{35.2,48.9},{35.2,51.4},{35.4,46.3},{35.5,45},{35.5,46},{35.6,47.9},{36.1,48.8},{36.1,50},{36.4,42.1},{36.6,42.2}}},
|
||||
},
|
||||
[333] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.WETLANDS]={{32.2,50.8},{32.3,48.4},{32.3,48.6},{32.7,51},{33.2,46.4},{33.3,49},{33.4,47.4},{33.4,47.6},{33.4,51.5},{33.8,48.6},{33.9,46.6},{34.1,49.7},{34.2,47.6},{34.2,50.8},{34.3,45.7},{34.4,44.4},{34.4,44.5},{34.7,52.5},{34.8,50.3},{34.9,47},{35,47.9},{35.1,51.5},{35.2,44.3},{35.2,44.5},{35.2,48.9},{35.2,51.4},{35.4,46.3},{35.5,45},{35.5,46},{35.6,47.9},{36.1,48.8},{36.1,50},{36.4,42.1},{36.6,42.2}}},
|
||||
},
|
||||
[334] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.WETLANDS]={{32.2,50.8},{32.3,48.4},{32.3,48.6},{32.7,51},{33.2,46.4},{33.3,49},{33.4,47.4},{33.4,47.6},{33.4,51.5},{33.8,48.6},{33.9,46.6},{34.1,49.7},{34.2,47.6},{34.2,50.8},{34.3,45.7},{34.4,44.4},{34.4,44.5},{34.7,52.5},{34.8,50.3},{34.9,47},{35,47.9},{35.1,51.5},{35.2,44.3},{35.2,44.5},{35.2,48.9},{35.2,51.4},{35.4,46.3},{35.5,45},{35.5,46},{35.6,47.9},{36.1,48.8},{36.1,50},{36.4,42.1},{36.6,42.2}}},
|
||||
},
|
||||
[1738] = {
|
||||
[objectKeys.questStarts] = {510,511},
|
||||
},
|
||||
[1739] = {
|
||||
[objectKeys.questStarts] = {510,511},
|
||||
},
|
||||
[2555] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{31.11,66.14}}},
|
||||
},
|
||||
[2560] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STRANGLETHORN_VALE]={{36.26,70.56},{39.73,77.42},{37.41,64.5},{33.79,77.68},{36.11,80.47},{36.56,77.09},{34.29,73.78}}},
|
||||
},
|
||||
[2712] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ARATHI_HIGHLANDS]={{18,89},{19,90},{20,85},{21,87},{21,90},{21,92},{22,84},{22,90},{23,84},{23,90},{23,88},{23,89},{23,92},{24,87},{24,88},{24,89},{24,85},{24,86},{25,86},{25,87},{25,89},{25,90},{25,91}}},
|
||||
},
|
||||
[2744] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STRANGLETHORN_VALE]={{23.6,23.4},{23.6,23.5},{23.7,27.2},{23.7,29.8},{23.8,29.1},{24,25.4},{24,25.5},{24.4,28},{24.8,29.5},{24.9,29.1},{25.2,26.9},{25.3,25},{25.3,26.4},{25.3,27.5},{25.4,22.7},{25.4,24.1},{25.7,22.9},{25.7,25.3},{25.8,24.4},{25.8,28.3},{25.9,29.4},{25.9,30.4},{26.1,30.6},{26.3,26.1},{26.4,27.1},{26.5,29.4},{26.5,29.5},{26.6,24.5},{26.8,30.8},{27.1,23.1},{27.1,26.5},{27.2,26.3},{27.3,24},{27.3,27.9},{27.5,24.2},{27.6,25.6},{27.6,29.2},{27.8,23},{27.8,25.3},{27.8,27.7},{28,26.7}}},
|
||||
},
|
||||
[2867] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BADLANDS]={{66.6,22}}},
|
||||
},
|
||||
[10076] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DARKSHORE]={{38.6,86.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DARKSHORE,
|
||||
},
|
||||
[19021] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ASHENVALE]={{69.04,84.77},{77.03,73.8},{79.08,74.48},{70.53,73.58},{70.68,85.06},{69.29,82.67},{71.29,83.83},{77.97,65.82},{77.38,69.77},{77.06,68.3},{69.87,74.11},{78.3,73.6},{76.22,67.48},{76.62,70.67},{76.77,72.19},{78.31,69.73},{68.24,77.68},{77.68,72.63},{74.77,69.6},{78.26,64.58},{70.72,75.24},{74.23,69.47},{74.36,70.21},{75.88,73.52},{75.87,69.99},{69.89,85.32},{74.34,77.92},{70.1,76.08},{74.58,77.19},{74.67,75.39},{76.67,68.46},{68.94,84.86},{74.41,73.38},{74.46,75.56},{73.09,73.23},{71.04,73.8},{71.45,76.97},{73.68,76.95},{72.63,76.86},{70.77,75.99},{72.51,75.12}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ASHENVALE,
|
||||
},
|
||||
[19869] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THOUSAND_NEEDLES]={{88.42,81.04},{87.27,73.47},{86.89,70.01},{87.86,76.59},{88.0,79.88},{83.75,86.66},{88.22,65.57},{78.4,89.97},{76.31,89.51},{75.39,56.37},{71.01,56.34},{69.6,61.3},{69.9,59},{70,78.4},{70,78.5},{70.1,60.2},{70.1,61.8},{70.1,63.1},{70.1,64.2},{70.2,57.2},{70.2,58},{70.3,66.2},{70.5,59.1},{70.6,77.1},{70.9,79.1},{71,56.4},{71,74.4},{71,74.5},{71.1,72},{71.4,57},{71.4,64.4},{71.4,64.5},{71.6,64.4},{71.6,64.5},{71.6,66.7},{71.6,78},{71.7,68.4},{71.7,68.7},{71.7,80.1},{72.3,56.5},{72.3,62.8},{72.3,70.3},{72.3,76.9},{72.4,56.4},{72.4,72.3},{72.4,74.4},{72.4,74.6},{72.4,80.7},{72.5,72.2},{72.5,72.5},{72.5,80.7},{73.1,55.6},{73.1,59.8},{73.2,55.4},{73.2,68.5},{73.4,57.9},{73.5,57.9},{74,61.1},{74.2,63.7},{74.4,55.4},{74.5,55.4},{74.6,59.6},{75.3,54},{75.4,56.2},{75.4,56.5},{75.5,54},{75.5,56.4},{75.9,55.3},{76.2,86.9},{76.3,89.4},{76.3,89.6},{76.8,84.3},{76.8,85.1},{77,53.2},{77.3,86.4},{77.3,86.5},{77.4,90.4},{77.4,90.5},{77.5,90.6},{77.6,54.1},{77.7,51.8},{77.9,84.2},{77.9,85.3},{78,85.5},{78.3,53},{78.4,55.1},{78.4,89.8},{78.5,90},{79,54.1},{79.2,56.2},{79.4,85.3},{79.4,85.5},{79.4,86.7},{79.5,59},{79.5,85.3},{79.8,55.1},{80,87.9},{80.7,54.3},{80.7,56.3},{80.7,89},{81.4,86.3},{81.5,86.3},{81.9,87.2},{81.9,87.5},{82.2,56.2},{82.2,90},{82.8,85.4},{82.8,85.5},{82.8,87.9},{82.9,55.3},{82.9,64.7},{83.6,56.3},{83.7,86.6},{85.3,58.4},{85.3,58.5},{85.6,61.6},{85.7,61.4},{85.8,62.5},{85.9,57.4},{86,59.7},{86.2,68.6},{86.2,74.4},{86.2,74.6},{86.6,63.5},{86.6,64.7},{86.7,58.3},{86.7,58.5},{86.7,63.4},{86.8,60.9},{86.8,67.9},{86.9,70.1},{86.9,72.3},{87,75.4},{87.1,75.5},{87.2,73.5},{87.3,66.9},{87.3,73.4},{87.6,62.9},{87.6,71.3},{87.7,78},{87.8,76.5},{87.9,60.9},{88,80},{88.1,67.8},{88.2,65.4},{88.2,65.7},{88.2,74.9},{88.4,80.9},{88.6,76.8},{88.8,66.4},{88.8,66.6}}},
|
||||
},
|
||||
[19870] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THOUSAND_NEEDLES]={{87.75,78.07},{88.18,67.74},{85.64,61.5},{79.38,85.41},{77.96,85.39},{78.35,55.15},{73.44,57.79},{73.97,61.17},{70.6,59.13},{72.34,62.76},{69.7,61.1},{69.9,59},{70,63.1},{70,78.4},{70,78.5},{70.1,64.4},{70.1,64.5},{70.2,60.1},{70.2,62},{70.3,57.1},{70.3,58},{70.3,66.3},{70.5,59.2},{70.7,76.9},{70.8,79.2},{71,56.4},{71,71.9},{71,74.4},{71,74.6},{71.4,57},{71.4,64.4},{71.4,64.5},{71.5,64.4},{71.5,64.5},{71.6,66.5},{71.6,78.2},{71.6,80},{71.7,68.5},{72.3,56.6},{72.3,70.2},{72.3,74.4},{72.3,76.7},{72.4,56.4},{72.4,62.7},{72.4,74.6},{72.5,72.4},{72.5,80.7},{73.1,55.4},{73.1,59.6},{73.2,55.6},{73.2,68.7},{73.4,57.8},{73.5,57.7},{74,61.1},{74.2,63.7},{74.4,55.3},{74.5,55.4},{74.7,59.7},{75.4,54},{75.4,56.3},{75.5,53.9},{76,55.3},{76.1,87},{76.2,89.5},{76.3,89.4},{76.8,84.3},{76.8,85.1},{77,53.2},{77.3,86.5},{77.4,86.4},{77.4,90.4},{77.4,90.6},{77.5,54},{77.5,90.4},{77.5,90.5},{77.6,51.8},{77.8,84.3},{77.9,85.5},{78,85.3},{78.3,53},{78.4,55.2},{79.1,54.1},{79.3,56.2},{79.3,86.5},{79.4,85.3},{79.4,85.5},{79.5,59.1},{79.8,55.3},{79.9,88},{80.7,54.2},{80.7,56.3},{80.8,89.2},{81.4,86.2},{81.5,86.3},{81.9,87.3},{81.9,87.5},{82.2,56.2},{82.3,90},{82.8,55.3},{82.8,85.4},{82.8,85.5},{82.8,87.9},{82.9,64.6},{83.6,56.2},{83.7,86.6},{85.3,58.4},{85.3,58.5},{85.6,61.4},{85.7,61.5},{85.7,62.5},{85.9,57.4},{86,59.7},{86.1,68.7},{86.1,74.4},{86.2,74.5},{86.6,63.3},{86.6,63.5},{86.6,64.7},{86.7,58.4},{86.7,58.5},{86.7,60.9},{86.8,67.9},{86.9,70.1},{86.9,72.3},{87,75.4},{87.1,75.5},{87.2,73.5},{87.3,66.9},{87.3,73.4},{87.5,71.3},{87.6,62.9},{87.8,78},{87.9,60.9},{87.9,76.5},{88,79.8},{88.1,67.8},{88.3,65.6},{88.3,75.1},{88.4,81},{88.6,76.8},{88.8,66.4},{88.8,66.5}}},
|
||||
},
|
||||
[21015] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{29.7,47.64}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
[21016] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{29.7,47.64}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
[28604] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SWAMP_OF_SORROWS]={{64.09,23.35},{45.82,35.58},{56.92,24.7},{62.27,22.5},{43.29,33.26},{33.64,46.01},{29.7,50.11},{14.19,38.22},{9.7,29.84},{54.39,30.59},{60.03,21.73},{29.91,38.31},{64.89,20.44},{4.64,31.2},{37.09,34.15},{12.8,34.43}}},
|
||||
},
|
||||
[35252] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.WETLANDS]={{32.2,50.8},{32.3,48.4},{32.3,48.6},{32.7,51},{33.2,46.4},{33.3,49},{33.4,47.4},{33.4,47.6},{33.4,51.5},{33.8,48.6},{33.9,46.6},{34.1,49.7},{34.2,47.6},{34.2,50.8},{34.3,45.7},{34.4,44.4},{34.4,44.5},{34.7,52.5},{34.8,50.3},{34.9,47},{35,47.9},{35.1,51.5},{35.2,44.3},{35.2,44.5},{35.2,48.9},{35.2,51.4},{35.4,46.3},{35.5,45},{35.5,46},{35.6,47.9},{36.1,48.8},{36.1,50},{36.4,42.1},{36.6,42.2}}},
|
||||
},
|
||||
[92423] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THOUSAND_NEEDLES]={{43.4, 32.7}},
|
||||
[zoneIDs.THE_BARRENS]={{49.02,96.77}},
|
||||
},
|
||||
[objectKeys.zoneID] = zoneIDs.THOUSAND_NEEDLES,
|
||||
},
|
||||
[93192] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ASHENVALE]={{31.55,31.57}}},
|
||||
},
|
||||
[103662] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ARATHI_HIGHLANDS]={{52,50.8}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ARATHI_HIGHLANDS,
|
||||
},
|
||||
[105174] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY]={{38.7,79.1}},
|
||||
[zoneIDs.UNDERCITY]={{85.5,10.2}},
|
||||
},
|
||||
},
|
||||
[112877] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ULDAMAN]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ULDAMAN,
|
||||
},
|
||||
[140971] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TANARIS]={{36.1,56.4},{36.1,56.5},{36.4,52.3},{36.8,35.2},{37.7,29.6},{38.3,61.9},{38.9,65.8},{38.9,73},{39.1,70.7},{39.4,51.6},{39.7,74.4},{39.9,72.1},{40,31.1},{40.1,47.3},{40.2,73.3},{40.3,68.9},{40.3,77.4},{40.3,77.5},{40.4,74.7},{40.8,39.2},{40.8,43.4},{40.8,43.5},{41,71.6},{41,74.8},{41.1,71.1},{41.4,72.7},{41.5,73.7},{41.7,56.3},{41.9,73.3},{42.1,74.5},{42.2,58.5},{42.8,26.1},{43.1,62.1},{43.2,77.3},{44.2,45.7},{44.8,38.8},{44.8,65.2},{44.9,33.9},{44.9,64.4},{45.1,27},{45.1,52},{45.3,66},{45.6,64.6},{45.8,66.8},{46.1,49.4},{46.1,49.5},{46.1,65.6},{46.2,63.3},{46.2,70.3},{46.4,64.2},{46.5,64.2},{46.9,76.1},{47.1,30.4},{47.1,30.5},{47.1,64.5},{47.1,66},{47.2,67},{47.3,63.4},{47.4,38.4},{47.4,38.5},{47.5,38.4},{47.5,38.5},{47.6,57.2},{47.9,65.8},{48,52.7},{48,64.4},{48,67.4},{48.1,67.5},{48.2,64.7},{48.3,72.8},{48.4,44.4},{48.4,44.5},{48.5,44.4},{48.5,44.5},{48.6,28.7},{49.1,77.3},{49.6,35.9},{49.6,59.2},{49.7,69.1},{50.4,78.5},{50.7,61.1},{51.3,64.1},{52,37.4},{52.1,32.1},{52.3,45.3},{52.4,50.8},{52.9,52.7},{53,44},{53.2,45.2},{53.4,47.7},{53.5,47.6},{53.5,57.8},{53.7,46.2},{53.8,33.3},{54.8,39},{55.6,47.7},{55.6,60},{56.6,35.3},{56.7,52.4},{56.7,52.5},{57.1,47.6},{57.8,28.9},{57.8,57.9},{58.1,24.6},{58.1,48.8}}},
|
||||
},
|
||||
[142194] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TANARIS]={{54,93}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TANARIS,
|
||||
},
|
||||
[144052] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TANARIS]={{39,29}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TANARIS,
|
||||
},
|
||||
[144064] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.FERALAS]={{74.3,29},{74.6,30.2},{75.1,32.4},{75.1,32.5},{75.3,28.2},{75.3,33.7},{75.5,30.4},{75.5,30.5},{76,29},{76.3,34.4},{76.4,33.1},{76.4,34.5},{76.5,33.1},{76.7,33.8},{76.9,29.7},{77.5,35.1},{78.4,34},{78.5,34},{79.2,34.9},{80.4,34.3},{80.4,36},{80.5,34.2},{81,35.4},{81,35.5},{81.6,35}}}, -- #1160
|
||||
[objectKeys.zoneID] = zoneIDs.FERALAS,
|
||||
},
|
||||
[148513] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZSHARA]={{34,59.9},{34.8,53.3},{35.4,58.5},{35.5,52.3},{35.6,49.6},{35.9,51.2},{36,56.9},{36.3,58.7},{36.3,62.2},{36.4,54},{36.4,60.6},{36.5,54.1},{37.4,60.7},{37.5,60.7},{37.7,52.4},{37.9,56.4},{38,51.3},{38.4,53.4},{38.7,63.3},{39.2,61.4},{39.2,61.6},{39.4,56.5},{39.5,56.5},{39.8,53.4},{39.8,53.5},{39.8,59.7},{40.1,62.4},{40.2,62.5},{40.5,61.1},{40.5,64},{41,55},{41.2,62},{42.2,64.6},{43.4,64},{43.9,64.7}}},
|
||||
},
|
||||
[148514] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZSHARA]={{34.2,57.8},{34.65,55.61},{35.7,56.51},{35.9,59},{36.2,52.6},{37.92,47.75},{39.3,57.6},{39.8,48.8},{39.84,45.88},{39.99,64.19},{40.2,45}}},
|
||||
},
|
||||
[148515] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZSHARA]={{35.6,55.9},{35.9,53.5},{36.1,59.9},{36.9,49.6},{37,54.5},{37.14,60.51},{37.29,48.08},{38.58,54.62},{38.6,47.5},{39.3,59.9},{41.51,65.04}}},
|
||||
},
|
||||
[148516] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZSHARA]={{34.1,50.5},{34.3,55.2},{35.19,58.02},{36,57.6},{36.8,60.5},{37.07,51.86},{38.4,60.3},{38.91,53.46},{39.54,64.32},{39.6,48.14}}},
|
||||
},
|
||||
[153123] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZSHARA]={{56.1,30.1},{56.3,28.8},{56.4,28.4},{56.5,28.8},{57.0,28.4},{57.0,29.9},{57.9,29.1},{58.2,27.7},{58.4,25.0},{58.5,25.0},{58.6,26.0},{58.6,29.1},{58.9,28.4},{59.2,23.0},{59.6,30.9}}}, --#1413
|
||||
},
|
||||
[154357] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.REDRIDGE_MOUNTAINS]={{21.9,53.2},{24.1,54.6},{25.9,54.1},{26.4,51.3},{28,56},{30.8,54.3},{33.6,55.2},{36.8,54.3},{37.9,54.5},{19.16,51.74},{34.13,53.37},{29.52,53.72}}}, -- #1176
|
||||
},
|
||||
[157936] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{21.92,38.58},{25.56,46.29},{27.01,40.16},{28.01,62.73},{29.7,30.6},{30.52,69.98},{30.61,56.66},{30.97,78.87},{31.03,34.12},{32.86,22.92},{33.11,65.36},{35.86,46.22},{36.35,69.75},{36.4,76.32},{38.2,23.1},{38.9,39.54},{40.37,26.87},{40.75,59.65},{41.11,79.78},{41.9,53.16},{42.21,45.46},{44.14,33.79},{44.7,54.42},{47,52.9},{48.9,58},{49.46,48.48},{49.4,83.5},{50.21,34.29},{50.45,90.1},{51.1,47},{52.49,78.92},{52.77,45.42},{52.83,55.91},{53.56,39.03},{55.58,28.65},{55.97,56.86},{56.56,83.45},{57.13,44.16},{58.13,36.33},{60,81.8},{62.16,17.57},{62.3,64},{63.3,47.9},{64.06,40.97},{64.9,78.4},{69.4,76.4},{71.67,75.91},{73.11,65.65},{73.41,58.29}}},
|
||||
},
|
||||
-- Un'Goro Crystals
|
||||
[164658] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{19.7,38.9},{20.7,50},{23,59.1},{23.1,40.3},{23.7,59},{24,42.8},{25.1,67.0},{25.5,39.9},{25.8,53.9},{25.8,63.3},{26.0,59.9},{27.5,70.1},{27.7,46.3},{27.7,46.5},{30.1,21.3},{30.4,70.5},{30.7,63.3},{32.6,73.5},{33,29.7},{33.8,44.4},{33.9,76.7},{35.8,54.5},{37.7,20.4},{37.7,20.5},{37.8,66.4},{37.8,66.5},{38,41.8},{38.2,81.9},{39.3,14.5},{39.7,26.8},{40.5,49.9},{40.5,75.3},{40.8,79.9},{42.6,34.1},{42.8,86.1},{42.9,52.9},{42.9,66},{43,45.4},{43,45.5},{43.8,16.7},{43.9,21.3},{43.9,21.5},{44.2,88.8},{45.4,38.6},{45.4,66},{45.5,66},{45.7,92.5},{46.3,19.7},{46.8,14.9},{47,61.1},{47.3,13},{49.9,15.7},{50,92.3},{51.3,61.4},{51.6,13.6},{51.8,34.9},{51.9,87.5},{53.7,38.9},{54.1,18.1},{55.8,7.9},{56,18.5},{56.1,18.4},{56.2,60.6},{56.3,73.6},{56.4,12.3},{56.6,12.3},{56.8,76.2},{57.3,10.1},{57.4,82.5},{58.1,8.8},{58.1,49.8},{58.3,10.7},{58.3,65.9},{58.6,78.4},{59.2,20.3},{59.6,60.2},{59.8,49.4},{60.4,77.4},{60.9,68.4},{60.9,68.5},{61,15.1},{62,85.2},{62.1,40.4},{62.1,40.5},{62.3,68.4},{62.4,68.5},{62.4,70.3},{62.4,70.5},{62.6,16.7},{62.6,26.9},{63.2,75.2},{63.4,23},{64.2,53.9},{65.2,79.7},{66.1,21.1},{66.7,46.9},{66.8,73.3},{67.7,40.4},{67.7,40.5},{67.9,51.4},{68.3,25.3},{68.4,25.5},{68.4,59.7},{69.1,28.9},{69.4,79.9},{69.5,79.9},{69.6,35.1},{69.6,69.4},{69.6,69.5},{69.9,18.9},{70.1,77.1},{70.3,64.2},{71.1,42.9},{71.6,73.6},{71.7,63.5},{71.8,63.4},{71.9,23},{72.1,33.1},{72.2,21.1},{72.4,35.4},{72.4,35.6},{73,46.8},{73,65.4},{73,65.5},{73.8,53.4},{73.8,53.5},{74.4,56.9},{74.4,63.8},{74.5,57},{74.5,63.8},{74.8,29.6},{74.8,58.9},{74.9,70.5},{75.1,37.7},{75.2,61.6},{75.3,61.4},{75.9,40.1},{76.6,43.8},{76.8,57.7},{78.2,40.1},{79.3,57.9},{79.9,61.9},{80.4,49.7},{80.5,49.7},{80.7,43},{81.4,39.1},{81.5,39.1},{81.6,60.6}}}, -- #1156
|
||||
},
|
||||
[164659] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{19.7,38.9},{20.7,50},{23,59.1},{23.1,40.3},{23.7,59},{24,42.8},{25.1,67.0},{25.5,39.9},{25.8,53.9},{25.8,63.3},{26.0,59.9},{27.5,70.1},{27.7,46.3},{27.7,46.5},{30.1,21.3},{30.4,70.5},{30.7,63.3},{32.6,73.5},{33,29.7},{33.8,44.4},{33.9,76.7},{35.8,54.5},{37.7,20.4},{37.7,20.5},{37.8,66.4},{37.8,66.5},{38,41.8},{38.2,81.9},{39.3,14.5},{39.7,26.8},{40.5,49.9},{40.5,75.3},{40.8,79.9},{42.6,34.1},{42.8,86.1},{42.9,52.9},{42.9,66},{43,45.4},{43,45.5},{43.8,16.7},{43.9,21.3},{43.9,21.5},{44.2,88.8},{45.4,38.6},{45.4,66},{45.5,66},{45.7,92.5},{46.3,19.7},{46.8,14.9},{47,61.1},{47.3,13},{49.9,15.7},{50,92.3},{51.3,61.4},{51.6,13.6},{51.8,34.9},{51.9,87.5},{53.7,38.9},{54.1,18.1},{55.8,7.9},{56,18.5},{56.1,18.4},{56.2,60.6},{56.3,73.6},{56.4,12.3},{56.6,12.3},{56.8,76.2},{57.3,10.1},{57.4,82.5},{58.1,8.8},{58.1,49.8},{58.3,10.7},{58.3,65.9},{58.6,78.4},{59.2,20.3},{59.6,60.2},{59.8,49.4},{60.4,77.4},{60.9,68.4},{60.9,68.5},{61,15.1},{62,85.2},{62.1,40.4},{62.1,40.5},{62.3,68.4},{62.4,68.5},{62.4,70.3},{62.4,70.5},{62.6,16.7},{62.6,26.9},{63.2,75.2},{63.4,23},{64.2,53.9},{65.2,79.7},{66.1,21.1},{66.7,46.9},{66.8,73.3},{67.7,40.4},{67.7,40.5},{67.9,51.4},{68.3,25.3},{68.4,25.5},{68.4,59.7},{69.1,28.9},{69.4,79.9},{69.5,79.9},{69.6,35.1},{69.6,69.4},{69.6,69.5},{69.9,18.9},{70.1,77.1},{70.3,64.2},{71.1,42.9},{71.6,73.6},{71.7,63.5},{71.8,63.4},{71.9,23},{72.1,33.1},{72.2,21.1},{72.4,35.4},{72.4,35.6},{73,46.8},{73,65.4},{73,65.5},{73.8,53.4},{73.8,53.5},{74.4,56.9},{74.4,63.8},{74.5,57},{74.5,63.8},{74.8,29.6},{74.8,58.9},{74.9,70.5},{75.1,37.7},{75.2,61.6},{75.3,61.4},{75.9,40.1},{76.6,43.8},{76.8,57.7},{78.2,40.1},{79.3,57.9},{79.9,61.9},{80.4,49.7},{80.5,49.7},{80.7,43},{81.4,39.1},{81.5,39.1},{81.6,60.6}}}, -- #1156
|
||||
},
|
||||
[164660] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{19.7,38.9},{20.7,50},{23,59.1},{23.1,40.3},{23.7,59},{24,42.8},{25.1,67.0},{25.5,39.9},{25.8,53.9},{25.8,63.3},{26.0,59.9},{27.5,70.1},{27.7,46.3},{27.7,46.5},{30.1,21.3},{30.4,70.5},{30.7,63.3},{32.6,73.5},{33,29.7},{33.8,44.4},{33.9,76.7},{35.8,54.5},{37.7,20.4},{37.7,20.5},{37.8,66.4},{37.8,66.5},{38,41.8},{38.2,81.9},{39.3,14.5},{39.7,26.8},{40.5,49.9},{40.5,75.3},{40.8,79.9},{42.6,34.1},{42.8,86.1},{42.9,52.9},{42.9,66},{43,45.4},{43,45.5},{43.8,16.7},{43.9,21.3},{43.9,21.5},{44.2,88.8},{45.4,38.6},{45.4,66},{45.5,66},{45.7,92.5},{46.3,19.7},{46.8,14.9},{47,61.1},{47.3,13},{49.9,15.7},{50,92.3},{51.3,61.4},{51.6,13.6},{51.8,34.9},{51.9,87.5},{53.7,38.9},{54.1,18.1},{55.8,7.9},{56,18.5},{56.1,18.4},{56.2,60.6},{56.3,73.6},{56.4,12.3},{56.6,12.3},{56.8,76.2},{57.3,10.1},{57.4,82.5},{58.1,8.8},{58.1,49.8},{58.3,10.7},{58.3,65.9},{58.6,78.4},{59.2,20.3},{59.6,60.2},{59.8,49.4},{60.4,77.4},{60.9,68.4},{60.9,68.5},{61,15.1},{62,85.2},{62.1,40.4},{62.1,40.5},{62.3,68.4},{62.4,68.5},{62.4,70.3},{62.4,70.5},{62.6,16.7},{62.6,26.9},{63.2,75.2},{63.4,23},{64.2,53.9},{65.2,79.7},{66.1,21.1},{66.7,46.9},{66.8,73.3},{67.7,40.4},{67.7,40.5},{67.9,51.4},{68.3,25.3},{68.4,25.5},{68.4,59.7},{69.1,28.9},{69.4,79.9},{69.5,79.9},{69.6,35.1},{69.6,69.4},{69.6,69.5},{69.9,18.9},{70.1,77.1},{70.3,64.2},{71.1,42.9},{71.6,73.6},{71.7,63.5},{71.8,63.4},{71.9,23},{72.1,33.1},{72.2,21.1},{72.4,35.4},{72.4,35.6},{73,46.8},{73,65.4},{73,65.5},{73.8,53.4},{73.8,53.5},{74.4,56.9},{74.4,63.8},{74.5,57},{74.5,63.8},{74.8,29.6},{74.8,58.9},{74.9,70.5},{75.1,37.7},{75.2,61.6},{75.3,61.4},{75.9,40.1},{76.6,43.8},{76.8,57.7},{78.2,40.1},{79.3,57.9},{79.9,61.9},{80.4,49.7},{80.5,49.7},{80.7,43},{81.4,39.1},{81.5,39.1},{81.6,60.6}}}, -- #1156
|
||||
},
|
||||
[164661] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{19.7,38.9},{20.7,50},{23,59.1},{23.1,40.3},{23.7,59},{24,42.8},{25.1,67.0},{25.5,39.9},{25.8,53.9},{25.8,63.3},{26.0,59.9},{27.5,70.1},{27.7,46.3},{27.7,46.5},{30.1,21.3},{30.4,70.5},{30.7,63.3},{32.6,73.5},{33,29.7},{33.8,44.4},{33.9,76.7},{35.8,54.5},{37.7,20.4},{37.7,20.5},{37.8,66.4},{37.8,66.5},{38,41.8},{38.2,81.9},{39.3,14.5},{39.7,26.8},{40.5,49.9},{40.5,75.3},{40.8,79.9},{42.6,34.1},{42.8,86.1},{42.9,52.9},{42.9,66},{43,45.4},{43,45.5},{43.8,16.7},{43.9,21.3},{43.9,21.5},{44.2,88.8},{45.4,38.6},{45.4,66},{45.5,66},{45.7,92.5},{46.3,19.7},{46.8,14.9},{47,61.1},{47.3,13},{49.9,15.7},{50,92.3},{51.3,61.4},{51.6,13.6},{51.8,34.9},{51.9,87.5},{53.7,38.9},{54.1,18.1},{55.8,7.9},{56,18.5},{56.1,18.4},{56.2,60.6},{56.3,73.6},{56.4,12.3},{56.6,12.3},{56.8,76.2},{57.3,10.1},{57.4,82.5},{58.1,8.8},{58.1,49.8},{58.3,10.7},{58.3,65.9},{58.6,78.4},{59.2,20.3},{59.6,60.2},{59.8,49.4},{60.4,77.4},{60.9,68.4},{60.9,68.5},{61,15.1},{62,85.2},{62.1,40.4},{62.1,40.5},{62.3,68.4},{62.4,68.5},{62.4,70.3},{62.4,70.5},{62.6,16.7},{62.6,26.9},{63.2,75.2},{63.4,23},{64.2,53.9},{65.2,79.7},{66.1,21.1},{66.7,46.9},{66.8,73.3},{67.7,40.4},{67.7,40.5},{67.9,51.4},{68.3,25.3},{68.4,25.5},{68.4,59.7},{69.1,28.9},{69.4,79.9},{69.5,79.9},{69.6,35.1},{69.6,69.4},{69.6,69.5},{69.9,18.9},{70.1,77.1},{70.3,64.2},{71.1,42.9},{71.6,73.6},{71.7,63.5},{71.8,63.4},{71.9,23},{72.1,33.1},{72.2,21.1},{72.4,35.4},{72.4,35.6},{73,46.8},{73,65.4},{73,65.5},{73.8,53.4},{73.8,53.5},{74.4,56.9},{74.4,63.8},{74.5,57},{74.5,63.8},{74.8,29.6},{74.8,58.9},{74.9,70.5},{75.1,37.7},{75.2,61.6},{75.3,61.4},{75.9,40.1},{76.6,43.8},{76.8,57.7},{78.2,40.1},{79.3,57.9},{79.9,61.9},{80.4,49.7},{80.5,49.7},{80.7,43},{81.4,39.1},{81.5,39.1},{81.6,60.6}}}, -- #1156
|
||||
},
|
||||
[164778] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{19.7,38.9},{20.7,50},{23,59.1},{23.1,40.3},{23.7,59},{24,42.8},{25.1,67.0},{25.5,39.9},{25.8,53.9},{25.8,63.3},{26.0,59.9},{27.5,70.1},{27.7,46.3},{27.7,46.5},{30.1,21.3},{30.4,70.5},{30.7,63.3},{32.6,73.5},{33,29.7},{33.8,44.4},{33.9,76.7},{35.8,54.5},{37.7,20.4},{37.7,20.5},{37.8,66.4},{37.8,66.5},{38,41.8},{38.2,81.9},{39.3,14.5},{39.7,26.8},{40.5,49.9},{40.5,75.3},{40.8,79.9},{42.6,34.1},{42.8,86.1},{42.9,52.9},{42.9,66},{43,45.4},{43,45.5},{43.8,16.7},{43.9,21.3},{43.9,21.5},{44.2,88.8},{45.4,38.6},{45.4,66},{45.5,66},{45.7,92.5},{46.3,19.7},{46.8,14.9},{47,61.1},{47.3,13},{49.9,15.7},{50,92.3},{51.3,61.4},{51.6,13.6},{51.8,34.9},{51.9,87.5},{53.7,38.9},{54.1,18.1},{55.8,7.9},{56,18.5},{56.1,18.4},{56.2,60.6},{56.3,73.6},{56.4,12.3},{56.6,12.3},{56.8,76.2},{57.3,10.1},{57.4,82.5},{58.1,8.8},{58.1,49.8},{58.3,10.7},{58.3,65.9},{58.6,78.4},{59.2,20.3},{59.6,60.2},{59.8,49.4},{60.4,77.4},{60.9,68.4},{60.9,68.5},{61,15.1},{62,85.2},{62.1,40.4},{62.1,40.5},{62.3,68.4},{62.4,68.5},{62.4,70.3},{62.4,70.5},{62.6,16.7},{62.6,26.9},{63.2,75.2},{63.4,23},{64.2,53.9},{65.2,79.7},{66.1,21.1},{66.7,46.9},{66.8,73.3},{67.7,40.4},{67.7,40.5},{67.9,51.4},{68.3,25.3},{68.4,25.5},{68.4,59.7},{69.1,28.9},{69.4,79.9},{69.5,79.9},{69.6,35.1},{69.6,69.4},{69.6,69.5},{69.9,18.9},{70.1,77.1},{70.3,64.2},{71.1,42.9},{71.6,73.6},{71.7,63.5},{71.8,63.4},{71.9,23},{72.1,33.1},{72.2,21.1},{72.4,35.4},{72.4,35.6},{73,46.8},{73,65.4},{73,65.5},{73.8,53.4},{73.8,53.5},{74.4,56.9},{74.4,63.8},{74.5,57},{74.5,63.8},{74.8,29.6},{74.8,58.9},{74.9,70.5},{75.1,37.7},{75.2,61.6},{75.3,61.4},{75.9,40.1},{76.6,43.8},{76.8,57.7},{78.2,40.1},{79.3,57.9},{79.9,61.9},{80.4,49.7},{80.5,49.7},{80.7,43},{81.4,39.1},{81.5,39.1},{81.6,60.6}}}, -- #1156
|
||||
},
|
||||
[164779] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{19.7,38.9},{20.7,50},{23,59.1},{23.1,40.3},{23.7,59},{24,42.8},{25.1,67.0},{25.5,39.9},{25.8,53.9},{25.8,63.3},{26.0,59.9},{27.5,70.1},{27.7,46.3},{27.7,46.5},{30.1,21.3},{30.4,70.5},{30.7,63.3},{32.6,73.5},{33,29.7},{33.8,44.4},{33.9,76.7},{35.8,54.5},{37.7,20.4},{37.7,20.5},{37.8,66.4},{37.8,66.5},{38,41.8},{38.2,81.9},{39.3,14.5},{39.7,26.8},{40.5,49.9},{40.5,75.3},{40.8,79.9},{42.6,34.1},{42.8,86.1},{42.9,52.9},{42.9,66},{43,45.4},{43,45.5},{43.8,16.7},{43.9,21.3},{43.9,21.5},{44.2,88.8},{45.4,38.6},{45.4,66},{45.5,66},{45.7,92.5},{46.3,19.7},{46.8,14.9},{47,61.1},{47.3,13},{49.9,15.7},{50,92.3},{51.3,61.4},{51.6,13.6},{51.8,34.9},{51.9,87.5},{53.7,38.9},{54.1,18.1},{55.8,7.9},{56,18.5},{56.1,18.4},{56.2,60.6},{56.3,73.6},{56.4,12.3},{56.6,12.3},{56.8,76.2},{57.3,10.1},{57.4,82.5},{58.1,8.8},{58.1,49.8},{58.3,10.7},{58.3,65.9},{58.6,78.4},{59.2,20.3},{59.6,60.2},{59.8,49.4},{60.4,77.4},{60.9,68.4},{60.9,68.5},{61,15.1},{62,85.2},{62.1,40.4},{62.1,40.5},{62.3,68.4},{62.4,68.5},{62.4,70.3},{62.4,70.5},{62.6,16.7},{62.6,26.9},{63.2,75.2},{63.4,23},{64.2,53.9},{65.2,79.7},{66.1,21.1},{66.7,46.9},{66.8,73.3},{67.7,40.4},{67.7,40.5},{67.9,51.4},{68.3,25.3},{68.4,25.5},{68.4,59.7},{69.1,28.9},{69.4,79.9},{69.5,79.9},{69.6,35.1},{69.6,69.4},{69.6,69.5},{69.9,18.9},{70.1,77.1},{70.3,64.2},{71.1,42.9},{71.6,73.6},{71.7,63.5},{71.8,63.4},{71.9,23},{72.1,33.1},{72.2,21.1},{72.4,35.4},{72.4,35.6},{73,46.8},{73,65.4},{73,65.5},{73.8,53.4},{73.8,53.5},{74.4,56.9},{74.4,63.8},{74.5,57},{74.5,63.8},{74.8,29.6},{74.8,58.9},{74.9,70.5},{75.1,37.7},{75.2,61.6},{75.3,61.4},{75.9,40.1},{76.6,43.8},{76.8,57.7},{78.2,40.1},{79.3,57.9},{79.9,61.9},{80.4,49.7},{80.5,49.7},{80.7,43},{81.4,39.1},{81.5,39.1},{81.6,60.6}}}, -- #1156
|
||||
},
|
||||
[164780] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{19.7,38.9},{20.7,50},{23,59.1},{23.1,40.3},{23.7,59},{24,42.8},{25.1,67.0},{25.5,39.9},{25.8,53.9},{25.8,63.3},{26.0,59.9},{27.5,70.1},{27.7,46.3},{27.7,46.5},{30.1,21.3},{30.4,70.5},{30.7,63.3},{32.6,73.5},{33,29.7},{33.8,44.4},{33.9,76.7},{35.8,54.5},{37.7,20.4},{37.7,20.5},{37.8,66.4},{37.8,66.5},{38,41.8},{38.2,81.9},{39.3,14.5},{39.7,26.8},{40.5,49.9},{40.5,75.3},{40.8,79.9},{42.6,34.1},{42.8,86.1},{42.9,52.9},{42.9,66},{43,45.4},{43,45.5},{43.8,16.7},{43.9,21.3},{43.9,21.5},{44.2,88.8},{45.4,38.6},{45.4,66},{45.5,66},{45.7,92.5},{46.3,19.7},{46.8,14.9},{47,61.1},{47.3,13},{49.9,15.7},{50,92.3},{51.3,61.4},{51.6,13.6},{51.8,34.9},{51.9,87.5},{53.7,38.9},{54.1,18.1},{55.8,7.9},{56,18.5},{56.1,18.4},{56.2,60.6},{56.3,73.6},{56.4,12.3},{56.6,12.3},{56.8,76.2},{57.3,10.1},{57.4,82.5},{58.1,8.8},{58.1,49.8},{58.3,10.7},{58.3,65.9},{58.6,78.4},{59.2,20.3},{59.6,60.2},{59.8,49.4},{60.4,77.4},{60.9,68.4},{60.9,68.5},{61,15.1},{62,85.2},{62.1,40.4},{62.1,40.5},{62.3,68.4},{62.4,68.5},{62.4,70.3},{62.4,70.5},{62.6,16.7},{62.6,26.9},{63.2,75.2},{63.4,23},{64.2,53.9},{65.2,79.7},{66.1,21.1},{66.7,46.9},{66.8,73.3},{67.7,40.4},{67.7,40.5},{67.9,51.4},{68.3,25.3},{68.4,25.5},{68.4,59.7},{69.1,28.9},{69.4,79.9},{69.5,79.9},{69.6,35.1},{69.6,69.4},{69.6,69.5},{69.9,18.9},{70.1,77.1},{70.3,64.2},{71.1,42.9},{71.6,73.6},{71.7,63.5},{71.8,63.4},{71.9,23},{72.1,33.1},{72.2,21.1},{72.4,35.4},{72.4,35.6},{73,46.8},{73,65.4},{73,65.5},{73.8,53.4},{73.8,53.5},{74.4,56.9},{74.4,63.8},{74.5,57},{74.5,63.8},{74.8,29.6},{74.8,58.9},{74.9,70.5},{75.1,37.7},{75.2,61.6},{75.3,61.4},{75.9,40.1},{76.6,43.8},{76.8,57.7},{78.2,40.1},{79.3,57.9},{79.9,61.9},{80.4,49.7},{80.5,49.7},{80.7,43},{81.4,39.1},{81.5,39.1},{81.6,60.6}}}, -- #1156
|
||||
},
|
||||
[164781] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{19.7,38.9},{20.7,50},{23,59.1},{23.1,40.3},{23.7,59},{24,42.8},{25.1,67.0},{25.5,39.9},{25.8,53.9},{25.8,63.3},{26.0,59.9},{27.5,70.1},{27.7,46.3},{27.7,46.5},{30.1,21.3},{30.4,70.5},{30.7,63.3},{32.6,73.5},{33,29.7},{33.8,44.4},{33.9,76.7},{35.8,54.5},{37.7,20.4},{37.7,20.5},{37.8,66.4},{37.8,66.5},{38,41.8},{38.2,81.9},{39.3,14.5},{39.7,26.8},{40.5,49.9},{40.5,75.3},{40.8,79.9},{42.6,34.1},{42.8,86.1},{42.9,52.9},{42.9,66},{43,45.4},{43,45.5},{43.8,16.7},{43.9,21.3},{43.9,21.5},{44.2,88.8},{45.4,38.6},{45.4,66},{45.5,66},{45.7,92.5},{46.3,19.7},{46.8,14.9},{47,61.1},{47.3,13},{49.9,15.7},{50,92.3},{51.3,61.4},{51.6,13.6},{51.8,34.9},{51.9,87.5},{53.7,38.9},{54.1,18.1},{55.8,7.9},{56,18.5},{56.1,18.4},{56.2,60.6},{56.3,73.6},{56.4,12.3},{56.6,12.3},{56.8,76.2},{57.3,10.1},{57.4,82.5},{58.1,8.8},{58.1,49.8},{58.3,10.7},{58.3,65.9},{58.6,78.4},{59.2,20.3},{59.6,60.2},{59.8,49.4},{60.4,77.4},{60.9,68.4},{60.9,68.5},{61,15.1},{62,85.2},{62.1,40.4},{62.1,40.5},{62.3,68.4},{62.4,68.5},{62.4,70.3},{62.4,70.5},{62.6,16.7},{62.6,26.9},{63.2,75.2},{63.4,23},{64.2,53.9},{65.2,79.7},{66.1,21.1},{66.7,46.9},{66.8,73.3},{67.7,40.4},{67.7,40.5},{67.9,51.4},{68.3,25.3},{68.4,25.5},{68.4,59.7},{69.1,28.9},{69.4,79.9},{69.5,79.9},{69.6,35.1},{69.6,69.4},{69.6,69.5},{69.9,18.9},{70.1,77.1},{70.3,64.2},{71.1,42.9},{71.6,73.6},{71.7,63.5},{71.8,63.4},{71.9,23},{72.1,33.1},{72.2,21.1},{72.4,35.4},{72.4,35.6},{73,46.8},{73,65.4},{73,65.5},{73.8,53.4},{73.8,53.5},{74.4,56.9},{74.4,63.8},{74.5,57},{74.5,63.8},{74.8,29.6},{74.8,58.9},{74.9,70.5},{75.1,37.7},{75.2,61.6},{75.3,61.4},{75.9,40.1},{76.6,43.8},{76.8,57.7},{78.2,40.1},{79.3,57.9},{79.9,61.9},{80.4,49.7},{80.5,49.7},{80.7,43},{81.4,39.1},{81.5,39.1},{81.6,60.6}}}, -- #1156
|
||||
},
|
||||
-------------------
|
||||
[174848] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UNDERCITY]={{47.85,73.48}}}, -- #1520
|
||||
},
|
||||
[175265] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UNDERCITY]={{47.74,73.57}}}, -- #1520
|
||||
},
|
||||
[175321] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{56.37,87.83}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
[175322] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{56.37,87.83}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
[176150] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTERN_PLAGUELANDS]={{43.60,69.97},{43.46,70.11},{43.38,69.97},{43.39,69.69},{43.37,69.51},{43.41,69.22},{43.59,69.30},{43.54,69.12},{43.42,68.78},{43.59,68.82}},
|
||||
},
|
||||
},
|
||||
[176184] = {
|
||||
[objectKeys.name] = "Corrupt Jaedenar Moonwell",
|
||||
},
|
||||
[176213] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTERN_PLAGUELANDS]={{35.9,57.4},{35.9,57.5},{36.4,53.7},{36.5,53.6},{38.2,56.3},{39.7,69.4},{39.7,69.6},{40.6,73.1},{40.7,57.4},{40.8,57.5},{41.4,62.1},{41.5,62.1},{41.9,70.5},{42.2,54.9},{42.8,64.2},{43.3,68.3},{43.6,70.4},{43.7,70.5},{44.2,65},{44.4,71.6},{44.5,53.3},{44.5,71.7},{44.6,53.5},{45.8,71.5},{45.9,51.1},{45.9,71.4},{46.7,34.4},{46.8,34.5},{47,59.9},{47,67.1},{47.6,70},{47.9,53.1},{49.4,68.1},{49.8,33.3},{52.2,66.5},{52.3,55},{52.3,66.3},{53,64.2},{53.2,66.5},{53.3,65.1},{53.3,66.2},{53.4,63.4},{53.5,63.3},{53.5,63.5},{54.9,27.1},{55.2,69.4},{55.3,69.6},{56.7,34.7},{57.8,66.4},{57.8,66.5},{62,58.3},{62,58.5},{62.9,57.2},{62.9,57.9},{63.2,59.2},{63.6,75.4},{63.6,75.5},{64,48.7},{64.1,57.9},{64.9,74.4},{64.9,74.5},{65.8,76.8},{66.4,42.1},{66.5,42.2},{67,53.9},{67.8,84.6},{68,44.7},{68.3,81.4},{68.3,81.6},{68.4,77.1},{68.5,77.1},{68.7,49.2},{68.7,79.2},{68.9,73.8},{69.5,78.6},},
|
||||
[zoneIDs.EASTERN_PLAGUELANDS]={{7.1,50.7},{8,54.5},{14.2,64.7},{20,61},{20.5,66.9},{21.5,73.9},{22.1,85.1},{24.3,88.2},{26,74.7},{26.3,70.5},{26.7,69.5},{27.1,75.6},{27.3,64},{28.8,86},{29.2,78.8},{30.9,65.5},{32,71},{33.6,32.6},{34,80.2},{34.3,67.8},{34.4,76.9},{34.5,25.8},{35.6,73.3},{35.9,75.8},{36.7,38},{36.9,70.6},{37.1,65.7},{37.6,68.5},{38.4,31.1},{38.5,54},{38.8,26.7},{38.9,36.1},{40,49.9},{41.4,79.7},{41.5,65.7},{42.4,75.8},{44.9,32.9},{46.2,70.8},{46.3,64},{46.5,74.8},{47.5,40.8},{47.9,80},{48.9,67.2},{49.1,35.5},{50.3,45.5},{50.4,77.4},{51.8,70.3},{53.5,50.7},{55.5,58.7},{56.2,63.9},{56.5,76.1},{57.1,81.9},{57.4,71.9},{57.8,76.1},{58.1,79.7},{58.4,64.8},{58.6,79.6},{59.2,62.2},{59.3,80.9},{59.5,76},{59.9,67.5},{61.8,70.2},{63.6,67.7},{64.7,65.4},{64.7,81},{66.2,53},{67.6,66.8},{68.2,70.6},{68.3,74.6},{68.6,78.4},{68.8,80.8},{68.9,83.3},{69,71.5},{70.6,80.8},{70.7,69.5},{71.1,75.3},{72.2,78.4},{73.3,77.2},{73.4,69.8},{73.4,82.1},{73.6,76.8},{73.8,51.1},{74.1,83.8},{74.7,58.7},{75.6,55.3},{75.9,83.5},{76.1,78.2},{76.2,50.4},{76.7,72.4},{78.4,57.5},{78.7,67.3},{78.8,63.5},{80.4,59.8}},
|
||||
[zoneIDs.TIRISFAL_GLADES]={{82.8,72.7},{83,71.4},{83,71.5}},
|
||||
},
|
||||
},
|
||||
[176344] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THOUSAND_NEEDLES]={{31.79,32.58}}},
|
||||
},
|
||||
[176589] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.BURNING_STEPPES]={{13.2,30.8},{15.1,30.3},{18.8,48.7},{20.9,46.6},{21,46.4},{25.1,62.5},{26.4,59.2},{28.8,62.6},{31.4,61.7},{31.5,61.7},{31.9,69.4},{35.4,49.1},{35.5,49.1},{42.6,37.6},{43.1,34.4},{43.1,34.5},{44.2,57.1},{51,61.9},{54.3,63.4},{54.7,36.4},{56.3,53.7},{57.4,61.5},{57.6,61.6},{63.2,36.9},{63.7,60.8},{66.5,40},{76.4,47.2},{76.4,47.5},{76.5,47.2},{76.5,47.5},{82.5,34.2},{83,38},{92.1,53.2}},
|
||||
[zoneIDs.EASTERN_PLAGUELANDS]={{16.4,33.7},{16.5,33.7},{22.9,32},{26.7,29.7},{27.6,85.1},{28.7,70.9},{37.9,51.8},{38.9,34.1},{39.8,25.1},{42.4,50.6},{42.5,50.6},{45.5,29.8},{46.2,34.2},{59.7,67.6},{65.6,21.8},{67.5,46.5},{69.4,83.4},{70.8,30.8},{72,51.9},{76.6,49.8},{80,71},{82,84.5},{85.9,46.4},{86,46.5},{87.9,82.8}},
|
||||
[zoneIDs.WINTERSPRING]={{30.7,35.4},{30.7,35.5},{32.4,44.4},{35.8,36.5},{40.2,44.2},{40.6,36.1},{49.4,9.4},{52.3,40.3},{52.8,27.6},{54.8,10.6},{55.5,52.4},{55.5,52.5},{55.6,44.6},{57.6,49.5},{57.8,69.3},{58.8,53},{59.1,60.1},{59.4,74.2},{60.6,29.9},{63,17.7},{63.4,21.1},{64,73.8},{64.4,69.3},{65.1,64.3},{66.2,60.8},{67.4,41.4},{67.4,41.5},{67.5,41.4},{67.5,41.5},{68.1,53},{68.3,36.6}},
|
||||
[zoneIDs.SILITHUS]={{19.7,84.6},{20.6,23.4},{20.6,23.5},{20.9,62},{22.4,39.4},{24.9,17.9},{25.7,58.6},{27.7,34.1},{33.7,13.5},{34.4,91.4},{37.9,34.9},{38.3,60.7},{38.5,60.8},{39.3,85},{39.5,85},{40.2,46.8},{43.7,18.2},{45.4,91.3},{45.4,91.5},{45.5,91.3},{46.3,83.5},{47.1,54.4},{51.4,50.3},{51.4,50.5},{51.5,50.3},{51.5,50.5},{53.6,76.4},{53.6,76.5},{56,20.3},{62.1,83.5},{62.2,83.3},{63,53.6},{63.2,29},{67.1,15},{70.7,23}},
|
||||
},
|
||||
},
|
||||
[176630] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ARATHI_HIGHLANDS]={{17.91,69.41},{18.5,66.2},{19.4,64.5},{20.8,65.8},{27.6,66.0},{29.3,64.9},{29.3,62.8}}},
|
||||
},
|
||||
[177241] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.WESTERN_PLAGUELANDS]={{45.27,69.21}}},
|
||||
[objectKeys.zoneID] = zoneIDs.WESTERN_PLAGUELANDS,
|
||||
},
|
||||
[177784] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DESOLACE]={{24.6,44.1},{25.4,47.8},{25.7,38.9},{26.2,36.7},{28.2,34.1},{29.7,36.7},{30,26.1},{30.1,29.1},{30.6,31.9},{30.6,34.3},{30.8,24.4},{32,30.5},{32.7,25.4},{32.8,35.2},{33,28.6},{33.9,33.2},{34.1,27.5},{34.1,30.6},{34.2,27.4},{34.3,23.2},{35.2,34.7},{35.4,25},{35.5,25},{34.11,30.7},{35.26,34.72},{32.8,35.3},{30.54,34.21},{34.15,27.46},{31.93,30.58},{32.94,28.58},{35.37,25.02},{32.69,25.26},{30.84,24.33},{34.32,23.12},{33.88,33.29}}},
|
||||
},
|
||||
[177785] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.MOONGLADE]={{48,47.1},{50.1,50.6},{52.1,53.4},{52.1,53.5},{52.9,48.5},{53.1,48.4},{54.1,50.1},{54.3,55.6},{54.7,46.4},{54.7,46.5},{56.3,53.7},{58.5,50.8},{60.5,58.3},{60.5,58.5}}},
|
||||
},
|
||||
[178227] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ASHENVALE]={{56,63}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ASHENVALE,
|
||||
},
|
||||
[179544] = {
|
||||
[objectKeys.name] = "Skeletal Remains of Telmius Dreamseeker",
|
||||
},
|
||||
[179908] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_HINTERLANDS]={{53.3,38.8},{57.4,42.6},{57.5,42.6},{66.4,44.8},{71,48.6},{72.6,52.9}}},
|
||||
},
|
||||
[180204] = {
|
||||
[objectKeys.name] = "Uther the Lightbringer",
|
||||
[objectKeys.spawns] = {[zoneIDs.WESTERN_PLAGUELANDS]={{52.08,83.28}}},
|
||||
},
|
||||
[180205] = {
|
||||
[objectKeys.name] = "Monument to Grom Hellscream",
|
||||
[objectKeys.spawns] = {[zoneIDs.ASHENVALE]={{82.8,79.09}}},
|
||||
},
|
||||
[180449] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HILLSBRAD_FOOTHILLS]={{49.75,56.97},{50.28,56.83},{49.91,57.45},{49.49,57.81}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HILLSBRAD_FOOTHILLS,
|
||||
},
|
||||
[180453] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SILITHUS]={{51,99}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SILITHUS,
|
||||
},
|
||||
[180652] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TANARIS]={{59.30,99.30}},
|
||||
[zoneIDs.SOUTH_SEAS]={{59.30,100}},
|
||||
},
|
||||
[objectKeys.zoneID] = zoneIDs.SOUTH_SEAS,
|
||||
},
|
||||
[180717] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SILITHUS]={{25.72,90.86}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SILITHUS,
|
||||
},
|
||||
[187260] = {
|
||||
[objectKeys.spawns] = {}, -- Mailbox possibly added in TBC/BC. Not there in Classic
|
||||
},
|
||||
[188123] = {
|
||||
[objectKeys.spawns] = {}, -- Mailbox possibly added in TBC/BC. Not there in Classic
|
||||
},
|
||||
[190483] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THOUSAND_NEEDLES]={{33.76,39.99}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THOUSAND_NEEDLES,
|
||||
},
|
||||
[190484] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THOUSAND_NEEDLES]={{39.34,41.53}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THOUSAND_NEEDLES,
|
||||
},
|
||||
[375544] = {
|
||||
[objectKeys.name] = "Wooden Figurine",
|
||||
[objectKeys.spawns] = {[zoneIDs.ASHENVALE]={{26.61,22.03}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ASHENVALE,
|
||||
},
|
||||
-- Fake IDs
|
||||
[400014] = {
|
||||
[objectKeys.name] = "Unlit Torch",
|
||||
[objectKeys.spawns] = {[zoneIDs.ASHENVALE]={{26.79,22.43}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ASHENVALE,
|
||||
},
|
||||
[400060] = {
|
||||
[objectKeys.name] = "Serpent Statue", -- Desolace for quest 6027
|
||||
[objectKeys.spawns] = {[zoneIDs.DESOLACE]={{28.24,6.67}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
},
|
||||
[400061] = {
|
||||
[objectKeys.name] = "Maraudon Orange Crystal Pool", -- Desolace for quest 7041
|
||||
[objectKeys.spawns] = {[zoneIDs.DESOLACE]={{33.22,65.67}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
},
|
||||
[400062] = {
|
||||
[objectKeys.name] = "Rookery Egg", -- Rookery Egg in UBRS
|
||||
[objectKeys.spawns] = {[zoneIDs.LOWER_BLACKROCK_SPIRE]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.LOWER_BLACKROCK_SPIRE,
|
||||
},
|
||||
[400063] = {
|
||||
[objectKeys.name] = "Challenge to Urok",
|
||||
[objectKeys.spawns] = {[zoneIDs.LOWER_BLACKROCK_SPIRE]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.LOWER_BLACKROCK_SPIRE,
|
||||
},
|
||||
[500000] = {
|
||||
[objectKeys.name] = "Feralas Ahi Fishing Location",
|
||||
[objectKeys.questStarts] = {},
|
||||
[objectKeys.questEnds] = {},
|
||||
[objectKeys.spawns] = {[zoneIDs.FERALAS]={{62.1,51.4},{62.2,49.9},{62.4,52.4},{62.4,52.5},{62.6,49.3},{62.6,50.2},{62.7,50.6},{62.8,51.5},{62.9,52.5},{63.5,53.6},{63.7,52.4},{64,53.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.FERALAS
|
||||
},
|
||||
[500001] = {
|
||||
[objectKeys.name] = "Misty Reed Mahi Mahi Fishing Location",
|
||||
[objectKeys.questStarts] = {},
|
||||
[objectKeys.questEnds] = {},
|
||||
[objectKeys.spawns] = {[zoneIDs.SWAMP_OF_SORROWS]={{74.4,3.7},{74.5,3.3},{74.5,3.8},{75.1,95.9},{76,95.4},{76.3,4.3},{77.4,4.3},{77.4,95.5},{78.7,5.3},{78.9,95.7},{79.1,94.7},{79.8,94.7},{80.2,94.2},{81.2,93.6},{82.1,94.2},{84.4,91.6},{84.5,92.9},{84.9,92.1},{85.6,89.2},{86.2,88},{86.4,86.4},{86.6,16.8},{86.6,85.6},{87.3,80.7},{87.4,82.1},{87.7,79.7},{87.7,81.9},{88.5,76.6},{89.1,20},{89.8,23},{89.9,74.5},{90.2,22.4},{90.3,73.4},{90.4,71.9},{90.4,73.6},{90.5,73.5},{90.6,73},{90.7,72.1},{91.1,82.2},{91.4,30.1},{91.5,82.1},{91.7,30.4},{91.8,82.9},{93.6,37.2},{93.8,66.5},{94,38.4},{94.2,40.6},{94.2,65.1},{94.3,39.3},{94.3,64.3},{94.8,41.6},{95,43.8},{95.1,45.2},{95.2,45.9},{95.3,56.2},{95.7,47.5}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SWAMP_OF_SORROWS
|
||||
},
|
||||
[500002] = {
|
||||
[objectKeys.name] = "Sar'theris Striker Fishing Location",
|
||||
[objectKeys.questStarts] = {},
|
||||
[objectKeys.questEnds] = {},
|
||||
[objectKeys.spawns] = {[zoneIDs.DESOLACE]={{22.2,87.6},{22.8,76.8},{24.3,82.5},{24.5,81.9},{24.9,81.3},{25.6,81},{25.8,77.4},{25.8,77.5},{25.9,78.7},{26,80.1},{26.2,75.4},{26.2,76.2},{27.2,42.9},{33,36.8},{35.3,31.7},{36.1,32.8},{36.1,34.8},{38.8,23.2},{40.1,22.1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE
|
||||
},
|
||||
[500003] = {
|
||||
[objectKeys.name] = "Savage Coast Blue Sailfin Fishing Location",
|
||||
[objectKeys.questStarts] = {},
|
||||
[objectKeys.questEnds] = {},
|
||||
[objectKeys.spawns] = {[zoneIDs.STRANGLETHORN_VALE]={{13.5,15.7},{19.5,20.9},{22.2,19.8},{24.4,18.8},{24.5,65.7},{24.6,18.9},{25,58.3},{25.3,45.2},{25.4,49.3},{25.5,19.9},{25.7,66.9},{26.2,48.5},{26.3,67.8},{26.9,20.4},{27,39.7},{27.1,40.5},{27.3,68},{27.4,68.9},{27.7,21},{28.7,21.8},{29.2,23.2},{29.4,23.7},{29.4,24.6},{29.4,27.4},{29.4,27.7},{29.5,24.3},{29.5,25.1},{29.5,27.4},{29.5,27.7},{29.6,25.7},{31.9,32.1},{33,31.3},{33,32.1},{33.1,32.5},{34.2,32.4},{34.2,32.5},{34.2,34.7},{34.7,34.5},{34.8,33.7},{34.9,32.4},{35.1,35.6}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STRANGLETHORN_VALE
|
||||
},
|
||||
[500004] = {
|
||||
[objectKeys.name] = "Stormwind City Fishing Location",
|
||||
[objectKeys.questStarts] = {},
|
||||
[objectKeys.questEnds] = {},
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{48.5,67.9},{45.7,60.5},{45.4,53.3},{35.7,45.6},{34.3,59},{51.8,47.1},{60.2,46.6},{65.2,53.7},{61.1,37},{65.6,32},{55.9,33.5},{50.9,23.8}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY
|
||||
},
|
||||
[500005] = {
|
||||
[objectKeys.name] = "Ironforge City Fishing Location",
|
||||
[objectKeys.questStarts] = {},
|
||||
[objectKeys.questEnds] = {},
|
||||
[objectKeys.spawns] = {[zoneIDs.IRONFORGE]={{46.9,14.5}}},
|
||||
[objectKeys.zoneID] = zoneIDs.IRONFORGE
|
||||
},
|
||||
[500006] = {
|
||||
[objectKeys.name] = "Orgrimmar City Fishing Location",
|
||||
[objectKeys.questStarts] = {},
|
||||
[objectKeys.questEnds] = {},
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{70.4,28.3},{67.8,33.7},{64.8,26},{35.2,78.6},{37.6,81.7},{33.3,84.4},{36.3,86}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
-- some objects are shared across factions but require different sources for each faction (not sure if there is a better way to implement this)
|
||||
function QuestieObjectFixes:LoadFactionFixes()
|
||||
local objectKeys = QuestieDB.objectKeys
|
||||
local zoneIDs = ZoneDB.zoneIDs
|
||||
|
||||
local objectFixesHorde = {
|
||||
[180743] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{52.39,69.52}}},
|
||||
},
|
||||
[180746] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{52.33,69.42}}},
|
||||
},
|
||||
[180747] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{52.3,69.18}}},
|
||||
},
|
||||
[180748] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{52.28,69.29}}},
|
||||
},
|
||||
[180793] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{52.42,69.32}}},
|
||||
},
|
||||
}
|
||||
|
||||
local objectFixesAlliance = {
|
||||
[180743] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.IRONFORGE]={{33.86,65.69}}},
|
||||
},
|
||||
[180746] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.IRONFORGE]={{33.46,65.57}}},
|
||||
},
|
||||
[180747] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.IRONFORGE]={{33.78,66.4}}},
|
||||
},
|
||||
[180748] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.IRONFORGE]={{33.9,66.68}}},
|
||||
},
|
||||
[180793] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.IRONFORGE]={{33.96,65.86}}},
|
||||
},
|
||||
}
|
||||
|
||||
if UnitFactionGroup("Player") == "Horde" then
|
||||
return objectFixesHorde
|
||||
else
|
||||
return objectFixesAlliance
|
||||
end
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,174 @@
|
||||
---@type SeasonOfDiscovery
|
||||
local SeasonOfDiscovery = QuestieLoader:ImportModule("SeasonOfDiscovery")
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
|
||||
function SeasonOfDiscovery:LoadItems()
|
||||
local itemKeys = QuestieDB.itemKeys
|
||||
local itemClasses = QuestieDB.itemClasses
|
||||
|
||||
return {
|
||||
[5359] = { -- Lorgalis Manuscript
|
||||
[itemKeys.relatedQuests] = {78923}, -- SoD Knowledge in the Deeps
|
||||
},
|
||||
[5881] = { -- Head of Kelris
|
||||
[itemKeys.relatedQuests] = {78921,78922}, -- SoD Blackfathom Villainy A,H
|
||||
[itemKeys.npcDrops] = {209678}, -- now drops from raid version of npc
|
||||
},
|
||||
[5952] = { -- Corrupted Brain Stem
|
||||
[itemKeys.relatedQuests] = {78926}, -- SoD Researching the Corruption
|
||||
[itemKeys.npcDrops] = {216660, 4788, 4789, 4803, 4802, 4805, 4807, 4799, 4798, 204645, 216662, 4831, 216659, 216661, 204068}, -- now drops from raid version of npc
|
||||
},
|
||||
[204806] = { -- Rune of Victory Rush
|
||||
[itemKeys.npcDrops] = {706,946,1986},
|
||||
},
|
||||
[205944] = { -- Reciprocal Epiphany
|
||||
[itemKeys.npcDrops] = {204937},
|
||||
},
|
||||
[206157] = { -- Seaforium Mining Charge
|
||||
[itemKeys.objectDrops] = {403041},
|
||||
},
|
||||
[206170] = { -- Windfury Cone
|
||||
[itemKeys.objectDrops] = {403105},
|
||||
},
|
||||
[206264] = { -- Rune of Inspiration
|
||||
[itemKeys.npcDrops] = {204937},
|
||||
},
|
||||
[206469] = { -- Prairie Flower
|
||||
[itemKeys.objectDrops] = {403718},
|
||||
},
|
||||
[208085] = { -- Scarlet Lieutenant Signet Ring
|
||||
[itemKeys.npcDrops] = {1662,1664,1665},
|
||||
},
|
||||
[208609] = { -- Glade Flower
|
||||
[itemKeys.objectDrops] = {407247},
|
||||
},
|
||||
[208612] = { -- Severed Spider Head
|
||||
[itemKeys.npcDrops] = {1998,1999,2000,2001},
|
||||
},
|
||||
[208689] = { -- Ferocious Idol
|
||||
[itemKeys.npcDrops] = {98,117,500,1972,6788},
|
||||
},
|
||||
[208771] = { -- Rune of Blade Dance
|
||||
[itemKeys.objectDrops] = {407453,408718,414532},
|
||||
},
|
||||
[208772] = { -- Rune of Saber Slash
|
||||
[itemKeys.objectDrops] = {407457,407731,409131,414624},
|
||||
},
|
||||
[209693] = { -- Alliance Blackfathom Pearl
|
||||
[itemKeys.relatedQuests] = {78916},
|
||||
[itemKeys.startQuest] = 78916,
|
||||
},
|
||||
[209846] = { -- Secrets of the Dreamers
|
||||
[itemKeys.objectDrops] = {409692},
|
||||
},
|
||||
[210026] = { -- Symbol of the Third Owl
|
||||
[itemKeys.objectDrops] = {409942,409949},
|
||||
},
|
||||
[210044] = { -- Symbol of the First Owl
|
||||
[itemKeys.objectDrops] = {410220},
|
||||
},
|
||||
[210055] = { -- Hillsbrad Human Bones
|
||||
[itemKeys.npcDrops] = {2265,2266,2267,2268,2360,2387},
|
||||
},
|
||||
[210195] = { -- Unbalanced Idol
|
||||
[itemKeys.npcDrops] = {1769,1770,1779},
|
||||
},
|
||||
[210589] = { -- Echo of the Ancestors
|
||||
[itemKeys.npcDrops] = {204937},
|
||||
},
|
||||
[210955] = { -- Scarlet Initiate's Uniform
|
||||
[itemKeys.objectDrops] = {412147},
|
||||
},
|
||||
[211452] = { -- Horde Blackfathom Pearl
|
||||
[itemKeys.relatedQuests] = {78917},
|
||||
[itemKeys.startQuest] = 78917,
|
||||
},
|
||||
[211454] = { -- Horde Strange Water Globe (starts Baron Aquanis)
|
||||
[itemKeys.relatedQuests] = {78920},
|
||||
[itemKeys.startQuest] = 78920,
|
||||
},
|
||||
[211818] = { -- Alliance Strange Water Globe (required for but does not start Baron Aquanis)
|
||||
[itemKeys.relatedQuests] = {79099},
|
||||
[itemKeys.startQuest] = nil,
|
||||
},
|
||||
[212347] = { -- Illari's Key
|
||||
[itemKeys.npcDrops] = {215655},
|
||||
},
|
||||
[213446] = { -- Tarnished Prayer Bead III
|
||||
[itemKeys.npcDrops] = {2552,2553,2554,2555,2556,2557,2562,2564,2566,2569,2570,2572,2573,2574,2575,2586,2587,2588,2589,2590,2618,2619,4062},
|
||||
},
|
||||
[215376] = { -- Crusader's Mace
|
||||
[itemKeys.npcDrops] = {4281,4283,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,4299,4300,4301,4302,4303,4306,4540},
|
||||
},
|
||||
[216635] = { -- Spent Voidcore
|
||||
[itemKeys.npcDrops] = {5335,5336,5337},
|
||||
},
|
||||
[216946] = { -- Glittering Dalaran Relic
|
||||
[itemKeys.npcDrops] = {900000},
|
||||
},
|
||||
[216947] = { -- Whirring Dalaran Relic
|
||||
[itemKeys.npcDrops] = {900001},
|
||||
},
|
||||
[216948] = { -- Odd Dalaran Relic
|
||||
[itemKeys.npcDrops] = {900002},
|
||||
},
|
||||
[216949] = { -- Heavy Dalaran Relic
|
||||
[itemKeys.npcDrops] = {900003},
|
||||
},
|
||||
[216950] = { -- Creepy Dalaran Relic
|
||||
[itemKeys.npcDrops] = {900004},
|
||||
},
|
||||
[216951] = { -- Slippery Dalaran Relic
|
||||
[itemKeys.npcDrops] = {900005},
|
||||
},
|
||||
[219759] = { -- Charla's Field Report
|
||||
[itemKeys.npcDrops] = {221472},
|
||||
},
|
||||
[219770] = { -- Gemeron's Field Report
|
||||
[itemKeys.npcDrops] = {221482},
|
||||
},
|
||||
[219771] = { -- Thandros' Field Report
|
||||
[itemKeys.npcDrops] = {221484},
|
||||
},
|
||||
[219772] = { -- Fallia's Field Report
|
||||
[itemKeys.npcDrops] = {221483},
|
||||
},
|
||||
[219776] = { -- Intelligence Report: Vul'gol Ogre Mound
|
||||
[itemKeys.npcDrops] = {221222},
|
||||
},
|
||||
[219778] = { -- Intelligence Report: Rotting Orchard
|
||||
[itemKeys.npcDrops] = {221221},
|
||||
},
|
||||
[219803] = { -- Intelligence Report: Yorgen Farmstead
|
||||
[itemKeys.npcDrops] = {221220},
|
||||
},
|
||||
[219924] = { -- Intelligence Report: Forest Song
|
||||
[itemKeys.npcDrops] = {221271},
|
||||
},
|
||||
[219925] = { -- Intelligence Report: Satyrnaar
|
||||
[itemKeys.npcDrops] = {221272},
|
||||
},
|
||||
[219926] = { -- Intelligence Report: Warsong Lumber Camp
|
||||
[itemKeys.npcDrops] = {221273},
|
||||
},
|
||||
[219928] = { -- Intelligence Report: Agol'watha
|
||||
[itemKeys.npcDrops] = {221353},
|
||||
},
|
||||
[219937] = { -- Intelligence Report: Shaol'watha
|
||||
[itemKeys.npcDrops] = {221352},
|
||||
},
|
||||
[219938] = { -- Intelligence Report: Skulk Rock
|
||||
[itemKeys.npcDrops] = {221351},
|
||||
},
|
||||
[219957] = { -- Intelligence Report: Oneiros
|
||||
[itemKeys.npcDrops] = {221401},
|
||||
},
|
||||
[219958] = { -- Intelligence Report: Twin Colossals
|
||||
[itemKeys.npcDrops] = {221402},
|
||||
},
|
||||
[219959] = { -- Intelligence Report: Ruins of Ravenwind
|
||||
[itemKeys.npcDrops] = {221404},
|
||||
},
|
||||
}
|
||||
end
|
||||
@@ -0,0 +1,714 @@
|
||||
---@type SeasonOfDiscovery
|
||||
local SeasonOfDiscovery = QuestieLoader:ImportModule("SeasonOfDiscovery")
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
---@type ZoneDB
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
|
||||
function SeasonOfDiscovery:LoadNPCs()
|
||||
local npcKeys = QuestieDB.npcKeys
|
||||
local zoneIDs = ZoneDB.zoneIDs
|
||||
local npcFlags = QuestieDB.npcFlags
|
||||
local waypointPresets = QuestieDB.waypointPresets
|
||||
|
||||
return {
|
||||
[15076] = { -- Zandalarian Emissary
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STRANGLETHORN_VALE] = {{27.2, 77.0},{39.5, 5.0}},
|
||||
},
|
||||
},
|
||||
[202060] = { -- Frozen Murloc
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ELWYNN_FOREST] = {{76.8, 51.4}},
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{66.4, 40.2}},
|
||||
},
|
||||
},
|
||||
[202699] = { -- Baron Aquanis
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.BLACKFATHOM_DEEPS] = {{-1, -1}},
|
||||
},
|
||||
[npcKeys.zoneID] = zoneIDs.BLACKFATHOM_DEEPS,
|
||||
},
|
||||
[203079] = { -- Wandering Swordsman
|
||||
[npcKeys.spawns] = {
|
||||
[1] = {{53.5, 47.5}},
|
||||
[12] = {{24.6, 75.2},{38.6, 75.2}},
|
||||
[14] = {{36, 47.4},{41, 49.4},{55.8, 38.4},{56.6, 26.6}},
|
||||
[141] = {{39.6, 37.6},{39.8, 69.4},{43.8, 77},{54.8, 66},{62.6, 71.8}},
|
||||
[215] = {{40.4, 53.2},{45.6, 36.4},{60.2, 67.4}},
|
||||
},
|
||||
},
|
||||
[203226] = { -- Viktoria Woods
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{69.6, 50.6}},
|
||||
},
|
||||
},
|
||||
[203475] = { -- Liv Bradford
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{22.4, 64.4}},
|
||||
},
|
||||
},
|
||||
[203478] = { -- Stuart
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{22.6, 54.2}},
|
||||
},
|
||||
},
|
||||
[204068] = { -- Lady Sarevess
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.BLACKFATHOM_DEEPS] = {{-1, -1}},
|
||||
},
|
||||
[npcKeys.zoneID] = zoneIDs.BLACKFATHOM_DEEPS,
|
||||
},
|
||||
[204070] = { -- Soboz
|
||||
[npcKeys.spawns] = {
|
||||
[1] = {{42, 36.6}},
|
||||
[14] = {{67.4, 89.2}},
|
||||
[1497] = {{24.6, 40.6}},
|
||||
[1519] = {{25, 77.6}},
|
||||
},
|
||||
},
|
||||
[204827] = { -- Adventurer's Remains
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUN_MOROGH] = {{43, 49.4}},
|
||||
[zoneIDs.ELWYNN_FOREST] = {{52.2, 84.4}},
|
||||
[zoneIDs.DUROTAR] = {{48, 79.4}},
|
||||
[zoneIDs.TELDRASSIL] = {{33.6, 35.4}},
|
||||
[zoneIDs.MULGORE] = {{60.4, 33.4}},
|
||||
},
|
||||
},
|
||||
[204989] = { -- Wounded Adventurer
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ELWYNN_FOREST] = {{61.8, 47.6}},
|
||||
},
|
||||
},
|
||||
[204503] = { -- Dead Acolyte
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ELWYNN_FOREST] = {{56.4, 57.8}},
|
||||
},
|
||||
},
|
||||
[205153] = { -- Ada Gelhardt
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{4.4, 28.2}},
|
||||
},
|
||||
},
|
||||
[205278] = { -- Brother Romulus
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{38.4, 27.4}},
|
||||
},
|
||||
},
|
||||
[205382] = { -- Mokwa
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.MULGORE] = {{35.8, 57.2}},
|
||||
},
|
||||
},
|
||||
[206248] = { -- Wooden Effigy
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.TELDRASSIL] = {{66.8, 58}},
|
||||
[zoneIDs.MULGORE] = {{37.4, 49.6}},
|
||||
},
|
||||
},
|
||||
[207515] = { -- Lurkmane
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.MULGORE] = {{30.6, 61.2}},
|
||||
},
|
||||
},
|
||||
[207577] = { -- Lunar Stone
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.TELDRASSIL] = {{52.8, 79.8}},
|
||||
[zoneIDs.MULGORE] = {{35.2, 69.6}},
|
||||
},
|
||||
},
|
||||
[207743] = { -- Netali Proudwind
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THUNDER_BLUFF] = {{28.6, 18.2}},
|
||||
},
|
||||
},
|
||||
[207754] = { -- Mooart
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THUNDER_BLUFF] = {{26.6,19.8}},
|
||||
},
|
||||
},
|
||||
[207957] = { -- Vahi Bonesplitter
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUROTAR] = {{53, 43.4}},
|
||||
},
|
||||
},
|
||||
[208023] = { -- Gru'ark
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ORGRIMMAR] = {{58.8, 53.6}},
|
||||
},
|
||||
},
|
||||
[208124] = { -- Raluk
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUROTAR] = {{68.6, 71.6}},
|
||||
},
|
||||
},
|
||||
[208196] = { -- Gillgar
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{28.4, 46.8}},
|
||||
},
|
||||
},
|
||||
[208275] = { -- Frozen Makrura
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUROTAR] = {{58.6, 45.6}},
|
||||
},
|
||||
},
|
||||
[208619] = { -- Dorac Graves
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{47.2, 71.2}},
|
||||
},
|
||||
},
|
||||
[208638] = { -- Fyodi
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUN_MOROGH] = {{35.4,37.4},{30.4,41.2}},
|
||||
},
|
||||
},
|
||||
[208652] = { -- Junni Steelpass
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUN_MOROGH] = {{46.4, 53.2}},
|
||||
},
|
||||
},
|
||||
[208711] = { -- Toby
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUN_MOROGH] = {{63.6, 50.2}},
|
||||
},
|
||||
},
|
||||
[208752] = { -- Frozen Trogg
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUN_MOROGH] = {{69.2, 58.2}},
|
||||
},
|
||||
},
|
||||
[208802] = { -- Wounded Adventurer
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUN_MOROGH] = {{25.4, 43.6}},
|
||||
},
|
||||
},
|
||||
[208812] = { -- Jorul
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUN_MOROGH] = {{37.8, 42.4}},
|
||||
},
|
||||
},
|
||||
[208919] = { -- Blueheart
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{61.6, 51.4}},
|
||||
},
|
||||
},
|
||||
[208927] = { -- Dead Acolyte
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{76.4, 44.8}},
|
||||
},
|
||||
},
|
||||
[209004] = { -- Bruart
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.IRONFORGE] = {{71.2, 73.2}},
|
||||
},
|
||||
},
|
||||
[209524] = { -- Patrolling Cheetah
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{44.4, 55.4}},
|
||||
},
|
||||
},
|
||||
[209607] = { -- Lieutenant Stonebrew
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {},
|
||||
},
|
||||
},
|
||||
[209608] = { -- Delwynna
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DARNASSUS] = {{63.4, 22}},
|
||||
},
|
||||
},
|
||||
[209678] = { -- Twilight Lord Kelris
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.BLACKFATHOM_DEEPS] = {{-1, -1}},
|
||||
},
|
||||
[npcKeys.zoneID] = zoneIDs.BLACKFATHOM_DEEPS,
|
||||
},
|
||||
[209742] = { -- Desert Mirage
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{57.6, 35.8}},
|
||||
},
|
||||
},
|
||||
[209797] = { -- Bruuz
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{64.8, 39.8}},
|
||||
},
|
||||
},
|
||||
[209872] = { -- Syllart
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.TELDRASSIL] = {{56.6, 57.8}},
|
||||
},
|
||||
},
|
||||
[209908] = { -- Heretic Idol
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{71.8, 27.0}},
|
||||
},
|
||||
},
|
||||
[209928] = { -- Mowgh
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.TELDRASSIL] = {{48.0, 31.6}},
|
||||
},
|
||||
},
|
||||
[209948] = { -- Relaeron
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DARNASSUS] = {{39.2, 9.0}},
|
||||
},
|
||||
},
|
||||
[209954] = { -- Demonic Remains
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{72.6, 68.8}},
|
||||
},
|
||||
},
|
||||
[209958] = { -- Graix
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{72.6, 68.8}},
|
||||
},
|
||||
},
|
||||
[210107] = { -- Kackle
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{55.0, 55.4}},
|
||||
},
|
||||
},
|
||||
[210451] = { -- Lady Sedorax
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DARKSHORE] = {{55.4, 36.6}},
|
||||
},
|
||||
},
|
||||
[210482] = { -- Paxnozz
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DARKSHORE] = {{47.8, 16.0}},
|
||||
},
|
||||
},
|
||||
[210483] = { -- Aggressive Squashling
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{51.2, 22.3},{54, 31.8},{44.6, 35.2},{38.4, 52.5},{62.5, 61.1}},
|
||||
},
|
||||
},
|
||||
[210533] = { -- Silverspur
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{35.6, 38.4}},
|
||||
},
|
||||
},
|
||||
[210537] = { -- Undying Laborer
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{44.9, 24},{31.5, 45}},
|
||||
},
|
||||
},
|
||||
[210549] = { -- Defias Scout
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{51.2, 46.8},{51.6, 55.6}},
|
||||
},
|
||||
},
|
||||
[210845] = { -- Jixo Madrocket
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STONETALON_MOUNTAINS] = {{59.2, 62.4}},
|
||||
},
|
||||
},
|
||||
[210995] = { -- Alonso
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{43.4, 70.4}},
|
||||
},
|
||||
},
|
||||
[211022] = { -- Owen Thadd
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.UNDERCITY] = {{73.4, 33}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "H",
|
||||
},
|
||||
[211033] = { -- Garion Wendell
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{37.8, 80.2}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "A",
|
||||
},
|
||||
[211146] = { -- Lost Adventurer
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.SILVERPINE_FOREST] = {},
|
||||
},
|
||||
},
|
||||
[211736] = { -- Grizzled Protector
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.SILVERPINE_FOREST] = {},
|
||||
},
|
||||
},
|
||||
[211951] = { -- Koartul
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.HILLSBRAD_FOOTHILLS] = {{60.8, 31.8}},
|
||||
},
|
||||
},
|
||||
[211965] = { -- Carrodin
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.WETLANDS] = {{46.6, 65.6}},
|
||||
},
|
||||
},
|
||||
[211200] = { -- Agon
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{65.1, 23.7}},
|
||||
},
|
||||
},
|
||||
[212261] = { -- Awakened Lich
|
||||
[npcKeys.spawns] = {},
|
||||
},
|
||||
[212694] = { -- Hirzek
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{43.2, 78.6}},
|
||||
},
|
||||
},
|
||||
[212699] = { -- Silverwing Archer
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{28.6, 27.4},{51.2, 55.6},{59, 72.4},{73.6, 74.4}},
|
||||
},
|
||||
},
|
||||
[212703] = { -- Silverwing Dryad
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{28.6, 27.4},{51.2, 55.6},{59, 72.4},{73.6, 74.4}},
|
||||
},
|
||||
},
|
||||
[212706] = { -- Silverwing Druid
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{28.6, 27.4},{51.2, 55.6},{59, 72.4},{73.6, 74.4}},
|
||||
},
|
||||
},
|
||||
[212707] = { -- Larodar
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{51.6, 54.6}},
|
||||
},
|
||||
},
|
||||
[212727] = { -- Warsong Grunt
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{21.8, 38.6},{40.2, 65.2},{54, 54.6},{69.4, 62.4}},
|
||||
},
|
||||
},
|
||||
[212728] = { -- Warsong Raider
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{21.8, 38.6},{40.2, 65.2},{54, 54.6},{69.4, 62.4}},
|
||||
},
|
||||
},
|
||||
[212729] = { -- Warsong Shaman
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{21.8, 38.6},{40.2, 65.2},{54, 54.6},{69.4, 62.4}},
|
||||
},
|
||||
},
|
||||
[212730] = { -- Tojara
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{53.6, 54.2}},
|
||||
},
|
||||
},
|
||||
[212801] = { -- Jubei
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{21.6, 36.4}},
|
||||
},
|
||||
},
|
||||
[212802] = { -- Moogul the Sly
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{70.2, 62.8}},
|
||||
},
|
||||
},
|
||||
[212803] = { -- Ceredwyn
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{73.4, 73.4}},
|
||||
},
|
||||
},
|
||||
[212804] = { -- Centrius
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{28.6, 27.8}},
|
||||
},
|
||||
},
|
||||
[212809] = { -- Wailing Spirit
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.SILVERPINE_FOREST] = {{59.6, 71.4}},
|
||||
},
|
||||
},
|
||||
[212837] = { -- Primordial Anomaly
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STONETALON_MOUNTAINS] = {{32.6, 67.6}},
|
||||
},
|
||||
},
|
||||
[212969] = { -- Kazragore
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{39.4, 67.2}},
|
||||
},
|
||||
},
|
||||
[212970] = { -- Felore Moonray
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{59.8, 72.4}},
|
||||
},
|
||||
},
|
||||
[213077] = { -- Elaine Compton
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{54.4, 61.2}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "A",
|
||||
},
|
||||
[214070] = { -- Jornah
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ORGRIMMAR] = {{51.4, 63.8}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "H",
|
||||
},
|
||||
[214096] = { -- Dokimi
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THUNDER_BLUFF] = {{39.2, 53.4}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "H",
|
||||
},
|
||||
[214098] = { -- Gishah
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.UNDERCITY] = {{64, 39.2}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "H",
|
||||
},
|
||||
[214099] = { -- Tamelyn Aldridge
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.IRONFORGE] = {{24.4, 67.6}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "A",
|
||||
},
|
||||
[214101] = { -- Marcy Baker
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DARNASSUS] = {{59.8, 56.4}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "A",
|
||||
},
|
||||
[214456] = { -- Dro'zem the Blasphemous
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.REDRIDGE_MOUNTAINS] = {{35.4, 8.6},{64.2, 45.8},{77.4, 69.4}},
|
||||
},
|
||||
},
|
||||
[214519] = { -- Incinerator Gar'im
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.REDRIDGE_MOUNTAINS] = {{77.6, 85.8}},
|
||||
},
|
||||
},
|
||||
[215850] = { -- Raszel Ander
|
||||
[npcKeys.friendlyToFaction] = "AH",
|
||||
},
|
||||
[216289] = { -- Orokai
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.MOONGLADE] = {{41.2, 43.6}},
|
||||
},
|
||||
},
|
||||
[216902] = { -- Wulmort Jinglepocket
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.IRONFORGE] = {{33.7, 67.23}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "AH",
|
||||
},
|
||||
[216915] = { -- Strange Snowman
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ALTERAC_MOUNTAINS]={{35.43, 72.45}},
|
||||
},
|
||||
},
|
||||
[216924] = { -- Kaymard Copperpinch
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ORGRIMMAR] = {{53.3, 66.47}},
|
||||
},
|
||||
[npcKeys.friendlyToFaction] = "AH",
|
||||
},
|
||||
[217392] = {
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DESOLACE]={{56.4, 21.8}},
|
||||
},
|
||||
},
|
||||
[217669] = { -- Scorched Screeching Roguefeather
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THOUSAND_NEEDLES] = {{26.4, 46.4}},
|
||||
},
|
||||
},
|
||||
[217683] = {
|
||||
[npcKeys.zoneID] = zoneIDs.THOUSAND_NEEDLES,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THOUSAND_NEEDLES] = {{39.4,42}},
|
||||
},
|
||||
},
|
||||
[217703] = { -- Singed Highperch Consort
|
||||
[npcKeys.friendlyToFaction] = "H",
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THOUSAND_NEEDLES] = {{10.4, 40.2}},
|
||||
},
|
||||
},
|
||||
[217706] = { -- Kazragore
|
||||
[npcKeys.friendlyToFaction] = "H",
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{74.0, 60.6}},
|
||||
},
|
||||
},
|
||||
[217707] = { -- Felore Moonray
|
||||
[npcKeys.friendlyToFaction] = "A",
|
||||
},
|
||||
[217711] = { -- Seared Needles Cougar
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THOUSAND_NEEDLES] = {{23.4, 23.4}},
|
||||
},
|
||||
},
|
||||
[217412] = { -- Amaryllis Webb
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.SWAMP_OF_SORROWS] = {{25.2, 54.6}},
|
||||
},
|
||||
},
|
||||
[217588] = { -- Arbor Tarantula
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STRANGLETHORN_VALE] = {{45.2, 19.6}},
|
||||
},
|
||||
},
|
||||
[217589] = { -- Hay Weevil
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ARATHI_HIGHLANDS] = {{30.8, 28.6},{54.2, 38.6},{61.2, 55.4}},
|
||||
},
|
||||
},
|
||||
[217590] = { -- Flesh Picker
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DESOLACE] = {{51.4, 59.8}},
|
||||
},
|
||||
},
|
||||
[218115] = { -- Mai'zin
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STRANGLETHORN_VALE] = {{31.2, 48.4}},
|
||||
},
|
||||
},
|
||||
[218160] = { -- Aeonas the Vindicated
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{37.4, 31.8}},
|
||||
},
|
||||
},
|
||||
[218237] = { -- Wirdal Wondergear
|
||||
[npcKeys.friendlyToFaction] = "AH",
|
||||
[npcKeys.zoneID] = zoneIDs.FERALAS,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.FERALAS] = {{84.2,43.8}},
|
||||
},
|
||||
},
|
||||
[218931] = { -- Dark Rider Deadwind Pass
|
||||
[npcKeys.zoneID] = zoneIDs.DEADWIND_PASS,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DEADWIND_PASS] = {{43,29}},
|
||||
},
|
||||
},
|
||||
[221210] = { -- Kroll Mountainshade
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{66.11, 69.28}},
|
||||
},
|
||||
},
|
||||
[221215] = { -- Alara Grovemender
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{49.15, 77.55}},
|
||||
},
|
||||
},
|
||||
[221216] = { -- Elenora Marshwalker
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{32.39, 69.48}},
|
||||
},
|
||||
},
|
||||
[221268] = { -- Doran Dreambough
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{87.23, 43.56}},
|
||||
},
|
||||
},
|
||||
[221269] = { -- Maseara Autumnmoon
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{81.2, 50.5}},
|
||||
},
|
||||
},
|
||||
[221270] = { -- Alyssian Windcaller
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{92, 54.0}},
|
||||
},
|
||||
},
|
||||
[221335] = { -- Elianar Shadowdrinker
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_HINTERLANDS] = {{53.47, 39.05}},
|
||||
},
|
||||
},
|
||||
[221336] = { -- Serlina Starbright
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_HINTERLANDS] = {{71.11, 47.98}},
|
||||
},
|
||||
},
|
||||
[221337] = { -- Veanna Cloudsleeper
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_HINTERLANDS] = {{57.29, 42.80}},
|
||||
},
|
||||
},
|
||||
[221395] = { -- Mellias Earthtender
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.FERALAS] = {{49.65, 15.35}},
|
||||
},
|
||||
},
|
||||
[221398] = { -- Nerene Brooksinger
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.FERALAS] = {{46.00, 16.50}},
|
||||
},
|
||||
},
|
||||
[221399] = { -- Jamniss Treemender
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.FERALAS] = {{40.62, 8.08}},
|
||||
},
|
||||
},
|
||||
[221484] = { -- Scout Thandros
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.FERALAS] = {{51.06,10.54}},
|
||||
},
|
||||
},
|
||||
[222188] = { -- Shadowy Figure
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.MOONGLADE] = {{52.12,40.89}},
|
||||
},
|
||||
},
|
||||
|
||||
-- fake NPCs
|
||||
[900000] = {
|
||||
[npcKeys.name] = "Dark Rider",
|
||||
[npcKeys.minLevel] = 41,
|
||||
[npcKeys.maxLevel] = 41,
|
||||
[npcKeys.zoneID] = zoneIDs.DUSKWOOD,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{23,47}},
|
||||
},
|
||||
},
|
||||
[900001] = {
|
||||
[npcKeys.name] = "Dark Rider",
|
||||
[npcKeys.minLevel] = 41,
|
||||
[npcKeys.maxLevel] = 41,
|
||||
[npcKeys.zoneID] = zoneIDs.ARATHI_HIGHLANDS,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.ARATHI_HIGHLANDS] = {{60,40}},
|
||||
},
|
||||
},
|
||||
[900002] = {
|
||||
[npcKeys.name] = "Dark Rider",
|
||||
[npcKeys.minLevel] = 41,
|
||||
[npcKeys.maxLevel] = 41,
|
||||
[npcKeys.zoneID] = zoneIDs.SWAMP_OF_SORROWS,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.SWAMP_OF_SORROWS] = {{69,28}},
|
||||
},
|
||||
},
|
||||
[900003] = {
|
||||
[npcKeys.name] = "Dark Rider",
|
||||
[npcKeys.minLevel] = 41,
|
||||
[npcKeys.maxLevel] = 41,
|
||||
[npcKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{52,36}},
|
||||
},
|
||||
},
|
||||
[900004] = {
|
||||
[npcKeys.name] = "Dark Rider",
|
||||
[npcKeys.minLevel] = 41,
|
||||
[npcKeys.maxLevel] = 41,
|
||||
[npcKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.DESOLACE] = {{65,25}},
|
||||
},
|
||||
},
|
||||
[900005] = {
|
||||
[npcKeys.name] = "Dark Rider",
|
||||
[npcKeys.minLevel] = 41,
|
||||
[npcKeys.maxLevel] = 41,
|
||||
[npcKeys.zoneID] = zoneIDs.BADLANDS,
|
||||
[npcKeys.spawns] = {
|
||||
[zoneIDs.BADLANDS] = {{58,54}},
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
||||
@@ -0,0 +1,474 @@
|
||||
---@type SeasonOfDiscovery
|
||||
local SeasonOfDiscovery = QuestieLoader:ImportModule("SeasonOfDiscovery")
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
---@type ZoneDB
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
|
||||
function SeasonOfDiscovery:LoadObjects()
|
||||
local objectKeys = QuestieDB.objectKeys
|
||||
local zoneIDs = ZoneDB.zoneIDs
|
||||
|
||||
return {
|
||||
[386675] = { -- Buried Treasure
|
||||
[objectKeys.zoneID] = zoneIDs.DUN_MOROGH,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUN_MOROGH] = {{46.96,43.73}},
|
||||
},
|
||||
},
|
||||
[386691] = { -- Library Book
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.IRONFORGE] = {{76, 10.4}},
|
||||
},
|
||||
},
|
||||
[386777] = { -- Dusty Chest Stormwind
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{61.9, 29.3}},
|
||||
},
|
||||
},
|
||||
[402215] = { -- Charred Note
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.STORMWIND_CITY] = {{33,24.7}},
|
||||
},
|
||||
},
|
||||
[403041] = { -- Blasting Supplies
|
||||
[objectKeys.zoneID] = zoneIDs.MULGORE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.MULGORE] = {{63.8,44.1}},
|
||||
},
|
||||
},
|
||||
[403105] = { -- Windfury Cone
|
||||
[objectKeys.zoneID] = zoneIDs.MULGORE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.MULGORE] = {{31.2,22.8},{31,26.4},{32.4,27.6},{35,13.6},{38.2,9},{39.6,7},{51,7.2},{55.2,12},{55.8,16}},
|
||||
},
|
||||
},
|
||||
[403718] = { -- Prairie Flower
|
||||
[objectKeys.zoneID] = zoneIDs.MULGORE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.MULGORE] = {{37.81, 65.45},{38.17, 57.14},{39.85, 51.63},{41.39, 63.2},{45.01, 46.77},{50.97, 46.03},{51.77, 67.3},{53.29, 63.13},{54.31, 58.05},{58.41, 66.64},{58.85, 51.32}},
|
||||
},
|
||||
},
|
||||
[404352] = { -- Artifact Storage Mulgore
|
||||
[objectKeys.zoneID] = zoneIDs.MULGORE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.MULGORE] = {{31.6, 49.4}},
|
||||
},
|
||||
},
|
||||
[405201] = { -- Shipwreck Cache Tirisfal Glades
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{66.7, 24.6}},
|
||||
},
|
||||
},
|
||||
[405946] = { -- Dusty Chest
|
||||
[objectKeys.zoneID] = zoneIDs.IRONFORGE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.IRONFORGE] = {{52.0, 13.6}},
|
||||
},
|
||||
},
|
||||
[406736] = { -- Lost Stash
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{24.7, 59.4}},
|
||||
},
|
||||
},
|
||||
[407117] = { -- Abandoned Snapjaw Nest
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{44,22}},
|
||||
},
|
||||
},
|
||||
[407120] = { -- Empty Snapjaw Nest
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{48,40}},
|
||||
},
|
||||
},
|
||||
[407247] = { -- Glade Flower
|
||||
[objectKeys.zoneID] = zoneIDs.TELDRASSIL,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TELDRASSIL] = {{57.06, 65.57},{58.05, 73.19},{59.63, 60.05},{61.09, 54.02},{63.88, 64.90},{64.89, 54.77},{65.64, 59.22},{66.56, 51.55},{67.36, 64.15},{69.56, 55.75}},
|
||||
},
|
||||
},
|
||||
[407289] = { -- Horde Warbanner
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{52.2,31.1}},
|
||||
},
|
||||
},
|
||||
[407291] = { -- Alliance Warbanner
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{62.55,56.31}},
|
||||
},
|
||||
},
|
||||
[407453] = { -- Southsea Loot Stash
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{61.81,45.84}},
|
||||
},
|
||||
},
|
||||
[407454] = { -- Gunpowder Keg
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{61.78,45.8}},
|
||||
},
|
||||
},
|
||||
[407457] = { -- Stable Hand's Trunk
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{61.3, 54.1}},
|
||||
},
|
||||
},
|
||||
[407505] = { -- Etched Carving
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{45,79}},
|
||||
},
|
||||
},
|
||||
[407731] = { -- Stonemason's Toolbox
|
||||
[objectKeys.zoneID] = zoneIDs.LOCH_MODAN,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{46.5, 12.7}},
|
||||
},
|
||||
},
|
||||
[407734] = { -- Gnarlpine Cache
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TELDRASSIL] = {{44.1, 61.2}},
|
||||
},
|
||||
},
|
||||
[407844] = { -- Libram of Blessings
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{35.8, 49.5}},
|
||||
},
|
||||
},
|
||||
[407850] = { -- Sunken Reliquary
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{36.8, 91.4}},
|
||||
},
|
||||
},
|
||||
[407918] = { -- Empty Trophy Display
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{83.6, 65.5}},
|
||||
},
|
||||
},
|
||||
[408004] = { -- Tangled Blight Pile
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{71.7, 21.4}},
|
||||
},
|
||||
},
|
||||
[408718] = { -- Equipment Stash
|
||||
[objectKeys.zoneID] = zoneIDs.WESTFALL,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{40.8,80.24}},
|
||||
},
|
||||
},
|
||||
[408799] = { -- Idol of the Deep
|
||||
[objectKeys.zoneID] = zoneIDs.WESTFALL,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{26,69.5}},
|
||||
},
|
||||
},
|
||||
[409289] = { -- Strange Orb
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DARKSHORE] = {{56.2, 26.4},},
|
||||
},
|
||||
},
|
||||
[409311] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{89.4, 77.1}},
|
||||
},
|
||||
},
|
||||
[409562] = { -- Spellbook
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{45.4, 70.4}},
|
||||
},
|
||||
},
|
||||
[409692] = { -- Scrolls
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_BARRENS] = {{49.3,33.5}},
|
||||
},
|
||||
},
|
||||
[409731] = { -- Scrolls
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.LOCH_MODAN] = {{77.4, 14}},
|
||||
},
|
||||
},
|
||||
[409735] = { -- Spellbook
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{16.7, 28.4}},
|
||||
},
|
||||
},
|
||||
[409942] = { -- Twin Owl Statue
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.HILLSBRAD_FOOTHILLS] = {{36.9, 76.1}},
|
||||
},
|
||||
},
|
||||
[409949] = { -- Twin Owl Statue
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.HILLSBRAD_FOOTHILLS] = {{54.0, 83.0}},
|
||||
},
|
||||
},
|
||||
[410020] = { -- Owl Statue
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{87.0, 43.2}},
|
||||
},
|
||||
},
|
||||
[410089] = { -- Owl Statue
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{49.5, 33.8}},
|
||||
},
|
||||
},
|
||||
[410847] = { -- Rusty Safe Western Plaguelands
|
||||
[objectKeys.zoneID] = zoneIDs.WESTERN_PLAGUELANDS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTERN_PLAGUELANDS] = {{59.5, 84.5}},
|
||||
},
|
||||
},
|
||||
[411328] = { -- Slumbering Bones
|
||||
[objectKeys.zoneID] = zoneIDs.DUSKWOOD,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{17,37.6}},
|
||||
},
|
||||
},
|
||||
[411674] = { -- Prophecy of a King's Demise
|
||||
[objectKeys.spawns] = {
|
||||
[130] = {{65.8, 23.4}},
|
||||
},
|
||||
},
|
||||
[412147] = { -- Supply Locker
|
||||
[objectKeys.zoneID] = zoneIDs.TIRISFAL_GLADES,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{81.18,32.12}},
|
||||
},
|
||||
},
|
||||
[414658] = { -- Rubble
|
||||
[objectKeys.zoneID] = zoneIDs.HILLSBRAD_FOOTHILLS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.HILLSBRAD_FOOTHILLS] = {{79.7, 40.9}},
|
||||
},
|
||||
},
|
||||
[415107] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{37.4, 50.7}},
|
||||
},
|
||||
},
|
||||
[419741] = { -- Sacrificial Altar
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DESOLACE] = {{81.4,79.8}},
|
||||
},
|
||||
},
|
||||
[420055] = { -- Rowboat
|
||||
[objectKeys.zoneID] = zoneIDs.ARATHI_HIGHLANDS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ARATHI_HIGHLANDS] = {{53.7,91.9}},
|
||||
[zoneIDs.WETLANDS] = {{58.31,6.94}},
|
||||
},
|
||||
},
|
||||
[422895] = {
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DESOLACE] = {{39,57}},
|
||||
},
|
||||
},
|
||||
[423898] = { -- Mysterious Book
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DESOLACE] = {{55,26.2}},
|
||||
},
|
||||
},
|
||||
[424074] = { -- Quadrangulation Beacon 001
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUSTWALLOW_MARSH] = {{58.6, 13.0}},
|
||||
},
|
||||
},
|
||||
[424075] = { -- Quadrangulation Beacon 002
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DESOLACE] = {{32.0, 72.7}},
|
||||
},
|
||||
},
|
||||
[424076] = { -- Quadrangulation Beacon 003
|
||||
[objectKeys.zoneID] = zoneIDs.TANARIS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TANARIS] = {{37.8, 27.3}},
|
||||
},
|
||||
},
|
||||
[424077] = { -- Quadrangulation Beacon 004
|
||||
[objectKeys.zoneID] = zoneIDs.FERALAS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.FERALAS] = {{29.3, 93.8}},
|
||||
},
|
||||
},
|
||||
[424082] = {
|
||||
[objectKeys.spawns] = {},
|
||||
},
|
||||
[424264] = { -- Grave
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUSTWALLOW_MARSH] = {{63.7, 42.4}},
|
||||
},
|
||||
},
|
||||
[424265] = { -- Grave
|
||||
[objectKeys.zoneID] = zoneIDs.SWAMP_OF_SORROWS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.SWAMP_OF_SORROWS] = {{16.8,53.8}},
|
||||
},
|
||||
},
|
||||
[424266] = { -- Grave
|
||||
[objectKeys.zoneID] = zoneIDs.SCARLET_MONASTERY,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.SCARLET_MONASTERY] = {{-1,-1}},
|
||||
},
|
||||
},
|
||||
[424267] = { -- Grave
|
||||
[objectKeys.zoneID] = zoneIDs.ARATHI_HIGHLANDS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ARATHI_HIGHLANDS] = {{62,54}},
|
||||
},
|
||||
},
|
||||
[441848] = { -- Small Burrow
|
||||
[objectKeys.zoneID] = zoneIDs.STRANGLETHORN_VALE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.STRANGLETHORN_VALE] = {{40.75,85.72}},
|
||||
},
|
||||
},
|
||||
|
||||
-- fake ID - no clue yet what the correct ones are
|
||||
[450000] = {
|
||||
[objectKeys.name] = "Arcane Shard",
|
||||
[objectKeys.zoneID] = zoneIDs.ASHENVALE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{13.1,24.8},{13,15},{14,19}},
|
||||
},
|
||||
},
|
||||
[450001] = {
|
||||
[objectKeys.name] = "The Lessons of Ta'zo",
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ORGRIMMAR] = {{38.7,78.4}},
|
||||
},
|
||||
},
|
||||
[450002] = {
|
||||
[objectKeys.name] = "Medusa Statue",
|
||||
[objectKeys.zoneID] = zoneIDs.WESTFALL,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTFALL] = {{26,70}},
|
||||
},
|
||||
},
|
||||
[450003] = {
|
||||
[objectKeys.name] = "Thistlefur Dreamcatcher",
|
||||
[objectKeys.zoneID] = zoneIDs.ASHENVALE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{38,26}},
|
||||
},
|
||||
},
|
||||
[450004] = {
|
||||
[objectKeys.name] = "Wishing Well",
|
||||
[objectKeys.zoneID] = zoneIDs.LOCH_MODAN,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ASHENVALE] = {{36.4,19.6}},
|
||||
},
|
||||
},
|
||||
[450005] = {
|
||||
[objectKeys.name] = "Buried Treasure",
|
||||
[objectKeys.zoneID] = zoneIDs.ELWYNN_FOREST,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ELWYNN_FOREST] = {{80.3, 79.1}},
|
||||
},
|
||||
},
|
||||
[450006] = {
|
||||
[objectKeys.name] = "Buried Treasure",
|
||||
[objectKeys.zoneID] = zoneIDs.DUROTAR,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUROTAR] = {{62.1, 94.8}},
|
||||
},
|
||||
},
|
||||
[450007] = {
|
||||
[objectKeys.name] = "Buried Treasure",
|
||||
[objectKeys.zoneID] = zoneIDs.TIRISFAL_GLADES,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TIRISFAL_GLADES] = {{52.9, 54}},
|
||||
},
|
||||
},
|
||||
[450008] = {
|
||||
[objectKeys.name] = "Buried Treasure",
|
||||
[objectKeys.zoneID] = zoneIDs.TELDRASSIL,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.TELDRASSIL] = {{55.3, 90.8}},
|
||||
},
|
||||
},
|
||||
[450009] = {
|
||||
[objectKeys.name] = "Secluded Grave",
|
||||
[objectKeys.zoneID] = zoneIDs.DUSKWOOD,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{90.9,30.5}},
|
||||
},
|
||||
},
|
||||
[450010] = {
|
||||
[objectKeys.name] = "Raven Hill Statue",
|
||||
[objectKeys.zoneID] = zoneIDs.DUSKWOOD,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUSKWOOD] = {{19.9,45.5}},
|
||||
},
|
||||
},
|
||||
[450011] = {
|
||||
[objectKeys.name] = "Galvanic Icon",
|
||||
[objectKeys.zoneID] = zoneIDs.DUROTAR,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUROTAR] = {{38.01, 35.53},{53.36, 50.48},{51.78, 56.39},{36.95, 45.53},{56.53, 28.37},{39.43, 50.06}},
|
||||
},
|
||||
},
|
||||
[450012] = {
|
||||
[objectKeys.name] = "Galvanic Icon",
|
||||
[objectKeys.zoneID] = zoneIDs.MULGORE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.MULGORE] = {{54.07, 55.82},{36.3, 9.8},{37.5, 52.5},{41.65, 55.98},{37.99, 60.04}},
|
||||
},
|
||||
},
|
||||
[450013] = {
|
||||
[objectKeys.name] = "Beastly Effigy",
|
||||
[objectKeys.zoneID] = zoneIDs.THOUSAND_NEEDLES,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THOUSAND_NEEDLES] = {{69.0, 55.0}},
|
||||
},
|
||||
},
|
||||
[450014] = {
|
||||
[objectKeys.name] = "Witherbark Gong",
|
||||
[objectKeys.zoneID] = zoneIDs.ARATHI_HIGHLANDS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ARATHI_HIGHLANDS] = {{69.33, 81.50}},
|
||||
},
|
||||
},
|
||||
[450015] = {
|
||||
[objectKeys.name] = "Satyrweed Bulb Location",
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DESOLACE] = {{70.0, 70.0}},
|
||||
},
|
||||
},
|
||||
[450016] = {
|
||||
[objectKeys.name] = "Strahnbrad Bellows",
|
||||
[objectKeys.zoneID] = zoneIDs.ALTERAC_MOUNTAINS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ALTERAC_MOUNTAINS] = {{60.0, 46.4}},
|
||||
},
|
||||
},
|
||||
[450017] = {
|
||||
[objectKeys.name] = "Crate",
|
||||
[objectKeys.zoneID] = zoneIDs.MOONGLADE,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.MOONGLADE] = {{55.6,66.5}},
|
||||
},
|
||||
},
|
||||
[450018] = {
|
||||
[objectKeys.name] = "Soft Soil",
|
||||
[objectKeys.zoneID] = zoneIDs.ARATHI_HIGHLANDS,
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ARATHI_HIGHLANDS] = {{34,44}},
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,526 @@
|
||||
---@class QuestieTBCItemFixes
|
||||
local QuestieTBCItemFixes = QuestieLoader:CreateModule("QuestieTBCItemFixes")
|
||||
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
|
||||
function QuestieTBCItemFixes:Load()
|
||||
local itemKeys = QuestieDB.itemKeys
|
||||
|
||||
return {
|
||||
[4503] = {
|
||||
[itemKeys.npcDrops] = {2557,2556,2555,2553,2552,2558,2554},
|
||||
},
|
||||
[5445] = {
|
||||
[itemKeys.npcDrops] = {3943},
|
||||
},
|
||||
[5959] = {
|
||||
[itemKeys.npcDrops] = {4376,4378,4379,4380},
|
||||
},
|
||||
[6083] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[8073] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[12366] = {
|
||||
[itemKeys.npcDrops] = {7457,7458,7459,7460},
|
||||
},
|
||||
[20023] = {
|
||||
[itemKeys.npcDrops] = {6375,6377,6378,6379,6380,8759,8761,8762,8763,8764,8766,},
|
||||
},
|
||||
[21771] = {
|
||||
[itemKeys.npcDrops] = {15668,15669},
|
||||
},
|
||||
[22435] = {
|
||||
[itemKeys.npcDrops] = {6551,6552,6553,6554,6555,10040,10041},
|
||||
},
|
||||
[22775] = {
|
||||
[itemKeys.npcDrops] = {16442},
|
||||
},
|
||||
[22776] = {
|
||||
[itemKeys.npcDrops] = {16443},
|
||||
},
|
||||
[22777] = {
|
||||
[itemKeys.npcDrops] = {16444},
|
||||
},
|
||||
[23217] = {
|
||||
[itemKeys.npcDrops] = {16933},
|
||||
},
|
||||
[23339] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[23361] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[23417] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[23645] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[23486] = {
|
||||
[itemKeys.npcDrops] = {17034},
|
||||
},
|
||||
[23552] = {
|
||||
[itemKeys.objectDrops] = {184079},
|
||||
},
|
||||
[23614] = {
|
||||
[itemKeys.objectDrops] = {181616},
|
||||
},
|
||||
[23670] = {
|
||||
[itemKeys.objectDrops] = {181632},
|
||||
},
|
||||
[23750] = {
|
||||
[itemKeys.objectDrops] = {107047},
|
||||
},
|
||||
[23789] = {
|
||||
[itemKeys.npcDrops] = {17186,17187,17188},
|
||||
},
|
||||
[23792] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[23801] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[23818] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[23848] = {
|
||||
[itemKeys.npcDrops] = {3546},
|
||||
},
|
||||
[23849] = {
|
||||
[itemKeys.npcDrops] = {17190,17191,17192},
|
||||
},
|
||||
[23878] = {
|
||||
[itemKeys.objectDrops] = {181779},
|
||||
},
|
||||
[23879] = {
|
||||
[itemKeys.objectDrops] = {181780},
|
||||
},
|
||||
[23880] = {
|
||||
[itemKeys.objectDrops] = {181781},
|
||||
},
|
||||
[23894] = {
|
||||
[itemKeys.npcDrops] = {17370,17371,17377,17381,17395,17397,17398,17414,17429,17491,17624,17626,},
|
||||
},
|
||||
[23984] = {
|
||||
[itemKeys.npcDrops] = {17324,17327,17339,17342,17343,17344,17346,17347,17348,17350,17352,17353,17522,17523,17527,17588,17589,17661,17683,17322,17323,17325,17326,17328,17329,17330,17334,17336,17337,17338,17340,17341,17358,17494,17550,17604,17606,17607,17608,17609,17610,17713,17714,17715},
|
||||
},
|
||||
[24084] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24099] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24156] = {
|
||||
[itemKeys.npcDrops] = {17544},
|
||||
},
|
||||
[24278] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24285] = {
|
||||
[itemKeys.npcDrops] = {16683},
|
||||
},
|
||||
[24286] = {
|
||||
[itemKeys.npcDrops] = {16611},
|
||||
},
|
||||
[24287] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24289] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24317] = {
|
||||
[itemKeys.objectDrops] = {182074},
|
||||
},
|
||||
[24335] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24474] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24502] = {
|
||||
[itemKeys.npcDrops] = {17138,18037,18064,18065},
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24573] = {
|
||||
[itemKeys.npcDrops] = {18197},
|
||||
},
|
||||
[24226] = {
|
||||
[itemKeys.npcDrops] = {17832},
|
||||
},
|
||||
[24355] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24467] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[24501] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[25460] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[25461] = {
|
||||
[itemKeys.npcDrops] = {18472},
|
||||
},
|
||||
[25462] = {
|
||||
[itemKeys.npcDrops] = {16807},
|
||||
},
|
||||
[25465] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[25539] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[25552] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[25554] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[25555] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[25642] = {
|
||||
[itemKeys.objectDrops] = {185201},
|
||||
},
|
||||
[25807] = {
|
||||
[itemKeys.npcDrops] = {18476,18477},
|
||||
},
|
||||
[25658] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[28038] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[28106] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[28132] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[28478] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[29112] = {
|
||||
[itemKeys.npcDrops] = {18907},
|
||||
},
|
||||
[29162] = {
|
||||
[itemKeys.objectDrops] = {184162},
|
||||
},
|
||||
[29324] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[29460] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[29473] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[29482] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[29742] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[29778] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[29795] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[29796] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30259] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30426] = {
|
||||
[itemKeys.npcDrops] = {19762,19768,19789},
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30430] = {
|
||||
[itemKeys.objectDrops] = {184715},
|
||||
},
|
||||
[30435] = {
|
||||
[itemKeys.objectDrops] = {184729},
|
||||
},
|
||||
[30451] = {
|
||||
[itemKeys.npcDrops] = {19799,19800,19802,21337,21656},
|
||||
},
|
||||
[30540] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30639] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30658] = {
|
||||
[itemKeys.npcDrops] = {21727},
|
||||
},
|
||||
[30659] = {
|
||||
[itemKeys.npcDrops] = {21725},
|
||||
},
|
||||
[30672] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30712] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30719] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30721] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[30743] = {
|
||||
[itemKeys.npcDrops] = {21821,20021},
|
||||
},
|
||||
[30782] = {
|
||||
[itemKeys.npcDrops] = {21817,20021},
|
||||
},
|
||||
[30783] = {
|
||||
[itemKeys.npcDrops] = {21820,20021},
|
||||
},
|
||||
[30808] = {
|
||||
[itemKeys.npcDrops] = {18667},
|
||||
},
|
||||
[30823] = {
|
||||
[itemKeys.npcDrops] = {19678},
|
||||
},
|
||||
[31121] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31122] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31130] = {
|
||||
[itemKeys.npcDrops] = {21387},
|
||||
},
|
||||
[31252] = {
|
||||
[itemKeys.npcDrops] = {18733},
|
||||
},
|
||||
[31279] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31316] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31530] = {
|
||||
[itemKeys.objectDrops] = {177281},
|
||||
},
|
||||
[31495] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31517] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31518] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31607] = {
|
||||
[itemKeys.npcDrops] = {22258},
|
||||
},
|
||||
[31655] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31664] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31702] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[31708] = {
|
||||
[itemKeys.objectDrops] = {185224},
|
||||
},
|
||||
[31709] = {
|
||||
[itemKeys.objectDrops] = {185226},
|
||||
},
|
||||
[31710] = {
|
||||
[itemKeys.objectDrops] = {185225},
|
||||
},
|
||||
[31716] = {
|
||||
[itemKeys.npcDrops] = {17301},
|
||||
},
|
||||
[31721] = {
|
||||
[itemKeys.npcDrops] = {17798},
|
||||
},
|
||||
[31722] = {
|
||||
[itemKeys.npcDrops] = {18708},
|
||||
},
|
||||
[31951] = {
|
||||
[itemKeys.vendors] = {21643},
|
||||
},
|
||||
[31957] = {
|
||||
[itemKeys.npcDrops] = {20520},
|
||||
},
|
||||
[32364] = {
|
||||
[itemKeys.objectDrops] = {185566},
|
||||
[itemKeys.npcDrops] = {23002},
|
||||
},
|
||||
[32385] = {
|
||||
[itemKeys.npcDrops] = {21174},
|
||||
},
|
||||
[32386] = {
|
||||
[itemKeys.npcDrops] = {21174},
|
||||
},
|
||||
[32406] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[32723] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[32971] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[33071] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[33039] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[31813] = {
|
||||
[itemKeys.npcDrops] = {18884},
|
||||
},
|
||||
[34246] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[32742] = {
|
||||
[itemKeys.npcDrops] = {23363},
|
||||
},
|
||||
[33041] = {
|
||||
[itemKeys.objectDrops] = {186283},
|
||||
},
|
||||
[33061] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[33086] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[33087] = {
|
||||
[itemKeys.npcDrops] = {4328,4329,4331},
|
||||
},
|
||||
[33112] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[33175] = {
|
||||
[itemKeys.npcDrops] = {},
|
||||
},
|
||||
[33814] = {
|
||||
[itemKeys.npcDrops] = {17377},
|
||||
},
|
||||
[33815] = {
|
||||
[itemKeys.npcDrops] = {16808},
|
||||
},
|
||||
[33821] = {
|
||||
[itemKeys.npcDrops] = {17942},
|
||||
},
|
||||
[33826] = {
|
||||
[itemKeys.npcDrops] = {17882},
|
||||
},
|
||||
[33827] = {
|
||||
[itemKeys.npcDrops] = {17798},
|
||||
},
|
||||
[33833] = {
|
||||
[itemKeys.npcDrops] = {17536},
|
||||
},
|
||||
[33834] = {
|
||||
[itemKeys.npcDrops] = {18473},
|
||||
},
|
||||
[33835] = {
|
||||
[itemKeys.npcDrops] = {18344},
|
||||
},
|
||||
[33836] = {
|
||||
[itemKeys.npcDrops] = {18373},
|
||||
},
|
||||
[33837] = {
|
||||
[itemKeys.npcDrops] = {18096},
|
||||
},
|
||||
[33840] = {
|
||||
[itemKeys.npcDrops] = {18708},
|
||||
},
|
||||
[33858] = {
|
||||
[itemKeys.npcDrops] = {17881},
|
||||
},
|
||||
[33859] = {
|
||||
[itemKeys.npcDrops] = {17977},
|
||||
},
|
||||
[33860] = {
|
||||
[itemKeys.npcDrops] = {19220},
|
||||
},
|
||||
[33861] = {
|
||||
[itemKeys.npcDrops] = {20912},
|
||||
},
|
||||
[34160] = {
|
||||
[itemKeys.npcDrops] = {24664},
|
||||
},
|
||||
[34338] = {
|
||||
[itemKeys.npcDrops] = {24960,24966},
|
||||
},
|
||||
[34475] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[34477] = {
|
||||
[itemKeys.class] = 12,
|
||||
},
|
||||
[34864] = {
|
||||
[itemKeys.objectDrops] = {500004,500005,500006},
|
||||
},
|
||||
[35229] = {
|
||||
[itemKeys.objectDrops] = {400013},
|
||||
},
|
||||
[35277] = {
|
||||
[itemKeys.npcDrops] = {25866,25863,25924},
|
||||
},
|
||||
[37736] = { -- 2021 Brewfest item (Alliance)
|
||||
[itemKeys.name] = '"Brew of the Month" Club Membership Form',
|
||||
[itemKeys.startQuest] = 12420,
|
||||
[itemKeys.itemLevel] = 1,
|
||||
[itemKeys.requiredLevel] = 1,
|
||||
[itemKeys.ammoType] = 0,
|
||||
[itemKeys.class] = 12,
|
||||
[itemKeys.subClass] = 0,
|
||||
[itemKeys.vendors] = {23710,27478},
|
||||
},
|
||||
[37737] = { -- 2021 Brewfest item (Horde)
|
||||
[itemKeys.name] = '"Brew of the Month" Club Membership Form',
|
||||
[itemKeys.startQuest] = 12421,
|
||||
[itemKeys.itemLevel] = 1,
|
||||
[itemKeys.requiredLevel] = 1,
|
||||
[itemKeys.ammoType] = 0,
|
||||
[itemKeys.class] = 12,
|
||||
[itemKeys.subClass] = 0,
|
||||
[itemKeys.vendors] = {24495,27489},
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
-- This should allow manual fix for item availability
|
||||
function QuestieTBCItemFixes:LoadFactionFixes()
|
||||
local itemKeys = QuestieDB.itemKeys
|
||||
|
||||
local itemFixesHorde = {
|
||||
[30712] = {
|
||||
[itemKeys.npcDrops] = {21779},
|
||||
},
|
||||
[30713] = {
|
||||
[itemKeys.objectDrops] = {185233},
|
||||
},
|
||||
}
|
||||
|
||||
local itemFixesAlliance = {
|
||||
[30712] = {
|
||||
[itemKeys.npcDrops] = {21778},
|
||||
},
|
||||
[30713] = {
|
||||
[itemKeys.objectDrops] = {184947},
|
||||
},
|
||||
}
|
||||
|
||||
if UnitFactionGroup("Player") == "Horde" then
|
||||
return itemFixesHorde
|
||||
else
|
||||
return itemFixesAlliance
|
||||
end
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,728 @@
|
||||
---@class QuestieTBCObjectFixes
|
||||
local QuestieTBCObjectFixes = QuestieLoader:CreateModule("QuestieTBCObjectFixes")
|
||||
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
---@type ZoneDB
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
|
||||
function QuestieTBCObjectFixes:Load()
|
||||
local objectKeys = QuestieDB.objectKeys
|
||||
local zoneIDs = ZoneDB.zoneIDs
|
||||
|
||||
return {
|
||||
[142122] = {
|
||||
[objectKeys.questStarts] = {2781,2875},
|
||||
},
|
||||
[177281] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ZANGARMARSH]={{80.32,65.06}}},
|
||||
},
|
||||
[177790] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SILVERPINE_FOREST]={{29.56,29.2}}},
|
||||
},
|
||||
[180570] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HILLSBRAD_FOOTHILLS]={{51.37,58.98}}},
|
||||
},
|
||||
[181138] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.GHOSTLANDS]={{12.53,26.51},{14.7,26.4},{13.69,26.84}}},
|
||||
},
|
||||
[181679] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_SHATTERED_HALLS]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_SHATTERED_HALLS,
|
||||
},
|
||||
[181697] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZUREMYST_ISLE]={{33.7,74.4},{37,69.4},{37,69.5},{38,72},{38.2,69.4},{38.2,69.6},{38.8,74.4},{38.8,74.6},{39.9,69.5},{39.9,71.2},{39.9,71.5},{40,69.2},{41.3,67.1},{42.4,66.1},{42.4,68.8},{42.6,66},{42.6,68.9},{43.9,65.8},{44.4,69},{44.6,68.8},{44.8,70.4},{44.8,70.5},{46.3,66.3},{46.5,66.2},{48.3,64.9},{48.5,64.7},{49.3,61.9},{50.1,57.4},{50.1,57.5},{50.2,60.1},{50.3,63.3},{50.3,66.9},{50.4,63.5},{50.5,63.1},{51.1,64.7},{51.4,65.9},{51.5,66},{52.8,67},{54.4,64.4},{54.4,64.5},{54.5,64.4},{54.5,64.5},{55.4,62},{55.5,62.1},{55.7,63.9},{57,63.6}}},
|
||||
},
|
||||
[181746] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLOODMYST_ISLE]={{38.5,22.5},{40.6,20.1},{44,22.5},{46.4,20.5}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLOODMYST_ISLE,
|
||||
},
|
||||
[181757] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZUREMYST_ISLE]={{33.3,26.1},{33.4,26.7},{33.5,26.5},{33.6,26.4},{33.7,18.7},{33.9,15.5},{34.1,14.7},{34.8,22.1},{34.9,12}}},
|
||||
[objectKeys.zoneID] = zoneIDs.AZUREMYST_ISLE,
|
||||
},
|
||||
[181781] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLOODMYST_ISLE]={{41,30}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLOODMYST_ISLE,
|
||||
},
|
||||
[181897] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLOODMYST_ISLE]={{68.3,21.7},{69.98,26.3},{70.6,16.5},{71.4,11.7},{71.4,28.2},{72.7,21.4},{74.7,16.3},{75,8.7},{75.4,19.1},{75.7,28.4},{75.54,13.85},{76,24.8},{76.8,21.4}}},
|
||||
},
|
||||
[182116] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ZANGARMARSH]={{61.5,56.1},{62.4,53.0},{62.4,59.2},{62.5,53.0},{62.5,59.2},{62.9,45.5},{63.0,45.4},{64.1,51.2},{64.8,49.3},{64.8,49.5},{65.0,53.8},{65.4,50.6},{65.6,50.7},{65.8,47.5},{65.9,47.4},{66.0,62.2},{66.1,46.4},{66.4,52.1},{66.5,52.1},{66.6,47.9},{67.3,50.1},{67.3,54.7},{67.7,53.4},{68.0,48.3},{68.3,44.7},{68.3,53.7},{68.6,54.4},{68.6,54.5},{68.8,47.8},{70.2,47.9},{70.7,50.2},{71.0,53.9},{71.1,51.7},{71.2,47.2},{71.6,45.4},{71.6,45.5},{73.1,46.8}}},
|
||||
},
|
||||
[182950] = {
|
||||
[objectKeys.factionID] = 80,
|
||||
},
|
||||
[183050] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SETHEKK_HALLS]={{-1,-1}}},
|
||||
},
|
||||
[183933] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM]={{18.54,73.68},{35.53,57.98},{34.93,58.48},{36.56,59.4},{37.25,57.88},{19.82,75.69},{20.31,77.36},{19.39,78.38},{22.24,78.14},{24.42,78.22},{23.75,79.38},{31.73,71.52},{32.94,79.62},{32.9,78.28},{33.92,79.24},{34.81,78.16},{33.83,77.23},{34.73,77.5},{35.4,76.08},{39.09,77.34},{39.08,78.19},{40.81,77.3},{41.87,77.04},{19.61,75.08},{19.59,78.58},{21.6,78.4},{23.42,77.77},{19.44,74.0},{32.3,79.15},{32.43,79.37},{33.91,75.74},{34.14,78.13},{41.26,77.05},{40.37,78.64},{33.97,75.64}}},
|
||||
},
|
||||
[184588] = {
|
||||
[objectKeys.name] = "Captain Tyralius's Prison",
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM] = {{53.3,41.43}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NETHERSTORM,
|
||||
},
|
||||
[184980] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HELLFIRE_PENINSULA]={{45.9,28.2},{46.2,29.1},{46.4,32.5},{46.5,28.6},{46.6,29.5},{46.6,32.6},{46.7,32.4},{46.7,39.6},{46.8,28.3},{46.8,39.3},{46.8,40.7},{46.9,35.6},{46.9,37.4},{46.9,37.6},{47.3,35.2},{47.4,30.7},{47.5,29.1},{47.5,34.4},{47.5,35.3},{47.5,35.9},{47.7,30.7},{47.8,32.5},{48.1,30.1},{48.3,31.9},{48.6,29.6},{48.8,29.0},{48.9,30.9},{48.9,31.5},{49.4,28.1},{49.4,42.8},{49.6,28.4},{49.6,31.3},{49.7,29.8},{50.0,28.7},{50.0,38.4},{50.1,43.5},{50.2,35.9},{50.2,38.6},{50.2,40.5},{50.2,43.2},{50.2,44.9},{50.2,45.7},{50.3,27.4},{50.3,37.4},{50.3,40.3},{50.4,41.5},{50.5,28.7},{50.5,38.6},{50.6,42.9},{50.7,38.1},{50.7,40.0},{50.8,26.6},{50.8,29.6},{50.8,43.5},{50.8,44.7},{51.0,26.0},{51.0,27.9},{51.3,23.5},{51.3,31.2},{51.4,40.5},{51.5,40.7},{51.5,44.2},{51.5,44.7},{51.6,21.4},{51.8,22.8},{52.2,22.2},{52.8,44.3},{52.8,44.5},{53.4,45.7},{53.5,43.8},{53.8,44.8},{55.2,45.5}}},
|
||||
},
|
||||
[184998] = {
|
||||
[objectKeys.name] = "Ethereum Prison",
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM] = {{54.52,39.93},{54.53,40.28},{54.28,40.29},{54.53,40.6},{54.77,40.28},{54.76,39.91},{54.46,46.37},{54.82,46.79},{54.63,46.76},{54.45,46.73},{54.73,46.57},{54.54,46.55},{54.38,46.53},{54.64,46.39}}},
|
||||
},
|
||||
[185001] = {
|
||||
[objectKeys.name] = "Ethereum Stasis Chamber",
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS] = {{52.5,20.43},{52.68,20.25},{52.87,20.08},{49.62,21.42},{49.39,21.3},{49.15,21.13},{49.63,15.76},{49.48,15.54}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLADES_EDGE_MOUNTAINS,
|
||||
},
|
||||
[185002] = {
|
||||
[objectKeys.name] = "Mana-Tombs Stasis Chamber",
|
||||
[objectKeys.spawns] = {[zoneIDs.MANA_TOMBS] = {{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.MANA_TOMBS,
|
||||
},
|
||||
[185015] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_MECHANAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_MECHANAR,
|
||||
},
|
||||
[185033] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS] = {{66.39,44.08}}},
|
||||
},
|
||||
[185144] = {
|
||||
[objectKeys.name] = "Bleeding Hollow Forge",
|
||||
},
|
||||
[185200] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TEROKKAR_FOREST] = {{50.12,19.37}}},
|
||||
},
|
||||
[185322] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SILITHUS]={{28.7,98.7}}},
|
||||
},
|
||||
[185460] = {
|
||||
[objectKeys.name] = "Ethereum Prison",
|
||||
},
|
||||
[185562] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{77.53,31.2}}},
|
||||
},
|
||||
[185567] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{60.92,47.61}}},
|
||||
},
|
||||
[185569] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{58.59,60.8}}},
|
||||
},
|
||||
[185574] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TEROKKAR_FOREST]={{20.17,18.1}}},
|
||||
},
|
||||
[185577] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{60.7,25.46}}},
|
||||
},
|
||||
[185937] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS] = {{66.71,14.3}}},
|
||||
},
|
||||
[185938] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS] = {{62.75,7.33}}},
|
||||
},
|
||||
[186273] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{61.7,18.2}}},
|
||||
},
|
||||
[186887] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUROTAR]={{52.6,42.5}},
|
||||
[zoneIDs.ELWYNN_FOREST]={{42.5,65.8}},
|
||||
[zoneIDs.DUN_MOROGH]={{46.4,52.2}},
|
||||
[zoneIDs.TIRISFAL_GLADES]={{60.9,52.7}},
|
||||
[zoneIDs.AZUREMYST_ISLE]={{48.99,51.02}},
|
||||
[zoneIDs.EVERSONG_WOODS]={{47.5,46.3}},
|
||||
},
|
||||
},
|
||||
[187039] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{50.0,12.4},{50.7,13.3},{50.7,13.9},{50.47,19.23},{49.27,19.97},{49.08,19.02},{49.31,17.77},{49.48,17.03},{50.91,17.26},{50.18,16.55},{51.15,16.75},{51.98,15.68},{50.7,13.34},{51.94,13.16},{51.02,11.97},{51.6,13.9},{54.13,18.84},},},
|
||||
},
|
||||
[187072] = {
|
||||
[objectKeys.spawns] = {[3519]={{57.58,13.98},{53.94,13.64},{59.56,12.85},{55.3,12.31},{60.97,10.78},{47.65,7.78},{45.84,6.15},{47.46,5.59}}},
|
||||
},
|
||||
[187078] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ISLE_OF_QUEL_DANAS]={{46.5,35.5},{48.63,35.37},{48.89,39.15},{49.14,29.53},{50.32,38.27},{50.34,42.36},{53.77,36.21},}},
|
||||
},
|
||||
[187260] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.FELWOOD]={{34.82,52.95}}}, -- TBC only Mailbox
|
||||
},
|
||||
[187892] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_SLAVE_PENS] = {{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_SLAVE_PENS,
|
||||
},
|
||||
[187917] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.AZUREMYST_ISLE] = {{44.7,52.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.AZUREMYST_ISLE,
|
||||
},
|
||||
[187919] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS] = {{41.6,66.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLADES_EDGE_MOUNTAINS,
|
||||
},
|
||||
[187921] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.BLOODMYST_ISLE] = {{55.8,68.8}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLOODMYST_ISLE,
|
||||
},
|
||||
[187922] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.BURNING_STEPPES] = {{80.5,62.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BURNING_STEPPES,
|
||||
},
|
||||
[187929] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.FERALAS]={{28.2,44.1}}},
|
||||
},
|
||||
[187933] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.NAGRAND] = {{49.7,69.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NAGRAND,
|
||||
},
|
||||
[187935] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.SHADOWMOON_VALLEY] = {{39.6,54.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHADOWMOON_VALLEY,
|
||||
},
|
||||
[187937] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.TEROKKAR_FOREST] = {{54.3,55.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TEROKKAR_FOREST,
|
||||
},
|
||||
[187939] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.WESTERN_PLAGUELANDS] = {{43.5,82.9}}},
|
||||
[objectKeys.zoneID] = zoneIDs.WESTERN_PLAGUELANDS,
|
||||
},
|
||||
[187941] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.ZANGARMARSH] = {{68.8,52.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ZANGARMARSH,
|
||||
},
|
||||
[187942] = {
|
||||
[objectKeys.name] = "Alliance Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM] = {{31.0,62.8}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NETHERSTORM,
|
||||
},
|
||||
[187949] = {
|
||||
[objectKeys.name] = "Horde Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM] = {{32.3,68.3}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NETHERSTORM,
|
||||
},
|
||||
[187955] = {
|
||||
[objectKeys.name] = "Horde Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS] = {{50.0,59.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLADES_EDGE_MOUNTAINS,
|
||||
},
|
||||
[187958] = {
|
||||
[objectKeys.name] = "Horde Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.DUROTAR] = {{52.0,47.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUROTAR,
|
||||
},
|
||||
[187960] = {
|
||||
[objectKeys.name] = "Horde Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.EVERSONG_WOODS] = {{46.4,50.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.EVERSONG_WOODS,
|
||||
},
|
||||
[187962] = {
|
||||
[objectKeys.name] = "Horde Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.GHOSTLANDS] = {{47.1,26.1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.GHOSTLANDS,
|
||||
},
|
||||
[187965] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.MULGORE]={{52,60}}},
|
||||
},
|
||||
[187967] = {
|
||||
[objectKeys.name] = "Horde Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.SHADOWMOON_VALLEY] = {{33.5,30.3}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHADOWMOON_VALLEY,
|
||||
},
|
||||
[187974] = {
|
||||
[objectKeys.name] = "Horde Bonfire",
|
||||
[objectKeys.spawns] = {[zoneIDs.TIRISFAL_GLADES] = {{57.0,51.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TIRISFAL_GLADES,
|
||||
},
|
||||
[188123] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DARNASSUS]={{67.18,16.47}}}, -- TBC only Mailbox
|
||||
},
|
||||
[188128] = {
|
||||
[objectKeys.name] = "Flame of the Exodar",
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_EXODAR] = {{41.7,25.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_EXODAR,
|
||||
},
|
||||
[188129] = {
|
||||
[objectKeys.name] = "Flame of Silvermoon",
|
||||
[objectKeys.spawns] = {[zoneIDs.SILVERMOON_CITY] = {{69.1,43.5}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SILVERMOON_CITY,
|
||||
},
|
||||
[189303] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ELWYNN_FOREST]={{43.74,65.89}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ELWYNN_FOREST,
|
||||
},
|
||||
[189989] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUN_MOROGH]={{48.89,38.81}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUN_MOROGH,
|
||||
},
|
||||
[189990] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUROTAR]={{44.1,17.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUROTAR,
|
||||
},
|
||||
[190034] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TELDRASSIL]={{55.61,59.85}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TELDRASSIL,
|
||||
},
|
||||
[190035] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ASHENVALE]={{37.01,49.26}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ASHENVALE,
|
||||
},
|
||||
[190036] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUN_MOROGH]={{47.38,52.45}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUN_MOROGH,
|
||||
},
|
||||
[190037] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZUREMYST_ISLE]={{48.49,49.04}}},
|
||||
[objectKeys.zoneID] = zoneIDs.AZUREMYST_ISLE,
|
||||
},
|
||||
[190038] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DARNASSUS]={{67.46,16.06}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DARNASSUS,
|
||||
},
|
||||
[190039] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.IRONFORGE]={{18.33,50.94}}},
|
||||
[objectKeys.zoneID] = zoneIDs.IRONFORGE,
|
||||
},
|
||||
[190041] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_EXODAR]={{59.25,18.46}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_EXODAR,
|
||||
},
|
||||
[190042] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DARKSHORE]={{37.04,44.04}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DARKSHORE,
|
||||
},
|
||||
[190043] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.LOCH_MODAN]={{35.54,48.50}}},
|
||||
[objectKeys.zoneID] = zoneIDs.LOCH_MODAN,
|
||||
},
|
||||
[190044] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.WETLANDS]={{10.83,60.99}}},
|
||||
[objectKeys.zoneID] = zoneIDs.WETLANDS,
|
||||
},
|
||||
[190045] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLOODMYST_ISLE]={{55.69,59.97}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLOODMYST_ISLE,
|
||||
},
|
||||
[190046] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.REDRIDGE_MOUNTAINS]={{27.09,44.91}}},
|
||||
[objectKeys.zoneID] = zoneIDs.REDRIDGE_MOUNTAINS,
|
||||
},
|
||||
[190047] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.WESTFALL]={{52.91,53.74}}},
|
||||
[objectKeys.zoneID] = zoneIDs.WESTFALL,
|
||||
},
|
||||
[190048] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSKWOOD]={{73.79,44.25}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSKWOOD,
|
||||
},
|
||||
[190049] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HILLSBRAD_FOOTHILLS]={{51.14,59.04}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HILLSBRAD_FOOTHILLS,
|
||||
},
|
||||
[190050] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STONETALON_MOUNTAINS]={{35.52,6.40}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STONETALON_MOUNTAINS,
|
||||
},
|
||||
[190051] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DESOLACE]={{66.33,6.58}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
},
|
||||
[190052] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{66.60,45.28}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
[190053] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.FERALAS]={{30.93,43.45}}},
|
||||
[objectKeys.zoneID] = zoneIDs.FERALAS,
|
||||
},
|
||||
[190054] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_HINTERLANDS]={{14.11,41.52}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_HINTERLANDS,
|
||||
},
|
||||
[190055] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HELLFIRE_PENINSULA]={{54.25,63.68}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HELLFIRE_PENINSULA,
|
||||
},
|
||||
[190056] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HELLFIRE_PENINSULA]={{23.42,36.37}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HELLFIRE_PENINSULA,
|
||||
},
|
||||
[190057] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ZANGARMARSH]={{67.17,48.94}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ZANGARMARSH,
|
||||
},
|
||||
[190058] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ZANGARMARSH]={{41.90,26.17}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ZANGARMARSH,
|
||||
},
|
||||
[190059] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TEROKKAR_FOREST]={{56.60,53.22}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TEROKKAR_FOREST,
|
||||
},
|
||||
[190060] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.NAGRAND]={{54.19,75.88}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NAGRAND,
|
||||
},
|
||||
[190061] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{35.83,63.73}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLADES_EDGE_MOUNTAINS,
|
||||
},
|
||||
[190062] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{61.06,68.08}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLADES_EDGE_MOUNTAINS,
|
||||
},
|
||||
[190063] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHADOWMOON_VALLEY]={{37.01,58.29}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHADOWMOON_VALLEY,
|
||||
},
|
||||
[190064] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUROTAR]={{51.6,41.6}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUROTAR,
|
||||
},
|
||||
[190065] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.MULGORE]={{46.6,61.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.MULGORE,
|
||||
},
|
||||
[190066] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TIRISFAL_GLADES]={{61.8,52.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TIRISFAL_GLADES,
|
||||
},
|
||||
[190067] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.EVERSONG_WOODS]={{48.1,47.8}}},
|
||||
[objectKeys.zoneID] = zoneIDs.EVERSONG_WOODS,
|
||||
},
|
||||
[190068] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.EVERSONG_WOODS]={{43.7,71.1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.EVERSONG_WOODS,
|
||||
},
|
||||
[190069] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{54.45,68.64}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[190070] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{45.6,64.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[190071] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UNDERCITY]={{67.76,37.40}}},
|
||||
[objectKeys.zoneID] = zoneIDs.UNDERCITY,
|
||||
},
|
||||
[190072] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SILVERMOON_CITY]={{79.42,57.65}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SILVERMOON_CITY,
|
||||
},
|
||||
[190073] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SILVERMOON_CITY]={{67.58,72.88}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SILVERMOON_CITY,
|
||||
},
|
||||
[190074] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SILVERPINE_FOREST]={{43.2,41.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SILVERPINE_FOREST,
|
||||
},
|
||||
[190075] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.GHOSTLANDS]={{48.7,32.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.GHOSTLANDS,
|
||||
},
|
||||
[190076] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_BARRENS]={{52.0,29.9}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
},
|
||||
[190077] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_BARRENS]={{45.6,59.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
},
|
||||
[190078] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HILLSBRAD_FOOTHILLS]={{62.8,19.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HILLSBRAD_FOOTHILLS,
|
||||
},
|
||||
[190079] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ASHENVALE]={{73.9,60.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ASHENVALE,
|
||||
},
|
||||
[190080] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STONETALON_MOUNTAINS]={{47.5,62.1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STONETALON_MOUNTAINS,
|
||||
},
|
||||
[190081] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THOUSAND_NEEDLES]={{46.1,51.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THOUSAND_NEEDLES,
|
||||
},
|
||||
[190082] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ARATHI_HIGHLANDS]={{73.9,32.6}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ARATHI_HIGHLANDS,
|
||||
},
|
||||
[190083] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DESOLACE]={{24.1,68.3}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DESOLACE,
|
||||
},
|
||||
[190084] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STRANGLETHORN_VALE]={{31.5,29.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STRANGLETHORN_VALE,
|
||||
},
|
||||
[190085] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{36.8,32.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
[190086] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SWAMP_OF_SORROWS]={{45.1,56.6}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SWAMP_OF_SORROWS,
|
||||
},
|
||||
[190087] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BADLANDS]={{2.9,46.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BADLANDS,
|
||||
},
|
||||
[190088] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.FERALAS]={{74.8,45.1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.FERALAS,
|
||||
},
|
||||
[190089] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_HINTERLANDS]={{78.2,81.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_HINTERLANDS,
|
||||
},
|
||||
[190090] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HELLFIRE_PENINSULA]={{56.8,37.5}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HELLFIRE_PENINSULA,
|
||||
},
|
||||
[190091] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HELLFIRE_PENINSULA]={{26.9,59.6}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HELLFIRE_PENINSULA,
|
||||
},
|
||||
[190096] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ZANGARMARSH]={{30.7,50.9}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ZANGARMARSH,
|
||||
},
|
||||
[190097] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TEROKKAR_FOREST]={{48.8,45.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TEROKKAR_FOREST,
|
||||
},
|
||||
[190098] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.NAGRAND]={{56.7,34.6}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NAGRAND,
|
||||
},
|
||||
[190099] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{53.4,55.5}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLADES_EDGE_MOUNTAINS,
|
||||
},
|
||||
[190100] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{76.2,60.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLADES_EDGE_MOUNTAINS,
|
||||
},
|
||||
[190101] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHADOWMOON_VALLEY]={{30.3,27.8}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHADOWMOON_VALLEY,
|
||||
},
|
||||
[190102] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_BARRENS]={{62.07,39.41}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_BARRENS,
|
||||
},
|
||||
[190103] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STRANGLETHORN_VALE]={{27.06,77.28}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STRANGLETHORN_VALE,
|
||||
},
|
||||
[190104] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{41.86,74.09}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
[190105] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.TANARIS]={{52.45,27.87}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TANARIS,
|
||||
},
|
||||
[190106] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.WINTERSPRING]={{61.33,38.86}}},
|
||||
[objectKeys.zoneID] = zoneIDs.WINTERSPRING,
|
||||
},
|
||||
[190107] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SILITHUS]={{51.83,39.18}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SILITHUS,
|
||||
},
|
||||
[190109] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ZANGARMARSH]={{78.45,62.89}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ZANGARMARSH,
|
||||
},
|
||||
[190110] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHATTRATH_CITY]={{28.24,49.10}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHATTRATH_CITY,
|
||||
},
|
||||
[190111] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHATTRATH_CITY]={{56.31,81.96}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHATTRATH_CITY,
|
||||
},
|
||||
[190112] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BLADES_EDGE_MOUNTAINS]={{62.91,38.33}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLADES_EDGE_MOUNTAINS,
|
||||
},
|
||||
[190113] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM]={{32.02,64.45}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NETHERSTORM,
|
||||
},
|
||||
[190114] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM]={{43.31,36.10}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NETHERSTORM,
|
||||
},
|
||||
[190115] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHADOWMOON_VALLEY]={{60.99,28.17}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHADOWMOON_VALLEY,
|
||||
},
|
||||
[190116] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHADOWMOON_VALLEY]={{56.37,59.82}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHADOWMOON_VALLEY,
|
||||
},
|
||||
[190483] = {
|
||||
[objectKeys.name] = "Document Chest",
|
||||
[objectKeys.spawns] = {[zoneIDs.THOUSAND_NEEDLES]={{33.76,39.99}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THOUSAND_NEEDLES,
|
||||
},
|
||||
[190484] = {
|
||||
[objectKeys.name] = "Document Chest",
|
||||
[objectKeys.spawns] = {[zoneIDs.THOUSAND_NEEDLES]={{39.34,41.53}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THOUSAND_NEEDLES,
|
||||
},
|
||||
|
||||
-- Below are fake objects
|
||||
[400000] = {
|
||||
[objectKeys.name] = "Mailbox",
|
||||
[objectKeys.questStarts] = {9672},
|
||||
[objectKeys.spawns] = {[zoneIDs.BLOODMYST_ISLE]={{55.2,59.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BLOODMYST_ISLE,
|
||||
},
|
||||
[400001] = {
|
||||
[objectKeys.name] = "Open the Survival Kit",
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{40.5,19}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[400002] = {
|
||||
[objectKeys.name] = "Equip a Weapon",
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{39.5,19}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[400003] = {
|
||||
[objectKeys.name] = "Open the Survival Kit",
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{76.8,29.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[400004] = {
|
||||
[objectKeys.name] = "Equip a Weapon",
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{76.8,29.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[400005] = {
|
||||
[objectKeys.name] = "Train a Spell at your class trainer",
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{40,19}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[400006] = {
|
||||
[objectKeys.name] = "Train a Spell at your class trainer",
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{77.15,29.82}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[400007] = {
|
||||
[objectKeys.name] = "Spend a Talent Point",
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{40,19}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[400008] = {
|
||||
[objectKeys.name] = "Spend a Talent Point",
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{77.15,29.82}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[400009] = {
|
||||
[objectKeys.name] = "Open the Survival Kit",
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{83.5,37}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
},
|
||||
[400010] = {
|
||||
[objectKeys.name] = "Equip a Weapon",
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{84.5,37}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
},
|
||||
[400011] = {
|
||||
[objectKeys.name] = "Train a Spell at your class trainer",
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{84,37}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
},
|
||||
[400012] = {
|
||||
[objectKeys.name] = "Spend a Talent Point",
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{84,37}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
},
|
||||
[400013] = {
|
||||
[objectKeys.name] = "Gather Nether Residue from any Herb or Ore Deposit in Outland",
|
||||
[objectKeys.spawns] = {[zoneIDs.SHATTRATH_CITY]={{53.9,44.8}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHATTRATH_CITY,
|
||||
},
|
||||
[400014] = {
|
||||
[objectKeys.name] = "Scrying Orb",
|
||||
[objectKeys.spawns] = {[zoneIDs.MAGISTERS_TERRACE]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.MAGISTERS_TERRACE,
|
||||
},
|
||||
[400058] = {
|
||||
[objectKeys.name] = "Portal to Socrethar's Seat",
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM]={{36.44,18.35}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NETHERSTORM,
|
||||
},
|
||||
[400059] = {
|
||||
[objectKeys.name] = "Portal to Netherstorm",
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM]={{30.56,17.69}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NETHERSTORM,
|
||||
},
|
||||
[400060] = {
|
||||
[objectKeys.name] = "Ethereum Transponder Zeta",
|
||||
[objectKeys.spawns] = {[zoneIDs.NETHERSTORM]={{56.81,38.7}}},
|
||||
[objectKeys.zoneID] = zoneIDs.NETHERSTORM,
|
||||
},
|
||||
[500007] = {
|
||||
[objectKeys.name] = "Alcaz Survey Credit", -- 4391
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
-- This should allow manual fix for object availability
|
||||
function QuestieTBCObjectFixes:LoadFactionFixes()
|
||||
local objectKeys = QuestieDB.objectKeys
|
||||
local zoneIDs = ZoneDB.zoneIDs
|
||||
|
||||
local objectFixesHorde = {
|
||||
[186887] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.DUROTAR]={{52.6,42.5}},
|
||||
[zoneIDs.TIRISFAL_GLADES]={{60.9,52.7}},
|
||||
[zoneIDs.EVERSONG_WOODS]={{47.58,46.24}},
|
||||
},
|
||||
},
|
||||
[187236] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ORGRIMMAR]={{52.43,69.27}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local objectFixesAlliance = {
|
||||
[186887] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ELWYNN_FOREST]={{42.5,65.8}},
|
||||
[zoneIDs.DUN_MOROGH]={{46.4,52.2}},
|
||||
[zoneIDs.AZUREMYST_ISLE]={{48.99,51.02}},
|
||||
},
|
||||
},
|
||||
[187236] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.IRONFORGE]={{33.71,65.85}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if UnitFactionGroup("Player") == "Horde" then
|
||||
return objectFixesHorde
|
||||
else
|
||||
return objectFixesAlliance
|
||||
end
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,849 @@
|
||||
---@class QuestieWotlkObjectFixes
|
||||
local QuestieWotlkObjectFixes = QuestieLoader:CreateModule("QuestieWotlkObjectFixes")
|
||||
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
---@type ZoneDB
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
|
||||
function QuestieWotlkObjectFixes:Load()
|
||||
local objectKeys = QuestieDB.objectKeys
|
||||
local zoneIDs = ZoneDB.zoneIDs
|
||||
|
||||
return {
|
||||
[176213] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.WESTERN_PLAGUELANDS]={{35.9,57.4},{35.9,57.5},{36.4,53.7},{36.5,53.6},{38.2,56.3},{39.7,69.4},{39.7,69.6},{40.6,73.1},{40.7,57.4},{40.8,57.5},{41.4,62.1},{41.5,62.1},{41.9,70.5},{42.2,54.9},{42.8,64.2},{43.3,68.3},{43.6,70.4},{43.7,70.5},{44.2,65},{44.4,71.6},{44.5,53.3},{44.5,71.7},{44.6,53.5},{45.8,71.5},{45.9,51.1},{45.9,71.4},{46.7,34.4},{46.8,34.5},{47,59.9},{47,67.1},{47.6,70},{47.9,53.1},{49.4,68.1},{49.8,33.3},{52.2,66.5},{52.3,55},{52.3,66.3},{53,64.2},{53.2,66.5},{53.3,65.1},{53.3,66.2},{53.4,63.4},{53.5,63.3},{53.5,63.5},{54.9,27.1},{55.2,69.4},{55.3,69.6},{56.7,34.7},{57.8,66.4},{57.8,66.5},{62,58.3},{62,58.5},{62.9,57.2},{62.9,57.9},{63.2,59.2},{63.6,75.4},{63.6,75.5},{64,48.7},{64.1,57.9},{64.9,74.4},{64.9,74.5},{65.8,76.8},{66.4,42.1},{66.5,42.2},{67,53.9},{67.8,84.6},{68,44.7},{68.3,81.4},{68.3,81.6},{68.4,77.1},{68.5,77.1},{68.7,49.2},{68.7,79.2},{68.9,73.8},{69.5,78.6},},
|
||||
[zoneIDs.EASTERN_PLAGUELANDS]={{4.3,45.2},{5.3,48.8},{11.1,58.7},{16.7,55},{17.1,60.7},{18.2,67.3},{18.7,78.3},{20.8,81.2},{22.5,68.2},{22.8,64.1},{23.2,63.2},{23.6,68.9},{23.7,58.2},{25,79},{25.5,72.1},{27,59.4},{27,59.5},{28.3,64.6},{29.7,27.7},{30.2,61.5},{30.2,73.6},{30.3,73.4},{30.7,70.2},{30.8,21.2},{31.8,66.7},{31.8,69.2},{32.7,32.9},{32.8,64.2},{33.1,59.5},{33.5,62},{34.5,26.6},{34.5,48.3},{34.6,22},{34.8,31.2},{35.9,44.4},{37.2,59.4},{37.2,59.7},{37.2,73},{38.3,69.1},{40.5,28.2},{42,58},{42,68.2},{43,35.4},{43.1,35.7},{43.5,73.3},{44.5,30.5},{45.7,40.2},{45.8,70.7},{47.2,63.8},{48.8,45},{51.4,57.6},{51.9,69.6},{52.3,75.2},{52.6,65.3},{52.7,65.6},{52.9,69.8},{53.2,72.9},{53.6,72.8},{53.7,58.7},{54.4,56},{54.4,69.6},{54.5,56.2},{54.5,69.4},{55,61.3},{56.8,63.7},{58.5,61.3},{59.5,59},{59.6,74.2},{60.8,47.3},{62.3,60.6},{62.9,64},{63,68},{63.3,71.7},{63.5,74.1},{63.7,65.1},{63.7,76.6},{65.2,74.2},{65.4,63.2},{65.8,68.4},{65.9,68.7},{66.8,71.7},{67.8,63.6},{67.8,75.4},{68.1,70.1},{68.3,45.5},{68.5,76.7},{69.1,52.8},{70,49.5},{70.2,76.4},{70.2,76.6},{70.5,45},{70.6,71.7},{71,66.3},{72.9,51.7},{73.1,60.9},{73.3,57.5},{74.6,53.9},},
|
||||
[zoneIDs.TIRISFAL_GLADES]={{82.8,72.7},{83,71.4},{83,71.5}},
|
||||
},
|
||||
},
|
||||
[179832] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SEARING_GORGE] = {{45.86,29.68}}},
|
||||
},
|
||||
[180669] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AZSHARA] = {{65.82,54.77}}},
|
||||
},
|
||||
[180715] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.THE_EXODAR]={{55.84,48.41}},
|
||||
[zoneIDs.STORMWIND_CITY]={{62.13,69.51}},
|
||||
[zoneIDs.IRONFORGE]={{37.41,70.19}},
|
||||
[zoneIDs.SHATTRATH_CITY]={{50.42,46.09}},
|
||||
[zoneIDs.ORGRIMMAR]={{53.57,67.17}},
|
||||
[zoneIDs.THUNDER_BLUFF]={{42.78,54.3}},
|
||||
[zoneIDs.UNDERCITY]={{67.33,38.0}},
|
||||
[zoneIDs.SILVERMOON_CITY]={{62.53,80.89}},
|
||||
},
|
||||
},
|
||||
[180771] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.MOONGLADE]={{35.95,58.69},{37.38,59.26},{36.92,56.77},{37.39,59.64},{36.45,57.12},{37.15,57.88},{45.25,38.5},{35.98,59.94},{36.52,60.23},{36.61,59.4},{36.5,56.81},{37.2,58.45},{53.92,36.84},{37.9,58.39},{47.91,33.35},{54.16,36.9},{37.59,58.72},{35.68,58.43},{36.15,57.41},{47.66,34.75},{37.05,59.11},{35.69,57.86},{35.48,58.67},{44.97,42.58},{53.38,36.7},{36.3,57.86},{42.64,35.39},{53.63,36.77},{48.78,34.52},{53.07,36.61},{50.92,37.23}},
|
||||
[zoneIDs.UNDERCITY]={{57.82,63.6},{58.43,64.13},{76.71,27.62},{56.96,25.43},{52.76,55.96},{73.87,63.84},{56.39,26.07},{50.61,56.53},{55.13,23.62},{78.68,26.13},{50.97,57.45},{66.37,37.57},{66,37.76},{65.65,37.56},{65.45,36.74},{66.59,36.75}},
|
||||
[zoneIDs.STORMWIND_CITY]={{37.14,64.42},{36.83,65.25},{37.26,65.59},{37.44,64.6},{37.14,65.93},{37.48,65.34},{37.05,65.03},{36.72,64.21},{36.81,64.95},{54.76,69.07},{43.96,73.78},{69.05,64.97},{54.75,68.92},{43.74,74.1},{69.13,65.06},{43.89,73.88},{54.77,69.21},{54.75,68.77},{62.64,50.49}},
|
||||
[zoneIDs.IRONFORGE]={{29.85,18.67},{29.1,19.58},{30.72,19.34},{31.43,19.12},{31.42,16.83},{31.76,18.09},{30.45,20.68},{32.61,18.02},{32.16,15.77},{65.43,26.28},{65.06,25.57}},
|
||||
[zoneIDs.ORGRIMMAR]={{41.97,32.52},{41.51,30.6},{40.45,30.64},{40.98,30.18},{40.61,30.1},{41.53,32.96},{40.49,31.65},{69.75,30.22},{48.86,77.18},{49.25,77.38},{69.88,30.02},{69.61,30.4},{49.44,77.48}},
|
||||
[zoneIDs.THUNDER_BLUFF]={{72.0,26.37},{71.24,27.05},{71.12,25.74},{71.58,27.15},{71.02,26.7},{54.96,50.34},{54.95,52.01},{54.96,51.85},{54.95,50.95}},
|
||||
[zoneIDs.DARNASSUS]={{31.88,13.19},{31.22,12.15},{32.14,11.9},{32.26,12.73},{31.31,13.0},{31.63,11.64},{69.77,43.22},{69.3,38.49},{68.94,43.19},{67.66,43.25},{69.36,43.22},{68.53,43.2}},
|
||||
[zoneIDs.SILVERMOON_CITY]={{73.64,82.59},{74.17,84.25},{74.2,83.7},{73.81,82.88},{73.79,84.14},{73.4,83.34},{73.25,83.03}},
|
||||
[zoneIDs.THE_EXODAR]={{73.75,57.47},{73.47,57.45},{72.77,57.41},{72.5,57.87},{72.74,58.41},{73.42,58.3},{73.73,58.28}},
|
||||
[zoneIDs.SHATTRATH_CITY]={{48.46,37.28},{48.65,37.64},{49.1,38.49},{49.51,38.54},{53.35,33.66},{53.44,34.12},{53.59,35.17},{53.35,35.61},{53.05,35.32},{52.88,34.29},{52.8,33.84},{48.95,36.77},{49.12,37.08},{49.61,37.91}},
|
||||
[zoneIDs.DALARAN]={{48.48,44.82},{50.41,44.76},{50.52,44.51},{49.96,45.29},{48.76,45.12},{49.13,45.4},{48.3,44.58}},
|
||||
},
|
||||
},
|
||||
[180772] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.MOONGLADE]={{36.43,57.61},{36.77,59.74},{35.88,58.39},{53.23,36.66},{53.5,36.74},{37.15,57.61},{35.87,57.31},{35.48,59.15},{44.59,38.64},{37.32,58.85},{36.05,59.5},{37.16,59.96},{54.05,36.87},{42.53,34.3},{53.79,36.8},{37.92,58.14},{36.44,59.26},{36.74,56.71},{54.29,36.93}},
|
||||
[zoneIDs.UNDERCITY]={{65.48,37.17},{66.54,37.17},{55.7,22.96},{52.43,55.02},{74.88,66.58},{73.24,64.33},{74.28,67.11},{77.21,28.36},{78.99,56.28},{79.36,55.39},{78.21,25.35}},
|
||||
[zoneIDs.STORMWIND_CITY]={{36.96,65.37},{36.92,64.78},{43.82,74.0},{68.96,64.89},{68.88,64.81},{62.71,50.77},{62.68,50.63},{62.73,50.93}},
|
||||
[zoneIDs.IRONFORGE]={{28.84,17.94},{31.36,17.51},{31.75,19.74},{31.14,15.12},{30.36,18.71},{63.49,22.7},{64.26,24.08},{63.88,23.38},{64.67,24.8}},
|
||||
[zoneIDs.ORGRIMMAR]={{41.18,30.57},{40.62,31.12},{49.05,77.27},{49.6,77.54}},
|
||||
[zoneIDs.THUNDER_BLUFF]={{71.4,25.41},{72.05,25.95},{54.96,50.53},{54.94,52.23},{54.94,52.44},{54.97,50.73}},
|
||||
[zoneIDs.DARNASSUS]={{31.96,12.87},{31.87,11.98},{68.89,38.51},{69.76,38.49},{68.09,43.22},{68.52,38.51},{67.96,38.5},{67.4,38.5}},
|
||||
[zoneIDs.SILVERMOON_CITY]={{73.33,83.88},{74.2,83.21}},
|
||||
[zoneIDs.THE_EXODAR]={{73.02,56.92},{73,58.67}},
|
||||
[zoneIDs.SHATTRATH_CITY]={{49.57,37.38},{48.74,38.4},{53.77,34.63},{52.78,34.99}},
|
||||
[zoneIDs.DALARAN]={{48.93,45.25},{50.15,45.12}},
|
||||
},
|
||||
},
|
||||
[186325] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{28.03,10.61},{28.88,12.86},{27.54,14.08},{31.44,14.83},{34.28,18.91},{29.98,15.54},{27.13,14.59},{27.98,15.12},{28.94,14.64},{28.6,16.93},{28.99,16.32},{31.18,15.05},{31.53,15.33},{29.77,20.04},{30.33,20.77},{30.16,20.15},{29.73,20.71},{29.4,19.81},{28.53,16.24},{28.86,15.48},{29.82,16.2},{29.84,17.67},{30.0,18.22},{28.49,15.65},{28.2,14.23},{29.55,17.85},{29.75,18.25},{29.04,16.97},{29.52,16.11},{29.75,15.39},{29.51,15.83},{32.68,21.82},{32.62,22.15},{32.42,22.5},{30.74,20.87},{30.56,20.37},{31.09,20.93},{30.96,20.58},{31.94,20.72},{31.3,18.91},{31.57,19.19},{31.46,19.58},{30.17,17.75},{31.56,18.95},{31.22,17.9},{31.07,18.14},{30.94,18.08},{31.08,17.77},{31.89,18.58},{32.05,17.1},{28.02,12.58},{27.5,12.63},{28.78,12.27},{26.95,11.59},{27.58,11.0},{33.76,20.46},{33.98,20.05}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[186419] = {
|
||||
[objectKeys.questStarts] = {4127},
|
||||
},
|
||||
[186640] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{54.93,57.47}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[187674] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA] = {{43,56.3}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[187981] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA] = {{59.87,23.97},{59.92,28.31},{57.2,26.9},{60.64,33.67},{60.91,33.12},{61.08,28.28},{62.97,36.9},{60.41,34.93},{60.57,29.82},{61.07,29.32},{61.17,30.69},{62.3,28.49},{59.84,37.61},{60.07,25.64},{60.46,27.08},{63.7,34.67},{63.4,37.6},{59.36,40.29},{59.78,39.61},{59.03,39.42},{59.53,38.78},{63.94,36.74},{61.57,29.67},{63.34,36.14},{62.18,27.35},{61.19,35.93},{60.94,34.22},{61.72,36.84},{61.7,35.23},{62.45,35.46},{61.21,39.43},{61.13,37.99},{61.13,41.04},{61.44,40.16},{60.49,40.25},{65.73,35.87},{64.4,34.31}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[188019] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA] = {{61.08,40.07},{59.59,39.21},{60.85,33.6},{61.12,30.14},{61.66,35.96},{63.38,37.0}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[188066] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA] = {{53.64,24.53}}},
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[188287] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS] = {{13.24,60.87}}},
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
[188358] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS] = {{45,28.36}}},
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
[188434] = {
|
||||
[objectKeys.spawns] = {[65]={{61.82,22.78},{60.27,19.98},{60.63,21.82},{59.36,21.21},{58.64,23.76},{58.14,24.32},{60.43,13.04},{61.57,15.52},{59.85,26.94},{59.33,23.94}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[188474] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT] = {{32.29,71.72}}},
|
||||
},
|
||||
[188525] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS] = {{70.92,19.26},{70.37,19.47},{71.04,19.41},{70.48,19.29},{71.5,20.03},{71.38,19.87},{71.73,20.33},{71.62,20.18},{70.27,19.64},{69.9,20.24},{70.58,19.12},{70.81,19.1},{69.92,20.58},{70.15,20.89},{71.63,20.84},{71.74,20.67},{71.43,21.18},{70.62,21.5},{71.53,21.01},{70.74,21.66},{70.86,21.81},{71.09,21.77}}},
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
[189973] = {
|
||||
[objectKeys.spawns] = {[4494]={{-1,-1}},[4277]={{-1,-1}},[3711]={{43.89,40.53},{58.8,25.89},{29.27,79.62},{53.89,33.25},{48.43,28.55},{47.2,43.63},{24.66,49.38},{32.7,40.28},{53.74,26.86},{31.93,49.22},{28.97,61.38},{56.23,33.75},{39.99,27.31},{59.24,34.41},{49.44,44.71},{57.63,80.38},{70.42,71.71},{59.85,81.17},{30.68,50.31},{27.06,74.68},{32.06,79.65},{67.28,70.74},{51.55,42.5},{44.53,42.11},{44.35,38.96},{32.78,83.46},{71.26,69.28},{56.99,76.0},{50.26,42.84},{24.17,47.7},{31.24,49.45},{32.45,57.42},{23.32,53.98},{28.93,42.05},{33.43,46.14},{25.03,52.17},{47.01,33.2},{59.27,36.36},{25.42,78.25},{57.13,36.31},{58.0,78.15},{35.76,86.23},{28.54,44.65},{32.99,60.61},{42.26,35.79},{33.49,34.92},{58.78,31.46},{52.21,25.27},{35.65,32.51},{26.68,46.52},{31.61,59.56},{23.54,51.34},{27.15,81.24},{51.62,28.73},{34.04,42.83},{33.09,80.49},{55.43,35.76}},[3537]={{69.67,43.78},{79.23,41.04},{39.73,67.89},{34.66,51.6},{50.02,75.98},{43.03,75.64},{48.2,7.52},{47.7,21.75},{59.97,51.8},{41.03,44.99},{51.65,64.32},{49.72,25.53},{62.55,13.47},{57.75,52.14},{47.19,44.79},{62.44,41.4},{43.54,42.73},{57.05,34.01},{65.99,39.49},{48.44,48.38},{53.22,22.43},{53.47,19.23},{61.79,46.85},{54.96,54.35},{76.51,43.61},{76.76,31.97},{60.83,57.35},{41.92,36.9},{79.89,32.6},{75.59,28.94},{58.88,30.58},{54.74,43.75},{64.7,11.54},{53.34,47.31},{50.25,21.3},{65.48,14.23},{55.77,30.35},{72.42,20.53},{57.79,47.2},{59.12,54.29},{53.31,39.7},{74.83,25.53},{56.23,50.18},{51.08,69.59},{44.84,5.81},{55.23,53.76},{45.34,42.65},{54.27,61.36},{46.91,70.16},{47.97,74.52},{53.04,28.18},{50.5,50.39},{42.56,40.09},{40.39,48.93},{40.73,73.33},{46.15,73.39},{43.86,71.81},{78.9,36.49},{69.96,17.32},{61.74,60.41},{34.01,61.05}},[495]={{34.38,76.15},{58.36,40.1},{30.84,63.42},{46.79,71.61},{48.71,62.73},{52.47,60.53},{50.97,34.16},{67.14,74.89},{73.61,49.43},{74.1,44.8},{45.9,50.1},{65.76,72.47},{34.9,46.17},{78.29,44.51},{76.36,67.86},{60.44,81.25},{66.54,33.4},{67.17,24.39},{72.36,18.52},{69.92,51.09},{41.72,34.22},{46.26,31.4},{48.73,21.2},{29.43,31.82},{25.24,11.83},{28.59,18.06},{27.06,29.59},{33.43,76.37},{35.59,77.8},{69.39,24.62},{56.75,18.68},{45.04,59.5},{54.68,64.97},{52.33,17.85},{71.22,24.99},{26.41,7.93},{52.78,71.41},{54.88,19.69},{29.01,22.29},{48.58,30.02},{34.59,50.45},{47.12,28.95},{31.29,33.24},{33.92,79.19},{23.77,14.03},{46.39,54.32},{37.03,44.93},{29.96,69.22},{47.96,59.18},{26.75,60.88},{50.18,16.63},{68.21,21.95},{73.27,66.74},{56.53,21.25},{58.46,22.76},{69.98,22.13},{69.78,19.15},{38.96,54.25},{32.65,32.59},{28.26,25.71},{27.14,20.74},{49.03,42.36},{51.06,41.85},{42.06,27.71},{44.63,29.75},{59.16,50.31},{28.08,9.14},{29.17,12.03},{70.45,32.36},{58.96,55.52},{75.49,60.7},{79.15,49.69},{57.2,55.85},{56.95,67.15},{65.79,26.83},{76.27,42.81},{75.42,50.8},{33.21,63.56},{59.52,51.54},{26.87,14.58},{70.61,66.0},{69.73,69.61},{34.85,34.07},{70.08,71.98},{67.85,59.59},{63.71,28.01},{70.05,47.3},{48.21,18.06},{80.43,46.21},{49.24,72.09},{71.53,54.86},{73.57,26.69},{62.6,80.4},{60.96,26.08},{40.88,40.17},{51.86,59.16},{66.6,64.92},{76.85,49.84},{73.18,58.5},{76.68,63.9},{48.65,48.05},{50.44,63.88},{59.93,76.85},{39.23,33.09},{27.05,12.15},{52.45,32.16},{35.73,53.67},{43.36,44.08},{68.15,32.91},{64.87,67.63},{51.05,48.28},{36.99,39.9}},[394]={{82.23,56.11},{55.85,36.08},{10.68,34.62},{72.74,34.88},{25.24,31.3},{59.75,30.76},{11.3,69.48},{75.91,45.72},{45.75,31.14},{32.2,37.31},{27.12,38.42},{14.21,53.25},{15.02,50.41},{47.22,27.35},{49.2,27.28},{24.89,37.32},{64.67,26.49},{12.87,59.24},{68.54,21.52},{73.83,23.36},{62.72,27.49},{70.65,31.26},{75.87,38.32},{9.08,39.65},{24.35,33.15},{12.89,45.59},{12.29,55.76},{80.03,45.24},{78.15,42.57},{12.15,36.31},{14.74,61.38},{24.16,28.11},{21.94,25.63},{30.29,34.68},{73.84,28.26},{56.11,33.12},{76.78,50.7},{70.6,22.1},{54.6,31.33},{80.03,53.97},{52.0,28.6},{72.01,49.89},{12.69,41.68},{42.79,28.88},{63.64,24.02}},[65]={{65.62,74.62},{45.93,46.92},{64.79,77.14},{65.06,71.76},{63.56,70.58},{47.51,52.14},{49.24,50.53},{48.6,45.91}}},
|
||||
},
|
||||
[190094] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_CULLING_OF_STRATHOLME_VILLAGE]={{73.42,54.98},{83.87,59.05},{81.21,59.75},{77.85,54.92},{70.12,51.25}},[4100]={{-1,-1}}},
|
||||
},
|
||||
[190095] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_CULLING_OF_STRATHOLME_VILLAGE]={{73.42,54.98},{83.87,59.05},{81.21,59.75},{77.85,54.92},{70.12,51.25}},[4100]={{-1,-1}}},
|
||||
},
|
||||
[190127] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT]={{63.84,27.58}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[190169] = {
|
||||
[objectKeys.spawns] = {[4494]={{-1,-1}},[4277]={{-1,-1}},[3537]={{53.21,48.35},{52.68,41.46},{49.37,43.1},{52.65,47.97},{49.66,45.51},{53.29,44.11},{52.18,46.23},{52.35,46.02},{52.83,41.43},{49.6,45.38},{53.89,42.45},{52.26,45.85},{52.11,46.22},{54.12,46.55},{53.52,44.86},{54.0,42.61},{49.27,43.22},{54.15,46.28},{53.16,44.66},{53.56,45.59},{52.6,48.09}},[3711]={{64.16,46.35},{69.47,66.68},{60.11,85.28},{54.55,85.58},{56.37,86.67},{22.67,61.31},{32.81,61.48},{63.85,48.85},{25.25,59.03},{47.13,61.12},{46.72,64.88},{47.92,60.03},{50.22,55.92},{53.15,85.23},{49.53,69.37},{57.47,83.22},{53.52,86.75},{43.57,75.3},{46.21,72.78},{48.51,51.64},{50.17,65.06},{49.56,65.75},{68.64,66.59},{46.93,65.54},{49.46,60.74},{50.47,62.58},{47.12,74.54},{48.41,68.8},{48.07,70.47},{48.71,60.34},{46.22,63.07},{50.23,64.27},{49.43,71.11},{48.43,59.75},{59.7,86.36},{69.29,68.4},{46.44,63.84},{48.58,53.35},{47.58,49.58},{43.63,74.1},{32.7,64.51},{30.72,64.84},{56.29,84.83},{32.31,60.43},{27.16,61.08},{49.93,63.64},{59.22,86.3},{23.88,61.03},{49.46,52.33},{62.97,47.98},{45.96,49.71},{49.02,50.08},{44.67,49.08},{63.73,47.29},{22.34,60.32},{51.59,86.36},{58.28,86.63},{31.34,60.68},{68.45,67.95},{30.58,60.01},{47.96,73.95},{29.13,61.8},{29.1,63.7},{45.92,51.13},{23.89,59.83}},[495]={{55.07,47.6},{60.17,37.71},{59.99,32.38},{54.56,57.78},{39.23,19.92},{59.6,54.17},{30.27,25.6},{43.79,23.64},{22.18,25.96},{66.79,19.17},{67.93,18.93},{56.85,57.08},{22.7,26.32},{67.14,22.33},{68.42,20.74},{53.38,55.67},{59.69,55.83},{52.74,53.39},{60.25,52.35},{32.61,25.82},{47.21,41.4},{52.83,44.98},{42.4,39.81},{31.69,25.71},{52.47,50.02},{55.47,47.34},{35.09,23.86},{49.31,40.25},{40.29,21.76},{41.97,24.3},{26.44,27.38},{64.09,25.81},{53.38,57.71},{36.82,22.68},{62.81,28.91},{58.91,35.07},{53.43,52.1},{29.02,26.35},{46.26,18.85}},[394]={{22.07,41.69},{38.05,35.08},{62.76,50.06},{41.96,35.26},{29.18,55.86},{28.03,41.23},{25.77,40.56},{27.53,61.81},{56.12,51.0},{39.97,32.83},{29.31,52.46},{20.11,40.65},{32.27,43.86},{36.08,31.71},{9.7,41.06},{8.51,37.15},{15.46,38.36},{31.13,46.07},{54.22,44.3},{61.34,49.21},{53.23,48.28},{60.93,53.04},{10.33,38.88},{25.1,71.67},{13.97,41.1},{8.72,34.96},{27.38,65.75},{62.7,49.51},{29.06,58.87},{29.2,62.45},{34.47,42.43},{62.93,52.6},{11.8,39.29},{64.88,52.82},{37.15,41.59},{30.21,39.64},{16.82,40.6},{27.6,69.79},{66.61,54.91},{11.75,29.25},{30.12,43.2}}},
|
||||
},
|
||||
[190354] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT] = {{54.45,31.44}}},
|
||||
},
|
||||
[190510] = {
|
||||
[objectKeys.spawns] = {[65]={{55.39,10.45},{55.01,10.65},{51.22,20.0},{51.56,19.98},{50.01,16.49},{50.0,17.04},{53.1,17.57},{52.68,17.74},{50.9,15.47},{50.66,15.91},{51.34,15.14},{51.61,15.13},{54.63,12.28},{54.43,12.06},{53.61,10.84}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[190550] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ZUL_DRAK] = {{47.16,82.32},{46.73,84.73},{44.59,83.48},{46.28,82.08},{47.4,81.02},{48.55,85.13},{48.71,84.16},{46.75,80.34},{45.71,81.37},{47.84,82.14},{48.47,83.12},{49.17,85.13},{49.8,85.17},{50.51,85.83},{51.0,86.93},{47.31,85.01},{47.05,83.63},{46.82,83.03},{45.65,84.19},{45.46,83.16},{44.96,81.71},{47.69,83.91},{47.84,83.05}}},
|
||||
},
|
||||
[190558] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHOLAZAR_BASIN] = {{48.3,49.1},{49.4,53.1},{49.6,50.9},{49.7,54.4},{49.7,54.5},{49.8,49.1},{50,51.7},{50,59.8},{50.2,47.5},{50.3,53.3},{50.3,58.5},{50.4,47.2},{50.4,50.4},{50.4,56.8},{50.4,58.3},{50.5,50.4},{50.5,50.5},{50.6,55.5},{50.6,56.9},{50.9,52},{50.9,54.6},{51.1,58.8},{51.4,52.6},{51.4,53.6},{51.4,57.8},{51.5,52.4},{51.5,53.5},{51.5,57.8},{51.6,49.8},{51.7,49.4},{51.7,62.6},{51.8,54.7},{51.9,58.6},{52,61.3},{52.3,61.7},{52.4,53.1},{52.4,56.2},{52.5,51.6},{52.5,53.1},{52.5,56.2},{52.6,60.5},{52.7,60.3},{52.7,62.1},{52.8,54.9},{53.1,50.5},{53.2,47.4},{53.2,47.6},{53.2,50.3},{53.3,59.3},{53.4,49.4},{53.4,53.5},{53.5,49.5},{53.5,53.4},{53.5,53.5},{53.5,61.7},{53.7,60.8},{54.2,51.4},{54.2,51.5},{54.3,48.9},{54.3,59.9},{54.5,49.1},{54.7,57.9},{54.7,60.8},{54.9,51.5},{55,53.7},{55.1,51.2},{55.3,60.2},{55.5,60.2},{55.6,57.4},{55.6,57.6},{55.7,58.6},{55.8,48.9},{55.8,52.8},{55.9,56.3},{56.2,50.9},{56.2,55.2},{56.7,53.4},{56.7,53.5},{56.9,56.3},{56.9,56.5},{57.1,52.2},{57.1,58.8},{57.2,60.6},{57.3,54.5},{57.3,60.1},{57.5,54.4},{58,60.4},{58,60.5},{58.4,58.9},{58.7,53.8},{58.7,55.9},{58.8,62.3},{59.1,57.9},{59.1,60.2},{59.8,55},{59.8,60.4},{59.8,60.5},{59.9,57.3},{60.1,63.9},{60.3,61.9},},},
|
||||
},
|
||||
[190629] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAKTHARON_KEEP_UPPER_LEVEL]={{37.5,13}},[4196]={{-1,-1}}},
|
||||
},
|
||||
[190663] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_CULLING_OF_STRATHOLME_CITY]={{30.6,46.7}},[4100]={{-1,-1}}},
|
||||
},
|
||||
[190717] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ZUL_DRAK] = {{71.2,62.2},{68.66,56.48},{73.33,62.91},{74.58,58.37},{74.99,62.63},{74.61,59.84},{73.84,61.03},{76.02,56.13},{71.41,56.52},{71.76,58.37},{75.72,59.72},{78.31,62.39},{69.33,58.32},{69.33,58.91}}},
|
||||
},
|
||||
[190777] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHOLAZAR_BASIN] = {{72.1,57.44}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHOLAZAR_BASIN,
|
||||
},
|
||||
[190781] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHOLAZAR_BASIN] = {{33.56,74.96}}},
|
||||
},
|
||||
[190782] = {
|
||||
[objectKeys.name] = "Altar of Kartak",
|
||||
},
|
||||
[191092] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.PLAGUELANDS_THE_SCARLET_ENCLAVE] = {{63.12,68.33}}},
|
||||
},
|
||||
[191179] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SHOLAZAR_BASIN] = {{17.58,51.25},{23.34,37.24},{26.7,33.46},{26.23,35.68}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHOLAZAR_BASIN,
|
||||
},
|
||||
[191349] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BAND_OF_ALIGNMENT]={{47.6,85.9}},[4228]={{-1,-1}}},
|
||||
},
|
||||
[191761] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS]={{37.54,46.9}}},
|
||||
},
|
||||
[192124] = {
|
||||
[objectKeys.spawns] = {},
|
||||
},
|
||||
[192127] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS] = {{73.4,62.9},{73.5,63.4},{75,63.5},{75.4,62.9},{75.6,63.6},{75.7,63},{75.9,64.5},{76.9,62.2},{76.9,63.1},{77,63.9},{77.6,62.4},{77.6,62.5},}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[192536] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS] = {{52.36,73.26},{43.61,67.3},{43.76,67.21},{45.46,66.73},{43.87,67.74},{45.52,67.16},{45.19,66.82},{52.66,75.17},{52.36,75.08},{52.36,75.43},{53.28,75.10},{53.57,74.88},{53.53,74.64}}},
|
||||
},
|
||||
[192788] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_NEXUS_MAP] = {{18.9,51.7}},[zoneIDs.THE_NEXUS] = {{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_NEXUS,
|
||||
},
|
||||
[192818] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_UNDERBELLY] = {{30.4,51.5},{30.5,51.3},{34.8,52.2},{35,42.4},{35.1,35.5},{35.3,42.9},{35.3,53},{35.4,35.1},{35.5,35.2},{35.5,35.5},{35.5,43},{35.7,52.4},{39.3,28.4},{39.3,28.6},{39.3,39.9},{39.4,40.6},{39.5,28.6},{39.5,40.4},{39.7,47},{39.8,28.3},{40,47.7},{43.3,32.6},{43.4,32.3},{43.5,32.2},{43.6,32.6},{44.4,65.1},{44.4,65.6},{44.5,65.1},{45.3,58.2},{45.6,58.1},{45.8,58.8},{47.3,56},{47.4,28.4},{47.4,56.9},{48,29.5},{48,55.5},{48.2,55.4},{48.3,29.4},{48.4,40.4},{48.4,40.7},{48.5,29.4},{48.5,29.8},{48.5,41.1},{50.4,25.6},{50.4,26.6},{50.4,52.8},{50.6,25.9},{50.6,26.6},{51.2,53},{51.2,53.6},{51.4,42.1},{51.4,42.5},{51.5,42.2},{51.5,42.6},{51.6,53.4},{51.8,53.8},{54.3,66.2},{54.7,66.8},{55,66.2},{55.3,56.3},{55.4,56.9},{55.5,57.6},{55.6,56.3},{55.7,56.7},{55.8,58.6},{56.7,40.1},{56.8,40.7},{57.4,41.5},{57.4,47.4},{57.5,40.9},{57.6,41.5},{57.6,47.4},{58,47.6},{59,12.5},{59.4,35},{59.4,35.6},{59.5,35.3},{59.7,11.7},{60.6,14.3},{61.8,9.2},{62.3,10.5},{62.4,10},{62.6,10},{64.2,15.1},{64.2,15.6},},},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_UNDERBELLY,
|
||||
},
|
||||
[192826] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.GUNDRAK_UPPER_LEVEL] = {{-1,-1}},[zoneIDs.GUNDRAK_LOWER_LEVEL] = {{-1,-1}},[4416] = {{-1,-1}}},
|
||||
},
|
||||
[192941] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UTGARDE_PINNACLE_UPPER_LEVEL] = {{-1,-1}},[zoneIDs.UTGARDE_PINNACLE_LOWER_LEVEL] = {{-1,-1}},[1196] = {{-1,-1}}},
|
||||
},
|
||||
[192942] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UTGARDE_PINNACLE_UPPER_LEVEL] = {{-1,-1}},[zoneIDs.UTGARDE_PINNACLE_LOWER_LEVEL] = {{-1,-1}},[1196] = {{-1,-1}}},
|
||||
},
|
||||
[192943] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UTGARDE_PINNACLE_UPPER_LEVEL] = {{-1,-1}},[zoneIDs.UTGARDE_PINNACLE_LOWER_LEVEL] = {{-1,-1}},[1196] = {{-1,-1}}},
|
||||
},
|
||||
[192944] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UTGARDE_PINNACLE_UPPER_LEVEL] = {{-1,-1}},[zoneIDs.UTGARDE_PINNACLE_LOWER_LEVEL] = {{-1,-1}},[1196] = {{-1,-1}}},
|
||||
},
|
||||
[192945] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UTGARDE_PINNACLE_UPPER_LEVEL] = {{-1,-1}},[zoneIDs.UTGARDE_PINNACLE_LOWER_LEVEL] = {{-1,-1}},[1196] = {{-1,-1}}},
|
||||
},
|
||||
[193004] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN] = {{57.85,74.37},{59.35,71.77},{58.08,70.64}}},
|
||||
},
|
||||
[193051] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_GILDED_GATE] = {{-1,-1}},[zoneIDs.HADRONOXS_LAIR] = {{-1,-1}},[4277] = {{-1,-1}}},
|
||||
},
|
||||
[193057] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.AHNKAHET_MAP] = {{12.29,50.82}},[4494] = {{-1,-1}}},
|
||||
},
|
||||
[193059] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UTGARDE_KEEP_UPPER_LEVEL] = {{-1,-1}},[zoneIDs.UTGARDE_KEEP_LOWER_LEVEL] = {{-1,-1}},[zoneIDs.UTGARDE_KEEP_MIDDLE_LEVEL] = {{-1,-1}},[zoneIDs.UTGARDE_KEEP] = {{-1,-1}}},
|
||||
},
|
||||
[193091] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN] = {{34.7,66.0}}},
|
||||
},
|
||||
[193092] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN] = {{36.6,67.6}}},
|
||||
},
|
||||
[193580] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN] = {{60.84,63.38},{61.55,63.96},{62.26,63.38}}},
|
||||
},
|
||||
[193597] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_CULLING_OF_STRATHOLME_CITY]={{30.6,46.7}},[4100]={{-1,-1}}},
|
||||
},
|
||||
[193603] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.BAND_OF_ALIGNMENT]={{47.6,85.9}},[4228]={{-1,-1}}},
|
||||
},
|
||||
[193980] = {
|
||||
[objectKeys.name] = "Bloodstained Stone",
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN] = {{49.7,73.4}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ICECROWN,
|
||||
},
|
||||
[193997] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS] = {{55.4,68},{57,65},{58.6,60.3},{60.7,57.5},{62.8,60.1},{63.5,57.9},{65.4,60.8},{68.4,55.7},{68.9,54.8},{69.7,63.1},{71.1,62.4},{72.6,61.9},{75.3,48.5},},},
|
||||
},
|
||||
[194023] = {
|
||||
[objectKeys.name] = "Bloodstained Stone",
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN] = {{49.2,73.9}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ICECROWN,
|
||||
},
|
||||
[194024] = {
|
||||
[objectKeys.name] = "Bloodstained Stone",
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN] = {{48.3,72.8}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ICECROWN,
|
||||
},
|
||||
[194032] = {
|
||||
[objectKeys.questStarts] = {13440},
|
||||
[objectKeys.questEnds] = {13440},
|
||||
},
|
||||
[194033] = {
|
||||
[objectKeys.questStarts] = {13441},
|
||||
[objectKeys.questEnds] = {13441},
|
||||
},
|
||||
[194034] = {
|
||||
[objectKeys.questStarts] = {13450},
|
||||
[objectKeys.questEnds] = {13450},
|
||||
},
|
||||
[194035] = {
|
||||
[objectKeys.questStarts] = {13442},
|
||||
[objectKeys.questEnds] = {13442},
|
||||
},
|
||||
[194036] = {
|
||||
[objectKeys.questStarts] = {13443},
|
||||
[objectKeys.questEnds] = {13443},
|
||||
},
|
||||
[194037] = {
|
||||
[objectKeys.questStarts] = {13451},
|
||||
[objectKeys.questEnds] = {13451},
|
||||
},
|
||||
[194038] = {
|
||||
[objectKeys.questStarts] = {13444},
|
||||
[objectKeys.questEnds] = {13444},
|
||||
},
|
||||
[194039] = {
|
||||
[objectKeys.questStarts] = {13453},
|
||||
[objectKeys.questEnds] = {13453},
|
||||
},
|
||||
[194040] = {
|
||||
[objectKeys.questStarts] = {13445},
|
||||
[objectKeys.questEnds] = {13445},
|
||||
},
|
||||
[194042] = {
|
||||
[objectKeys.questStarts] = {13454},
|
||||
[objectKeys.questEnds] = {13454},
|
||||
},
|
||||
[194043] = {
|
||||
[objectKeys.questStarts] = {13455},
|
||||
[objectKeys.questEnds] = {13455},
|
||||
},
|
||||
[194044] = {
|
||||
[objectKeys.questStarts] = {13446},
|
||||
[objectKeys.questEnds] = {13446},
|
||||
},
|
||||
[194045] = {
|
||||
[objectKeys.questStarts] = {13447},
|
||||
[objectKeys.questEnds] = {13447},
|
||||
},
|
||||
[194046] = {
|
||||
[objectKeys.questStarts] = {13457},
|
||||
[objectKeys.questEnds] = {13457},
|
||||
},
|
||||
[194048] = {
|
||||
[objectKeys.questStarts] = {13458},
|
||||
[objectKeys.questEnds] = {13458},
|
||||
},
|
||||
[194049] = {
|
||||
[objectKeys.questStarts] = {13449},
|
||||
[objectKeys.questEnds] = {13449},
|
||||
},
|
||||
[194123] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS] = {{64.5,46.9}},},
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[194200] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR]={{64.1,60.2}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR,
|
||||
},
|
||||
[194201] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR]={{64.1,60.2}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR,
|
||||
},
|
||||
[194313] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR]={{70.7,48.5}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR,
|
||||
},
|
||||
[194314] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR]={{70.7,48.5}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR,
|
||||
},
|
||||
[194327] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR]={{53,25.4}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR,
|
||||
},
|
||||
[194331] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR]={{53,25.4}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_INNER_SANCTUM_OF_ULDUAR,
|
||||
},
|
||||
[194463] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS] = {{40.1,60.5},{43.5,54.9},{45,57},{41,54},{39,60},{46.1,61},{46.2,59.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[194481] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SUNWELL_PLATEAU]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SUNWELL_PLATEAU,
|
||||
},
|
||||
[194555] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_ARCHIVUM]={{15.6,90.3}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_ARCHIVUM,
|
||||
},
|
||||
[194821] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ULDUAR,
|
||||
},
|
||||
[194822] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ULDUAR,
|
||||
},
|
||||
[194957] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_SPARK_OF_IMAGINATION]={{43.7,40.9}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_SPARK_OF_IMAGINATION,
|
||||
},
|
||||
[194958] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_SPARK_OF_IMAGINATION]={{43.7,40.9}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_SPARK_OF_IMAGINATION,
|
||||
},
|
||||
[195036] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_DESCENT_OF_MADNESS]={{57.7,72.6},{59.2,68},{59.2,54.9},{57.2,52.7}},[zoneIDs.ULDUAR]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_DESCENT_OF_MADNESS,
|
||||
},
|
||||
[195309] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS] = {{42.65,58.43},{42.25,60.1},{43.36,60.69},{43.4,57.84},{42.94,56.95},{43.22,55.94},{42.52,55.01},{43.09,54.6},{41.51,53.56},{41.19,52.62},{40.67,53.31},{40.06,52.53},{39.38,53.79},{38.55,53.96},{38.46,55.05},{37.61,56.07},{38.38,58.33},{37.73,59.86},{38.57,61.28},{38.87,60.57},{39.23,61.41},{40.61,60.33},{41.53,60.01},{42.24,60.09},{43.36,60.69},{44.68,59.4},{45.55,59.06},{45.47,60.13},{45.06,60.94},{45.15,61.93},{44.54,61.9},{46,61.18},{46.5,62.41},{46.08,63.36},{46.7,64.01},{47.35,62.49},{47.72,61.55},{46.88,59.91},{46.29,58.52},{45.85,57.6},{45.92,57.02},{45.77,55.82},{42.4,53.88},{43.38,59.28},{43.82,61.93},{46.69,60.7},{45.03,56.98},{45.15,55.61},{45.03,56.96},{43.9,56.55},{43.38,59.28},{44.27,61.01},{46.82,63.05},{44.34,58.48},{46.56,62.92},{38.21,62.04},{38.03,58.85},{37.67,57.9},{38.13,57.05},{39.95,61.25},{38.84,59.57},{40.56,62.92},{39.99,61.76},{39.96,60.23}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[201590] = {
|
||||
[objectKeys.spawns] = {[4813]={{66.2,59},{70.2,55.2},{68.3,52.1},{-1,-1}}},
|
||||
},
|
||||
[201592] = {
|
||||
[objectKeys.spawns] = {[4813]={{45.76,43.09},{49.18,40.72},{63.89,51.99},{47.4,36.08},{48.26,38.37},{43.1,67.65},{45.82,76.61},{45.12,49.64},{45.51,40.91},{48.7,40.28},{62.34,57.16},{46.55,52.52},{37.62,79.09},{63.72,58.71},{62.55,48.93},{42.18,67.15},{56.28,39.67},{45.72,38.59},{43.46,77.04},{46.95,35.44},{41.91,65.83},{-1,-1}}},
|
||||
},
|
||||
[201742] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN_CITADEL]={{43,21.9},{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ICECROWN_CITADEL,
|
||||
},
|
||||
[201794] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.SUNWELL_PLATEAU]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SUNWELL_PLATEAU,
|
||||
},
|
||||
[201873] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN_CITADEL]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ICECROWN_CITADEL,
|
||||
},
|
||||
[201937] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT]={{75.1,20.5}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[201959] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN_CITADEL_UPPER_SPIRE]={{76.7,73.7}},[zoneIDs.ICECROWN_CITADEL]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ICECROWN_CITADEL_UPPER_SPIRE,
|
||||
},
|
||||
[202080] = {
|
||||
[objectKeys.name] = "Dart's Nest",
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{46.4,17.2},{46.6,17.2},{47.9,19},{48,14.5},{48.1,14.2},{49.1,17.3},{49.2,17.5}}},
|
||||
},
|
||||
[202081] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_BARRENS]={{58.5,8.3},{59.5,8.6},{60.3,10.1},{60.7,13.4}}},
|
||||
},
|
||||
[202082] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.UN_GORO_CRATER]={{62,65.2},{62,73.2},{62,73.5},{63,63.2},{68.9,66.6},{69,61.3}}},
|
||||
},
|
||||
[202083] = {
|
||||
[objectKeys.name] = "Razormaw Matriarch's Nest",
|
||||
[objectKeys.spawns] = {[zoneIDs.WETLANDS]={{67.6,30.7},{69.1,31.6},{70,29.1},{71.1,30.9}}},
|
||||
},
|
||||
[202168] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.PIT_OF_SARON]={{59.37,60.48},{45.33,58.72},{43.77,66.77},{55.92,65.86},{55.84,39.13},{56.22,64.93},{58.71,60.9},{55.55,43.2},{53.46,65.12},{47.55,61.06},{41.77,65.25},{52.89,64.84},{49.63,69.36},{61.14,59.63},{60.06,49.25},{55.16,65.87},{55.64,63.33},{62.08,59.4},{54.38,36.42},{60.94,49.22},{55.5,38.28},{55.82,41.31},{60.23,60.09},{54.38,65.36},{50.54,68.04},{58.8,48.69},{48.83,69.23},{61.78,49.56},{38.6,66.65},{37.5,69},{34,70.5},{33.8,68.9},{34.3,65.9},{33.5,63.7},{34.8,61.5},{36.7,61.1},{40.3,55.9},{41,58.1},{42.2,59.5},{42.8,60.5},{45.3,55.8},{43.8,56.7},{42.3,54.5}}},
|
||||
},
|
||||
[202239] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN_CITADEL_DEATHBRINGERS_RISE]={{71.3,30.7}},[zoneIDs.ICECROWN_CITADEL]={{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ICECROWN_CITADEL_DEATHBRINGERS_RISE,
|
||||
},
|
||||
[202240] = {
|
||||
[objectKeys.spawns] = {},
|
||||
},
|
||||
[202336] = {
|
||||
[objectKeys.spawns] = {[zoneIDs.HALLS_OF_REFLECTION]={{84,88.1},{-1,-1}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HALLS_OF_REFLECTION,
|
||||
},
|
||||
[300213] = {
|
||||
[objectKeys.name] = "Mistwhisper Weather Shrine",
|
||||
[objectKeys.spawns] = {[zoneIDs.SHOLAZAR_BASIN]={{45.4,37.23}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHOLAZAR_BASIN,
|
||||
},
|
||||
[300224] = {
|
||||
[objectKeys.name] = "Exposed Lifeblood Pillar Crystal",
|
||||
[objectKeys.spawns] = {[zoneIDs.SHOLAZAR_BASIN]={{65.52,59.74}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SHOLAZAR_BASIN,
|
||||
},
|
||||
|
||||
-- Below are fake objects
|
||||
[400001] = {
|
||||
[objectKeys.name] = "Open the Survival Kit",
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{47.98,45.93},{43.9,54.63},{38.8,36.37},{79.79,31.42},{67.24,20.2},{38.45,86.13},{35.72,86.9},{32.28,35.73}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[400002] = {
|
||||
[objectKeys.name] = "Equip a Weapon",
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{47.98,45.93},{43.9,54.63},{38.8,36.37},{79.79,31.42},{67.24,20.2},{38.45,86.13},{35.72,86.9},{32.28,35.73}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[400003] = {
|
||||
[objectKeys.name] = "Open the Survival Kit",
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{77.15,29.82}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[400004] = {
|
||||
[objectKeys.name] = "Equip a Weapon",
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{77.15,29.82}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[400005] = {
|
||||
[objectKeys.name] = "Train a Spell at your class trainer",
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{47.98,45.93},{43.9,54.63},{38.8,36.37},{79.79,31.42},{67.24,20.2},{38.45,86.13},{35.72,86.9},{32.28,35.73}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[400006] = {
|
||||
[objectKeys.name] = "Train a Spell at your class trainer",
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{77.15,29.82}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[400007] = {
|
||||
[objectKeys.name] = "Spend 5 Talent Points",
|
||||
[objectKeys.spawns] = {[zoneIDs.ORGRIMMAR]={{47.98,45.93},{43.9,54.63},{38.8,36.37},{79.79,31.42},{67.24,20.2},{38.45,86.13},{35.72,86.9},{32.28,35.73}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ORGRIMMAR,
|
||||
},
|
||||
[400008] = {
|
||||
[objectKeys.name] = "Spend 5 Talent Points",
|
||||
[objectKeys.spawns] = {[zoneIDs.THUNDER_BLUFF]={{77.15,29.82}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THUNDER_BLUFF,
|
||||
},
|
||||
[400009] = {
|
||||
[objectKeys.name] = "Open the Survival Kit",
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{49.53,44.6},{80.19,61.26},{48.43,50.22},{39.89,84.19},{49.56,85.8},{36.12,64.42},{67.35,36.25},{80.28,68.58},{67.52,89.42}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
},
|
||||
[400010] = {
|
||||
[objectKeys.name] = "Equip a Weapon",
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{49.53,44.6},{80.19,61.26},{48.43,50.22},{39.89,84.19},{49.56,85.8},{36.12,64.42},{67.35,36.25},{80.28,68.58},{67.52,89.42}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
},
|
||||
[400011] = {
|
||||
[objectKeys.name] = "Train a Spell at your class trainer",
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{49.53,44.6},{80.19,61.26},{48.43,50.22},{39.89,84.19},{49.56,85.8},{36.12,64.42},{67.35,36.25},{80.28,68.58},{67.52,89.42}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
},
|
||||
[400012] = {
|
||||
[objectKeys.name] = "Spend 5 Talent Points",
|
||||
[objectKeys.spawns] = {[zoneIDs.STORMWIND_CITY]={{49.53,44.6},{80.19,61.26},{48.43,50.22},{39.89,84.19},{49.56,85.8},{36.12,64.42},{67.35,36.25},{80.28,68.58},{67.52,89.42}}},
|
||||
[objectKeys.zoneID] = zoneIDs.STORMWIND_CITY,
|
||||
},
|
||||
[400015] = {
|
||||
[objectKeys.name] = "Summoning Stone",
|
||||
[objectKeys.spawns] = {[zoneIDs.ICECROWN]={{53.77,33.60}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ICECROWN,
|
||||
},
|
||||
[400016] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {12941},
|
||||
[objectKeys.questEnds] = {12941},
|
||||
[objectKeys.spawns] = {[zoneIDs.ZUL_DRAK]={{40.86,66.04}}}, -- Argent Stand
|
||||
[objectKeys.zoneID] = zoneIDs.ZUL_DRAK,
|
||||
},
|
||||
[400017] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {12940},
|
||||
[objectKeys.questEnds] = {12940},
|
||||
[objectKeys.spawns] = {[zoneIDs.ZUL_DRAK]={{59.33,57.20}}}, -- Zim'Torga
|
||||
[objectKeys.zoneID] = zoneIDs.ZUL_DRAK,
|
||||
},
|
||||
[400018] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {12947},
|
||||
[objectKeys.questEnds] = {12947},
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS]={{65.35,47.00}}}, -- Camp Oneqwah
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
[400019] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {12946},
|
||||
[objectKeys.questEnds] = {12946},
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS]={{20.89,64.77}}}, -- Conquest Hold
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
[400020] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13464},
|
||||
[objectKeys.questEnds] = {13464},
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{49.44,10.75}}}, -- Camp Winterhoof
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[400021] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13466},
|
||||
[objectKeys.questEnds] = {13466},
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{79.27,30.62}}}, -- Vengeance Landing
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[400022] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13465},
|
||||
[objectKeys.questEnds] = {13465},
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{52.10,66.14}}}, -- New Agamand
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[400023] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13452},
|
||||
[objectKeys.questEnds] = {13452},
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{25.44,59.82}}}, -- Kamagua
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[400024] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13470},
|
||||
[objectKeys.questEnds] = {13470},
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT]={{76.82,63.29}}}, -- Venomspite
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[400025] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13456},
|
||||
[objectKeys.questEnds] = {13456},
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT]={{60.15,53.45}}}, -- Wyrmrest Temple
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[400026] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13459},
|
||||
[objectKeys.questEnds] = {13459},
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT]={{48.11,74.66}}}, -- Moa'ki Harbor
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[400027] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13469},
|
||||
[objectKeys.questEnds] = {13469},
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT]={{37.83,46.48}}}, -- Agmar's Hammer
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[400028] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13460},
|
||||
[objectKeys.questEnds] = {13460},
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA]={{78.45,49.16}}}, -- Unu'pe
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[400029] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13467},
|
||||
[objectKeys.questEnds] = {13467},
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA]={{76.66,37.47}}}, -- Taunka'le Village
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[400030] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13468},
|
||||
[objectKeys.questEnds] = {13468},
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA]={{41.71,54.40}}}, -- Warsong Hold
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[400031] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13501},
|
||||
[objectKeys.questEnds] = {13501},
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA]={{49.75,9.98}}}, -- Bor'gorok Outpost
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[400032] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {12950},
|
||||
[objectKeys.questEnds] = {12950},
|
||||
[objectKeys.spawns] = {[zoneIDs.SHOLAZAR_BASIN]={{26.61,59.20}}}, -- Nesingwary Base Camp
|
||||
[objectKeys.zoneID] = zoneIDs.SHOLAZAR_BASIN,
|
||||
},
|
||||
[400033] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13461},
|
||||
[objectKeys.questEnds] = {13461},
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS]={{41.07,85.85}}}, -- K3
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[400034] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13462},
|
||||
[objectKeys.questEnds] = {13462},
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS]={{30.92,37.16}}}, -- Bouldercrag's Refuge
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[400035] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13471},
|
||||
[objectKeys.questEnds] = {13471},
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS]={{67.65,50.69}}}, -- Camp Tunka'lo
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[400036] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13548},
|
||||
[objectKeys.questEnds] = {13548},
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS]={{37.09,49.50}}}, -- Grom'arsh Crash Site
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[400037] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13448},
|
||||
[objectKeys.questEnds] = {13448},
|
||||
[objectKeys.spawns] = {[zoneIDs.STORM_PEAKS]={{28.72,74.28}}}, -- Frosthold
|
||||
[objectKeys.zoneID] = zoneIDs.STORM_PEAKS,
|
||||
},
|
||||
[400038] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {12944},
|
||||
[objectKeys.questEnds] = {12944},
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS]={{31.94,60.21}}}, -- Amberpine Lodge
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
[400039] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {12945},
|
||||
[objectKeys.questEnds] = {12945},
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS]={{59.63,26.36}}}, -- Westfall Brigade Encampment
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
[400040] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13435},
|
||||
[objectKeys.questEnds] = {13435},
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{60.47,15.91}}}, -- Fort Wildervar
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[400041] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13433},
|
||||
[objectKeys.questEnds] = {13433},
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{58.32,62.82}}}, -- Valgarde
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[400042] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13434},
|
||||
[objectKeys.questEnds] = {13434},
|
||||
[objectKeys.spawns] = {[zoneIDs.HOWLING_FJORD]={{30.83,41.42}}}, -- Westguard Keep
|
||||
[objectKeys.zoneID] = zoneIDs.HOWLING_FJORD,
|
||||
},
|
||||
[400043] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13438},
|
||||
[objectKeys.questEnds] = {13438},
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT]={{28.95,56.22}}}, -- Stars' Rest
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[400044] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13439},
|
||||
[objectKeys.questEnds] = {13439},
|
||||
[objectKeys.spawns] = {[zoneIDs.DRAGONBLIGHT]={{77.50,51.28}}}, -- Wintergarde Keep
|
||||
[objectKeys.zoneID] = zoneIDs.DRAGONBLIGHT,
|
||||
},
|
||||
[400045] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13437},
|
||||
[objectKeys.questEnds] = {13437},
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA]={{57.12,18.81}}}, -- Fizzcrank Airstrip
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[400046] = {
|
||||
[objectKeys.name] = "Candy Bucket",
|
||||
[objectKeys.questStarts] = {13436},
|
||||
[objectKeys.questEnds] = {13436},
|
||||
[objectKeys.spawns] = {[zoneIDs.BOREAN_TUNDRA]={{58.52,67.87}}}, -- Valiance Keep
|
||||
[objectKeys.zoneID] = zoneIDs.BOREAN_TUNDRA,
|
||||
},
|
||||
[400047] = {
|
||||
[objectKeys.name] = "Drakuru's Brazier",
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS]={{17.42,36.36}}}, -- Zeb'Halak
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
[400048] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Orgrimmar
|
||||
[objectKeys.spawns] = {[zoneIDs.DUROTAR]={{40.13,15.71}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUROTAR,
|
||||
},
|
||||
[400049] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Ambermill
|
||||
[objectKeys.spawns] = {[zoneIDs.SILVERPINE_FOREST]={{54.75,61.33}}},
|
||||
[objectKeys.zoneID] = zoneIDs.SILVERPINE_FOREST,
|
||||
},
|
||||
[400050] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Elwynn
|
||||
[objectKeys.spawns] = {[zoneIDs.ELWYNN_FOREST]={{29.19,65.44}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ELWYNN_FOREST,
|
||||
},
|
||||
[400051] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Darkshore
|
||||
[objectKeys.spawns] = {[zoneIDs.DARKSHORE]={{42.47,79.46}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DARKSHORE,
|
||||
},
|
||||
[400052] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Hillsbrad
|
||||
[objectKeys.spawns] = {[zoneIDs.HILLSBRAD_FOOTHILLS]={{28.22,37.63}}},
|
||||
[objectKeys.zoneID] = zoneIDs.HILLSBRAD_FOOTHILLS,
|
||||
},
|
||||
[400053] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Theramore
|
||||
[objectKeys.spawns] = {[zoneIDs.DUSTWALLOW_MARSH]={{60.83,38.49}}},
|
||||
[objectKeys.zoneID] = zoneIDs.DUSTWALLOW_MARSH,
|
||||
},
|
||||
[400054] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Aerie Peak
|
||||
[objectKeys.spawns] = {[zoneIDs.THE_HINTERLANDS]={{23.44,53.68}}},
|
||||
[objectKeys.zoneID] = zoneIDs.THE_HINTERLANDS,
|
||||
},
|
||||
[400055] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Everlook
|
||||
[objectKeys.spawns] = {[zoneIDs.WINTERSPRING]={{64.67,37.36}}},
|
||||
[objectKeys.zoneID] = zoneIDs.WINTERSPRING,
|
||||
},
|
||||
[400056] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Shattrath
|
||||
[objectKeys.spawns] = {[zoneIDs.TEROKKAR_FOREST]={{41.46,22.52}}},
|
||||
[objectKeys.zoneID] = zoneIDs.TEROKKAR_FOREST,
|
||||
},
|
||||
[400057] = {
|
||||
[objectKeys.name] = "Chemical Wagon", -- Crystalsong
|
||||
[objectKeys.spawns] = {[zoneIDs.CRYSTALSONG_FOREST]={{50.5,50.11},{46.44,50.86},{48.46,51.01},{49.09,47.62}}},
|
||||
[objectKeys.zoneID] = zoneIDs.CRYSTALSONG_FOREST,
|
||||
},
|
||||
[400061] = {
|
||||
[objectKeys.name] = "Spend 5 Talent Points",
|
||||
[objectKeys.spawns] = {[zoneIDs.ACHERUS_THE_EBON_HOLD]={{80.29,48.02},{80.91,43.78},{83.74,44.58}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ACHERUS_THE_EBON_HOLD,
|
||||
},
|
||||
[400062] = {
|
||||
[objectKeys.name] = "Open the Survival Kit",
|
||||
[objectKeys.spawns] = {[zoneIDs.ACHERUS_THE_EBON_HOLD]={{80.29,48.02},{80.91,43.78},{83.74,44.58}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ACHERUS_THE_EBON_HOLD,
|
||||
},
|
||||
[400063] = {
|
||||
[objectKeys.name] = "Equip a Weapon",
|
||||
[objectKeys.spawns] = {[zoneIDs.ACHERUS_THE_EBON_HOLD]={{80.29,48.02},{80.91,43.78},{83.74,44.58}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ACHERUS_THE_EBON_HOLD,
|
||||
},
|
||||
[400064] = {
|
||||
[objectKeys.name] = "Train a Spell at your class trainer",
|
||||
[objectKeys.spawns] = {[zoneIDs.ACHERUS_THE_EBON_HOLD]={{80.29,48.02},{80.91,43.78},{83.74,44.58}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ACHERUS_THE_EBON_HOLD,
|
||||
},
|
||||
[400065] = {
|
||||
[objectKeys.name] = "Scourge Enclosure",
|
||||
[objectKeys.spawns] = {[zoneIDs.ZUL_DRAK]={{19.94,56.12}}},
|
||||
[objectKeys.zoneID] = zoneIDs.ZUL_DRAK,
|
||||
},
|
||||
[400066] = {
|
||||
[objectKeys.name] = "Drakuru's Brazier",
|
||||
[objectKeys.spawns] = {[zoneIDs.GRIZZLY_HILLS]={{71.74,26.2}}},
|
||||
[objectKeys.zoneID] = zoneIDs.GRIZZLY_HILLS,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
-- This should allow manual fix for object availability
|
||||
function QuestieWotlkObjectFixes:LoadFactionFixes()
|
||||
local objectKeys = QuestieDB.objectKeys
|
||||
local zoneIDs = ZoneDB.zoneIDs
|
||||
|
||||
local objectFixesHorde = {
|
||||
[201873] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ICECROWN_CITADEL_RAMPART_OF_SKULLS]={{47.9,77.3}},
|
||||
[zoneIDs.ICECROWN_CITADEL]={{-1,-1}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local objectFixesAlliance = {
|
||||
[201873] = {
|
||||
[objectKeys.spawns] = {
|
||||
[zoneIDs.ICECROWN_CITADEL_RAMPART_OF_SKULLS]={{42.55,76.8}},
|
||||
[zoneIDs.ICECROWN_CITADEL]={{-1,-1}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if UnitFactionGroup("Player") == "Horde" then
|
||||
return objectFixesHorde
|
||||
else
|
||||
return objectFixesAlliance
|
||||
end
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
||||
---@type table
|
||||
local EbonholdDB = QuestieLoader:CreateModule("EbonholdDB")
|
||||
|
||||
EbonholdDB.itemData = EbonholdDB.itemData or {
|
||||
-- Ebonhold Custom Items would go here
|
||||
-- [ItemID] = {Name, ...}
|
||||
}
|
||||
|
||||
EbonholdItemDB = EbonholdItemDB or {}
|
||||
EbonholdItemDB.itemData = EbonholdDB.itemData
|
||||
@@ -0,0 +1,26 @@
|
||||
---@type table
|
||||
local EbonholdDB = QuestieLoader:CreateModule("EbonholdDB")
|
||||
|
||||
EbonholdDB.npcData = EbonholdDB.npcData or {
|
||||
-- Quest 50030 Corrections: Full Spawn Data for Borean Tundra Elementals
|
||||
-- Overrides existing sparse data in WotLK DB
|
||||
[24601] = {'Steam Rager',9291,9291,70,71,0,{[3537] = {{67,25.4},{67.4,22},{67.4,26.4},{67.4,26.8},{68,26},{68,27},{68.2,23},{68.2,23.6},{68.4,22.4},{68.4,25},{68.4,28.2},{68.8,24.8},{68.8,31.2},{69.2,23.8},{69.2,26.8},{69.2,27.8},{69.4,22.2},{69.4,22.8},{69.4,26.4},{69.4,29},{69.4,30},{69.6,22.4},{69.6,24.4},{69.6,28.2},{69.8,22.8},{69.8,32},{70,29.4},{70.2,36.6},{70.4,25.4},{70.4,25.6},{70.4,26.6},{70.4,29.8},{70.4,30.8},{70.4,36},{70.6,29.4},{70.8,36.4},{71,22.2},{71,22.6},{71,24.4},{71,25.8},{71,28.2},{71,36.6},{71.2,38.4},{71.4,25.4},{71.4,27.2},{71.4,30.4},{71.4,31.2},{71.4,32.4},{71.4,33.2},{71.4,34},{71.4,35},{71.4,39.4},{71.4,39.6},{71.6,22},{71.6,29.6},{71.6,31},{71.6,39.4},{71.8,25.8},{71.8,27.2},{71.8,33.6},{71.8,42.2},{72,24.6},{72,28.6},{72,32.6},{72,37.6},{72.2,24.2},{72.2,28.4},{72.2,32.4},{72.2,35.2},{72.2,35.8},{72.2,36.6},{72.4,21},{72.4,23.4},{72.4,40.4},{72.4,41.2},{72.6,24.4},{72.6,27.2},{72.6,30.2},{72.6,31.4},{72.6,32.4},{72.6,33.4},{72.6,33.6},{72.6,35.4},{72.6,36.4},{72.6,36.6},{72.8,25.4},{72.8,41.6},{73,23.4},{73,26.2},{73,28.2},{73.2,38.2},{73.2,39.4},{73.2,40.2},{73.2,40.6},{73.4,28.6},{73.6,24.4},{73.6,26},{73.6,27.2},{73.6,40.4},{73.6,40.6},{73.8,25.2},{73.8,28},{73.8,29.2},{73.8,38.6},{74.2,30.2},{74.2,30.6},{74.2,37.4},{74.2,37.8},{74.4,31.6},{74.4,33.4},{74.4,34.2},{74.4,35},{74.4,35.8},{74.6,29.4},{74.6,30},{74.6,31.8},{74.6,36.8},{74.6,38.4},{74.6,39.4},{74.6,39.8},{74.8,30.8},{74.8,33.6},{74.8,34.6},{74.8,35.6},{75.4,33.4},{75.6,29},{75.6,33.4},{75.6,33.8},{75.6,34.6},{75.6,35.8},{75.8,38.2},{76.4,32.4},{76.4,37.4},{76.6,32},{76.8,36},{77,37.8},{77.4,37},{77.6,37}}},nil,3537,nil,nil,91,nil,"",0},
|
||||
[25226] = {'Scalder',9291,9291,71,71,0,{[3537] = {{42.4,15.4},{42.4,15.6},{42.6,15.4},{42.6,16.4},{42.6,16.6},{42.8,17.6}}},nil,3537,nil,nil,14,nil,"",0},
|
||||
[25376] = {'Imperean',9291,9291,72,72,0,{[3537] = {{46.4,9.4},{46.6,9.4}}},nil,3537,nil,nil,190,nil,"",0},
|
||||
[25415] = {'Enraged Tempest',9291,9291,70,71,0,{[3537] = {{42,8},{42.2,9.4},{42.2,13.4},{42.4,10.2},{42.4,10.6},{42.6,10.4},{42.8,9},{42.8,10.6},{43,7.4},{43.2,8},{43.4,13.8},{43.6,7.8},{43.6,9},{43.6,13.4},{43.8,7.4},{43.8,10.6},{44,13.6},{44.2,11.6},{44.4,10},{44.6,7.4},{44.6,7.6},{44.6,11.6},{44.8,10.8},{45,9.2},{45.4,6.4},{45.4,9.8},{45.6,6.4},{45.6,9.8},{45.8,9.4},{45.8,12.4},{46,7.4},{46,7.6},{46,10.6},{46,13.2},{46.6,7.8},{46.6,9.2},{46.6,10.4},{46.6,11.2},{47.2,11.6},{48.2,7.4}}},nil,3537,nil,nil,834,nil,"",0},
|
||||
[25416] = {'Simmer',9291,9291,72,72,0,{[3537] = {{50.4,15.2},{50.8,15.2}}},nil,3537,nil,nil,1983,nil,"",0},
|
||||
[25417] = {'Raging Boiler',9291,9291,69,70,0,{[3537] = {{46,14.6},{46.2,13.2},{46.2,13.8},{46.8,14.4},{47,9.8},{47,12.4},{47,12.8},{47.2,14.6},{47.2,16.8},{47.4,11.2},{47.4,15.6},{47.8,12.4},{47.8,15.4},{48,11.4},{48,15.8},{48,21.2},{48.2,12.8},{48.2,16.6},{48.2,19.8},{48.4,14.2},{48.4,18.2},{48.4,19.4},{48.6,12.4},{48.6,16.2},{48.6,19.4},{48.8,13.4},{48.8,13.6},{49,16.8},{49.2,17.6},{49.4,10.2},{49.4,10.6},{49.4,15},{49.6,10.8},{49.6,13.4},{49.6,14.4},{49.6,17},{50.2,15},{50.4,15.6},{50.4,17.8},{50.6,15.6},{50.8,15.2}}},nil,3537,nil,nil,1983,nil,"",0},
|
||||
[25418] = {'Churn',9291,9291,71,71,0,{[3537] = {{45.4,12.4},{45.8,12.2},{45.8,12.8},{45.8,13.6}}},nil,3537,nil,nil,1984,nil,"",0},
|
||||
[25419] = {'Boiling Spirit',9291,9291,69,70,0,{[3537] = {{43.4,13.8},{44.4,9},{44.6,9.8},{44.6,15.6},{45.2,12.4},{45.2,12.6},{45.2,16.8},{45.4,11.4},{45.4,15.4},{45.8,9.8},{45.8,12.2},{45.8,13},{45.8,13.6},{46,14.8},{46,16.8},{46,19},{46.2,11.4},{46.2,15.6},{46.4,9.4},{46.6,9.6},{46.8,9.2},{46.8,15},{46.8,16.8},{47,11.2},{47,12.6},{47.2,12.4},{47.2,16},{47.2,18.4},{47.4,14.2},{47.6,11.4},{47.6,12.4},{47.6,15.4},{47.8,16.8},{47.8,17.8},{48,15.8},{48.2,13.4},{48.2,14},{48.6,16},{48.8,12.2},{48.8,13.4},{49,16.8},{49.2,14.8},{49.4,10.6},{49.4,13.8},{50,10.8},{50.2,15.2},{51,15.2}}},nil,3537,nil,nil,1984,nil,"",0},
|
||||
[25514] = {'Rocknar',9291,9291,71,71,0,{[3537] = {{81.4,42.4},{81.4,42.6},{81.6,42.6}}},nil,3537,nil,nil,14,nil,"",0},
|
||||
[25707] = {'Magic-bound Ancient',9291,9291,71,72,0,{[3537] = {{22.4,23.4},{22.4,24},{22.8,24},{23,25.4},{23.4,30.2},{23.4,33.6},{23.6,27.8},{23.8,25.8},{23.8,34.2},{24,29.4},{24,29.8},{24.2,21.4},{24.4,22.4},{24.4,22.6},{24.4,23.6},{24.4,30.8},{24.4,31.6},{24.4,35},{24.6,22.4},{24.6,23},{24.6,23.6},{24.6,28.8},{24.6,30.4},{25,31.4},{25.2,20.4},{25.2,25},{25.2,31.6},{25.4,28.4},{25.4,34.4},{25.4,34.8},{25.4,35.6},{25.4,36.6},{25.6,34.6},{25.6,37},{25.8,21.4},{25.8,34.2},{25.8,35.6},{26,21.8},{26,23.4},{26,29.4},{26,31.4},{26,31.8},{26.4,32.6},{26.6,35},{27,20.4},{27,32.6},{27,33.8},{27.2,31},{27.4,20.6},{27.4,21.8},{27.4,30.4},{27.4,32},{27.6,33.6},{27.8,32.2},{27.8,32.6},{28.2,28.8},{28.2,29.8},{28.2,31.4},{28.2,35.8},{28.4,20.4},{28.4,21.4},{28.4,21.8},{28.4,28},{28.6,32.6},{28.6,34.2},{28.8,21.4},{28.8,21.6},{28.8,28.4},{28.8,32.4},{29,20.4},{29.2,27.4},{29.4,29},{29.4,30},{29.4,30.6},{29.6,20.2},{29.6,20.6},{29.6,22.8},{29.6,30.4},{29.8,22},{29.8,24.4},{29.8,25.8},{29.8,30.8},{29.8,31.8},{30,29.4},{30,33.2},{30.4,24.6},{30.6,29.2},{30.6,29.8},{30.8,31.2},{31,22.4},{31,26.6},{31.2,23.4},{31.2,25.6},{31.4,20.2},{31.4,21.2},{31.4,24.4},{31.4,24.8},{31.4,27.8},{31.6,20.4},{31.6,22.4},{31.6,24.2},{31.6,24.8},{31.6,25.6},{31.6,26.6},{31.6,30.8},{31.8,20.6},{31.8,23.4},{32,30},{32.4,27.6},{32.4,28.6},{32.4,33.8},{32.6,27.8},{32.6,30.6},{32.8,23.4},{33.2,24.6},{33.2,34.4},{33.4,24.2},{33.4,25.6},{33.4,29.4},{33.6,23.4},{33.6,24.4},{33.6,24.6},{33.8,25.6},{33.8,26.8},{34.4,28.4},{34.4,29.2},{34.4,29.8},{34.6,25.6},{34.8,29},{35,27},{35,29.6},{35.2,28.4},{35.4,30.6},{35.6,28},{35.6,29},{35.6,29.6},{35.6,30.6}}},nil,3537,nil,nil,16,nil,"",0},
|
||||
[25709] = {'Glacial Ancient',9291,9291,71,72,0,{[3537] = {{20.4,27},{20.4,28.2},{20.8,28.2},{21,25.8},{21,29.2},{21.2,29.6},{21.4,27},{21.4,31.4},{21.4,31.6},{21.4,32.6},{21.6,29.2},{21.6,30.4},{21.6,31},{21.6,32},{21.8,27.6},{22.2,33.2},{22.4,26.4},{22.4,27.2},{22.4,33.6},{22.4,34.6},{22.6,33.4},{22.8,27.2},{22.8,28.8},{23,32.4},{23,33.6},{23.2,27.8},{23.2,34.6},{23.4,25.2},{23.4,26},{23.4,35.6},{23.4,36.6},{23.6,25},{23.6,28.6},{23.6,33.4},{23.6,34.8},{23.6,35.8},{23.8,26.4},{23.8,27.8},{23.8,32.4},{23.8,36.6},{24,26.6},{24.2,34.2},{24.6,26},{24.6,27.8},{24.6,36.8},{24.8,27.2},{25,34.2},{25.2,19.4},{25.4,33.4},{25.4,34.6},{25.4,35.6},{25.6,33.4},{25.6,35},{25.6,35.6},{25.6,36.6},{25.8,34.2},{26.4,17.4},{26.4,18.2},{26.4,19.2},{26.4,20},{26.4,20.6},{26.6,18.4},{26.6,18.6},{26.6,19.6},{26.6,20.6},{27.2,33.8},{27.8,18},{29.4,30.2},{29.4,32.2},{29.4,32.8},{30.4,23.4},{30.4,23.8},{30.4,24.8},{30.4,29},{30.4,30.4},{30.4,31.4},{30.4,32.4},{30.4,32.6},{30.6,29.2},{30.6,30.4},{30.6,30.6},{30.6,32.2},{30.6,32.6},{31,28.4},{31.2,25.6},{31.4,22},{31.4,22.8},{31.4,23.6},{31.4,24.8},{31.6,22.4},{31.6,23.6},{31.6,24.6},{31.6,25.8},{31.6,31},{31.8,23.2},{32.6,23},{32.6,23.8},{32.6,26.4},{34.4,25.4},{34.4,26.4},{34.4,26.8},{34.4,28.2},{34.4,28.6},{34.8,26.4},{34.8,26.6},{35,28.6},{35.2,27.8},{35.4,25.4},{35.6,26.4},{35.6,27.2},{35.6,27.6},{35.6,28.6}}},nil,3537,nil,nil,7,nil,"",0},
|
||||
[25715] = {'Frozen Elemental',9291,9291,70,71,0,{[65]={{11.28,62.69},{11.05,61.25},{9.43,61.9},{10.2,60.22},{10.21,62.04},{9.29,60.28},{8.68,62.04},{9.07,59.02},{7.78,62.99},{8.79,54.22},{9.63,56.48},{11.56,54.92},{11.53,57.32},{11.05,56.14},{8.94,55.86},{10.33,55.94},{10.23,57.3},{7.8,61.25},{13.09,60.42},{8.24,60.06},{12.21,58.61},{11.52,59.08},{11.71,53.34},{7.88,58.82},{8.55,58.35},{6.81,62.17},{11.85,60.86}},[3537] = {{82.8,48.8},{83.2,45.6},{83.4,44.4},{83.4,45},{83.4,47.2},{83.4,47.6},{83.6,44.4},{83.6,47.2},{83.8,44.8},{84.2,46.4},{84.2,47.6},{84.6,47.2},{85,46.4},{85,48.8},{85.2,48},{85.4,43.8},{85.4,44.8},{85.6,43.4},{85.8,44.2},{85.8,47.4},{85.8,47.6},{86,45.8},{86.2,45.4},{86.8,47.6},{87.2,43.4},{87.2,43.6},{87.2,45},{87.4,42.4},{87.4,46.4},{87.4,46.6},{87.6,45.4},{87.6,45.8},{87.8,42.8},{88.4,42.4},{88.4,44.2},{88.4,46.8},{88.6,44.2},{88.6,45.8},{88.6,46.8},{88.8,41.4},{88.8,42.2},{88.8,45.4},{89,42.6},{89.8,42.6},{90.2,40.8},{90.2,41.8},{91,43},{91.2,40.4},{91.2,41.6},{91.4,41.4},{91.6,41.2},{91.6,41.6},{92,42.6},{92.4,37.8},{92.4,39.4},{92.4,39.6},{92.6,39.2},{92.6,39.6},{92.8,43.6},{93,36.4},{93,37.4},{93,38},{93.4,35.4}}},nil,3537,nil,nil,14,nil,"",0},
|
||||
[25742] = {'Alluvius',9291,9291,71,71,0,{[3537] = {{70.2,36.2},{75.4,35.6},{75.6,35.4},{75.6,35.8}}},nil,3537,nil,nil,35,nil,"",0},
|
||||
[26045] = {'Storm Tempest',9291,9291,71,71,0,{[3537] = {{77,38.6}}},nil,3537,nil,nil,834,nil,"",0},
|
||||
[32357] = {'Old Crystalbark',9291,9291,71,72,0,{[3537] = {{20.6,27.8},{20.8,27},{21.2,28.6},{21.2,29.8},{21.6,30.8},{21.8,27},{21.8,34.6},{22,33.8},{22.2,35.8},{22.4,33.4},{22.6,33},{23,33.8},{23.6,35.8},{24.4,34.4},{24.4,34.6},{25,34.2},{25,34.8},{25.6,34.6},{27,35.6},{29.6,33.2},{30,32},{30.8,30.6},{31.2,30.2},{31.6,30.2},{32,31.4},{33,31.8},{33.2,24.4},{33.2,34},{33.4,31},{33.6,31.2},{34.2,23.6},{34.4,25.4},{34.6,27.4},{35.2,28.4},{35.4,30},{35.6,30.8},{35.6,31.6},{36,28.2},{36.2,29.2},{36.2,30.2},{37.2,29}}},nil,3537,nil,nil,14,nil,"",0},
|
||||
}
|
||||
|
||||
-- Backward compatibility
|
||||
EbonholdNpcDB = EbonholdNpcDB or {}
|
||||
EbonholdNpcDB.npcData = EbonholdDB.npcData
|
||||
@@ -0,0 +1,17 @@
|
||||
---@type table
|
||||
local EbonholdDB = QuestieLoader:CreateModule("EbonholdDB")
|
||||
|
||||
EbonholdDB.objectData = EbonholdDB.objectData or {
|
||||
-- Object 600600: Elemental Shrine (starts quest 50026)
|
||||
[600600] = {
|
||||
[1] = "Elemental Shrine", -- Name
|
||||
[2] = nil, -- Type
|
||||
[3] = nil, -- Zones
|
||||
[4] = { [3703] = { { 54.29, 45.69 } } }, -- Spawns: Shattrath City
|
||||
[5] = 12, -- Faction
|
||||
[6] = nil, -- Unknown
|
||||
},
|
||||
}
|
||||
|
||||
EbonholdObjectDB = EbonholdObjectDB or {}
|
||||
EbonholdObjectDB.objectData = EbonholdDB.objectData
|
||||
@@ -0,0 +1,335 @@
|
||||
---@type table
|
||||
local EbonholdDB = QuestieLoader:CreateModule("EbonholdDB")
|
||||
|
||||
EbonholdDB.questData = EbonholdDB.questData or {
|
||||
-- Quest 50026: Elemental Balance
|
||||
-- Started by object 600600, kills of NPCs 17156 or 17157 count (both are elementals)
|
||||
[50026] = {
|
||||
[1] = "Elemental Balance", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 67, -- Quest level
|
||||
[5] = 64, -- Min level
|
||||
[6] = 3518, -- Zone (Nagrand)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 30 Elementals in Nagrand"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
{ 17153, 17154, 17155, 17156, 17157, 17159, 17160, 18062, 22309, 22310, 22311, 22313 }, -- IdList: all elemental types
|
||||
17157, -- RootId: representative NPC
|
||||
"Shattered Rumbler slain" -- Text
|
||||
}
|
||||
}
|
||||
},
|
||||
[17] = nil, -- XP reward
|
||||
[30] = 60, -- Group size
|
||||
},
|
||||
|
||||
-- Quest 50085: Savage Heights
|
||||
-- Kill 75 beasts in Blade's Edge Mountains
|
||||
[50085] = {
|
||||
[1] = "Savage Heights", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 70, -- Quest level
|
||||
[5] = 67, -- Min level
|
||||
[6] = 3522, -- Zone (Blade's Edge Mountains)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 75 Beasts in Blade's Edge Mountains"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- All 47 beast-type NPCs in Blade's Edge Mountains
|
||||
{ 10204, 20058, 20109, 20327, 20330, 20714, 20728, 20729, 20747, 20748, 20749, 20751, 20924, 20925, 20987, 20998, 21022, 21033, 21042, 21123, 21124, 21373, 21423, 21470, 21796, 21839, 21952, 21956, 22044, 22052, 22110, 22114, 22123, 22132, 22135, 22136, 22141, 22142, 22181, 22268, 22490, 22492, 22498, 22987, 23036, 23343, 23380 },
|
||||
20728, -- RootId: Bladespire Raptor (representative beast)
|
||||
"Beast slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
[17] = nil, -- XP reward
|
||||
[30] = 75, -- Kill count
|
||||
},
|
||||
|
||||
-- Quest 50086: Unstable Fauna
|
||||
-- Kill 75 beasts in Netherstorm
|
||||
[50086] = {
|
||||
[1] = "Unstable Fauna", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 70, -- Quest level
|
||||
[5] = 67, -- Min level
|
||||
[6] = 3523, -- Zone (Netherstorm)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 75 Beasts in Netherstorm"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- All 18 beast-type NPCs in Netherstorm
|
||||
{ 18879, 18880, 18883, 18884, 20415, 20607, 20610, 20611, 20618, 20634, 20671, 20673, 20773, 20775, 20777, 20931, 20932, 21005 },
|
||||
18879, -- RootId: Phase Hunter (representative beast)
|
||||
"Beast slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
[17] = nil, -- XP reward
|
||||
[30] = 75, -- Kill count
|
||||
},
|
||||
|
||||
-- Quest 50201: Dragonblight Trophy
|
||||
-- Kill 1 rare in Dragonblight
|
||||
[50201] = {
|
||||
[1] = "Dragonblight Trophy", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 75, -- Quest level
|
||||
[5] = 71, -- Min level
|
||||
[6] = 65, -- Zone (Dragonblight)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 1 Rare in Dragonblight"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- 3 rare NPCs in Dragonblight (already in WotLK DB with spawns)
|
||||
{ 32417, 32409, 32400 }, -- Scarlet Highlord Daion, Crazed Indu'le Survivor, Tukemuth
|
||||
32417, -- RootId: Scarlet Highlord Daion (representative rare)
|
||||
"Rare slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
[17] = nil, -- XP reward
|
||||
[30] = 1, -- Kill count (only 1 rare needed)
|
||||
},
|
||||
|
||||
-- Quest 50160: Redridge Trophy
|
||||
-- Kill 1 rare in Redridge Mountains
|
||||
[50160] = {
|
||||
[1] = "Redridge Trophy", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 17, -- Required level (Min level)
|
||||
[5] = 25, -- Quest level
|
||||
[17] = 44, -- Zone (Redridge Mountains)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 1 Rare in Redridge Mountains"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- Redridge Rares
|
||||
{ 14271, 616, 14270, 584, 14272, 14273, 947, 14269 },
|
||||
14271, -- RootId: Ribchaser (representative rare)
|
||||
"Rare slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
[30] = 1, -- Kill count
|
||||
},
|
||||
|
||||
-- Quest 50192: Zangarmarsh Trophy
|
||||
-- Kill 1 rare in Zangarmarsh
|
||||
[50192] = {
|
||||
[1] = "Zangarmarsh Trophy", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 60, -- Required level (Min level)
|
||||
[5] = 63, -- Quest level
|
||||
[17] = 3521, -- Zone (Zangarmarsh)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 1 Rare in Zangarmarsh"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- Zangarmarsh Rares
|
||||
{ 18682, 18680, 18681 }, -- Bog Lurker, Marticar, Coilfang Emissary
|
||||
18682, -- RootId: Bog Lurker (representative rare)
|
||||
"Rare slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
[30] = 1, -- Kill count
|
||||
},
|
||||
|
||||
-- Quest 50083: Forest Stalkers
|
||||
-- Kill 75 beasts in Terokkar Forest
|
||||
[50083] = {
|
||||
[1] = "Forest Stalkers", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 65, -- Quest level
|
||||
[5] = 62, -- Min level
|
||||
[6] = 3519, -- Zone (Terokkar Forest)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 75 Beasts in Terokkar Forest"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- All 53 beast-type NPCs in Terokkar Forest
|
||||
{ 16932, 16933, 18467, 18464, 18466, 18670, 18465, 21723, 18461, 18648, 18750, 23219, 23051, 18463, 22424, 20682, 21515, 21854, 23163, 21816, 18476, 18477, 32956, 18437, 21634, 22337, 24922, 21804, 18470, 18438, 18647, 19607, 18468, 23338, 14866, 14868, 22100, 23206, 22972, 22105, 19659, 22326, 18707, 22807, 18469, 23167, 21635, 18492, 19616, 23162, 14869, 22339, 22987 },
|
||||
16932, -- RootId: Razorfang Hatchling (representative beast)
|
||||
"Beast slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
[17] = nil, -- XP reward
|
||||
[30] = 75, -- Kill count
|
||||
},
|
||||
|
||||
-- Quest 50060: Skies of Blade's Edge
|
||||
-- Kill Dragonkin in Blade's Edge Mountains
|
||||
[50060] = {
|
||||
[1] = "Skies of Blade's Edge", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 67, -- Required level (Min level)
|
||||
[5] = 70, -- Quest level
|
||||
[17] = 3522, -- Zone (Blade's Edge Mountains)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Slay Dragonkin in Blade's Edge Mountains"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- All 17 dragonkin-type NPCs in Blade's Edge Mountains
|
||||
{ 18692, 21032, 20021, 20713, 21004, 23281, 23261, 21387, 22108, 21492, 23061, 21811, 21497, 23282, 21389, 22130, 23364 },
|
||||
18692, -- RootId: Hemathion (representative dragonkin)
|
||||
"Dragonkin slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
-- Quest 50030: Tundra Turbulence
|
||||
-- Kill Elementals in Borean Tundra
|
||||
[50030] = {
|
||||
[1] = "Tundra Turbulence", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 68, -- Required level (Min level)
|
||||
[5] = 71, -- Quest level
|
||||
[6] = 3537, -- Zone (Borean Tundra)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill Elementals in Borean Tundra"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- All 15 elemental-type NPCs in Borean Tundra
|
||||
{ 25417, 32357, 25715, 25514, 25419, 24601, 25415, 25226, 25742, 25707, 25709, 26045, 25376, 25418, 25416 },
|
||||
25417, -- RootId: Raging Boiler (representative elemental)
|
||||
"Elementals slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
[17] = nil, -- XP reward
|
||||
[30] = 75, -- Kill count (Assumed generic high count for zone farming quests, user said "amount varies", so we don't hardcode it in logic but usually DB needs a number. 75 puts it in line with others.)
|
||||
},
|
||||
|
||||
-- Quest 50087: Shadowed Beasts
|
||||
-- Kill 75 beasts in Shadowmoon Valley
|
||||
[50087] = {
|
||||
[1] = "Shadowed Beasts", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 67, -- Quest level
|
||||
[5] = 65, -- Min level
|
||||
[6] = 3520, -- Zone (Shadowmoon Valley)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 75 Beasts in Shadowmoon Valley"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- All 25 beast-type NPCs in Shadowmoon Valley (excluding mounts)
|
||||
{ 19379, 19784, 20502, 20503, 21102, 21108, 21307, 21340, 21408, 21462, 21627, 21723, 21802, 21864, 21879, 21897, 21901, 22265, 23020, 23169, 23264, 23267, 23269, 23326, 23501 },
|
||||
21723, -- RootId: Blackwind Sabercat (representative beast)
|
||||
"Beast slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
[17] = nil, -- XP reward
|
||||
[30] = 75, -- Kill count
|
||||
},
|
||||
|
||||
-- Quest 50064: Heart of the Dragonflights
|
||||
-- Kill 30 dragonkin in Dragonblight
|
||||
[50064] = {
|
||||
[1] = "Heart of the Dragonflights", -- Quest name
|
||||
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
|
||||
[4] = 73, -- Quest level
|
||||
[5] = 71, -- Min level
|
||||
[6] = 65, -- Zone (Dragonblight)
|
||||
[8] = {
|
||||
"This is a custom objective. Upon completion, you will automatically receive the assigned reward. If you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.",
|
||||
"Kill 30 Dragonkin in Dragonblight"
|
||||
},
|
||||
[10] = {
|
||||
nil, -- [1] creatureObjective (not used)
|
||||
nil, -- [2] objectObjective (not used)
|
||||
nil, -- [3] itemObjective (not used)
|
||||
nil, -- [4] reputationObjective (not used)
|
||||
{ -- [5] killCreditObjective
|
||||
{
|
||||
-- All 49 dragonkin NPCs in Dragonblight (excluding 32572 which is an object)
|
||||
{ 26276, 26277, 26322, 26349, 26443, 26593, 26917, 26925, 26933, 26949, 26983, 27255, 27506, 27530, 27542, 27575, 27608, 27629, 27682, 27725, 27763, 27765, 27785, 27789, 27856, 27896, 27897, 27898, 27900, 27925, 27935, 27938, 27940, 27943, 27948, 27950, 27953, 27990, 27996, 30058, 31333, 31334, 31393, 32180, 32185, 32186, 32352, 32533, 38017 },
|
||||
26322, -- RootId: Arcane Wyrm (representative dragonkin)
|
||||
"Dragonkin slain"
|
||||
}
|
||||
}
|
||||
},
|
||||
[17] = nil, -- XP reward
|
||||
[30] = 30, -- Kill count
|
||||
},
|
||||
}
|
||||
|
||||
-- Backward compatibility
|
||||
EbonholdQuestDB = EbonholdQuestDB or {}
|
||||
EbonholdQuestDB.questData = EbonholdDB.questData
|
||||
@@ -0,0 +1,323 @@
|
||||
---@class EbonholdLoader
|
||||
---@type table
|
||||
local EbonholdLoader = QuestieLoader:CreateModule("EbonholdLoader")
|
||||
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
|
||||
---@type table
|
||||
local EbonholdDB = QuestieLoader:ImportModule("EbonholdDB")
|
||||
_G.EbonholdDB = _G.EbonholdDB or EbonholdDB
|
||||
|
||||
local _overridesInjected = false
|
||||
local _zonesApplied = false
|
||||
|
||||
local function _LoadIfString(data, label)
|
||||
if not data then return nil end
|
||||
if type(data) == "string" then
|
||||
local fn, err = loadstring(data)
|
||||
if not fn then
|
||||
if Questie and Questie.Debug then
|
||||
Questie:Debug(Questie.DEBUG_CRITICAL,
|
||||
"[EbonholdLoader] loadstring failed for " .. tostring(label) .. ": " .. tostring(err))
|
||||
end
|
||||
return nil
|
||||
end
|
||||
local ok, tbl = pcall(fn)
|
||||
if not ok then
|
||||
if Questie and Questie.Debug then
|
||||
Questie:Debug(Questie.DEBUG_CRITICAL,
|
||||
"[EbonholdLoader] executing chunk failed for " .. tostring(label) .. ": " .. tostring(tbl))
|
||||
end
|
||||
return nil
|
||||
end
|
||||
return tbl
|
||||
end
|
||||
return data
|
||||
end
|
||||
|
||||
local function _MergeInto(dst, src)
|
||||
if type(dst) ~= "table" or type(src) ~= "table" then return end
|
||||
for id, entry in pairs(src) do
|
||||
dst[id] = entry
|
||||
end
|
||||
end
|
||||
|
||||
-- Apply Ebonhold custom uiMapId->areaId mappings into ZoneDB (used by map/Journey)
|
||||
function EbonholdLoader:ApplyZoneTables()
|
||||
if _zonesApplied then return end
|
||||
if not EbonholdZoneTables or not EbonholdZoneTables.uiMapIdToAreaId then return end
|
||||
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
if not ZoneDB then return end
|
||||
|
||||
ZoneDB.private = ZoneDB.private or {}
|
||||
ZoneDB.private.uiMapIdToAreaId = ZoneDB.private.uiMapIdToAreaId or {}
|
||||
ZoneDB.private.areaIdToUiMapId = ZoneDB.private.areaIdToUiMapId or {}
|
||||
ZoneDB.private.subZoneToParentZone = ZoneDB.private.subZoneToParentZone or {}
|
||||
ZoneDB.private.dungeons = ZoneDB.private.dungeons or {}
|
||||
ZoneDB.private.dungeonLocations = ZoneDB.private.dungeonLocations or {}
|
||||
ZoneDB.private.dungeonParentZones = ZoneDB.private.dungeonParentZones or {}
|
||||
|
||||
for uiMapId, areaId in pairs(EbonholdZoneTables.uiMapIdToAreaId) do
|
||||
if uiMapId and areaId then
|
||||
-- Always set these mappings (remove the nil check to ensure they're set)
|
||||
ZoneDB.private.uiMapIdToAreaId[uiMapId] = areaId
|
||||
|
||||
-- Ebonhold uses custom map ids for spawns/waypoints (e.g. 1238 for Northshire Valley).
|
||||
-- QuestieMap draws by converting AreaId->UiMapId, so register these ids as self-mapping.
|
||||
ZoneDB.private.areaIdToUiMapId[uiMapId] = uiMapId
|
||||
|
||||
-- If this uiMapId represents a *dungeon* map, prefer it for that dungeon's AreaId.
|
||||
-- This keeps normal zones intact (e.g. Elwynn stays 1429), while letting Ebonhold
|
||||
-- provide real instance maps (e.g. mapID 691 for The Stockade).
|
||||
if type(ZoneDB.private.dungeons) == "table" and ZoneDB.private.dungeons[areaId] then
|
||||
ZoneDB.private.areaIdToUiMapId[areaId] = uiMapId
|
||||
end
|
||||
|
||||
-- Register subzone to parent zone mapping so GetParentZoneId works with Ebonhold zones
|
||||
if uiMapId ~= areaId then
|
||||
ZoneDB.private.subZoneToParentZone[uiMapId] = areaId
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Optional: allow Ebonhold to define custom dungeon zones/entrances without touching core tables.
|
||||
if type(EbonholdZoneTables.dungeons) == "table" then
|
||||
for areaId, data in pairs(EbonholdZoneTables.dungeons) do
|
||||
if areaId and data then
|
||||
ZoneDB.private.dungeons[areaId] = data
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if type(EbonholdZoneTables.dungeonLocations) == "table" then
|
||||
for areaId, data in pairs(EbonholdZoneTables.dungeonLocations) do
|
||||
if areaId and data then
|
||||
ZoneDB.private.dungeonLocations[areaId] = data
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if type(EbonholdZoneTables.dungeonParentZones) == "table" then
|
||||
for subZoneId, parentZoneId in pairs(EbonholdZoneTables.dungeonParentZones) do
|
||||
if subZoneId and parentZoneId then
|
||||
ZoneDB.private.dungeonParentZones[subZoneId] = parentZoneId
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Also map parentMapIDs (e.g. 10138) to a usable uiMapId to avoid fallback errors.
|
||||
if EbonholdUiMapData and EbonholdUiMapData.uiMapData then
|
||||
for uiMapId, data in pairs(EbonholdUiMapData.uiMapData) do
|
||||
if uiMapId and ZoneDB.private.areaIdToUiMapId[uiMapId] == nil then
|
||||
ZoneDB.private.areaIdToUiMapId[uiMapId] = uiMapId
|
||||
end
|
||||
if data and type(data.parentMapID) == "number" and ZoneDB.private.areaIdToUiMapId[data.parentMapID] == nil then
|
||||
ZoneDB.private.areaIdToUiMapId[data.parentMapID] = uiMapId
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Register zone sort names for custom zones
|
||||
if EbonholdZoneTables.zoneSort then
|
||||
ZoneDB.private.zoneSort = ZoneDB.private.zoneSort or {}
|
||||
for zoneId, zoneName in pairs(EbonholdZoneTables.zoneSort) do
|
||||
ZoneDB.private.zoneSort[zoneId] = zoneName
|
||||
end
|
||||
end
|
||||
-- Clear cached zone lookups after adding custom zones
|
||||
if QuestieDB and QuestieDB.private and QuestieDB.private.zoneCache then
|
||||
QuestieDB.private.zoneCache = {}
|
||||
end
|
||||
|
||||
-- Clear auto-blacklist since zone validation might have changed
|
||||
if QuestieDB and QuestieDB.autoBlacklist then
|
||||
QuestieDB.autoBlacklist = {}
|
||||
end
|
||||
_zonesApplied = true
|
||||
end
|
||||
|
||||
-- Inject Ebonhold tables into QuestieDB *Overrides* so QueryQuestSingle/QueryNPCSingle can see them
|
||||
function EbonholdLoader:InjectOverrides()
|
||||
if _overridesInjected then return end
|
||||
_overridesInjected = true
|
||||
|
||||
-- Apply zone tables FIRST, before any ZoneDB functions use the local variables
|
||||
EbonholdLoader:ApplyZoneTables()
|
||||
|
||||
QuestieDB.npcDataOverrides = QuestieDB.npcDataOverrides or {}
|
||||
QuestieDB.objectDataOverrides = QuestieDB.objectDataOverrides or {}
|
||||
QuestieDB.itemDataOverrides = QuestieDB.itemDataOverrides or {}
|
||||
QuestieDB.questDataOverrides = QuestieDB.questDataOverrides or {}
|
||||
|
||||
local npcData = _LoadIfString(EbonholdDB and EbonholdDB.npcData, "EbonholdDB.npcData")
|
||||
local objectData = _LoadIfString(EbonholdDB and EbonholdDB.objectData, "EbonholdDB.objectData")
|
||||
local itemData = _LoadIfString(EbonholdDB and EbonholdDB.itemData, "EbonholdDB.itemData")
|
||||
local questData = _LoadIfString(EbonholdDB and EbonholdDB.questData, "EbonholdDB.questData")
|
||||
|
||||
_MergeInto(QuestieDB.npcDataOverrides, npcData)
|
||||
_MergeInto(QuestieDB.objectDataOverrides, objectData)
|
||||
_MergeInto(QuestieDB.itemDataOverrides, itemData)
|
||||
_MergeInto(QuestieDB.questDataOverrides, questData)
|
||||
|
||||
-- Keep a lightweight list of custom quest ids for search/UI (DO NOT touch QuestPointers; those are numeric stream pointers)
|
||||
if type(questData) == "table" then
|
||||
QuestieDB.ebonholdQuestIds = QuestieDB.ebonholdQuestIds or {}
|
||||
for questId, _ in pairs(questData) do
|
||||
if type(questId) == "number" then
|
||||
QuestieDB.ebonholdQuestIds[questId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Keep a lightweight list of custom NPC ids for search/UI
|
||||
if type(npcData) == "table" then
|
||||
QuestieDB.ebonholdNpcIds = QuestieDB.ebonholdNpcIds or {}
|
||||
for npcId, _ in pairs(npcData) do
|
||||
if type(npcId) == "number" then
|
||||
QuestieDB.ebonholdNpcIds[npcId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Keep a lightweight list of custom object ids for search/UI
|
||||
if type(objectData) == "table" then
|
||||
QuestieDB.ebonholdObjectIds = QuestieDB.ebonholdObjectIds or {}
|
||||
for objectId, _ in pairs(objectData) do
|
||||
if type(objectId) == "number" then
|
||||
QuestieDB.ebonholdObjectIds[objectId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Keep a lightweight list of custom item ids for search/UI
|
||||
if type(itemData) == "table" then
|
||||
QuestieDB.ebonholdItemIds = QuestieDB.ebonholdItemIds or {}
|
||||
for itemId, _ in pairs(itemData) do
|
||||
if type(itemId) == "number" then
|
||||
QuestieDB.ebonholdItemIds[itemId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Hook ZoneDB.Initialize to inject custom zones BEFORE standard zones are processed
|
||||
do
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
if ZoneDB then
|
||||
local originalZoneInitialize = ZoneDB.Initialize
|
||||
if type(originalZoneInitialize) == "function" then
|
||||
function ZoneDB:Initialize(...)
|
||||
-- Apply custom zones FIRST, before standard zone processing
|
||||
EbonholdLoader:ApplyZoneTables()
|
||||
|
||||
-- Then initialize standard zones
|
||||
return originalZoneInitialize(self, ...)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Hook QuestieDB.Initialize to guarantee timing for overrides
|
||||
do
|
||||
local originalInitialize = QuestieDB and QuestieDB.Initialize
|
||||
if type(originalInitialize) == "function" then
|
||||
function QuestieDB:Initialize(...)
|
||||
-- 1) Inject overrides before the DB handles are created
|
||||
EbonholdLoader:InjectOverrides()
|
||||
|
||||
local ret = originalInitialize(self, ...)
|
||||
|
||||
-- 2) Refresh Journey caches (zoneMap/zones) so "Quests by Zone" sees the new data
|
||||
local ZoneDB = QuestieLoader:ImportModule("ZoneDB")
|
||||
local QuestieJourney = QuestieLoader:ImportModule("QuestieJourney")
|
||||
if ZoneDB and QuestieJourney then
|
||||
QuestieJourney.zoneMap = ZoneDB:GetZonesWithQuests(true)
|
||||
QuestieJourney.zones = ZoneDB:GetRelevantZones()
|
||||
|
||||
-- Clear the UI cache so the tree gets rebuilt
|
||||
if QuestieJourney.private then
|
||||
QuestieJourney.private.treeCache = nil
|
||||
QuestieJourney.private.lastZoneSelection = {}
|
||||
end
|
||||
|
||||
-- If the Journey window is open, rebuild the current tab
|
||||
if QuestieJourneyFrame and QuestieJourneyFrame:IsShown() and QuestieJourney.tabGroup then
|
||||
local p = QuestieJourney.private
|
||||
if p and p.containerCache and p.lastOpenWindow then
|
||||
p:HandleTabChange(p.containerCache, p.lastOpenWindow)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return ret
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- >>> NEW: Make QuestieDB.GetQuest work for Ebonhold override quests (Journey needs this)
|
||||
do
|
||||
local originalGetQuest = QuestieDB.GetQuest
|
||||
if type(originalGetQuest) == "function" then
|
||||
function QuestieDB.GetQuest(questId)
|
||||
local q = originalGetQuest(questId)
|
||||
if q then return q end
|
||||
|
||||
-- Fallback: build a minimal quest object from QueryQuestSingle (works with overrides)
|
||||
local name = QuestieDB.QueryQuestSingle(questId, "name")
|
||||
if not name then return nil end
|
||||
|
||||
local level = QuestieDB.QueryQuestSingle(questId, "level") or
|
||||
QuestieDB.QueryQuestSingle(questId, "questLevel")
|
||||
local reqLevel = QuestieDB.QueryQuestSingle(questId, "requiredLevel") or
|
||||
QuestieDB.QueryQuestSingle(questId, "minLevel")
|
||||
local desc = QuestieDB.QueryQuestSingle(questId, "objectiveText") or
|
||||
QuestieDB.QueryQuestSingle(questId, "description") or QuestieDB.QueryQuestSingle(questId, "details")
|
||||
|
||||
-- Build the Starts field from startedBy (CRITICAL for available quests to show icons!)
|
||||
local startedBy = QuestieDB.QueryQuestSingle(questId, "startedBy")
|
||||
|
||||
local starts = {
|
||||
NPC = startedBy and startedBy[1] or {},
|
||||
GameObject = startedBy and startedBy[2] or {},
|
||||
Item = startedBy and startedBy[3] or {},
|
||||
}
|
||||
|
||||
-- Also get other fields needed for quest display
|
||||
local finishedBy = QuestieDB.QueryQuestSingle(questId, "finishedBy")
|
||||
local specialFlags = QuestieDB.QueryQuestSingle(questId, "specialFlags")
|
||||
local isRepeatable = specialFlags and (bit.band(specialFlags, 1) ~= 0) or false
|
||||
|
||||
-- Questie modules expect these common fields
|
||||
return {
|
||||
Id = questId,
|
||||
id = questId,
|
||||
name = name,
|
||||
level = level or reqLevel or 0,
|
||||
requiredLevel = reqLevel or 0,
|
||||
Description = desc, -- Journey tooltip reads quest.Description
|
||||
Starts = starts, -- CRITICAL: AvailableQuests needs this!
|
||||
finishedBy = finishedBy,
|
||||
IsRepeatable = isRepeatable,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Ensure zones also get applied when Questie finishes loading (covers edge cases)
|
||||
do
|
||||
local f = CreateFrame("Frame")
|
||||
f:RegisterEvent("ADDON_LOADED")
|
||||
f:SetScript("OnEvent", function(_, _, name)
|
||||
if name ~= "Questie-335" then return end
|
||||
if C_Timer and C_Timer.After then
|
||||
C_Timer.After(0, function() EbonholdLoader:ApplyZoneTables() end)
|
||||
else
|
||||
EbonholdLoader:ApplyZoneTables()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
return EbonholdLoader
|
||||
@@ -0,0 +1,36 @@
|
||||
---@class EbonholdUiMapData
|
||||
EbonholdUiMapData = EbonholdUiMapData or {}
|
||||
|
||||
EbonholdUiMapData.uiMapData = {
|
||||
-- Ebonhold custom dungeon maps
|
||||
-- Example from Ascension (Reference only for structure):
|
||||
-- [691] = {
|
||||
-- [1] = 375.0,
|
||||
-- [2] = 251.0,
|
||||
-- [3] = 189.0,
|
||||
-- [4] = 220.0,
|
||||
-- instance = 34,
|
||||
-- mapID = 691.1,
|
||||
-- name = "The Stockade",
|
||||
-- mapType = 3,
|
||||
-- parentMapID = 717,
|
||||
-- },
|
||||
}
|
||||
|
||||
local function ApplyUiMapData()
|
||||
if not QuestieCompat then return end
|
||||
if not EbonholdUiMapData or not EbonholdUiMapData.uiMapData then return end
|
||||
|
||||
QuestieCompat.UiMapData = QuestieCompat.UiMapData or {}
|
||||
|
||||
for uiMapId, data in pairs(EbonholdUiMapData.uiMapData) do
|
||||
if QuestieCompat.UiMapData[uiMapId] == nil then
|
||||
QuestieCompat.UiMapData[uiMapId] = data
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if QuestieCompat and QuestieCompat.LoadUiMapData then
|
||||
hooksecurefunc(QuestieCompat, "LoadUiMapData", ApplyUiMapData)
|
||||
end
|
||||
ApplyUiMapData()
|
||||
@@ -0,0 +1,17 @@
|
||||
---@class EbonholdZoneTables
|
||||
EbonholdZoneTables = EbonholdZoneTables or {}
|
||||
|
||||
EbonholdZoneTables.uiMapIdToAreaId = EbonholdZoneTables.uiMapIdToAreaId or {
|
||||
-- Example mappings:
|
||||
-- [1238] = 12, -- Custom Northshire Valley Map -> Elwynn Forest AreaID
|
||||
}
|
||||
|
||||
-- Register zone sort names for custom zones so they can be used in quest zoneOrSort field
|
||||
EbonholdZoneTables.zoneSort = EbonholdZoneTables.zoneSort or {
|
||||
-- [1238] = "Northshire Valley",
|
||||
}
|
||||
|
||||
-- Optional: custom dungeon registration (merged into ZoneDB by EbonholdLoader).
|
||||
EbonholdZoneTables.dungeons = EbonholdZoneTables.dungeons or {}
|
||||
EbonholdZoneTables.dungeonLocations = EbonholdZoneTables.dungeonLocations or {}
|
||||
EbonholdZoneTables.dungeonParentZones = EbonholdZoneTables.dungeonParentZones or {}
|
||||
@@ -0,0 +1,206 @@
|
||||
---@class MeetingStones
|
||||
local MeetingStones = QuestieLoader:CreateModule("MeetingStones")
|
||||
local _MeetingStones = {}
|
||||
|
||||
---@type l10n
|
||||
local l10n = QuestieLoader:ImportModule("l10n")
|
||||
|
||||
|
||||
---@param objectId number
|
||||
---@return string?, string?
|
||||
function MeetingStones:GetLocalizedDungeonNameAndLevelRangeByObjectId(objectId)
|
||||
local tableEntry = _MeetingStones.levelRanges[objectId]
|
||||
|
||||
if (not tableEntry) then
|
||||
return nil, nil
|
||||
end
|
||||
|
||||
return l10n(tableEntry.name), tableEntry.range
|
||||
end
|
||||
|
||||
_MeetingStones.levelRanges = {
|
||||
[178824] = {
|
||||
name = "Razorfen Downs",
|
||||
range = "(33-41)"
|
||||
},
|
||||
[178825] = {
|
||||
name = "Razorfen Kraul",
|
||||
range = "(23-31)"
|
||||
},
|
||||
[178826] = {
|
||||
name = "Dire Maul",
|
||||
range = "(54-61)"
|
||||
},
|
||||
[178827] = {
|
||||
name = "Maraudon",
|
||||
range = "(40-52)"
|
||||
},
|
||||
[178828] = {
|
||||
name = "Blackfathom Deeps",
|
||||
range = "(20-28)"
|
||||
},
|
||||
[178829] = {
|
||||
name = "Zul'Farrak",
|
||||
range = "(42-50)"
|
||||
},
|
||||
[178831] = {
|
||||
name = "Stratholme",
|
||||
range = "(56-61)"
|
||||
},
|
||||
[178832] = {
|
||||
name = "Scholomance",
|
||||
range = "(56-61)"
|
||||
},
|
||||
[178833] = {
|
||||
name = "Uldaman",
|
||||
range = "(36-44)"
|
||||
},
|
||||
[178834] = {
|
||||
name = "The Deadmines",
|
||||
range = "(16-24)"
|
||||
},
|
||||
[178844] = {
|
||||
name = "Scarlet Monastery",
|
||||
range = "(28-44)"
|
||||
},
|
||||
[178845] = {
|
||||
name = "Shadowfang Keep",
|
||||
range = "(17-25)"
|
||||
},
|
||||
[178884] = {
|
||||
name = "Wailing Caverns",
|
||||
range = "(16-24)"
|
||||
},
|
||||
[179554] = {
|
||||
name = "The Temple of Atal'Hakkar",
|
||||
range = "(45-54)"
|
||||
},
|
||||
[179555] = {
|
||||
name = "Gnomeregan",
|
||||
range = "(24-32)"
|
||||
},
|
||||
[179585] = {
|
||||
name = "Blackrock Mountain",
|
||||
range = "(48-61)"
|
||||
},
|
||||
[179595] = {
|
||||
name = "The Stockade",
|
||||
range = "(21-29)"
|
||||
},
|
||||
[179596] = {
|
||||
name = "Ragefire Chasm",
|
||||
range = "(14-20)"
|
||||
},
|
||||
[182558] = {
|
||||
name = "Coilfang Reservoir",
|
||||
range = "(61-70)"
|
||||
},
|
||||
[182559] = {
|
||||
name = "Tempest Keep",
|
||||
range = "(69-70)"
|
||||
},
|
||||
[182560] = {
|
||||
name = "Caverns of Time",
|
||||
range = "(66-70)"
|
||||
},
|
||||
[184455] = {
|
||||
name = "Hellfire Citadel",
|
||||
range = "(58-70)"
|
||||
},
|
||||
[184456] = {
|
||||
name = "Magtheridon's Lair",
|
||||
range = "(70)"
|
||||
},
|
||||
[184458] = {
|
||||
name = "Auchindoun",
|
||||
range = "(63-70)"
|
||||
},
|
||||
[184462] = {
|
||||
name = "Gruul's Lair",
|
||||
range = "(70)"
|
||||
},
|
||||
[184463] = {
|
||||
name = "Karazhan",
|
||||
range = "(70)"
|
||||
},
|
||||
[185321] = {
|
||||
name = "Onyxia's Lair",
|
||||
range = "(60-70)"
|
||||
},
|
||||
[185322] = {
|
||||
name = "Ahn'Qiraj",
|
||||
range = "(60-70)"
|
||||
},
|
||||
[185433] = {
|
||||
name = "Zul'Gurub",
|
||||
range = "(60-70)"
|
||||
},
|
||||
[185550] = {
|
||||
name = "The Black Temple",
|
||||
range = "(70)"
|
||||
},
|
||||
[186251] = {
|
||||
name = "Zul'Aman",
|
||||
range = "(70)"
|
||||
},
|
||||
[188171] = {
|
||||
name = "Magisters' Terrace",
|
||||
range = "(70)"
|
||||
},
|
||||
[188172] = {
|
||||
name = "Sunwell Plateau",
|
||||
range = "(70)"
|
||||
},
|
||||
[188488] = {
|
||||
name = "Utgarde Keep",
|
||||
range = "(68-80)"
|
||||
},
|
||||
[191227] = {
|
||||
name = "Azjol-Nerub",
|
||||
range = "(70-80)"
|
||||
},
|
||||
[191529] = {
|
||||
name = "Drak'Tharon Keep",
|
||||
range = "(72-80)"
|
||||
},
|
||||
[192017] = {
|
||||
name = "Ulduar",
|
||||
range = "(75-80)"
|
||||
},
|
||||
[192399] = {
|
||||
name = "Utgarde Pinnacle",
|
||||
range = "(78-80)"
|
||||
},
|
||||
[192557] = {
|
||||
name = "Gundrak",
|
||||
range = "(74-80)"
|
||||
},
|
||||
[192622] = {
|
||||
name = "Wyrmrest Temple",
|
||||
range = "(80)"
|
||||
},
|
||||
[193166] = {
|
||||
name = "Naxxramas",
|
||||
range = "(77-80)"
|
||||
},
|
||||
[193602] = {
|
||||
name = "The Nexus",
|
||||
range = "(70-80)"
|
||||
},
|
||||
[195013] = {
|
||||
name = "Vault of Archavon",
|
||||
range = "(80)"
|
||||
},
|
||||
[195498] = {
|
||||
name = "Argent Tournament",
|
||||
range = "(80)"
|
||||
},
|
||||
[195695] = {
|
||||
name = "Icecrown Citadel",
|
||||
range = "(80)"
|
||||
},
|
||||
[202184] = {
|
||||
name = "The Frozen Halls",
|
||||
range = "(80)"
|
||||
},
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,110 @@
|
||||
--Contains functions to fetch the Quest Experiance for quests.
|
||||
---@class QuestXP
|
||||
local QuestXP = QuestieLoader:CreateModule("QuestXP")
|
||||
|
||||
---@type table<QuestId,table<Level,XP>> -- { questId={level, xp}, ..... }
|
||||
QuestXP.db = {}
|
||||
|
||||
--- COMPATIBILITY ---
|
||||
local UnitBuff = QuestieCompat.UnitBuff
|
||||
local GetMaxPlayerLevel = QuestieCompat.GetMaxPlayerLevel
|
||||
local GetQuestLogRewardMoney = QuestieCompat.GetQuestLogRewardMoney
|
||||
|
||||
local floor = floor
|
||||
local UnitLevel = UnitLevel
|
||||
|
||||
local globalXPMultiplier = 1
|
||||
local isDiscovererDelightActive = false
|
||||
|
||||
function QuestXP.Init()
|
||||
if (Questie.IsWotlk or Questie.IsSoD) and globalXPMultiplier == 1 then
|
||||
for i = 1, 40 do
|
||||
local _, _, _, _, _, _, _, _, _, buffSpellId = UnitBuff("player", i)
|
||||
|
||||
if buffSpellId == 377749 then
|
||||
-- Joyous Journeys is active - 50% bonus XP
|
||||
globalXPMultiplier = 1.5
|
||||
break
|
||||
end
|
||||
|
||||
if buffSpellId == 436412 then
|
||||
-- Discoverer's Delight is active - 100% bonus XP
|
||||
globalXPMultiplier = 2
|
||||
isDiscovererDelightActive = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---@param xp XP
|
||||
---@param qLevel Level
|
||||
---@param ignorePlayerLevel boolean
|
||||
---@return XP experience
|
||||
local function getAdjustedXP(xp, qLevel, ignorePlayerLevel)
|
||||
local charLevel = UnitLevel("player")
|
||||
if charLevel == GetMaxPlayerLevel() and (not ignorePlayerLevel) then
|
||||
return 0
|
||||
end
|
||||
|
||||
--? These calculations are fetched from cmangos
|
||||
local xpMultiplier = 2 * (qLevel - charLevel) + 20
|
||||
if (xpMultiplier < 1) then
|
||||
xpMultiplier = 1
|
||||
elseif (xpMultiplier > 10) then
|
||||
xpMultiplier = 10
|
||||
end
|
||||
|
||||
xp = xp * xpMultiplier / 10
|
||||
--? I am unsure if the first xp <= 100 is actually correct... because some 85 xp quests should actually give 90
|
||||
if (xp <= 100) then
|
||||
xp = 5 * floor((xp + 2) / 5)
|
||||
elseif (xp <= 500) then
|
||||
xp = 10 * floor((xp + 5) / 10)
|
||||
elseif (xp <= 1000) then
|
||||
xp = 25 * floor((xp + 12) / 25)
|
||||
else
|
||||
xp = 50 * floor((xp + 25) / 50)
|
||||
end
|
||||
|
||||
return floor(xp * globalXPMultiplier)
|
||||
end
|
||||
|
||||
|
||||
---Get the adjusted XP for a quest.
|
||||
---@param questId QuestId
|
||||
---@param ignorePlayerLevel boolean
|
||||
---@return XP experience
|
||||
function QuestXP:GetQuestLogRewardXP(questId, ignorePlayerLevel)
|
||||
if QuestXP.db[questId] then
|
||||
local level = QuestXP.db[questId][1]
|
||||
local xp = QuestXP.db[questId][2]
|
||||
|
||||
--? We have -1 as a level for quests that are event quests and so on for TBC and WOTLK.
|
||||
if level > 0 and xp > 0 then
|
||||
return getAdjustedXP(xp, level, ignorePlayerLevel)
|
||||
end
|
||||
end
|
||||
|
||||
-- Return 0 if questId or xp data is not found for some reason
|
||||
return 0
|
||||
end
|
||||
|
||||
local exclusions = {
|
||||
[78612] = true,
|
||||
[78872] = true,
|
||||
[79101] = true,
|
||||
[79102] = true,
|
||||
[79103] = true,
|
||||
[80307] = true,
|
||||
[80308] = true,
|
||||
[80309] = true,
|
||||
}
|
||||
|
||||
function QuestXP.GetQuestRewardMoney(questId)
|
||||
local modifier = 1
|
||||
if isDiscovererDelightActive and (not exclusions[questId]) then
|
||||
modifier = 3
|
||||
end
|
||||
return floor(GetQuestLogRewardMoney(questId) * modifier)
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,384 @@
|
||||
---@class ZoneDB
|
||||
local ZoneDB = QuestieLoader:CreateModule("ZoneDB")
|
||||
---@type ZoneDBPrivate
|
||||
ZoneDB.private = ZoneDB.private or {}
|
||||
|
||||
local _ZoneDB = ZoneDB.private
|
||||
|
||||
-------------------------
|
||||
--Import modules.
|
||||
-------------------------
|
||||
---@type QuestiePlayer
|
||||
local QuestiePlayer = QuestieLoader:ImportModule("QuestiePlayer")
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB")
|
||||
---@type QuestieCorrections
|
||||
local QuestieCorrections = QuestieLoader:ImportModule("QuestieCorrections")
|
||||
---@type QuestieEvent
|
||||
local QuestieEvent = QuestieLoader:ImportModule("QuestieEvent")
|
||||
---@type QuestieProfessions
|
||||
local QuestieProfessions = QuestieLoader:ImportModule("QuestieProfessions")
|
||||
---@type l10n
|
||||
local l10n = QuestieLoader:ImportModule("l10n")
|
||||
|
||||
--- COMPATIBILITY ---
|
||||
local C_Map = QuestieCompat.C_Map
|
||||
|
||||
ZoneDB.private.areaIdToUiMapId = ZoneDB.private.areaIdToUiMapId or {}
|
||||
ZoneDB.private.uiMapIdToAreaId = ZoneDB.private.uiMapIdToAreaId or {}
|
||||
ZoneDB.private.dungeons = ZoneDB.private.dungeons or {}
|
||||
ZoneDB.private.dungeonLocations = ZoneDB.private.dungeonLocations or {}
|
||||
ZoneDB.private.dungeonParentZones = ZoneDB.private.dungeonParentZones or {}
|
||||
ZoneDB.private.subZoneToParentZone = ZoneDB.private.subZoneToParentZone or {}
|
||||
|
||||
local areaIdToUiMapId = ZoneDB.private.areaIdToUiMapId
|
||||
local uiMapIdToAreaId = ZoneDB.private.uiMapIdToAreaId
|
||||
local dungeons = ZoneDB.private.dungeons
|
||||
local dungeonLocations = ZoneDB.private.dungeonLocations
|
||||
local dungeonParentZones = ZoneDB.private.dungeonParentZones
|
||||
local subZoneToParentZone = ZoneDB.private.subZoneToParentZone
|
||||
---Zone ids enum
|
||||
ZoneDB.zoneIDs = ZoneDB.private.zoneIDs or {}
|
||||
|
||||
|
||||
-- Overrides for UiMapId to AreaId
|
||||
local UiMapIdOverrides = {
|
||||
[246] = 3713
|
||||
}
|
||||
local parentZoneToSubZone = {} -- Generated
|
||||
local zoneMap = {} -- Generated
|
||||
|
||||
|
||||
function ZoneDB:Initialize()
|
||||
_ZoneDB:GenerateParentZoneToStartingZoneTable()
|
||||
|
||||
-- Run tests if debug enabled
|
||||
if Questie.db.profile.debugEnabled then
|
||||
_ZoneDB:RunTests()
|
||||
end
|
||||
end
|
||||
|
||||
function _ZoneDB:GenerateParentZoneToStartingZoneTable()
|
||||
for startingZone, parentZone in pairs(subZoneToParentZone) do
|
||||
parentZoneToSubZone[parentZone] = startingZone
|
||||
end
|
||||
end
|
||||
|
||||
function ZoneDB:GetDungeons()
|
||||
return dungeons
|
||||
end
|
||||
|
||||
---@param areaId AreaId
|
||||
---@return UiMapId
|
||||
function ZoneDB:GetUiMapIdByAreaId(areaId)
|
||||
return areaIdToUiMapId[areaId]
|
||||
end
|
||||
|
||||
--- Use with care, kind of slow.
|
||||
---@param uiMapId UiMapId
|
||||
---@return AreaId
|
||||
function ZoneDB:GetAreaIdByUiMapId(uiMapId)
|
||||
--? Some areas have multiple areaIds, so we return the correct AreaId
|
||||
if UiMapIdOverrides[uiMapId] then
|
||||
return UiMapIdOverrides[uiMapId]
|
||||
end
|
||||
|
||||
local foundId
|
||||
-- First we look for a direct match
|
||||
for AreaUiMapId, lAreaId in pairs(uiMapIdToAreaId) do
|
||||
local areaId = lAreaId
|
||||
if (AreaUiMapId == uiMapId and not foundId) then
|
||||
--Questie:Debug(Questie.DEBUG_DEVELOP, "[ZoneDB:GetAreaIdByUiMapId] : ", " AreaUiMapId: ", AreaUiMapId, " == uiMapId: ", uiMapId, " and areaId = ", areaId, " foundID is nil")
|
||||
foundId = areaId
|
||||
elseif AreaUiMapId == uiMapId and foundId ~= AreaUiMapId then
|
||||
-- If we find a second match that does not match the first
|
||||
-- Print an error, but we still return the first one we found.
|
||||
|
||||
-- Only print if debug is enabled.
|
||||
if Questie.db.profile.debugEnabled then
|
||||
Questie:Error("[ZoneDB:GetAreaIdByUiMapId] : ", "UiMapId", uiMapId, "has multiple AreaIds:", foundId, areaId)
|
||||
end
|
||||
end
|
||||
end
|
||||
if foundId then -- debug --TechnoHunter adding debug print to report found AreaId
|
||||
--if Questie.db.profile.debugEnabled then
|
||||
--local uiMapInfo = C_Map.GetMapInfo(uiMapId)
|
||||
--local foundName = C_Map.GetAreaInfo(foundId)
|
||||
--Questie:Debug(Questie.DEBUG_DEVELOP, "[ZoneDB:GetAreaIdByUiMapId] : ", "Found AreaId", foundName, ":", foundId, " for UiMapId", uiMapInfo.name, ":", uiMapId, "direct match")
|
||||
--end
|
||||
return foundId
|
||||
else
|
||||
-- As a last resort we try to match AreaId and UiMapId by name
|
||||
-- uses the original table in zoneTables as the area id's are
|
||||
-- all in that and we dont care if the uiMapId is there or not
|
||||
for areaId in pairs(areaIdToUiMapId) do
|
||||
local mapInfo = C_Map.GetMapInfo(uiMapId)
|
||||
local areaName = C_Map.GetAreaInfo(areaId)
|
||||
if mapInfo and mapInfo.name == areaName then
|
||||
Questie:Debug(Questie.DEBUG_DEVELOP, "[ZoneDB:GetAreaIdByUiMapId] : ", "Found AreaId", areaName, ":", areaId, "for UiMapId", mapInfo.name, ":", uiMapId, "by name")
|
||||
return areaId
|
||||
end
|
||||
end
|
||||
error("No AreaId found for UiMapId: " .. uiMapId .. ":" .. C_Map.GetMapInfo(uiMapId).name)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
---@param areaId AreaId
|
||||
function ZoneDB:GetDungeonLocation(areaId)
|
||||
return dungeonLocations[areaId]
|
||||
end
|
||||
|
||||
---@param areaId AreaId
|
||||
function ZoneDB.IsDungeonZone(areaId)
|
||||
return dungeonLocations[areaId] ~= nil
|
||||
end
|
||||
|
||||
---@param areaId AreaId
|
||||
function ZoneDB:GetAlternativeZoneId(areaId)
|
||||
local entry = dungeons[areaId]
|
||||
if entry then
|
||||
return entry[2]
|
||||
end
|
||||
|
||||
entry = parentZoneToSubZone[areaId]
|
||||
if entry then
|
||||
return entry
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
---@param areaId AreaId
|
||||
function ZoneDB:GetParentZoneId(areaId)
|
||||
return dungeonParentZones[areaId] or subZoneToParentZone[areaId]
|
||||
end
|
||||
|
||||
|
||||
-- We keep localized variables outside of the function only used by GetZonesWithQuests
|
||||
do
|
||||
-- This is for yielding
|
||||
local yieldAmount = 200
|
||||
local extraYield = yieldAmount / 4
|
||||
|
||||
--Keep yield here as there is potentially a case where this wants to be run outside of a coroutine
|
||||
|
||||
---@param yield boolean?
|
||||
---@return table
|
||||
function ZoneDB:GetZonesWithQuests(yield)
|
||||
local count = 0
|
||||
|
||||
local function ProcessQuestId(questId)
|
||||
if (not QuestieCorrections.hiddenQuests[questId]) then
|
||||
if QuestiePlayer.HasRequiredRace(QuestieDB.QueryQuestSingle(questId, "requiredRaces"))
|
||||
and QuestiePlayer.HasRequiredClass(QuestieDB.QueryQuestSingle(questId, "requiredClasses")) then
|
||||
|
||||
local zoneOrSort = QuestieDB.QueryQuestSingle(questId, "zoneOrSort")
|
||||
local requiredSkill = QuestieDB.QueryQuestSingle(questId, "requiredSkill")
|
||||
|
||||
if type(requiredSkill) == "table"
|
||||
and requiredSkill[1]
|
||||
and requiredSkill[1] ~= QuestieProfessions.professionKeys.RIDING then
|
||||
|
||||
local sortId = QuestieProfessions:GetSortIdByProfessionId(requiredSkill[1])
|
||||
zoneOrSort = sortId or QuestieDB.sortKeys.SPECIAL
|
||||
|
||||
if (not zoneMap[zoneOrSort]) then zoneMap[zoneOrSort] = {} end
|
||||
zoneMap[zoneOrSort][questId] = true
|
||||
|
||||
elseif type(zoneOrSort) == "number" and zoneOrSort > 0 then
|
||||
local parentZoneId = ZoneDB:GetParentZoneId(zoneOrSort)
|
||||
|
||||
if parentZoneId then
|
||||
if (not zoneMap[parentZoneId]) then zoneMap[parentZoneId] = {} end
|
||||
zoneMap[parentZoneId][questId] = true
|
||||
else
|
||||
if (not zoneMap[zoneOrSort]) then zoneMap[zoneOrSort] = {} end
|
||||
zoneMap[zoneOrSort][questId] = true
|
||||
end
|
||||
|
||||
elseif type(zoneOrSort) == "number" and _ZoneDB:IsSpecialQuest(zoneOrSort) then
|
||||
if (not zoneMap[zoneOrSort]) then zoneMap[zoneOrSort] = {} end
|
||||
zoneMap[zoneOrSort][questId] = true
|
||||
|
||||
else
|
||||
local startedBy = QuestieDB.QueryQuestSingle(questId, "startedBy")
|
||||
if startedBy then
|
||||
zoneMap = _ZoneDB:GetZonesWithQuestsFromNPCs(zoneMap, startedBy[1], questId)
|
||||
zoneMap = _ZoneDB:GetZonesWithQuestsFromObjects(zoneMap, startedBy[2], questId)
|
||||
end
|
||||
|
||||
local finishedBy = QuestieDB.QueryQuestSingle(questId, "finishedBy")
|
||||
if finishedBy then
|
||||
zoneMap = _ZoneDB:GetZonesWithQuestsFromNPCs(zoneMap, finishedBy[1], questId)
|
||||
zoneMap = _ZoneDB:GetZonesWithQuestsFromObjects(zoneMap, finishedBy[2], questId)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if yield then
|
||||
count = count + 1
|
||||
if count >= yieldAmount then
|
||||
count = 0
|
||||
coroutine.yield()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- 1) Base Questie quests (QuestPointers values must be numbers; ignore anything weird)
|
||||
for questId, ptr in pairs(QuestieDB.QuestPointers) do
|
||||
if type(ptr) == "number" then
|
||||
ProcessQuestId(questId)
|
||||
end
|
||||
end
|
||||
|
||||
-- 2) Ascension custom quests (from overrides list)
|
||||
if type(QuestieDB.ascensionQuestIds) == "table" then
|
||||
for questId in pairs(QuestieDB.ascensionQuestIds) do
|
||||
ProcessQuestId(questId)
|
||||
end
|
||||
end
|
||||
|
||||
if yield then coroutine.yield() end
|
||||
zoneMap = _ZoneDB:SplitSeasonalQuests()
|
||||
return zoneMap
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
---@param zoneOrSort ZoneOrSort
|
||||
function _ZoneDB:IsSpecialQuest(zoneOrSort)
|
||||
for _, v in pairs(QuestieDB.sortKeys) do
|
||||
if zoneOrSort == v then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
---@param zones table
|
||||
---@param npcIds table|nil
|
||||
---@param questId number
|
||||
---@return table
|
||||
function _ZoneDB:GetZonesWithQuestsFromNPCs(zones, npcIds, questId)
|
||||
if (not npcIds) then
|
||||
return zones
|
||||
end
|
||||
|
||||
for npcId in pairs(npcIds) do
|
||||
local spawns = QuestieDB.QueryNPCSingle(npcId, "spawns")
|
||||
if spawns then
|
||||
for zone in pairs(spawns) do
|
||||
if not zones[zone] then zones[zone] = {} end
|
||||
zones[zone][questId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return zones
|
||||
end
|
||||
|
||||
---@param zones table
|
||||
---@param objectIds table|nil
|
||||
---@param questId number
|
||||
---@return table
|
||||
function _ZoneDB:GetZonesWithQuestsFromObjects(zones, objectIds, questId)
|
||||
if (not objectIds) then
|
||||
return zones
|
||||
end
|
||||
|
||||
for objectId in pairs(objectIds) do
|
||||
local spawns = QuestieDB.QueryObjectSingle(objectId, "spawns")
|
||||
if spawns then
|
||||
for zone in pairs(spawns) do
|
||||
if not zones[zone] then zones[zone] = {} end
|
||||
zones[zone][questId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return zones
|
||||
end
|
||||
|
||||
---@return table
|
||||
function _ZoneDB:SplitSeasonalQuests()
|
||||
if (not zoneMap[QuestieDB.sortKeys.SPECIAL]) or (not zoneMap[QuestieDB.sortKeys.SEASONAL]) then
|
||||
return zoneMap
|
||||
end
|
||||
local questsToSplit = zoneMap[QuestieDB.sortKeys.SEASONAL]
|
||||
-- Merging SEASONAL and SPECIAL quests to be split into real groups
|
||||
for k, v in pairs(zoneMap[QuestieDB.sortKeys.SPECIAL]) do questsToSplit[k] = v end
|
||||
|
||||
local updatedZoneMap = zoneMap
|
||||
updatedZoneMap[-400] = {}
|
||||
updatedZoneMap[-401] = {}
|
||||
updatedZoneMap[-402] = {}
|
||||
updatedZoneMap[-403] = {}
|
||||
updatedZoneMap[-404] = {}
|
||||
|
||||
for questId, _ in pairs(questsToSplit) do
|
||||
local eventName = QuestieEvent:GetEventNameFor(questId)
|
||||
if eventName == "Love is in the Air" then
|
||||
updatedZoneMap[-400][questId] = true
|
||||
elseif eventName == "Children's Week" then
|
||||
updatedZoneMap[-401][questId] = true
|
||||
elseif eventName == "Harvest Festival" then
|
||||
updatedZoneMap[-402][questId] = true
|
||||
elseif eventName == "Hallow's End" then
|
||||
updatedZoneMap[-403][questId] = true
|
||||
elseif eventName == "Winter Veil" then
|
||||
updatedZoneMap[-404][questId] = true
|
||||
end
|
||||
end
|
||||
|
||||
updatedZoneMap[QuestieDB.sortKeys.SEASONAL] = nil
|
||||
updatedZoneMap[QuestieDB.sortKeys.SPECIAL] = nil
|
||||
return updatedZoneMap
|
||||
end
|
||||
|
||||
function ZoneDB:GetRelevantZones()
|
||||
local zones = {}
|
||||
for category, data in pairs(l10n.zoneCategoryLookup) do
|
||||
zones[category] = {}
|
||||
for id, zoneName in pairs(data) do
|
||||
local zoneQuests = zoneMap[id]
|
||||
if (not zoneQuests) then
|
||||
zones[category][id] = nil
|
||||
else
|
||||
zones[category][id] = l10n(zoneName)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return zones
|
||||
end
|
||||
|
||||
|
||||
|
||||
----- Tests -----
|
||||
|
||||
function _ZoneDB:RunTests()
|
||||
-- Fetch all UiMapIds (WOTLK/TBC, ERA)
|
||||
local maps = C_Map.GetMapChildrenInfo(946, nil, true) or C_Map.GetMapChildrenInfo(947, nil, true)
|
||||
Questie:Debug(Questie.DEBUG_CRITICAL, "[" .. Questie:Colorize("ZoneDBTests", "yellow") .. "] Testing ZoneDB")
|
||||
local buggedMaps = {
|
||||
[306] = true, -- ScholomanceOLD
|
||||
[307] = true, -- ScholomanceOLD
|
||||
[308] = true, -- ScholomanceOLD
|
||||
[309] = true, -- ScholomanceOLD
|
||||
}
|
||||
for _, map in pairs(maps) do
|
||||
--- We don't care about World, Continent or Cosmic
|
||||
if map.mapType ~= Enum.UIMapType.World and map.mapType ~= Enum.UIMapType.Continent and map.mapType ~= Enum.UIMapType.Cosmic then
|
||||
local success, result = pcall(ZoneDB.GetAreaIdByUiMapId, ZoneDB, map.mapID)
|
||||
if not success and not buggedMaps[map.mapID] then
|
||||
Questie:Error("[ZoneDBTests] ZoneDB.GetAreaIdByUiMapId fails for " .. map.name .. " (" .. map.mapID .. "). Result: " .. result)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
Questie:Debug(Questie.DEBUG_CRITICAL, "[" .. Questie:Colorize("ZoneDBTests", "yellow") .. "] Testing ZoneDB done")
|
||||
end
|
||||
|
||||
return ZoneDB
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,124 @@
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB");
|
||||
|
||||
|
||||
QuestieDB.itemKeys = {
|
||||
['name'] = 1, -- string
|
||||
['npcDrops'] = 2, -- table or nil, NPC IDs
|
||||
['objectDrops'] = 3, -- table or nil, object IDs
|
||||
['itemDrops'] = 4, -- table or nil, item IDs
|
||||
['startQuest'] = 5, -- int or nil, ID of the quest started by this item
|
||||
['questRewards'] = 6, -- table or nil, quest IDs
|
||||
['flags'] = 7, -- int or nil, see: https://github.com/cmangos/issues/wiki/Item_template#flags
|
||||
['foodType'] = 8, -- int or nil, see https://github.com/cmangos/issues/wiki/Item_template#foodtype
|
||||
['itemLevel'] = 9, -- int, the level of this item
|
||||
['requiredLevel'] = 10, -- int, the level required to equip/use this item
|
||||
['ammoType'] = 11, -- int,
|
||||
['class'] = 12, -- int,
|
||||
['subClass'] = 13, -- int,
|
||||
['vendors'] = 14, -- table or nil, NPC IDs
|
||||
['relatedQuests'] = 15, -- table or nil, IDs of quests that are related to this item
|
||||
['teachesSpell'] = 16, -- int, spellID taught by this item upon use
|
||||
}
|
||||
|
||||
QuestieDB.itemKeysReversed = {}
|
||||
for key, id in pairs(QuestieDB.itemKeys) do
|
||||
QuestieDB.itemKeysReversed[id] = key
|
||||
end
|
||||
|
||||
-- item class/subClass combinations
|
||||
|
||||
--class subClass
|
||||
-- 0 0 Consumable
|
||||
-- 1 0 Container, Bag
|
||||
-- 1 1 Container, Soul bag
|
||||
-- 1 2 Container, Herb bag
|
||||
-- 1 3 Container, Enchanting bag
|
||||
-- 1 4 Container, Engineering bag
|
||||
-- 2 0 Weapon, Axe 1H
|
||||
-- 2 1 Weapon, Axe 2H
|
||||
-- 2 2 Weapon, Bow
|
||||
-- 2 3 Weapon, Gun
|
||||
-- 2 4 Weapon, Mace 1H
|
||||
-- 2 5 Weapon, Mace 2H
|
||||
-- 2 6 Weapon, Polearm
|
||||
-- 2 7 Weapon, Sword 1H
|
||||
-- 2 8 Weapon, Sword 2H
|
||||
-- 2 10 Weapon, Staff
|
||||
-- 2 13 Weapon, Fist weapon
|
||||
-- 2 14 Weapon, Miscellaneous
|
||||
-- 2 15 Weapon, Dagger
|
||||
-- 2 16 Weapon, Thrown
|
||||
-- 2 17 Weapon, Spear
|
||||
-- 2 18 Weapon, Crossbow
|
||||
-- 2 19 Weapon, Wand
|
||||
-- 2 20 Weapon, Fishing pole
|
||||
-- 4 0 Armor, Miscellaneous
|
||||
-- 4 1 Armor, Cloth
|
||||
-- 4 2 Armor, Leather
|
||||
-- 4 3 Armor, Mail
|
||||
-- 4 4 Armor, Plate
|
||||
-- 4 6 Armor, Shield
|
||||
-- 4 7 Armor, Libram
|
||||
-- 4 8 Armor, Idol
|
||||
-- 4 9 Armor, Totem
|
||||
-- 5 0 Reagent
|
||||
-- 6 2 Projectile, Arrow
|
||||
-- 6 3 Projectile, Bullet
|
||||
-- 7 0 Trade goods, Trade goods
|
||||
-- 7 1 Trade goods, Parts
|
||||
-- 7 2 Trade goods, Explosives
|
||||
-- 7 3 Trade goods, Devices
|
||||
-- 9 0 Recipe, Book
|
||||
-- 9 1 Recipe, Leatherworking
|
||||
-- 9 2 Recipe, Tailoring
|
||||
-- 9 3 Recipe, Engineering
|
||||
-- 9 4 Recipe, Blacksmithing
|
||||
-- 9 5 Recipe, Cooking
|
||||
-- 9 6 Recipe, Alchemy
|
||||
-- 9 7 Recipe, First aid
|
||||
-- 9 8 Recipe, Enchanting
|
||||
-- 9 9 Recipe, Fishing
|
||||
-- 11 2 Quiver
|
||||
-- 11 3 Ammo pouch
|
||||
-- 12 0 Quest
|
||||
-- 13 0 Key
|
||||
-- 13 1 Lockpick
|
||||
-- 15 0 Miscellaneous, Junk
|
||||
|
||||
QuestieDB.itemClasses = {
|
||||
QUEST = 12,
|
||||
}
|
||||
|
||||
QuestieDB.itemCompilerTypes = {
|
||||
["foodType"] = "u8",
|
||||
["itemLevel"] = "u16",
|
||||
["flags"] = "u32",
|
||||
["startQuest"] = "u24",
|
||||
["requiredLevel"] = "u8",
|
||||
["ammoType"] = "u8",
|
||||
["class"] = "u8",
|
||||
["subClass"] = "u8",
|
||||
["npcDrops"] = "u16u24array",
|
||||
["objectDrops"] = "u8u24array",
|
||||
["itemDrops"] = "u8u24array",
|
||||
["vendors"] = "u8u24array",
|
||||
["relatedQuests"] = "u8u24array",
|
||||
["questRewards"] = "u8u24array",
|
||||
["name"] = "u8string",
|
||||
["teachesSpell"] = "u24",
|
||||
}
|
||||
|
||||
QuestieDB.itemCompilerOrder = { -- order easily skipable data first for efficiency
|
||||
--static size
|
||||
"flags", "startQuest", "itemLevel", "requiredLevel", "foodType", "ammoType", "class", "subClass", "teachesSpell",
|
||||
|
||||
-- variable size
|
||||
"name", "relatedQuests", "questRewards", "npcDrops", "objectDrops", "vendors", "itemDrops"
|
||||
}
|
||||
|
||||
-- temporary, until we remove the old db funcitons
|
||||
QuestieDB._itemAdapterQueryOrder = {}
|
||||
for key, id in pairs(QuestieDB.itemKeys) do
|
||||
QuestieDB._itemAdapterQueryOrder[id] = key
|
||||
end
|
||||
@@ -0,0 +1,97 @@
|
||||
---@class QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB");
|
||||
|
||||
|
||||
QuestieDB.npcKeys = {
|
||||
['name'] = 1, -- string
|
||||
['minLevelHealth'] = 2, -- int
|
||||
['maxLevelHealth'] = 3, -- int
|
||||
['minLevel'] = 4, -- int
|
||||
['maxLevel'] = 5, -- int
|
||||
['rank'] = 6, -- int, see https://github.com/cmangos/issues/wiki/creature_template#rank
|
||||
['spawns'] = 7, -- table {[zoneID(int)] = {coordPair(floatVector2D),...},...}
|
||||
['waypoints'] = 8, -- table {[zoneID(int)] = {coordPair(floatVector2D),...},...}
|
||||
['zoneID'] = 9, -- guess as to where this NPC is most common
|
||||
['questStarts'] = 10, -- table {questID(int),...}
|
||||
['questEnds'] = 11, -- table {questID(int),...}
|
||||
['factionID'] = 12, -- int, see https://github.com/cmangos/issues/wiki/FactionTemplate.dbc
|
||||
['friendlyToFaction'] = 13, -- string, Contains "A" and/or "H" depending on NPC being friendly towards those factions. nil if hostile to both.
|
||||
['subName'] = 14, -- string, The title or function of the NPC, e.g. "Weapon Vendor"
|
||||
['npcFlags'] = 15, -- int, Bitmask containing various flags about the NPCs function (Vendor, Trainer, Flight Master, etc.).
|
||||
-- For flag values see https://github.com/cmangos/mangos-classic/blob/172c005b0a69e342e908f4589b24a6f18246c95e/src/game/Entities/Unit.h#L536
|
||||
}
|
||||
|
||||
QuestieDB.npcKeysReversed = {}
|
||||
for key, id in pairs(QuestieDB.npcKeys) do
|
||||
QuestieDB.npcKeysReversed[id] = key
|
||||
end
|
||||
|
||||
|
||||
QuestieDB.npcCompilerTypes = {
|
||||
['name'] = "u8string",
|
||||
['minLevelHealth'] = "u32",
|
||||
['maxLevelHealth'] = "u32",
|
||||
['minLevel'] = "u8",
|
||||
['maxLevel'] = "u8",
|
||||
['rank'] = "u8",
|
||||
['spawns'] = "spawnlist",
|
||||
['waypoints'] = "waypointlist",
|
||||
['zoneID'] = "u16",
|
||||
['questStarts'] = "u8u24array",
|
||||
['questEnds'] = "u8u24array",
|
||||
['factionID'] = "u16",
|
||||
['friendlyToFaction'] = "faction",
|
||||
['subName'] = "u8string",
|
||||
['npcFlags'] = "u32",
|
||||
}
|
||||
|
||||
QuestieDB.npcCompilerOrder = { -- order easily skipable data first for efficiency
|
||||
--static size
|
||||
'minLevelHealth', 'maxLevelHealth', 'minLevel', 'maxLevel', 'rank', 'zoneID', 'factionID', 'friendlyToFaction', 'npcFlags',
|
||||
|
||||
-- variable size
|
||||
'name', 'spawns', 'waypoints', 'questStarts', 'questEnds', 'subName'
|
||||
}
|
||||
|
||||
---@enum NpcFlags
|
||||
QuestieDB.npcFlags = (Questie.IsTBC or Questie.IsWotlk) and {
|
||||
NONE = 0,
|
||||
GOSSIP = 1,
|
||||
QUEST_GIVER = 2,
|
||||
TRAINER = 16,
|
||||
VENDOR = 128,
|
||||
REPAIR = 4096,
|
||||
FLIGHT_MASTER = 8192,
|
||||
SPIRIT_HEALER = 16384,
|
||||
SPIRIT_GUIDE = 32768,
|
||||
INNKEEPER = 65536,
|
||||
BANKER = 131072,
|
||||
PETITIONER = 262144,
|
||||
TABARD_DESIGNER = 524288,
|
||||
BATTLEMASTER = 1048576,
|
||||
AUCTIONEER = 2097152,
|
||||
STABLEMASTER = 4194304,
|
||||
} or {
|
||||
NONE = 0,
|
||||
GOSSIP = 1,
|
||||
QUEST_GIVER = 2,
|
||||
VENDOR = 4,
|
||||
FLIGHT_MASTER = 8,
|
||||
TRAINER = 16,
|
||||
SPIRIT_HEALER = 32,
|
||||
SPIRIT_GUIDE = 64,
|
||||
INNKEEPER = 128,
|
||||
BANKER = 256,
|
||||
PETITIONER = 512,
|
||||
TABARD_DESIGNER = 1024,
|
||||
BATTLEMASTER = 2048,
|
||||
AUCTIONEER = 4096,
|
||||
STABLEMASTER = 8192,
|
||||
REPAIR = 16384
|
||||
}
|
||||
|
||||
-- temporary, until we remove the old db funcitons
|
||||
QuestieDB._npcAdapterQueryOrder = {}
|
||||
for key, id in pairs(QuestieDB.npcKeys) do
|
||||
QuestieDB._npcAdapterQueryOrder[id] = key
|
||||
end
|
||||
@@ -0,0 +1,40 @@
|
||||
---@type QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB");
|
||||
|
||||
|
||||
QuestieDB.objectKeys = {
|
||||
['name'] = 1, -- string
|
||||
['questStarts'] = 2, -- table {questID(int),...}
|
||||
['questEnds'] = 3, -- table {questID(int),...}
|
||||
['spawns'] = 4, -- table {[zoneID(int)] = {coordPair(floatVector2D),...},...}
|
||||
['zoneID'] = 5, -- guess as to where this object is most common
|
||||
['factionID'] = 6, -- faction restriction mask (same as spawndb factionid)
|
||||
}
|
||||
|
||||
QuestieDB.objectKeysReversed = {}
|
||||
for key, id in pairs(QuestieDB.objectKeys) do
|
||||
QuestieDB.objectKeysReversed[id] = key
|
||||
end
|
||||
|
||||
QuestieDB.objectCompilerTypes = {
|
||||
['name'] = "u8string",
|
||||
['spawns'] = "spawnlist",
|
||||
['zoneID'] = "u16",
|
||||
['questStarts'] = "u8u24array",
|
||||
['questEnds'] = "u8u24array",
|
||||
['factionID'] = "u16"
|
||||
}
|
||||
|
||||
QuestieDB.objectCompilerOrder = { -- order easily skipable data first for efficiency
|
||||
--static size
|
||||
'zoneID', 'factionID',
|
||||
|
||||
-- variable size
|
||||
'name', 'spawns', 'questStarts', 'questEnds'
|
||||
}
|
||||
|
||||
-- temporary, until we remove the old db funcitons
|
||||
QuestieDB._objectAdapterQueryOrder = {}
|
||||
for key, id in pairs(QuestieDB.objectKeys) do
|
||||
QuestieDB._objectAdapterQueryOrder[id] = key
|
||||
end
|
||||
@@ -0,0 +1,128 @@
|
||||
---@class QuestieDB
|
||||
local QuestieDB = QuestieLoader:ImportModule("QuestieDB");
|
||||
|
||||
|
||||
QuestieDB.questKeys = {
|
||||
['name'] = 1, -- string
|
||||
['startedBy'] = 2, -- table
|
||||
--['creatureStart'] = 1, -- table {creature(int),...}
|
||||
--['objectStart'] = 2, -- table {object(int),...}
|
||||
--['itemStart'] = 3, -- table {item(int),...}
|
||||
['finishedBy'] = 3, -- table
|
||||
--['creatureEnd'] = 1, -- table {creature(int),...}
|
||||
--['objectEnd'] = 2, -- table {object(int),...}
|
||||
['requiredLevel'] = 4, -- int
|
||||
['questLevel'] = 5, -- int
|
||||
['requiredRaces'] = 6, -- bitmask
|
||||
['requiredClasses'] = 7, -- bitmask
|
||||
['objectivesText'] = 8, -- table: {string,...}, Description of the quest. Auto-complete if nil.
|
||||
['triggerEnd'] = 9, -- table: {text, {[zoneID] = {coordPair,...},...}}
|
||||
['objectives'] = 10, -- table
|
||||
--['creatureObjective'] = 1, -- table {{creature(int), text(string)},...}, If text is nil the default "<Name> slain x/y" is used
|
||||
--['objectObjective'] = 2, -- table {{object(int), text(string)},...}
|
||||
--['itemObjective'] = 3, -- table {{item(int), text(string)},...}
|
||||
--['reputationObjective'] = 4, -- table: {faction(int), value(int)}
|
||||
--['killCreditObjective'] = 5, -- table: {{creature(int), ...}, baseCreatureID, baseCreatureText}
|
||||
--['spellObjective'] = 6, -- table: {{spell(int), text(string)},...}
|
||||
['sourceItemId'] = 11, -- int, item provided by quest starter
|
||||
['preQuestGroup'] = 12, -- table: {quest(int)}
|
||||
['preQuestSingle'] = 13, -- table: {quest(int)}
|
||||
['childQuests'] = 14, -- table: {quest(int)}
|
||||
['inGroupWith'] = 15, -- table: {quest(int)}
|
||||
['exclusiveTo'] = 16, -- table: {quest(int)}
|
||||
['zoneOrSort'] = 17, -- int, >0: AreaTable.dbc ID; <0: QuestSort.dbc ID
|
||||
['requiredSkill'] = 18, -- table: {skill(int), value(int)}
|
||||
['requiredMinRep'] = 19, -- table: {faction(int), value(int)}
|
||||
['requiredMaxRep'] = 20, -- table: {faction(int), value(int)}
|
||||
['requiredSourceItems'] = 21, -- table: {item(int), ...} Items that are not an objective but still needed for the quest.
|
||||
['nextQuestInChain'] = 22, -- int: if this quest is active/finished, the current quest is not available anymore
|
||||
['questFlags'] = 23, -- bitmask: see https://github.com/cmangos/issues/wiki/Quest_template#questflags
|
||||
['specialFlags'] = 24, -- bitmask: 1 = Repeatable, 2 = Needs event, 4 = Monthly reset (req. 1). See https://github.com/cmangos/issues/wiki/Quest_template#specialflags
|
||||
['parentQuest'] = 25, -- int, the ID of the parent quest that needs to be active for the current one to be available. See also 'childQuests' (field 14)
|
||||
['reputationReward'] = 26, -- table: {{FACTION,VALUE}, ...}, A list of reputation reward for factions
|
||||
['extraObjectives'] = 27, -- table: {{spawnlist, iconFile, text, objectiveIndex (optional), {{dbReferenceType, id}, ...} (optional)},...}, a list of hidden special objectives for a quest. Similar to requiredSourceItems
|
||||
['requiredSpell'] = 28, -- int: quest is only available if character has this spellID
|
||||
['requiredSpecialization'] = 29, -- int: quest is only available if character meets the spec requirements. Use QuestieProfessions.specializationKeys for having a spec, or QuestieProfessions.professionKeys to indicate having the profession with no spec. See QuestieProfessions.lua for more info.
|
||||
['requiredMaxLevel'] = 30, -- int: quest is only available up to a certain level
|
||||
}
|
||||
|
||||
QuestieDB.questKeysReversed = {}
|
||||
for key, id in pairs(QuestieDB.questKeys) do
|
||||
QuestieDB.questKeysReversed[id] = key
|
||||
end
|
||||
|
||||
QuestieDB.questCompilerTypes = {
|
||||
['name'] = "u8string", -- string
|
||||
['startedBy'] = "questgivers", -- table
|
||||
['finishedBy'] = "questgivers", -- table
|
||||
['requiredLevel'] = "u8", -- int
|
||||
['questLevel'] = "s16", -- int
|
||||
['requiredRaces'] = "u16", -- bitmask
|
||||
['requiredClasses'] = "u16", -- bitmask
|
||||
['objectivesText'] = "u8u16stringarray", -- table: {string,...}, Description of the quest. Auto-complete if nil.
|
||||
['triggerEnd'] = "trigger", -- table: {text, {[zoneID] = {coordPair,...},...}}
|
||||
['objectives'] = "objectives", -- table
|
||||
['sourceItemId'] = "u24", -- int, item provided by quest starter
|
||||
['preQuestGroup'] = "u8u24array", -- table: {quest(int)}
|
||||
['preQuestSingle'] = "u8u24array", -- table: {quest(int)}
|
||||
['childQuests'] = "u8u24array", -- table: {quest(int)}
|
||||
['inGroupWith'] = "u8u24array", -- table: {quest(int)}
|
||||
['exclusiveTo'] = "u8u24array", -- table: {quest(int)}
|
||||
['zoneOrSort'] = "s16", -- int, >0: AreaTable.dbc ID; <0: QuestSort.dbc ID
|
||||
['requiredSkill'] = "u12pair", -- table: {skill(int), value(int)}
|
||||
['requiredMinRep'] = "s24pair", -- table: {faction(int), value(int)}
|
||||
['requiredMaxRep'] = "s24pair", -- table: {faction(int), value(int)}
|
||||
['requiredSourceItems'] = "u8u24array", -- table: {item(int), ...} Items that are not an objective but still needed for the quest.
|
||||
['nextQuestInChain'] = "u24", -- int: if this quest is active/finished, the current quest is not available anymore
|
||||
['questFlags'] = "u24", -- bitmask: see https://github.com/cmangos/issues/wiki/Quest_template#questflags
|
||||
['specialFlags'] = "u16", -- bitmask: 1 = Repeatable, 2 = Needs event, 4 = Monthly reset (req. 1). See https://github.com/cmangos/issues/wiki/Quest_template#specialflags
|
||||
['parentQuest'] = "u24", -- int, the ID of the parent quest that needs to be active for the current one to be available. See also 'childQuests' (field 14)
|
||||
['reputationReward'] = "u8s24pairs",
|
||||
['extraObjectives'] = "extraobjectives",
|
||||
['requiredSpell'] = "s24",
|
||||
['requiredSpecialization'] = "u24",
|
||||
['requiredMaxLevel'] = "u8",
|
||||
}
|
||||
|
||||
QuestieDB.questCompilerOrder = { -- order easily skipable data first for efficiency
|
||||
--static size
|
||||
'requiredLevel', 'questLevel', 'requiredRaces', 'requiredClasses', 'sourceItemId', 'zoneOrSort', 'requiredSkill',
|
||||
'requiredMinRep', 'requiredMaxRep', 'nextQuestInChain', 'questFlags', 'specialFlags', 'parentQuest', 'requiredSpell',
|
||||
'requiredSpecialization', 'requiredMaxLevel',
|
||||
|
||||
-- variable size
|
||||
'name', 'preQuestGroup', 'preQuestSingle', 'childQuests', 'inGroupWith', 'exclusiveTo', 'requiredSourceItems',
|
||||
'objectivesText', 'triggerEnd', 'startedBy', 'finishedBy', 'objectives', 'reputationReward', 'extraObjectives'
|
||||
}
|
||||
|
||||
QuestieDB.questFlags = {
|
||||
NONE = 0,
|
||||
STAY_ALIVE = 1,
|
||||
PARTY_ACCEPT = 2,
|
||||
EXPLORATION = 4,
|
||||
SHARABLE = 8,
|
||||
UNUSED1 = 16,
|
||||
EPIC = 32,
|
||||
RAID = 64,
|
||||
UNUSED2 = 128,
|
||||
UNKNOWN = 256,
|
||||
HIDDEN_REWARDS = 512,
|
||||
AUTO_REWARDED = 1024,
|
||||
DAILY = 4096,
|
||||
WEEKLY = 32768,
|
||||
}
|
||||
|
||||
QuestieDB.factionIDs = {
|
||||
UNDERCITY = 68,
|
||||
DARNASSUS = 69,
|
||||
DARKMOON_FAIRE = 909,
|
||||
EXODAR = 930,
|
||||
THE_KALUAK = 1073,
|
||||
KIRIN_TOR = 1090,
|
||||
}
|
||||
|
||||
-- temporary, until we remove the old db funcitons
|
||||
QuestieDB._questAdapterQueryOrder = {}
|
||||
for key, id in pairs(QuestieDB.questKeys) do
|
||||
QuestieDB._questAdapterQueryOrder[id] = key
|
||||
end
|
||||
Reference in New Issue
Block a user