Compare commits

...

7 Commits

Author SHA1 Message Date
shaga d057918a1d Remove dead atlasloot.net/atlasmod.com links 2026-08-19 00:51:11 +00:00
Spit 3c229608ca add missing greymane set items and correct droprates 2026-08-14 14:11:56 +03:00
Spit af9a2c0d34 use mods provided and extended functions for links if possible 2026-08-14 13:54:02 +03:00
Spit cb49ff182c remove some tooltip source lines 2026-08-14 13:31:17 +03:00
Spit e783939c9e use variable for tooltip maximum size 2026-08-14 13:28:10 +03:00
roby-brok 1ad4c1e2a6 Tooltip: don't crash on tooltips longer than 30 lines
AddSourceLine's line buffer is pre-built for exactly 30 entries, so any
item tooltip that exceeds that dies with

  Core\Tooltip.lua:56: attempt to index field '?' (a nil value)

on every hover, and the source line is never added. Easy to hit on
servers with long set lists in the tooltip plus a tooltip-extending
addon (StatCompare and friends) -- a 6-piece set block alone adds ~10
lines. Grow the buffer on demand instead; the clear/rebuild loops
already iterate whatever size the table has.
2026-08-14 13:28:10 +03:00
roby-brok b0f7f3bf44 toc: drop seven Core entries whose files no longer exist
Core\Sets.lua, Factions.lua, WorldEvents.lua, PvP.lua, Crafting.lua,
WorldBoss.lua and Dungeons.lua are listed in the toc but are not in the
repo (their content lives under Database\ since the overhaul), so every
login prints seven "Error loading" lines -- invisible with
scriptErrors=0, but there for anyone with Lua errors enabled.
2026-08-14 10:10:14 +01:00
12 changed files with 56 additions and 40 deletions
+1 -8
View File
@@ -3,7 +3,7 @@
## Notes: Shows possible loot from dungeon bosses and other sources.
## Author: Otari (overhaul/revamp, menu changes, bugfixes/updates), Lexie (Turtle WoW fixes/updates), Pepopo, MarcelineVQ (Kara40 loot), Shagu
## LegacyAuthor: Daviesh, Pompa (Turtle WoW World Bosses), Xerron (Turtle WoW World Bosses), Gurky (Turtle WoW 1.16/1.16.1 Dungeons)
## Version: 3.4.4
## Version: 3.4.6
## SavedVariablesPerCharacter: AtlasLootCharDB
## OptionalDeps: Alphamap, AtlasLoader, LootLink, ItemSync, HewdropLib, Ace2, EquipCompare, EQCompare
@@ -40,14 +40,7 @@ Database\Menus.lua
Core\ButtonRegistry.lua
Core\TextParsing.lua
Core\Sets.lua
Core\Factions.lua
Core\WorldEvents.lua
Core\PvP.lua
Core\Crafting.lua
Core\WishList.lua
Core\Search.lua
Core\WorldBoss.lua
Core\Dungeons.lua
Core\Tooltip.lua
Core\AtlasLoot.xml
+1 -1
View File
@@ -2,7 +2,7 @@
Atlasloot Enhanced
Author Daviesh
Loot browser associating loot with instance bosses
Can be integrated with Atlas (http://www.atlasmod.com)
Can be integrated with Atlas
]]
local _G = _G or getfenv(0)
+23 -5
View File
@@ -27,13 +27,22 @@ local WrappingLines = {
}
local lines = {}
for i = 1, 30 do
local maxLines = 30
for i = 1, maxLines do
lines[i] = {}
end
local function AddSourceLine(tooltip, sourceStr)
local name = tooltip:GetName()
local numLines = tooltip:NumLines()
if numLines > maxLines then
-- the buffer is pre-built for 30 lines, but long set tooltips plus
-- tooltip-extending addons (StatCompare etc.) can exceed that
for i = maxLines + 1, numLines do lines[i] = {} end
maxLines = numLines
end
local left, right
local leftText, rightText
local leftR, leftG, leftB
@@ -69,7 +78,7 @@ local function AddSourceLine(tooltip, sourceStr)
tooltip:SetText(lines[1][1], lines[1][3], lines[1][4], lines[1][5], 1, false)
if numLines < 28 then
if numLines < maxLines then
tooltip:AddLine(sourceStr)
elseif lines[2][1] then
lines[2][1] = sourceStr.."\n"..lines[2][1]
@@ -99,7 +108,7 @@ local lastItemID, lastSourceStr
local function ExtendTooltip(tooltip)
if AtlasLootCharDB.ShowSource then
local itemID = tonumber(tooltip.itemID)
if itemID and itemID ~= 51217 then -- 51217 Fashion Coin
if itemID then
if itemID ~= lastItemID then
lastItemID = itemID
lastSourceStr = nil
@@ -229,7 +238,11 @@ local function HookTooltip(tooltip)
insideHook = true
original_SetInboxItem(self, mailID, attachmentIndex)
insideHook = false
self.itemID = GetItemIDByName(GetInboxItem(mailID))
if GetInboxItemLink then
self.itemID = IDFromLink(GetInboxItemLink(mailID, attachmentIndex))
else
self.itemID = GetItemIDByName(GetInboxItem(mailID, attachmentIndex))
end
ExtendTooltip(self)
end
@@ -282,7 +295,12 @@ local function HookTooltip(tooltip)
insideHook = true
original_SetAuctionSellItem(self)
insideHook = false
self.itemID = tonumber(GetItemIDByName(GetAuctionSellItemInfo()))
local name, texture, count, quality, canUse, price, maxStack, itemLink = GetAuctionSellItemInfo()
if itemLink then
self.itemID = IDFromLink(itemLink)
else
self.itemID = tonumber(GetItemIDByName(name))
end
ExtendTooltip(self)
end
+12 -9
View File
@@ -3620,16 +3620,19 @@ AtlasLoot_Data["AtlasLootItems"] = {
{ 61496, "INV_Crown_01", "=q1=The Greymane Crown", "=ds=#m3#", "100%" },
},
GCTrash = {
{ 61598, "INV_Bracer_13", "=q3=Wraps of the Pauper", "=ds=#s8#, #a1#", "0.0125%, 0.0338%" },
{ 61336, "INV_Gauntlets_32", "=q3=Knife Juggler Gloves", "=ds=#s9#, #a2#", "0.0125%, 0.0338%" },
{ 61597, "INV_Pants_11", "=q3=Conspirator's Trickpockets", "=ds=#s11#, #a2#", "0.0125%, 0.0338%" },
{ 61335, "INV_Shoulder_02", "=q3=Dragonbane Pauldrons", "=ds=#s3#, #a3#", "0.0125%, 0.0338%" },
{ 61339, "inv_shoulder_22", "=q3=Pauldrons of the Justicar", "=ds=#s3#, #a4#", "0.0125%, 0.0338%" },
{ 61598, "INV_Bracer_13", "=q3=Wraps of the Pauper", "=ds=#s8#, #a1#", "0.0125%" },
{ 61336, "INV_Gauntlets_32", "=q3=Knife Juggler Gloves", "=ds=#s9#, #a2#", "0.0125%" },
{ 61597, "INV_Pants_11", "=q3=Conspirator's Trickpockets", "=ds=#s11#, #a2#", "0.0125%" },
{ 61335, "INV_Shoulder_02", "=q3=Dragonbane Pauldrons", "=ds=#s3#, #a3#", "0.0125%" },
{ 61339, "inv_shoulder_22", "=q3=Pauldrons of the Justicar", "=ds=#s3#, #a4#", "0.0125%" },
{ 61337, "INV_Relics_LibramofGrace", "=q3=Libram of the Justicar", "=ds=#s16#, #e18#", "0.0125%" },
{ 61338, "INV_Staff_28", "=q3=Staff of Ushered Ruination", "=ds=#h2#, #w9#", "0.0125%" },
{ 61596, "INV_Weapon_Halberd_09", "=q3=Defender's Glaive", "=ds=#h2#, #w7#", "0.0125%" },
{ 0, "", "", "" },
{ 61337, "INV_Relics_LibramofGrace", "=q3=Libram of the Justicar", "=ds=#s16#, #e18#", "0.0125%, 0.0338%" },
{ 0, "", "", "" },
{ 61338, "INV_Staff_28", "=q3=Staff of Ushered Ruination", "=ds=#h2#, #w9#", "0.0125%, 0.0338%" },
{ 61596, "INV_Weapon_Halberd_09", "=q3=Defender's Glaive", "=ds=#h2#, #w7#", "0.0125%, 0.0338%" },
{ 61376, "inv_gauntlets_22", "=q2=Greymane Gauntlets", "=ds=#s9#, #a4#", "0.08%" },
{ 61377, "inv_boots_plate_01", "=q2=Greymane Sabatons", "=ds=#s12#, #a4#", "0.08%" },
{ 61378, "inv_pants_04", "=q2=Greymane Legplates", "=ds=#s11#, #a4#", "0.08%" },
{ 61379, "inv_bracer_14", "=q2=Greymane Vambraces", "=ds=#s8#, #a4#", "0.08%" },
},
KCMarrowspike = {
{ 83441, "INV_chest_chain_15", "=q3=Splintercage Breastplate", "=ds=#s5#, #a4#", "18%" },
+12 -10
View File
@@ -5364,7 +5364,6 @@ AtlasLoot_Data["AtlasLootSources"] = {
[51046] = AL["Hateforge Quarry"].." - "..AL["Har'gesh Doomcaller"].." (25%)",
[51047] = AL["Hateforge Quarry"].." - "..AL["Har'gesh Doomcaller"].." (25%)",
[51048] = AL["Hateforge Quarry"].." - "..AL["Har'gesh Doomcaller"].." (25%)",
[51217] = AL["Stormwind Vault"].." - "..AL["Black Bride"].." (5%)",
[51249] = AL["Feast of Winter Veil"],
[51252] = AL["Wardens of Time"].." - "..AL["Exalted"],
[51256] = AL["Tailoring"].." ("..AL["Skill:"].." 75+)",
@@ -6171,11 +6170,11 @@ AtlasLoot_Data["AtlasLootSources"] = {
[61332] = AL["Gilneas City"].." - "..AL["Dustivan Blackcowl"].." (25%)",
[61333] = AL["Gilneas City"].." - "..AL["Dustivan Blackcowl"].." (25%)",
[61334] = AL["Gilneas City"].." - "..AL["Dustivan Blackcowl"].." (5%)",
[61335] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%, 0.0338%)",
[61336] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%, 0.0338%)",
[61337] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%, 0.0338%)",
[61338] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%, 0.0338%)",
[61339] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%, 0.0338%)",
[61335] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%)",
[61336] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%)",
[61337] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%)",
[61338] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%)",
[61339] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%)",
[61352] = AL["Gilneas City"].." - "..AL["Genn Greymane"].." (100%)",
[61356] = AL["Leatherworking"].." ("..AL["Skill:"].." 300)",
[61357] = AL["Leatherworking"].." ("..AL["Skill:"].." 300)",
@@ -6282,9 +6281,9 @@ AtlasLoot_Data["AtlasLootSources"] = {
[61593] = AL["Stormwind Vault"].." - "..AL["Trash Mobs"].." (0.0013%)",
[61594] = AL["Stormwind Vault"].." - "..AL["Trash Mobs"].." (0.0013%)",
[61595] = AL["Stormwind Vault"].." - "..AL["Trash Mobs"].." (0.0013%)",
[61596] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%, 0.0338%)",
[61597] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%, 0.0338%)",
[61598] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%, 0.0338%)",
[61596] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%)",
[61597] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%)",
[61598] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.0125%)",
[61610] = AL["Duskskitter"].." (33%)",
[61611] = AL["Duskskitter"].." (33%)",
[61612] = AL["Duskskitter"].." (33%)",
@@ -6911,7 +6910,6 @@ AtlasLoot_Data["AtlasLootSources"] = {
[41569] = AL["Dragonmaw Retreat"].." - "..AL["Web Master Torkon"].." (20%)",
[41570] = AL["Dragonmaw Retreat"].." - "..AL["Web Master Torkon"].." (20%)",
[41874] = AL["Dragonmaw Retreat"].." - "..AL["Web Master Torkon"].." (100%)",
[30040] = AL["Dragonmaw Retreat"].." - "..AL["Web Master Torkon"].." (2.5%)",
[41578] = AL["Dragonmaw Retreat"].." - "..AL["Garlok Flamekeeper"].." (25%)",
[41579] = AL["Dragonmaw Retreat"].." - "..AL["Garlok Flamekeeper"].." (25%)",
[41580] = AL["Dragonmaw Retreat"].." - "..AL["Garlok Flamekeeper"].." (25%)",
@@ -7321,4 +7319,8 @@ AtlasLoot_Data["AtlasLootSources"] = {
[54009] = AL["Poisons"].." ("..AL["Skill:"].." 1+)",
[42202] = AL["Engineering"] .." ("..AL["Skill:"].." 300)",
[33146] = AL["Engineering"] .." ("..AL["Skill:"].." 300)",
[61376] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.08%)",
[61377] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.08%)",
[61378] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.08%)",
[61379] = AL["Gilneas City"].." - "..AL["Trash Mobs"].." (0.08%)",
}
+1 -1
View File
@@ -6,7 +6,7 @@ AL:RegisterTranslations("zhCN", function() return {
[" could not be accessed, the following module may be out of date: "] = "无法进行操作,以下模块可能已过期:",
[" deleted from the WishList."] = " 已从装备需求表删除",
[" is safe."] = "的连接是安全的。",
[" not listed in loot table registry, please report this message to the AtlasLoot forums at http://www.atlasloot.net"] = "没有被列出,请将该错误信息发送到 AtlasLoot 官方论坛http://www.atlasloot.net",
[" not listed in loot table registry, please report this message to the AtlasLoot forums"] = "没有被列出,请将该错误信息发送到 AtlasLoot 官方论坛。",
[". Right click on any other item to refresh the loot page."] = "。右键点击其他物品可刷新物品列表。",
["10 Slot"] = "10格",
["16 Slot"] = "16格",
+1 -1
View File
@@ -6,7 +6,7 @@ AL:RegisterTranslations("deDE", function() return {
[" could not be accessed, the following module may be out of date: "] = " konnte nicht erreicht werden, das folgende Modul könnte veraltet sein: ",
[" deleted from the WishList."] = "vom Wunschzettel gelöscht",
[" is safe."] = " ist sicher.",
[" not listed in loot table registry, please report this message to the AtlasLoot forums at http://www.atlasloot.net"] = " nicht im Loot-Tabellen Register gelistet, bitte melde diese Nachricht im AtlasLoot Forum unter http://www.atlasloot.net",
[" not listed in loot table registry, please report this message to the AtlasLoot forums"] = " nicht im Loot-Tabellen Register gelistet, bitte melde diese Nachricht im AtlasLoot Forum",
[". Right click on any other item to refresh the loot page."] = ". Rechtsklicke auf ein beliebiges anderes Item um den Loot auf der Seite zu aktualisieren.",
["10 Slot"] = "10 Platz",
["16 Slot"] = "16 Platz",
+1 -1
View File
@@ -70,7 +70,7 @@ AL:RegisterTranslations("enUS", function() return {
[" could not be accessed, the following module may be out of date: "] = true,
[" deleted from the WishList."] = true,
[" is safe."] = true,
[" not listed in loot table registry, please report this message to the AtlasLoot forums at http://www.atlasloot.net"] = true,
[" not listed in loot table registry, please report this message to the AtlasLoot forums"] = true,
[" the following items are needed:"] = true,
[" the following reagents are needed:"] = true,
[" you need this: "] = true,
+1 -1
View File
@@ -6,7 +6,7 @@ AL:RegisterTranslations("esES", function() return {
[" could not be accessed, the following module may be out of date: "] = " no se ha podido acceder, el siguiente módulo no debe estar actualizado: ",
[" deleted from the WishList."] = " borrado de la lista de deseos",
[" is safe."] = " es válido.",
[" not listed in loot table registry, please report this message to the AtlasLoot forums at http://www.atlasloot.net"] = " no figura en el registro de botines, por favor informa sobre este mensaje en los foros de AtlasLoot http://www.atlasloot.net",
[" not listed in loot table registry, please report this message to the AtlasLoot forums"] = " no figura en el registro de botines, por favor informa sobre este mensaje en los foros de AtlasLoot",
[". Right click on any other item to refresh the loot page."] = ". Haz click-dcho en otro objeto para refrescar la página.",
["10 Slot"] = "10 huecos",
["16 Slot"] = "16 huecos",
+1 -1
View File
@@ -6,7 +6,7 @@ AL:RegisterTranslations("frFR", function() return {
[" could not be accessed, the following module may be out of date: "] = " n'a pas pu être consulté, le module suivant peut être dépassé: ",
[" deleted from the WishList."] = " a été effacé de la WishList",
[" is safe."] = " est valide.",
[" not listed in loot table registry, please report this message to the AtlasLoot forums at http://www.atlasloot.net"] = " non répertorié dans la table des objets enregistrés, merci de transmettre ce message sur les forums d'AtlasLoot sur http://www.atlasloot.net",
[" not listed in loot table registry, please report this message to the AtlasLoot forums"] = " non répertorié dans la table des objets enregistrés, merci de transmettre ce message sur les forums d'AtlasLoot",
[". Right click on any other item to refresh the loot page."] = ". Clic-Droit sur un autre objet permet de rafraîchir la page.",
["10 Slot"] = "10 emplacements",
["16 Slot"] = "16 emplacements",
+1 -1
View File
@@ -6,7 +6,7 @@ AL:RegisterTranslations("ruRU", function() return {
[" could not be accessed, the following module may be out of date: "] = " could not be accessed, the following module may be out of date: ",
[" deleted from the WishList."] = " удалено из пожелания.",
[" is safe."] = " is safe.",
[" not listed in loot table registry, please report this message to the AtlasLoot forums at http://www.atlasloot.net"] = " not listed in loot table registry, please report this message to the AtlasLoot forums at http://www.atlasloot.net",
[" not listed in loot table registry, please report this message to the AtlasLoot forums"] = " not listed in loot table registry, please report this message to the AtlasLoot forums",
[". Right click on any other item to refresh the loot page."] = ". Right click on any other item to refresh the loot page.",
["10 Slot"] = "10 ячеек",
["16 Slot"] = "16 ячеек",
+1 -1
View File
@@ -6,7 +6,7 @@ AL:RegisterTranslations("zhTW", function() return {
[" could not be accessed, the following module may be out of date: "] = "無法被存取,以下的模組可能版本已過於老舊:",
[" deleted from the WishList."] = "已從願望清單移除",
[" is safe."] = "的連結現在安全了。",
[" not listed in loot table registry, please report this message to the AtlasLoot forums at http://www.atlasloot.net"] = "並未列於物品掉落註冊表,請至 AtlasLoot 論壇回報問題http://www.atlasloot.net",
[" not listed in loot table registry, please report this message to the AtlasLoot forums"] = "並未列於物品掉落註冊表,請至 AtlasLoot 論壇回報問題",
[". Right click on any other item to refresh the loot page."] = "的資訊. 右鍵點選其他物品以更新這一個物品頁面",
["10 Slot"] = "10 格容器",
["16 Slot"] = "16 格容器",