Bump version to 9.9.0 and add Custom Ebonhold Quests

This commit is contained in:
Xurkon
2026-03-04 06:45:02 -06:00
parent a4cb621619
commit 0055f84d11
13 changed files with 300 additions and 64 deletions
+22
View File
@@ -1,5 +1,27 @@
# Changelog
## v9.9.0
### New Ebonhold Quests
#### 🗺️ Azeroth
| ID | Quest | Zone | Type |
|----|-------|------|------|
| 50128 | Southern Jungle | Stranglethorn Vale | Complete 6 quests |
#### 🌿 Kalimdor
| ID | Quest | Zone | Type |
|----|-------|------|------|
| 50006 | Sandstone Giants | Tanaris | Kill Sandstone Giants |
| 50130 | Felwood Restoration | Felwood | Complete 6 quests |
### Fixes
- **[Quest]** Fixed `QuestieDB` initialization error caused by missing table depth for custom creature objectives in `EbonholdQuestDB`.
- **[System]** Adjusted `Questie:Error` output logic so that critical addon-breaking errors always print regardless of the `Enable Debug-PRINT` setting.
## v9.8.9
### New Ebonhold Quests
@@ -1422,6 +1422,126 @@ EbonholdDB.questData = EbonholdDB.questData or {
[30] = 30, -- Kill count
},
-- Quest 50019: Marshborn Menace
-- Kill 30 elementals in Dustwallow Marsh
[50019] = {
[1] = "Marshborn Menace", -- Quest name
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
[4] = 35, -- Min level
[5] = 40, -- Quest level
[17] = 15, -- Zone (Dustwallow Marsh)
[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 Dustwallow Marsh"
},
[10] = {
nil, -- [1] creatureObjective (not used)
nil, -- [2] objectObjective (not used)
nil, -- [3] itemObjective (not used)
nil, -- [4] reputationObjective (not used)
{ -- [5] killCreditObjective
{
-- 5 elemental NPCs in Dustwallow Marsh
{ 4382, 4385, 4386, 4387, 14231 },
4382, -- RootId: Withervine Creeper (representative elemental)
"Elemental slain"
}
}
},
[30] = 30, -- Kill count
},
-- Quest 50052: Black Dragonflight Remnants
-- Kill 30 dragonkin in Badlands
[50052] = {
[1] = "Black Dragonflight Remnants", -- Quest name
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
[4] = 35, -- Min level
[5] = 40, -- Quest level
[17] = 3, -- Zone (Badlands)
[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 Badlands"
},
[10] = {
nil, -- [1] creatureObjective (not used)
nil, -- [2] objectObjective (not used)
nil, -- [3] itemObjective (not used)
nil, -- [4] reputationObjective (not used)
{ -- [5] killCreditObjective
{
-- 4 dragonkin NPCs in Badlands
{ 2757, 2725, 2759, 2726 },
2725, -- RootId: Scalding Whelp
"Dragonkin slain"
}
}
},
[30] = 30, -- Kill count
},
-- Quest 50068: Savage Badlands
-- Kill 75 beasts in Badlands
[50068] = {
[1] = "Savage Badlands", -- Quest name
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
[4] = 35, -- Min level
[5] = 40, -- Quest level
[17] = 3, -- Zone (Badlands)
[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 Badlands"
},
[10] = {
nil, -- [1] creatureObjective (not used)
nil, -- [2] objectObjective (not used)
nil, -- [3] itemObjective (not used)
nil, -- [4] reputationObjective (not used)
{ -- [5] killCreditObjective
{
-- 15 beast NPCs in Badlands
{ 2850, 2931, 2753, 2831, 2731, 2729, 2727, 2830, 2732, 2728, 2734, 2730, 2829, 6013, 9297 },
2727, -- RootId: Crag Coyote
"Beast slain"
}
}
},
[30] = 75, -- Kill count
},
-- Quest 50051: Marshscale Menace
-- Kill 30 dragonkin in Dustwallow Marsh
[50051] = {
[1] = "Marshscale Menace", -- Quest name
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
[4] = 35, -- Min level
[5] = 40, -- Quest level
[17] = 15, -- Zone (Dustwallow Marsh)
[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 Dustwallow Marsh"
},
[10] = {
nil, -- [1] creatureObjective (not used)
nil, -- [2] objectObjective (not used)
nil, -- [3] itemObjective (not used)
nil, -- [4] reputationObjective (not used)
{ -- [5] killCreditObjective
{
-- 11 hostile dragonkin NPCs in Dustwallow Marsh
{ 4324, 10321, 4334, 4328, 4323, 23789, 4339, 4331, 4329, 23969, 23687 },
4324, -- RootId: Searing Whelp
"Dragonkin slain"
}
}
},
[30] = 30, -- Kill count
},
-- Quest 50178: Badlands Trophy
-- Kill 1 rare in Badlands
@@ -1453,6 +1573,54 @@ EbonholdDB.questData = EbonholdDB.questData or {
[30] = 1, -- Kill count
},
-- Quest 50128: Southern Jungle
-- Complete 6 quests in Stranglethorn Vale (Southern)
[50128] = {
[1] = "Southern Jungle", -- Quest name
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
[4] = 45, -- Quest level
[5] = 25, -- Min level
[17] = 33, -- Zone (Stranglethorn Vale)
[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.",
"Complete 6 quests in Stranglethorn Vale (Southern)"
},
[9] = { "Complete 6 quests in Stranglethorn Vale (Southern)", nil },
},
-- Quest 50130: Felwood Restoration
-- Complete 6 quests in Felwood
[50130] = {
[1] = "Felwood Restoration", -- Quest name
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
[4] = 55, -- Quest level
[5] = 48, -- Min level
[17] = 361, -- Zone (Felwood)
[8] = {
"This is a custom objective. Upon completion, you will automatically receive the assigned reward.\n\nIf you die, the quest will be removed from your quest log. This quest is automatically rewarded upon completion.\n\nThis quest cannot be completed inside starting area.",
"Complete 6 quests in Felwood"
},
[9] = { "Complete 6 quests in Felwood", nil },
},
-- Quest 50006: Sandstone Giants
-- Kill Giants in Tanaris
[50006] = {
[1] = "Sandstone Giants", -- Quest name
[2] = { nil, { 600600 } }, -- startedBy: {{npcIds}, {objectIds}, {itemIds}}
[4] = 45, -- Quest level
[5] = 40, -- Min level
[17] = 440, -- Zone (Tanaris)
[8] = {
"Kill Giants in Tanaris.",
"Kill Sandstone Giants"
},
[10] = {
{
{ 5469, "Dune Smasher slain" }
}
},
},
}
-- Backward compatibility
+12 -6
View File
@@ -209,7 +209,9 @@ QuestieInit.Stages[1] = function() -- run as a coroutine
-- Check if the DB needs to be recompiled
if (not dbIsCompiled) or (QuestieLib:GetAddonVersionString() ~= dbCompiledOnVersion) or (l10n:GetUILocale() ~= dbCompiledLang) or (Questie.db.global.dbCompiledExpansion ~= WOW_PROJECT_ID) then
print("\124cFFAAEEFF" .. l10n("Questie DB has updated!") .. "\124r\124cFFFF6F22 " .. l10n("Data is being processed, this may take a few moments and cause some lag..."))
print("\124cFFAAEEFF" ..
l10n("Questie DB has updated!") ..
"\124r\124cFFFF6F22 " .. l10n("Data is being processed, this may take a few moments and cause some lag..."))
loadFullDatabase()
QuestieDBCompiler:Compile()
dbCompiled = true
@@ -330,15 +332,18 @@ QuestieInit.Stages[3] = function() -- run as a coroutine
if Questie.db.profile.showAQWarEffortQuests and ((not Questie.db.profile.aqWarningPrintDate) or (Questie.db.profile.aqWarningPrintDate < dateToday)) then
Questie.db.profile.aqWarningPrintDate = dateToday
C_Timer.After(2, function()
print("|cffff0000-----------------------------|r")
Questie:Print("|cffff0000The AQ War Effort quests are shown for you. If your server is done you can hide those quests in the General settings of Questie!|r");
print("|cffff0000-----------------------------|r")
Questie:Print("|cffff0000-----------------------------|r")
Questie:Print(
"|cffff0000The AQ War Effort quests are shown for you. If your server is done you can hide those quests in the General settings of Questie!|r");
Questie:Print("|cffff0000-----------------------------|r")
end)
end
if Questie.IsTBC and (not Questie.db.global.isIsleOfQuelDanasPhaseReminderDisabled) then
C_Timer.After(2, function()
Questie:Print(l10n("Current active phase of Isle of Quel'Danas is '%s'. Check the General settings to change the phase or disable this message.", IsleOfQuelDanas.localizedPhaseNames[Questie.db.global.isleOfQuelDanasPhase]))
Questie:Print(l10n(
"Current active phase of Isle of Quel'Danas is '%s'. Check the General settings to change the phase or disable this message.",
IsleOfQuelDanas.localizedPhaseNames[Questie.db.global.isleOfQuelDanasPhase]))
end)
end
@@ -401,7 +406,8 @@ end
-- called by the PLAYER_LOGIN event handler
function QuestieInit:Init()
ThreadLib.ThreadError(_QuestieInit.StartStageCoroutine, Questie.db.profile.initDelay or 0, l10n("Error during initialization!"))
ThreadLib.ThreadError(_QuestieInit.StartStageCoroutine, Questie.db.profile.initDelay or 0,
l10n("Error during initialization!"))
if Questie.db.profile.trackerEnabled then
-- This needs to be called ASAP otherwise tracked Achievements in the Blizzard WatchFrame shows upon login
+1 -1
View File
@@ -6,7 +6,7 @@
## Notes-esES: Ayundante de misión
## Notes-ptBR: Ajudante de missão
## Notes-frFR: Assistant de quête
## Version: 9.5.1
## Version: 9.9.0
## RequiredDeps:
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
## SavedVariables: QuestieConfig
+1 -1
View File
@@ -6,7 +6,7 @@
## Notes-esES: Ayundante de misión
## Notes-ptBR: Ajudante de missão
## Notes-frFR: Assistant de quête
## Version: 9.5.1
## Version: 9.9.0
## RequiredDeps:
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
## SavedVariables: QuestieConfig
+1 -1
View File
@@ -6,7 +6,7 @@
## Notes-esES: Ayundante de misión
## Notes-ptBR: Ajudante de missão
## Notes-frFR: Assistant de quête
## Version: 9.8.9
## Version: 9.9.0
## RequiredDeps:
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
## SavedVariables: QuestieConfig
+1 -1
View File
@@ -6,7 +6,7 @@
## Notes-esES: Ayundante de misión
## Notes-ptBR: Ajudante de missão
## Notes-frFR: Assistant de quête
## Version: 9.5.1
## Version: 9.9.0
## RequiredDeps:
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
## SavedVariables: QuestieConfig
+1 -1
View File
@@ -6,7 +6,7 @@
## Notes-esES: Ayundante de misión
## Notes-ptBR: Ajudante de missão
## Notes-frFR: Assistant de quête
## Version: 9.5.1
## Version: 9.9.0
## RequiredDeps:
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
## SavedVariables: QuestieConfig
+1 -1
View File
@@ -6,7 +6,7 @@
## Notes-esES: Ayundante de misión
## Notes-ptBR: Ajudante de missão
## Notes-frFR: Assistant de quête
## Version: 9.5.1
## Version: 9.9.0
## RequiredDeps:
## OptionalDeps: Ace3, CallbackHandler-1.0, HereBeDragons, LibDataBroker-1.1, LibDBIcon-1.0, LibSharedMedia-3.0, LibStub, LibUIDropDownMenu
## SavedVariables: QuestieConfig
+67 -50
View File
@@ -112,14 +112,23 @@ function Questie:GetClassColor(class)
end
end
local orig_Print = Questie.Print
function Questie:Print(...)
Questie:Debug(Questie.DEBUG_INFO, ...)
end
function Questie:Error(...)
Questie:Print("|cffff0000[ERROR]|r", ...)
if orig_Print then
orig_Print(Questie, "|cffff0000[ERROR]|r", ...)
else
print("|cffff0000[ERROR]|r", ...)
end
end
function Questie:Warning(...)
if Questie.db.profile.debugEnabled then -- prints regardless of "debugPrint" toggle
Questie:Print("|cffffff00[WARNING]|r", ...)
end
-- prints regardless of "debugPrint" toggle used to be here, now respects debugPrint via Debug
Questie:Debug(Questie.DEBUG_INFO, "|cffffff00[WARNING]|r", ...)
end
-- Global debug levels
@@ -140,54 +149,58 @@ function Questie:Debug(msgDebugLevel, ...)
end
local prefix = ""
if (band(msgDebugLevel, Questie.DEBUG_CRITICAL) ~= 0) then prefix = prefix.."|cff00f2e6[CRITICAL]|r" end
if (band(msgDebugLevel, Questie.DEBUG_ELEVATED) ~= 0) then prefix = prefix.."|cffebf441[ELEVATED]|r" end
if (band(msgDebugLevel, Questie.DEBUG_INFO) ~= 0) then prefix = prefix.."|cff00bc32[INFO]|r" end
if (band(msgDebugLevel, Questie.DEBUG_DEVELOP) ~= 0) then prefix = prefix.."|cff7c83ff[DEVELOP]|r" end
if (band(msgDebugLevel, Questie.DEBUG_SPAM) ~= 0) then prefix = prefix.."|cffff8484[SPAM]|r" end
if (band(msgDebugLevel, Questie.DEBUG_CRITICAL) ~= 0) then prefix = prefix .. "|cff00f2e6[CRITICAL]|r " end
if (band(msgDebugLevel, Questie.DEBUG_ELEVATED) ~= 0) then prefix = prefix .. "|cffebf441[ELEVATED]|r " end
if (band(msgDebugLevel, Questie.DEBUG_INFO) ~= 0) then prefix = prefix .. "|cff00bc32[INFO]|r " end
if (band(msgDebugLevel, Questie.DEBUG_DEVELOP) ~= 0) then prefix = prefix .. "|cff7c83ff[DEVELOP]|r " end
if (band(msgDebugLevel, Questie.DEBUG_SPAM) ~= 0) then prefix = prefix .. "|cffff8484[SPAM]|r " end
Questie:Print(prefix, ...)
if orig_Print then
orig_Print(Questie, prefix, ...)
else
print(prefix, ...)
end
end
end
Questie.icons = {
["slay"] = QuestieLib.AddonPath.."Icons\\slay.blp",
["loot"] = QuestieLib.AddonPath.."Icons\\loot.blp",
["event"] = QuestieLib.AddonPath.."Icons\\event.blp",
["object"] = QuestieLib.AddonPath.."Icons\\object.blp",
["talk"] = QuestieLib.AddonPath.."Icons\\chatbubblegossipicon.blp",
["available"] = QuestieLib.AddonPath.."Icons\\available.blp",
["available_gray"] = QuestieLib.AddonPath.."Icons\\available_gray.blp",
["complete"] = QuestieLib.AddonPath.."Icons\\complete.blp",
["incomplete"] = QuestieLib.AddonPath.."Icons\\incomplete.blp",
["interact"] = QuestieLib.AddonPath.."Icons\\interact.blp",
["glow"] = QuestieLib.AddonPath.."Icons\\glow.blp",
["repeatable"] = QuestieLib.AddonPath.."Icons\\repeatable.blp",
["repeatable_complete"] = QuestieLib.AddonPath.."Icons\\repeatable_complete.blp",
["eventquest"] = QuestieLib.AddonPath.."Icons\\eventquest.blp",
["eventquest_complete"] = QuestieLib.AddonPath.."Icons\\eventquest_complete.blp",
["pvpquest"] = QuestieLib.AddonPath.."Icons\\pvpquest.blp",
["pvpquest_complete"] = QuestieLib.AddonPath.."Icons\\pvpquest_complete.blp",
["node"] = QuestieLib.AddonPath.."Icons\\node.tga",
["slay"] = QuestieLib.AddonPath .. "Icons\\slay.blp",
["loot"] = QuestieLib.AddonPath .. "Icons\\loot.blp",
["event"] = QuestieLib.AddonPath .. "Icons\\event.blp",
["object"] = QuestieLib.AddonPath .. "Icons\\object.blp",
["talk"] = QuestieLib.AddonPath .. "Icons\\chatbubblegossipicon.blp",
["available"] = QuestieLib.AddonPath .. "Icons\\available.blp",
["available_gray"] = QuestieLib.AddonPath .. "Icons\\available_gray.blp",
["complete"] = QuestieLib.AddonPath .. "Icons\\complete.blp",
["incomplete"] = QuestieLib.AddonPath .. "Icons\\incomplete.blp",
["interact"] = QuestieLib.AddonPath .. "Icons\\interact.blp",
["glow"] = QuestieLib.AddonPath .. "Icons\\glow.blp",
["repeatable"] = QuestieLib.AddonPath .. "Icons\\repeatable.blp",
["repeatable_complete"] = QuestieLib.AddonPath .. "Icons\\repeatable_complete.blp",
["eventquest"] = QuestieLib.AddonPath .. "Icons\\eventquest.blp",
["eventquest_complete"] = QuestieLib.AddonPath .. "Icons\\eventquest_complete.blp",
["pvpquest"] = QuestieLib.AddonPath .. "Icons\\pvpquest.blp",
["pvpquest_complete"] = QuestieLib.AddonPath .. "Icons\\pvpquest_complete.blp",
["node"] = QuestieLib.AddonPath .. "Icons\\node.tga",
["player"] = "Interface\\WorldMap\\WorldMapPartyIcon",
["fav"] = QuestieLib.AddonPath.."Icons\\fav.tga",
["faction_alliance"] = QuestieLib.AddonPath.."Icons\\icon_alliance.tga",
["faction_horde"] = QuestieLib.AddonPath.."Icons\\icon_horde.tga",
["loot_mono"] = QuestieLib.AddonPath.."Icons\\loot_mono.tga",
["node_cut"] = QuestieLib.AddonPath.."Icons\\node_cut.tga",
["object_mono"] = QuestieLib.AddonPath.."Icons\\object_mono.tga",
["route"] = QuestieLib.AddonPath.."Icons\\route.tga",
["slay_mono"] = QuestieLib.AddonPath.."Icons\\slay_mono.tga",
["sod_rune"] = QuestieLib.AddonPath.."Icons\\sod_rune.tga",
["startend"] = QuestieLib.AddonPath.."Icons\\startend.tga",
["startendstart"] = QuestieLib.AddonPath.."Icons\\startendstart.tga",
["tracker_clean"] = QuestieLib.AddonPath.."Icons\\tracker_clean.tga",
["tracker_close"] = QuestieLib.AddonPath.."Icons\\tracker_close.tga",
["tracker_database"] = QuestieLib.AddonPath.."Icons\\tracker_database.tga",
["tracker_giver"] = QuestieLib.AddonPath.."Icons\\tracker_giver.tga",
["tracker_quests"] = QuestieLib.AddonPath.."Icons\\tracker_quests.tga",
["tracker_search"] = QuestieLib.AddonPath.."Icons\\tracker_search.tga",
["tracker_settings"] = QuestieLib.AddonPath.."Icons\\tracker_settings.tga",
["fav"] = QuestieLib.AddonPath .. "Icons\\fav.tga",
["faction_alliance"] = QuestieLib.AddonPath .. "Icons\\icon_alliance.tga",
["faction_horde"] = QuestieLib.AddonPath .. "Icons\\icon_horde.tga",
["loot_mono"] = QuestieLib.AddonPath .. "Icons\\loot_mono.tga",
["node_cut"] = QuestieLib.AddonPath .. "Icons\\node_cut.tga",
["object_mono"] = QuestieLib.AddonPath .. "Icons\\object_mono.tga",
["route"] = QuestieLib.AddonPath .. "Icons\\route.tga",
["slay_mono"] = QuestieLib.AddonPath .. "Icons\\slay_mono.tga",
["sod_rune"] = QuestieLib.AddonPath .. "Icons\\sod_rune.tga",
["startend"] = QuestieLib.AddonPath .. "Icons\\startend.tga",
["startendstart"] = QuestieLib.AddonPath .. "Icons\\startendstart.tga",
["tracker_clean"] = QuestieLib.AddonPath .. "Icons\\tracker_clean.tga",
["tracker_close"] = QuestieLib.AddonPath .. "Icons\\tracker_close.tga",
["tracker_database"] = QuestieLib.AddonPath .. "Icons\\tracker_database.tga",
["tracker_giver"] = QuestieLib.AddonPath .. "Icons\\tracker_giver.tga",
["tracker_quests"] = QuestieLib.AddonPath .. "Icons\\tracker_quests.tga",
["tracker_search"] = QuestieLib.AddonPath .. "Icons\\tracker_search.tga",
["tracker_settings"] = QuestieLib.AddonPath .. "Icons\\tracker_settings.tga",
}
Questie.usedIcons = {}
@@ -219,16 +232,20 @@ function Questie:SetIcons()
Questie.usedIcons[Questie.ICON_TYPE_OBJECT] = Questie.db.profile.ICON_OBJECT or Questie.icons["object"]
Questie.usedIcons[Questie.ICON_TYPE_TALK] = Questie.db.profile.ICON_TALK or Questie.icons["talk"]
Questie.usedIcons[Questie.ICON_TYPE_AVAILABLE] = Questie.db.profile.ICON_AVAILABLE or Questie.icons["available"]
Questie.usedIcons[Questie.ICON_TYPE_AVAILABLE_GRAY] = Questie.db.profile.ICON_AVAILABLE_GRAY or Questie.icons["available_gray"]
Questie.usedIcons[Questie.ICON_TYPE_AVAILABLE_GRAY] = Questie.db.profile.ICON_AVAILABLE_GRAY or
Questie.icons["available_gray"]
Questie.usedIcons[Questie.ICON_TYPE_COMPLETE] = Questie.db.profile.ICON_COMPLETE or Questie.icons["complete"]
Questie.usedIcons[Questie.ICON_TYPE_INCOMPLETE] = Questie.db.profile.ICON_INCOMPLETE or Questie.icons["incomplete"]
Questie.usedIcons[Questie.ICON_TYPE_GLOW] = Questie.db.profile.ICON_GLOW or Questie.icons["glow"]
Questie.usedIcons[Questie.ICON_TYPE_REPEATABLE] = Questie.db.profile.ICON_REPEATABLE or Questie.icons["repeatable"]
Questie.usedIcons[Questie.ICON_TYPE_REPEATABLE_COMPLETE] = Questie.db.profile.ICON_REPEATABLE_COMPLETE or Questie.icons["complete"]
Questie.usedIcons[Questie.ICON_TYPE_REPEATABLE_COMPLETE] = Questie.db.profile.ICON_REPEATABLE_COMPLETE or
Questie.icons["complete"]
Questie.usedIcons[Questie.ICON_TYPE_EVENTQUEST] = Questie.db.profile.ICON_EVENTQUEST or Questie.icons["eventquest"]
Questie.usedIcons[Questie.ICON_TYPE_EVENTQUEST_COMPLETE] = Questie.db.profile.ICON_EVENTQUEST_COMPLETE or Questie.icons["complete"]
Questie.usedIcons[Questie.ICON_TYPE_EVENTQUEST_COMPLETE] = Questie.db.profile.ICON_EVENTQUEST_COMPLETE or
Questie.icons["complete"]
Questie.usedIcons[Questie.ICON_TYPE_PVPQUEST] = Questie.db.profile.ICON_PVPQUEST or Questie.icons["pvpquest"]
Questie.usedIcons[Questie.ICON_TYPE_PVPQUEST_COMPLETE] = Questie.db.profile.ICON_PVPQUEST_COMPLETE or Questie.icons["complete"]
Questie.usedIcons[Questie.ICON_TYPE_PVPQUEST_COMPLETE] = Questie.db.profile.ICON_PVPQUEST_COMPLETE or
Questie.icons["complete"]
Questie.usedIcons[Questie.ICON_TYPE_INTERACT] = Questie.db.profile.ICON_TYPE_INTERACT or Questie.icons["interact"]
Questie.usedIcons[Questie.ICON_TYPE_SODRUNE] = Questie.icons["sod_rune"]
end
+13 -1
View File
@@ -2,7 +2,7 @@
# Questie (3.3.5a)
![Version](https://img.shields.io/badge/version-v9.7.12-blue.svg?style=for-the-badge)
![Version](https://img.shields.io/badge/version-v9.9.0-blue.svg?style=for-the-badge)
![Downloads](https://img.shields.io/github/downloads/Xurkon/PE-Questie/total?style=for-the-badge&color=e67e22)
[![Documentation](https://img.shields.io/badge/Documentation-View%20Docs-58a6ff?style=for-the-badge)](https://xurkon.github.io/PE-Questie/)
[![Patreon](https://img.shields.io/badge/Patreon-F96854?style=for-the-badge&logo=patreon&logoColor=white)](https://www.patreon.com/Xurkon)
@@ -31,24 +31,29 @@
## 🔧 Fixes & Compatibility
### 🛡️ Nameplates
- Explicitly skips **Ascension Nameplates** to avoid conflicts, while maintaining compatibility with generic nameplate addons.
### 📊 Quest Tracker
- **Ascension API**: Fully compatible with custom quest APIs; no crashes on auto-turn-in quests.
- **Header Persistence**: Resolved issues where quest headers would disappear from the tracker.
- **Dynamic Updates**: Instant refresh when accepting, completing, or abandoning quests.
- **Combat Safety**: Protected with `pcall` to prevent UI lockups during intense combat updates.
### 💬 Tooltips
- Fixed all legacy Lua errors.
- **New Feature**: Displays if an NPC drops an item that starts a quest directly in the tooltip.
### 🗺️ Maps (Minimap & World Map)
- **Minimap**: Fixed zoom-related Lua errors.
- **World Map**: Full support for Ascension's `WorldMapFrame` (minimized mode), **Mapster**, and **Magnify-WotLK**.
- **Icon Cleanup**: Resolved "ghost icon" bug where completed quests remained visible on the map.
### 📦 Custom IDs
- Native support for large integer IDs common on custom private servers.
---
@@ -56,9 +61,11 @@
## ✨ Features
### ⚔️ Ascension Scaling
- Quests automatically scale to character level, perfectly matching the Ascension Scaling system.
### 📍 Visual Map Objectives
Notes for quest starters, turn-ins, and complex objectives are drawn directly on your maps.
<div align="center">
@@ -68,6 +75,7 @@ Notes for quest starters, turn-ins, and complex objectives are drawn directly on
</div>
### 📜 Advanced Quest Tracker
- **Smart Tracking**: Automatically tracks quests upon acceptance.
- **Expanded Capacity**: Displays up to 20 quests (original limit: 5).
- **Interactive**: Left-click to open the log; Right-click for focus modes or TomTom arrow integration.
@@ -77,6 +85,7 @@ Notes for quest starters, turn-ins, and complex objectives are drawn directly on
</div>
### 🗺️ My Journey & Quests by Zone
- **Journey Log**: Record every major step of your adventure.
- **Completionist View**: Lists all available and completed quests per zone to ensure nothing is missed.
@@ -86,6 +95,7 @@ Notes for quest starters, turn-ins, and complex objectives are drawn directly on
</div>
### 🔍 Database Search & Config
- **Global Search**: Find any NPC, Object, or Quest in the massive Questie database.
- **Deep Customization**: Adjust everything from icon scale to tracking logic.
@@ -97,9 +107,11 @@ Notes for quest starters, turn-ins, and complex objectives are drawn directly on
---
## 👥 Credits
- **Questie Team** - Original addon developers.
- **Xurkon** - Private Expansion fork and maintenance.
- **Project Ascension & Ebonhold Communities** - Testing and data feedback.
## 📄 License
MIT License - See [LICENSE](LICENSE) for details.
+11
View File
@@ -167,6 +167,17 @@
</div>
<div class="container">
<h2 id="v990">v9.9.0</h2>
<h3>New Ebonhold Quests</h3>
<ul>
<li><strong>Azeroth</strong>: Southern Jungle (Complete 6 quests in Stranglethorn Vale).</li>
<li><strong>Kalimdor</strong>: Sandstone Giants (Kill Sandstone Giants in Tanaris). Felwood Restoration (Complete 6 quests in Felwood).</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><strong>[Quest]</strong> Fixed QuestieDB initialization error caused by missing table depth for custom creature objectives in EbonholdQuestDB.</li>
<li><strong>[System]</strong> Adjusted Questie:Error output logic so that critical addon-breaking errors always print regardless of the Enable Debug-PRINT setting.</li>
</ul>
<h2 id="v975">v9.7.5</h2>
<h3>Fixes</h3>
<ul>
+1 -1
View File
@@ -170,7 +170,7 @@
<p class="subtitle">Developer documentation for Project Ascension & Project Ebonhold compatibility layers and
core engine refinements.</p>
<div style="display: flex; justify-content: center; gap: 10px;">
<code>Version: v9.8.6</code>
<code>Version: v9.9.0</code>
<code>Branch: feature/ebonhold-compat</code>
<a href="changelog.html"
style="background: var(--bg-tertiary); color: var(--accent-green); text-decoration: none; padding: 2px 6px; border-radius: 4px; font-size: 0.9em; border: 1px solid var(--border-color);">View