local _G = _G local pairs = pairs local string_format = string.format local table_insert = table.insert local table_wipe = table.wipe local GetMapNameByID = GetMapNameByID local WorldMapTooltip = WorldMapTooltip local _, ns = ... local texture = ns:GetNormalizedHolidayTexture(235473) local iconTitle = "Present" local iconTexture = "Interface\\Icons\\inv_holiday_christmas_present_01" local iconTextureInstance = "Interface\\Icons\\Spell_Shadow_Teleport" local nodes = {} -- How these came to be: -- /run SetMapToCurrentZone(); SetMapByID(GetCurrentMapAreaID()); print(string.format("%s, %s, %.2f, %.2f", GetCurrentMapAreaID(), GetQuestID(), GetPlayerMapPosition("player"))) -- -- What I need you to do is when you find a present click on the quest but DO NOT TURN IT IN IMMEDIATELY -- Instead run this command, it will print something to chat -- Make sure everything is non 0 -- Example -- 4, 0, 0.59956729412079, 0.57692295312881 -- Bad!! 4, 0!! -- We do not want 0! 0 bad! -- Number #1 = 0 - bad! -- Number #2 = 0 - bad! -- Number #3 = 0 - maybe OK -- -- 4, 81038, 0.59956729412079, 0.57692295312881 -- Number #1 = 4 - harasho -- Number #2 = 81038 - parada -- Mnogo harasho! local db = { ["Eastern Kingdoms"] = { [81032] = { area = 281, side = 3, level = 0, x = 50.00, y = 37.00 }, [81031] = { area = 241, side = 3, level = 0, x = 55.00, y = 66.00 }, [81030] = { area = 182, side = 3, level = 0, x = 45.00, y = 71.00 }, [81033] = { area = 606, side = 3, level = 0, x = 18.00, y = 36.00 }, [81034] = { area = 181, side = 3, level = 0, x = 55.00, y = 46.00 }, [81035] = { area = 43, side = 3, level = 0, x = 50.00, y = 51.00 }, [81038] = { area = 4, side = 3, level = 0, x = 36.00, y = 52.00 }, [81036] = { area = 81, side = 3, level = 0, x = 38.00, y = 64.00 }, [81037] = { area = 11, side = 3, level = 0, x = 61.00, y = 50.00 }, [81039] = { area = 101, side = 3, level = 0, x = 37.00, y = 30.00 }, [81040] = { area = 9, side = 3, level = 0, x = 56.00, y = 30.00 }, [81041] = { area = 607, side = 3, level = 0, x = 45.00, y = 35.00 }, [81042] = { area = 141, side = 3, level = 0, x = 47.00, y = 50.00 }, [81043] = { area = 121, side = 3, level = 0, x = 61.00, y = 30.00 }, [81044] = { area = 61, side = 3, level = 0, x = 75.00, y = 50.00 }, [81046] = { area = 201, side = 3, level = 0, x = 49.00, y = 49.00 }, [81045] = { area = 161, side = 3, level = 0, x = 74.00, y = 46.00 }, [81047] = { area = 720, side = 3, level = 0, x = 64.00, y = 20.00 }, [81048] = { area = 261, side = 3, level = 0, x = 37.00, y = 76.00 }, [81029] = { area = 42, side = 3, level = 0, x = 39.00, y = 62.00 }, [81026] = { area = 41, side = 3, level = 0, x = 45.00, y = 22.00 }, [81027] = { area = 464, side = 3, level = 0, x = 36.00, y = 60.00 }, [81028] = { area = 476, side = 3, level = 0, x = 67.00, y = 71.00 }, [81056] = { area = 479, side = 3, level = 0, x = 59.00, y = 42.00 }, [81055] = { area = 475, side = 3, level = 0, x = 42.00, y = 19.00 }, [81054] = { area = 467, side = 3, level = 0, x = 69.00, y = 45.00 }, [81053] = { area = 477, side = 3, level = 0, x = 60.00, y = 24.00 }, [81052] = { area = 478, side = 3, level = 0, x = 72.00, y = 37.00 }, [81051] = { area = 473, side = 3, level = 0, x = 41.00, y = 23.00 }, [81050] = { area = 465, side = 3, level = 0, x = 46.00, y = 50.00 }, [81076] = { area = 949, side = 3, level = 0, x = 51.00, y = 33.00 }, [81077] = { area = 941, side = 3, level = 0, x = 54.00, y = 66.00 }, [81078] = { area = 950, side = 3, level = 0, x = 39.00, y = 33.00 }, [81079] = { area = 946, side = 3, level = 0, x = 34.00, y = 47.00 }, [81080] = { area = 948, side = 3, level = 0, x = 57.00, y = 90.00 }, [81081] = { area = 947, side = 3, level = 0, x = 62.00, y = 89.00 }, [81075] = { area = 945, side = 3, level = 0, x = 41.00, y = 75.00 }, [81067] = { area = 806, side = 3, level = 0, x = 35.00, y = 30.00 }, [81071] = { area = 809, side = 3, level = 0, x = 76.00, y = 09.00 }, [81072] = { area = 810, side = 3, level = 0, x = 71.00, y = 56.00 }, [81073] = { area = 858, side = 3, level = 0, x = 39.00, y = 23.00 }, [81068] = { area = 857, side = 3, level = 0, x = 76.00, y = 08.00 }, [81069] = { area = 807, side = 3, level = 0, x = 76.00, y = 26.00 }, [81070] = { area = 811, side = 3, level = 0, x = 21.00, y = 69.00 }, [81074] = { area = 951, side = 3, level = 0, x = 22.00, y = 58.00 }, [81049] = { area = 640, side = 3, level = 0, x = 48.00, y = 54.00 }, [81057] = { area = 486, side = 3, level = 0, x = 85.00, y = 30.00 }, [81058] = { area = 493, side = 3, level = 0, x = 44.00, y = 78.00 }, [81060] = { area = 492, side = 3, level = 0, x = 64.00, y = 22.00 }, [81066] = { area = 495, side = 3, level = 0, x = 43.00, y = 82.00 }, [81065] = { area = 496, side = 3, level = 0, x = 28.00, y = 46.00 }, [81063] = { area = 490, side = 3, level = 0, x = 62.00, y = 42.00 }, [81064] = { area = 491, side = 3, level = 0, x = 31.00, y = 26.00 }, [81062] = { area = 488, side = 3, level = 0, x = 57.00, y = 35.00 }, [81061] = { area = 510, side = 3, level = 0, x = 19.00, y = 16.00 }, [81059] = { area = 501, side = 3, level = 0, x = 57.00, y = 41.00 }, [81082] = { area = 1015, side = 3, level = 0, x = 61.00, y = 68.00 }, [81083] = { area = 1018, side = 3, level = 0, x = 54.00, y = 82.00 }, [81084] = { area = 1024, side = 3, level = 0, x = 60.00, y = 48.00 }, [81085] = { area = 1017, side = 3, level = 0, x = 82.00, y = 09.00 }, [81086] = { area = 1033, side = 3, level = 0, x = 42.00, y = 67.00 }, [81087] = { area = 1021, side = 3, level = 0, x = 61.00, y = 33.00 }, [81003] = { area = 20, side = 3, level = 0, x = 50.00, y = 29.00 }, [81004] = { area = 22, side = 3, level = 0, x = 63.00, y = 60.00 }, [81005] = { area = 23, side = 3, level = 0, x = 37.00, y = 45.00 }, [81009] = { area = 21, side = 3, level = 0, x = 63.00, y = 63.00 }, [81008] = { area = 24, side = 3, level = 0, x = 33.00, y = 34.00 }, [81006] = { area = 26, side = 3, level = 0, x = 86.00, y = 59.00 }, [81007] = { area = 16, side = 3, level = 0, x = 56.00, y = 33.00 }, [81010] = { area = 40, side = 3, level = 0, x = 44.00, y = 25.00 }, [81011] = { area = 700, side = 3, level = 0, x = 64.00, y = 78.00 }, [81013] = { area = 35, side = 3, level = 0, x = 47.00, y = 45.00 }, [81012] = { area = 27, side = 3, level = 0, x = 77.00, y = 57.00 }, [81016] = { area = 17, side = 3, level = 0, x = 44.00, y = 49.00 }, [81015] = { area = 28, side = 3, level = 0, x = 43.00, y = 37.00 }, [81017] = { area = 29, side = 3, level = 0, x = 45.00, y = 41.00 }, [81018] = { area = 30, side = 3, level = 0, x = 71.00, y = 81.00 }, [81019] = { area = 36, side = 3, level = 0, x = 40.00, y = 35.00 }, [81020] = { area = 38, side = 3, level = 0, x = 33.00, y = 51.00 }, [81021] = { area = 32, side = 3, level = 0, x = 48.00, y = 67.00 }, [81022] = { area = 34, side = 3, level = 0, x = 25.00, y = 34.00 }, [81023] = { area = 39, side = 3, level = 0, x = 26.00, y = 17.00 }, [81025] = { area = 19, side = 3, level = 0, x = 39.00, y = 61.00 }, [81024] = { area = 673, side = 3, level = 0, x = 54.00, y = 32.00 }, [81001] = { area = 462, side = 3, level = 0, x = 69.00, y = 52.00 }, [81002] = { area = 463, side = 3, level = 0, x = 59.00, y = 14.00 }, [81000] = { area = 499, side = 3, level = 0, x = 43.00, y = 39.00 }, [81014] = { area = 614, side = 3, level = 0, x = 69.00, y = 27.00 }, }, } ns.modules[texture] = { loaded = false, texture = iconTexture, title = iconTitle, nodes = nodes, load = function(self) local faction = ns:GetPlayerFaction() if not faction then return false end for _, entries in pairs(db) do for quest, data in pairs(entries) do if not ns:IsQuestCompleted(quest) then table_insert(nodes, { quest = quest, area = data.area, level = data.level, x = data.x / 100, y = data.y / 100, title = data.title, text = data.text, instance = data.instance, }) end end end table_wipe(db) self.loaded = true return true end, OnShow = function(self) if self.node.instance then self.icon:SetTexture(iconTextureInstance) end end, OnEnter = function(self) WorldMapTooltip:SetOwner(self, "ANCHOR_RIGHT") if self.node.title then WorldMapTooltip:SetText(self.node.title) else if self.node.instance then WorldMapTooltip:SetText(iconTitle .. ": Instance") else WorldMapTooltip:SetText(iconTitle) end end WorldMapTooltip:AddLine(GetMapNameByID(self.node.area), 1, 0.82, 0, false) if self.node.text then WorldMapTooltip:AddLine(self.node.text, 1, 1, 1, true) end WorldMapTooltip:AddLine( string_format("%.1f, %.1f", self.node.x * 100, self.node.y * 100), 1, 1, 1, false ) WorldMapTooltip:AddLine(string_format("Quest %d", self.node.quest), 0.8, 0.8, 0.8, false) if ns.WaypointAddons:GetAddon() then WorldMapTooltip:AddLine("", 0.8, 0.8, 0.8, false) end WorldMapTooltip:Show() end, OnLeave = function(self) WorldMapTooltip:Hide() end, }