Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5597739ea8 | |||
| 826567511f | |||
| 99c16ba7e6 | |||
| 6e805e351d | |||
| e99ca59f27 | |||
| bf3d5bdd65 | |||
| 733c7a026c | |||
| 66cd0cea50 | |||
| 70ba72a3b5 | |||
| c04e16925a | |||
| 66e3ff2782 | |||
| 4215082f4f | |||
| ffbec677b9 | |||
| 819e807803 | |||
| 1c3e1dba7d |
Binary file not shown.
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 16 KiB |
+91
-153
@@ -102,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
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -125,7 +154,7 @@ 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;
|
||||||
@@ -144,9 +173,18 @@ function MM_DropDown_InitButtons()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-----------------------------------------------------
|
||||||
|
-- HORDE
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
function MM_DropDown_ForTheHorde()
|
function MM_DropDown_ForTheHorde()
|
||||||
local appender = ': ';
|
local appender = ': ';
|
||||||
|
|
||||||
|
-- 🔥 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;
|
||||||
@@ -162,65 +200,45 @@ function MM_DropDown_ForTheHorde()
|
|||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ORG);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ORG);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Orgrimmar"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_STONARD);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_STONARD);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Stonard"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_TB);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_TB);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Thunder Bluff"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_UC);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_UC);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Undercity"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -230,170 +248,126 @@ function MM_DropDown_ForTheHorde()
|
|||||||
info.isTitle = 1;
|
info.isTitle = 1;
|
||||||
info.notCheckable = 1;
|
info.notCheckable = 1;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport spells"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ORG);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ORG);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Orgrimmar"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_STONARD);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_STONARD);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Stonard"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_TB);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_TB);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Thunder Bluff"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_UC);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_UC);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Undercity"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-----------------------------------------------------
|
||||||
|
-- ALLIANCE
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
function MM_DropDown_ForTheAlliance()
|
function MM_DropDown_ForTheAlliance()
|
||||||
local appender = ': ';
|
local appender = ': ';
|
||||||
|
|
||||||
|
-- 🔥 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);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ALAH);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_ALAH);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Aerie Peak"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_DARNASSUS);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_DARNASSUS);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Darnassus"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_IF);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_IF);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Ironforge"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_SW);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_SW);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Stormwind"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_THERAMORE);
|
MM_TryCast(MINIMAGE_LABEL_PORTAL..appender..MINIMAGE_LABEL_THERAMORE);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Portal to Theramore"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -403,90 +377,61 @@ function MM_DropDown_ForTheAlliance()
|
|||||||
info.isTitle = 1;
|
info.isTitle = 1;
|
||||||
info.notCheckable = 1;
|
info.notCheckable = 1;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport spells"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ALAH);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_ALAH);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Aerie Peak"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_DARNASSUS);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_DARNASSUS);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Darnassus"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_IF);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_IF);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Ironforge"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_SW);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_SW);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Stormwind"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
|
|
||||||
-- 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
|
||||||
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_THERAMORE);
|
MM_TryCast(MINIMAGE_LABEL_TELEPORT..appender..MINIMAGE_LABEL_THERAMORE);
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
info.tooltipTitle = info.text
|
|
||||||
info.tooltipText = "Teleport to Theramore"
|
|
||||||
info.tooltipOnButton = true
|
|
||||||
|
|
||||||
UIDropDownMenu_AddButton(info);
|
UIDropDownMenu_AddButton(info);
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -526,7 +471,6 @@ 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")
|
||||||
@@ -534,13 +478,11 @@ SlashCmdList["MINIMAGE"] = function(msg)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ===== ADDED: Minimal cast tracking + wrapper + error listener + spell check =====
|
-- ===== Cast tracking + learned-check =====
|
||||||
|
|
||||||
-- Track last attempted spell cast
|
|
||||||
local MM_LastAttemptedSpell = nil
|
local MM_LastAttemptedSpell = nil
|
||||||
local MM_LastAttemptTime = 0
|
local MM_LastAttemptTime = 0
|
||||||
|
|
||||||
-- Check if player knows the spell
|
|
||||||
function MM_HasSpell(spellName)
|
function MM_HasSpell(spellName)
|
||||||
for i=1, GetNumSpellTabs() do
|
for i=1, GetNumSpellTabs() do
|
||||||
local _, _, offset, numSpells = GetSpellTabInfo(i)
|
local _, _, offset, numSpells = GetSpellTabInfo(i)
|
||||||
@@ -554,7 +496,6 @@ function MM_HasSpell(spellName)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Wrapper to track attempts and check if learned
|
|
||||||
function MM_TryCast(spellName)
|
function MM_TryCast(spellName)
|
||||||
if not MM_HasSpell(spellName) then
|
if not MM_HasSpell(spellName) then
|
||||||
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000You Have Not Learned " .. spellName .. ".|r")
|
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000You Have Not Learned " .. spellName .. ".|r")
|
||||||
@@ -565,16 +506,13 @@ function MM_TryCast(spellName)
|
|||||||
CastSpellByName(spellName)
|
CastSpellByName(spellName)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Event frame to listen for UI error messages and show custom text
|
|
||||||
local MM_EventFrame = CreateFrame("Frame")
|
local MM_EventFrame = CreateFrame("Frame")
|
||||||
MM_EventFrame:RegisterEvent("UI_ERROR_MESSAGE")
|
MM_EventFrame:RegisterEvent("UI_ERROR_MESSAGE")
|
||||||
|
|
||||||
MM_EventFrame:SetScript("OnEvent", function(self, event, message)
|
MM_EventFrame:SetScript("OnEvent", function(self, event, message)
|
||||||
local now = GetTime()
|
local now = GetTime()
|
||||||
|
|
||||||
-- Only react if the error happens within 1 second of our own click
|
|
||||||
if MM_LastAttemptedSpell and (now - MM_LastAttemptTime) < 1.0 then
|
if MM_LastAttemptedSpell and (now - MM_LastAttemptTime) < 1.0 then
|
||||||
-- Any standard "failed" message triggers custom output
|
|
||||||
if message then
|
if message then
|
||||||
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000You Have Not Learned " .. MM_LastAttemptedSpell .. ".|r")
|
DEFAULT_CHAT_FRAME:AddMessage("|cffff0000You Have Not Learned " .. MM_LastAttemptedSpell .. ".|r")
|
||||||
end
|
end
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
## Interface: 11200
|
## Interface: 11200
|
||||||
## Title: MiniMage_TWOW
|
## Title: MiniMage_TWOW
|
||||||
## Version: 1.2
|
## 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
|
||||||
|
|||||||
@@ -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.2
|
# 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,10 +17,13 @@ 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
|
|
||||||
* Portals Section Greyed out Until Level 40
|
|
||||||
* "Haven't Learned Spell" Message when trying to cast a Teleport/Portal you don't have trained.
|
* "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
|
||||||
|
* Specific Portals/Teleports Greyed out until required level is reached
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
--the only place MINIMAGE_VERSION should be set
|
--the only place MINIMAGE_VERSION should be set
|
||||||
MINIMAGE_VERSION = "1.2";
|
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";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user