20 Commits

Author SHA1 Message Date
totalllyswede 5597739ea8 Add files via upload 2025-12-15 15:10:04 -08:00
totalllyswede 826567511f Add files via upload 2025-11-27 01:35:48 -08:00
totalllyswede 99c16ba7e6 Update README.md 2025-11-26 21:32:37 -08:00
totalllyswede 6e805e351d Add files via upload 2025-11-26 21:32:11 -08:00
totalllyswede e99ca59f27 Add files via upload 2025-11-26 21:30:53 -08:00
totalllyswede bf3d5bdd65 Add files via upload 2025-11-25 07:07:57 -08:00
totalllyswede 733c7a026c Delete Images/mmOriginal.tga 2025-11-25 06:44:39 -08:00
totalllyswede 66cd0cea50 Add files via upload 2025-11-25 06:43:51 -08:00
totalllyswede 70ba72a3b5 Add files via upload 2025-11-25 01:32:48 -08:00
totalllyswede c04e16925a Add files via upload 2025-11-25 01:30:13 -08:00
totalllyswede 66e3ff2782 Add files via upload 2025-11-25 01:28:21 -08:00
totalllyswede 4215082f4f Add files via upload 2025-11-25 01:24:10 -08:00
totalllyswede ffbec677b9 Add files via upload 2025-11-25 00:27:45 -08:00
totalllyswede 819e807803 Update README.md 2025-11-25 00:26:42 -08:00
totalllyswede 1c3e1dba7d Update README.md 2025-11-25 00:24:22 -08:00
totalllyswede 298424ebdf Add files via upload 2025-11-24 00:29:28 -08:00
totalllyswede 6926a59e8e Update README.md 2025-11-24 00:29:09 -08:00
totalllyswede 8d6c686692 Update README.md 2025-11-23 02:21:22 -08:00
totalllyswede 115dc0c7e9 Add files via upload 2025-11-23 00:33:34 -08:00
totalllyswede 45a287e7cc Add files via upload 2025-11-23 00:20:42 -08:00
5 changed files with 183 additions and 76 deletions
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 16 KiB

+170 -67
View File
@@ -1,3 +1,5 @@
local MM_Initialized = false
-- --
-- Global variable for storage of settings/options -- Global variable for storage of settings/options
-- --
@@ -16,6 +18,8 @@ function class_OnLoad()
end end
function MM_Initialize() function MM_Initialize()
if MM_Initialized then return end
MM_Initialized = true
MM_fac = UnitFactionGroup('player'); MM_fac = UnitFactionGroup('player');
M_class = UnitClass("player"); M_class = UnitClass("player");
if (M_class == "Mage") then if (M_class == "Mage") then
@@ -56,9 +60,8 @@ end
-- --
-- Minimap button drag/drop functions -- Minimap button drag/drop functions
--
-- Thanks to Atlas for the button dragging code -- Thanks to Atlas for the button dragging code
--
function MM_Button_BeingDragged() function MM_Button_BeingDragged()
local xpos,ypos = GetCursorPosition(); local xpos,ypos = GetCursorPosition();
@@ -99,15 +102,44 @@ function MM_Button_UpdatePosition()
end end
-- --
-- ADDED: REQUIRED LEVEL CHECKS -- Required level table (unchanged)
-- --
function MM_CanCastTeleport() local MM_SpellLevels = {
return UnitLevel("player") >= 20; -- Horde
end ["Teleport: Orgrimmar"] = 20,
["Portal: Orgrimmar"] = 40,
function MM_CanCastPortal() ["Teleport: Thunder Bluff"] = 30,
return UnitLevel("player") >= 40; ["Portal: Thunder Bluff"] = 50,
["Teleport: Undercity"] = 20,
["Portal: Undercity"] = 40,
["Teleport: Stonard"] = 20,
["Portal: Stonard"] = 40,
-- Alliance
["Teleport: Stormwind"] = 20,
["Portal: Stormwind"] = 40,
["Teleport: Ironforge"] = 20,
["Portal: Ironforge"] = 40,
["Teleport: Darnassus"] = 30,
["Portal: Darnassus"] = 50,
["Teleport: Theramore"] = 40,
["Portal: Theramore"] = 60,
["Teleport: Alah'Thalas"] = 20,
["Portal: Alah'Thalas"] = 40,
}
function MM_CanCastSpell(spellName)
local req = MM_SpellLevels[spellName]
if not req then return true end
return UnitLevel("player") >= req
end end
-- --
@@ -122,10 +154,15 @@ end
function MM_DropDown_InitButtons() function MM_DropDown_InitButtons()
local info = {}; local info = {};
info.text = MINIMAGE_LABEL_TITLE; info.text = "|cff00ff00"..MINIMAGE_LABEL_TITLE.."|r";
info.isTitle = 1; info.isTitle = 1;
info.justifyH = "CENTER"; info.justifyH = "CENTER";
info.notCheckable = 1; info.notCheckable = 1;
info.tooltipTitle = info.text
info.tooltipText = "Click to cast"
info.tooltipOnButton = true
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
local fact = UnitFactionGroup('player'); local fact = UnitFactionGroup('player');
@@ -136,24 +173,37 @@ function MM_DropDown_InitButtons()
end end
end end
-----------------------------------------------------
-- HORDE
-----------------------------------------------------
function MM_DropDown_ForTheHorde() function MM_DropDown_ForTheHorde()
local appender = ': '; local appender = ': ';
-- PORTAL SECTION (hidden if HidePortals is true) -- 🔥 REQUIRED ADDITION: Auto-hide portals if player level < 40
if UnitLevel("player") < 40 then
MiniMageOptions.HidePortals = true
end
if not MiniMageOptions.HidePortals then if not MiniMageOptions.HidePortals then
local info = { }; local info = { };
info.text = MINIMAGE_LABEL_PORTAL; info.text = MINIMAGE_LABEL_PORTAL;
info.isTitle = 1; info.isTitle = 1;
info.notCheckable = 1; info.notCheckable = 1;
info.tooltipTitle = info.text
info.tooltipText = "Portal spells"
info.tooltipOnButton = true
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
-- ORG PORTAL -- ORG PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_ORG; info.text = MINIMAGE_LABEL_ORG;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Orgrimmar");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Orgrimmar") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ORG); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ORG);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -161,10 +211,10 @@ function MM_DropDown_ForTheHorde()
-- STONARD PORTAL -- STONARD PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_STONARD; info.text = MINIMAGE_LABEL_STONARD;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Stonard");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Stonard") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_STONARD); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_STONARD);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -172,10 +222,10 @@ function MM_DropDown_ForTheHorde()
-- TB PORTAL -- TB PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_TB; info.text = MINIMAGE_LABEL_TB;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Thunder Bluff");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Thunder Bluff") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_TB); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_TB);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -183,10 +233,10 @@ function MM_DropDown_ForTheHorde()
-- UC PORTAL -- UC PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_UC; info.text = MINIMAGE_LABEL_UC;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Undercity");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Undercity") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_UC); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_UC);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -197,15 +247,16 @@ function MM_DropDown_ForTheHorde()
info.text = MINIMAGE_LABEL_TELEPORT; info.text = MINIMAGE_LABEL_TELEPORT;
info.isTitle = 1; info.isTitle = 1;
info.notCheckable = 1; info.notCheckable = 1;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
-- ORG TELEPORT -- ORG TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_ORG; info.text = MINIMAGE_LABEL_ORG;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Orgrimmar");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Orgrimmar") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ORG); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ORG);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -213,10 +264,10 @@ function MM_DropDown_ForTheHorde()
-- STONARD TELEPORT -- STONARD TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_STONARD; info.text = MINIMAGE_LABEL_STONARD;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Stonard");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Stonard") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_STONARD); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_STONARD);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -224,10 +275,10 @@ function MM_DropDown_ForTheHorde()
-- TB TELEPORT -- TB TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_TB; info.text = MINIMAGE_LABEL_TB;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Thunder Bluff");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Thunder Bluff") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_TB); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_TB);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -235,33 +286,42 @@ function MM_DropDown_ForTheHorde()
-- UC TELEPORT -- UC TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_UC; info.text = MINIMAGE_LABEL_UC;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Undercity");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Undercity") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_UC); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_UC);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
end end
-----------------------------------------------------
-- ALLIANCE
-----------------------------------------------------
function MM_DropDown_ForTheAlliance() function MM_DropDown_ForTheAlliance()
local appender = ': '; local appender = ': ';
-- PORTAL SECTION (hidden if HidePortals is true) -- 🔥 REQUIRED ADDITION: Auto-hide portals if player level < 40
if UnitLevel("player") < 40 then
MiniMageOptions.HidePortals = true
end
if not MiniMageOptions.HidePortals then if not MiniMageOptions.HidePortals then
local info = { }; local info = { };
info.text = MINIMAGE_LABEL_PORTAL; info.text = MINIMAGE_LABEL_PORTAL;
info.isTitle = 1; info.isTitle = 1;
info.notCheckable = 1; info.notCheckable = 1;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
-- ALAH PORTAL -- ALAH PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_ALAH; info.text = MINIMAGE_LABEL_ALAH;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Alah'Thalas");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Alah'Thalas") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ALAH); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ALAH);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -269,10 +329,10 @@ function MM_DropDown_ForTheAlliance()
-- DARNASSUS PORTAL -- DARNASSUS PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_DARNASSUS; info.text = MINIMAGE_LABEL_DARNASSUS;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Darnassus");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Darnassus") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_DARNASSUS); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_DARNASSUS);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -280,10 +340,10 @@ function MM_DropDown_ForTheAlliance()
-- IF PORTAL -- IF PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_IF; info.text = MINIMAGE_LABEL_IF;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Ironforge");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Ironforge") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_IF); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_IF);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -291,10 +351,10 @@ function MM_DropDown_ForTheAlliance()
-- SW PORTAL -- SW PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_SW; info.text = MINIMAGE_LABEL_SW;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Stormwind");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Stormwind") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_SW); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_SW);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -302,29 +362,30 @@ function MM_DropDown_ForTheAlliance()
-- THERAMORE PORTAL -- THERAMORE PORTAL
info = { }; info = { };
info.text = MINIMAGE_LABEL_THERAMORE; info.text = MINIMAGE_LABEL_THERAMORE;
info.disabled = not MM_CanCastPortal(); info.disabled = not MM_CanCastSpell("Portal: Theramore");
info.func = function(msg) info.func = function(msg)
if MM_CanCastPortal() then if MM_CanCastSpell("Portal: Theramore") then
CastSpellByName(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_THERAMORE); MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_THERAMORE);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
end end
-- TELEPORT SECTION -- TELEPORT TITLE
local info = { }; local info = { };
info.text = MINIMAGE_LABEL_TELEPORT; info.text = MINIMAGE_LABEL_TELEPORT;
info.isTitle = 1; info.isTitle = 1;
info.notCheckable = 1; info.notCheckable = 1;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
-- ALAH TELEPORT -- ALAH TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_ALAH; info.text = MINIMAGE_LABEL_ALAH;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Alah'Thalas");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Alah'Thalas") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ALAH); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ALAH);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -332,10 +393,10 @@ function MM_DropDown_ForTheAlliance()
-- DARN TELEPORT -- DARN TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_DARNASSUS; info.text = MINIMAGE_LABEL_DARNASSUS;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Darnassus");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Darnassus") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_DARNASSUS); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_DARNASSUS);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -343,10 +404,10 @@ function MM_DropDown_ForTheAlliance()
-- IF TELEPORT -- IF TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_IF; info.text = MINIMAGE_LABEL_IF;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Ironforge");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Ironforge") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_IF); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_IF);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -354,10 +415,10 @@ function MM_DropDown_ForTheAlliance()
-- SW TELEPORT -- SW TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_SW; info.text = MINIMAGE_LABEL_SW;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Stormwind");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Stormwind") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_SW); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_SW);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -365,10 +426,10 @@ function MM_DropDown_ForTheAlliance()
-- THERAMORE TELEPORT -- THERAMORE TELEPORT
info = { }; info = { };
info.text = MINIMAGE_LABEL_THERAMORE; info.text = MINIMAGE_LABEL_THERAMORE;
info.disabled = not MM_CanCastTeleport(); info.disabled = not MM_CanCastSpell("Teleport: Theramore");
info.func = function(msg) info.func = function(msg)
if MM_CanCastTeleport() then if MM_CanCastSpell("Teleport: Theramore") then
CastSpellByName(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_THERAMORE); MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_THERAMORE);
end end
end; end;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
@@ -410,10 +471,52 @@ SlashCmdList["MINIMAGE"] = function(msg)
DEFAULT_CHAT_FRAME:AddMessage("/mmage help - Show this help") DEFAULT_CHAT_FRAME:AddMessage("/mmage help - Show this help")
DEFAULT_CHAT_FRAME:AddMessage("/mmage icon - Show/Hide minimap button") DEFAULT_CHAT_FRAME:AddMessage("/mmage icon - Show/Hide minimap button")
DEFAULT_CHAT_FRAME:AddMessage("/mmage reset - Reset addon saved options") DEFAULT_CHAT_FRAME:AddMessage("/mmage reset - Reset addon saved options")
DEFAULT_CHAT_FRAME:AddMessage("/mmage portals - Show/Hide portal in dropdown")
else else
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000MiniMage: unknown command.|r") DEFAULT_CHAT_FRAME:AddMessage("|cffff0000MiniMage: unknown command.|r")
DEFAULT_CHAT_FRAME:AddMessage("Type /mmage help for options.") DEFAULT_CHAT_FRAME:AddMessage("Type /mmage help for options.")
end end
end end
-- ===== Cast tracking + learned-check =====
local MM_LastAttemptedSpell = nil
local MM_LastAttemptTime = 0
function MM_HasSpell(spellName)
for i=1, GetNumSpellTabs() do
local _, _, offset, numSpells = GetSpellTabInfo(i)
for j=1, numSpells do
local name = GetSpellName(j + offset, BOOKTYPE_SPELL)
if name == spellName then
return true
end
end
end
return false
end
function MM_TryCast(spellName)
if not MM_HasSpell(spellName) then
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000You Have Not Learned " .. spellName .. ".|r")
return
end
MM_LastAttemptedSpell = spellName
MM_LastAttemptTime = GetTime()
CastSpellByName(spellName)
end
local MM_EventFrame = CreateFrame("Frame")
MM_EventFrame:RegisterEvent("UI_ERROR_MESSAGE")
MM_EventFrame:SetScript("OnEvent", function(self, event, message)
local now = GetTime()
if MM_LastAttemptedSpell and (now - MM_LastAttemptTime) < 1.0 then
if message then
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000You Have Not Learned " .. MM_LastAttemptedSpell .. ".|r")
end
MM_LastAttemptedSpell = nil
MM_LastAttemptTime = 0
end
end)
+2 -2
View File
@@ -1,7 +1,7 @@
## Interface: 11200 ## Interface: 11200
## Title: MiniMage_TWOW ## Title: MiniMage_TWOW
## Version: 1.1 ## Version: 1.5
## Notes: Forked version of MiniMage 1.2b. No original GitHub Repo found, only found in Wow1.12.1_Addons_Collection ## Notes: Minimap icon for TurtleWoW for quick and easy portals/teleports.
## SavedVariables: MiniMageOptions ## SavedVariables: MiniMageOptions
localization.lua localization.lua
MiniMage_TWOW.lua MiniMage_TWOW.lua
+8 -4
View File
@@ -4,10 +4,10 @@ MiniMage_TWOW is a lightweight World of Warcraft addon designed for Mages, provi
## Original Addon ## Original Addon
* I found MiniMage_v1.2b in the Wow1.12.1_Addons_Collection, I cannot find the orginal GitHub or anywhere else this addon is posted. * I found MiniMage_v1.2b in the Wow1.12.1_Addons_Collection, I cannot find the orginal GitHub or anywhere else this addon is posted.
* I do not take credit for creating this addon, only modifying it to include TurtleWoW specific features * I do not take credit for creating this addon, only modifying it to include TurtleWoW specific spells and adding a few features
# Version 1.1 # Version 1.4
## TurtleWoW Specific Features ## TurtleWoW Specific Features
* Includes Alah'Thalas and Theramore for Alliance characters. * Includes Alah'Thalas and Theramore for Alliance characters.
* Includes Stonard for Horde characters. * Includes Stonard for Horde characters.
@@ -17,8 +17,12 @@ MiniMage_TWOW is a lightweight World of Warcraft addon designed for Mages, provi
* **Minimap Button**: Drag and position a minimap button for easy access. * **Minimap Button**: Drag and position a minimap button for easy access.
* **Dropdown Menu**: Quick-cast portals and teleports, organized by faction. * **Dropdown Menu**: Quick-cast portals and teleports, organized by faction.
* **Faction Support**: Automatically shows relevant portal and teleport spells for Horde or Alliance Mages. * **Faction Support**: Automatically shows relevant portal and teleport spells for Horde or Alliance Mages.
* Teleport Section Greyed out Until Level 20 * "Haven't Learned Spell" Message when trying to cast a Teleport/Portal you don't have trained.
* **Show/Hide Based on Level**:
* Portals Section Greyed out Until Level 40 * Portals Section Greyed out Until Level 40
* Specific Portals/Teleports Greyed out until required level is reached
## Installation ## Installation
@@ -52,4 +56,4 @@ Let me know if you have any issues, I'll fix it if I am able to.
## Screenshots ## Screenshots
![MiniMage_TWOW (1)](https://github.com/user-attachments/assets/cd92f8b3-b473-4029-a41d-e33144aab79e) ![MiniMage_TWOW (2)](https://github.com/user-attachments/assets/66263d98-0e99-4517-afa2-ff7f7c18c654) <img width="800" height="600" alt="ss1" src="https://github.com/user-attachments/assets/e1344159-2bd9-43a1-8edb-9b16e123d022" />
+2 -2
View File
@@ -1,6 +1,6 @@
--the only place MINIMAGE_VERSION should be set --the only place MINIMAGE_VERSION should be set
MINIMAGE_VERSION = "1.1"; MINIMAGE_VERSION = "1.5";
--[[ --[[
@@ -22,7 +22,7 @@ MINIMAGE_BUTTON_TOOLTIP0 = "MiniMage";
MINIMAGE_BUTTON_TOOLTIP1 = "Left-click to open MiniMage Cast Menu."; MINIMAGE_BUTTON_TOOLTIP1 = "Left-click to open MiniMage Cast Menu.";
MINIMAGE_BUTTON_TOOLTIP2 = "Right-click and drag to move this button."; MINIMAGE_BUTTON_TOOLTIP2 = "Right-click and drag to move this button.";
MINIMAGE_LABEL_TITLE = "Select Destination"; MINIMAGE_LABEL_TITLE = "MiniMage";
MINIMAGE_LABEL_PORTAL = "Portal"; MINIMAGE_LABEL_PORTAL = "Portal";
MINIMAGE_LABEL_TELEPORT = "Teleport"; MINIMAGE_LABEL_TELEPORT = "Teleport";