Turtles all the way down!
Port to Turtle WoW and add their custom Zones.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
--
|
||||
-- LevelRange :: Installation
|
||||
-- Copyright (c) 2006 Philip Hughes (Bull3t)
|
||||
--
|
||||
|
||||
----------------------
|
||||
How To Install
|
||||
----------------------
|
||||
To install the addon simply extract all of the files from the ZIP file to "\World of Warcraft\Interface\Addons\LevelRange-Turtle
|
||||
Then Run the game, login and before selecting a character, press the little button that reads "Addons" in the bottom right corner of the character selection screen.
|
||||
Make sure that "LevelRange" is checked and is not greyed out. Press OK, select a character and you are done.
|
||||
|
||||
To test that it is working just open up the World Map, zoom in/out onto any continent and mouse-over any zone, if all works out well there should be a Tooltip box down in the bottom left corner, or if you have FlightMap installed, in bottom right corner.
|
||||
@@ -0,0 +1,12 @@
|
||||
## Interface: 11200
|
||||
## Title: LevelRange [|cff3fcf26Turtle|r]
|
||||
## Version: 1.0.0
|
||||
## Author: Bull3t
|
||||
## Notes: Shows the zone level range on the World Map. Now with 100% more turtles!
|
||||
## eMail: bull3t@ntlworld.com
|
||||
## URL: http://bull3t.blogspot.com
|
||||
## DefaultState: Enabled
|
||||
## LoadOnDemand: 0
|
||||
## OptionalDeps: myAddOns
|
||||
## SavedVariables: LevelRangeSettings
|
||||
LevelRange.xml
|
||||
+685
@@ -0,0 +1,685 @@
|
||||
--
|
||||
-- LevelRange :: Main Lua File
|
||||
-- Copyright (c) 2006 Philip Hughes (Bull3t)
|
||||
--
|
||||
-- Shows the zone level range on the World Map.
|
||||
--
|
||||
-- Thanks to Dhask for allowing the use of his FlightMap.
|
||||
--
|
||||
-- An unlimited license to use, reproduce and copy this work is granted, on
|
||||
-- the condition that the licensee accepts all responsibility and liability
|
||||
-- for any damage that may arise from the use of this AddOn.
|
||||
--
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- Global Variables
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
-- Name
|
||||
LEVELRANGE_NAME = "LevelRange"
|
||||
|
||||
-- Version Number
|
||||
LEVELRANGE_VERSION = "1.2.0";
|
||||
|
||||
-- Details
|
||||
Details = {
|
||||
name = LEVELRANGE_NAME,
|
||||
version = LEVELRANGE_VERSION,
|
||||
releaseDate = "September 05, 2006",
|
||||
author = "Bull3t",
|
||||
email = "bull3t@ntlworld.com",
|
||||
website = "http://www.levelrange.co.nr",
|
||||
category = MYADDONS_CATEGORY_MAP,
|
||||
optionsframe = "LevelRangeOptionsFrame"
|
||||
};
|
||||
|
||||
-- Help
|
||||
Help = {
|
||||
[1] = LEVELRANGE_HELP0 .. "\n" .. LEVELRANGE_HELP1 .. "\n" .. LEVELRANGE_HELP2 .. "\n" .. LEVELRANGE_HELP3 .. "\n" .. LEVELRANGE_HELP4 .. "\n" .. LEVELRANGE_HELP5,
|
||||
};
|
||||
|
||||
-- Player Info
|
||||
playerName = UnitName("player");
|
||||
realmName = GetRealmName();
|
||||
|
||||
-- Default Variables
|
||||
LevelRangeSettings = {};
|
||||
DEFAULT_LEVELRANGE_SHOW = true;
|
||||
DEFAULT_LEVELRANGE_SHOWINSTANCE = true;
|
||||
DEFAULT_LEVELRANGE_SHOWRAIDS = true;
|
||||
DEFAULT_LEVELRANGE_SHOWPVP = true;
|
||||
|
||||
-- Realm|PlayerName
|
||||
LEVELRANGE_REALMPLAYERNAME = realmName .. "|" .. playerName
|
||||
|
||||
-- Slash Commands
|
||||
LEVELRANGE_SLASH1 = "lr"
|
||||
LEVELRANGE_SLASH2 = "levelrange"
|
||||
|
||||
-- Faction Types
|
||||
local lTYPE_HORDE = LEVELRANGE_HORDE;
|
||||
local lTYPE_ALLIANCE = LEVELRANGE_ALLIANCE;
|
||||
local lTYPE_CONTESTED = LEVELRANGE_CONTESTED;
|
||||
|
||||
-- Level Ranges
|
||||
LEVELRANGE_RANGES = {
|
||||
[LEVELRANGE_ELWYNN] = { 1, 10, lTYPE_ALLIANCE},
|
||||
[LEVELRANGE_DUNMOROGH] = { 1, 10, lTYPE_ALLIANCE},
|
||||
[LEVELRANGE_TIRISFAL] = { 1, 10, lTYPE_HORDE},
|
||||
[LEVELRANGE_LOCHMODAN] = {10, 20, lTYPE_ALLIANCE},
|
||||
[LEVELRANGE_SILVERPINE] = {10, 20, lTYPE_HORDE},
|
||||
[LEVELRANGE_WESTFALL] = {10, 20, lTYPE_ALLIANCE},
|
||||
[LEVELRANGE_REDRIDGE] = {15, 25, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_DUSKWOOD] = {18, 30, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_HILLSBRAD] = {20, 30, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_WETLANDS] = {20, 30, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_ALTERAC] = {30, 40, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_ARATHI] = {30, 40, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_STRANGLETHORN] = {30, 45, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_BADLANDS] = {35, 45, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_SORROWS] = {35, 45, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_HINTERLANDS] = {40, 50, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_SEARINGGORGE] = {43, 50, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_BLASTEDLANDS] = {45, 55, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_BURNINGSTEPPE] = {50, 58, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_WESTERNPLAGUE] = {51, 58, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_EASTERNPLAGUE] = {53, 60, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_DEADWINDPASS] = {55, 60, lTYPE_CONTESTED},
|
||||
|
||||
[LEVELRANGE_DUROTAR] = { 1, 10, lTYPE_HORDE},
|
||||
[LEVELRANGE_MULGORE] = { 1, 10, lTYPE_HORDE},
|
||||
[LEVELRANGE_DARKSHORE] = {10, 20, lTYPE_ALLIANCE},
|
||||
[LEVELRANGE_BARRENS] = {10, 25, lTYPE_HORDE},
|
||||
[LEVELRANGE_STONETALON] = {15, 27, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_ASHENVALE] = {18, 30, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_1KNEEDLES] = {25, 35, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_DESOLACE] = {30, 40, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_DUSTWALLOW] = {35, 45, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_FERALAS] = {40, 50, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_TANARIS] = {40, 50, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_AZSHARA] = {45, 55, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_FELWOOD] = {48, 55, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_UNGOROCRATER] = {48, 55, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_SILITHUS] = {55, 60, lTYPE_CONTESTED},
|
||||
[LEVELRANGE_WINTERSPRING] = {55, 60, lTYPE_CONTESTED},
|
||||
|
||||
[LEVELRANGE_MOONGLADE] = { 1, 60, lTYPE_CONTESTED},
|
||||
|
||||
[LEVELRANGE_TELDRASSIL] = { 1, 10, lTYPE_ALLIANCE},
|
||||
|
||||
|
||||
--Turtle WoW Zones
|
||||
|
||||
|
||||
--["Gilneas"] = {43, 49, lTYPE_CONTESTED},
|
||||
["Gillijim's Isle"] = {48, 53, lTYPE_CONTESTED},
|
||||
["Lapidis Isle"] = {48, 53, lTYPE_CONTESTED},
|
||||
["Tel'Abim"] = {54, 60, lTYPE_CONTESTED},
|
||||
["Hyjal"] = {60, 60, lTYPE_CONTESTED},
|
||||
|
||||
};
|
||||
|
||||
-- Instances
|
||||
LEVELRANGE_INSTANCES = {
|
||||
[LEVELRANGE_WESTFALL] = {LEVELRANGE_DEADMINES, " (17-26)"},
|
||||
[LEVELRANGE_BARRENS] = {LEVELRANGE_WAILINGCAVERNS, " (17-24)", LEVELRANGE_RAZORFENKRAUL, " (25-30)", LEVELRANGE_RAZORFENDOWNS, " (33-45)"},
|
||||
[LEVELRANGE_SILVERPINE] = {LEVELRANGE_SHADOWFANGKEEP, " (22-30)"},
|
||||
[LEVELRANGE_ASHENVALE] = {LEVELRANGE_BLACKFATHOMDEEPS, " (24-32)"},
|
||||
[LEVELRANGE_DUNMOROGH] = {LEVELRANGE_GNOMEREGAN, " (29-38)"},
|
||||
[LEVELRANGE_TIRISFAL] = {LEVELRANGE_SCARLETMONASTERY, " (34-45)"},
|
||||
[LEVELRANGE_BADLANDS] = {LEVELRANGE_ULDAMAN, " (35-47)"},
|
||||
[LEVELRANGE_DESOLACE] = {LEVELRANGE_MARAUDON, " (46-55)"},
|
||||
[LEVELRANGE_SORROWS] = {LEVELRANGE_SUNKENTEMPLE, " (45-55)"},
|
||||
[LEVELRANGE_SEARINGGORGE] = {LEVELRANGE_BLACKROCKDEPTH, " (52-60)", LEVELRANGE_BLACKROCKSPIRE, " (58-60)"},
|
||||
[LEVELRANGE_BURNINGSTEPPE] = {LEVELRANGE_BLACKROCKDEPTH, " (52-60)", LEVELRANGE_BLACKROCKSPIRE, " (58-60)"},
|
||||
[LEVELRANGE_EASTERNPLAGUE] = {LEVELRANGE_STRATHOLME, " (58-60)"},
|
||||
[LEVELRANGE_FERALAS] = {LEVELRANGE_DIREMAUL, " (55-60)"},
|
||||
[LEVELRANGE_WESTERNPLAGUE] = {LEVELRANGE_SCHOLOMANCE, " (57-60)"},
|
||||
[LEVELRANGE_DUROTAR] = {LEVELRANGE_RAGEFIRECHASM, " (13-18)"},
|
||||
[LEVELRANGE_ELWYNN] = {LEVELRANGE_STOCKADES, " (24-32)"},
|
||||
[LEVELRANGE_TANARIS] = {LEVELRANGE_ZULFARRAK, " (44-54)"},
|
||||
|
||||
--Turtle WoW Dungeons
|
||||
|
||||
|
||||
[LEVELRANGE_ASHENVALE] = {"The Crescent Grove", " (32-38)"},
|
||||
--["Gilneas"] = {"Gilneas City", " (39-45)"},
|
||||
[LEVELRANGE_BURNINGSTEPPE] = {"Hateforge Quarry", " (52-60)"},
|
||||
[LEVELRANGE_DEADWINDPASS] = {"The Karazhan Crypt", " (58 - 60)"},
|
||||
[LEVELRANGE_ELWYNN] = {"The Stormwind Vaults", " (60+)"},
|
||||
[LEVELRANGE_TANARIS] = {"Caverns of Time: The Black Morass", " (60+)"},
|
||||
};
|
||||
|
||||
-- Raids
|
||||
LEVELRANGE_RAIDS = {
|
||||
[LEVELRANGE_EASTERNPLAGUE] = {LEVELRANGE_NAXXRAMAS, " (60+)"},
|
||||
[LEVELRANGE_DUSTWALLOW] = {LEVELRANGE_ONYXIASLAIR, " (60+)"},
|
||||
[LEVELRANGE_SILITHUS] = {LEVELRANGE_RUINSAHNQIRAJ, " (60+)", LEVELRANGE_TEMPLEAHNQIRAJ, " (60+)"},
|
||||
[LEVELRANGE_STRANGLETHORN] = {LEVELRANGE_ZULGURUB, " (60+)"},
|
||||
|
||||
--Turtle WoW Raids
|
||||
|
||||
["Hyjal"] = {"The Emerald Sanctum", " (60+)"},
|
||||
[LEVELRANGE_DEADWINDPASS] = {"Lower Karazhan Halls", " (60+)"},
|
||||
};
|
||||
|
||||
-- Sub-zones
|
||||
LEVELRANGE_SUBZONES = {
|
||||
[LEVELRANGE_ORGRIMMAR] = LEVELRANGE_DUROTAR,
|
||||
[LEVELRANGE_THUNDERBLUFF] = LEVELRANGE_MULGORE,
|
||||
[LEVELRANGE_UNDERCITY] = LEVELRANGE_TIRISFAL,
|
||||
[LEVELRANGE_IRONFORGE] = LEVELRANGE_DUNMOROGH,
|
||||
[LEVELRANGE_STORMWIND] = LEVELRANGE_ELWYNN,
|
||||
};
|
||||
|
||||
-- Colours
|
||||
LEVELRANGE_COLORS = {
|
||||
Unknown = { r = 0.8, g = 0.8, b = 0.8 },
|
||||
Hostile = { r = 0.9, g = 0.2, b = 0.2 },
|
||||
Friendly = { r = 0.2, g = 0.9, b = 0.2 },
|
||||
Contested = { r = 0.8, g = 0.6, b = 0.4 },
|
||||
|
||||
None = { r = 1.0, g = 1.0, b = 1.0 },
|
||||
Levels = { r = 0.8, g = 0.6, b = 0.0 },
|
||||
};
|
||||
|
||||
-- Options
|
||||
LevelRange = {
|
||||
["Opts"] = LEVELRANGE_DEFAULT_OPTS,
|
||||
};
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- Map Drawing Functions
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
-- Update the tooltip for a zone
|
||||
local function lUpdateTooltip(zoneName)
|
||||
|
||||
-- Check Toggle
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showLevelRange == false) then
|
||||
LevelRangeTooltip:Hide();
|
||||
return;
|
||||
end
|
||||
|
||||
-- No zone name, no tooltip!
|
||||
if not zoneName or zoneName == "" then
|
||||
LevelRangeTooltip:Hide();
|
||||
return;
|
||||
end
|
||||
|
||||
-- Unused anchor point
|
||||
LevelRangeTooltip:SetOwner(this, "ANCHOR_LEFT");
|
||||
|
||||
-- Determine colour and level range
|
||||
local title = LEVELRANGE_COLORS.Unknown;
|
||||
local normalcol = LEVELRANGE_COLORS.None;
|
||||
local levelscol = LEVELRANGE_COLORS.Levels;
|
||||
|
||||
local levels = nil;
|
||||
local actualside = nil;
|
||||
|
||||
if (LEVELRANGE_RANGES[zoneName]) then
|
||||
local _, faction = UnitFactionGroup("player");
|
||||
local min = LEVELRANGE_RANGES[zoneName][1];
|
||||
local max = LEVELRANGE_RANGES[zoneName][2];
|
||||
local side = LEVELRANGE_RANGES[zoneName][3];
|
||||
|
||||
if (side == lTYPE_CONTESTED) then
|
||||
title = LEVELRANGE_COLORS.Contested;
|
||||
actualside = "Contested";
|
||||
else
|
||||
if (faction == side) then
|
||||
title = LEVELRANGE_COLORS.Friendly;
|
||||
actualside = "Friendly";
|
||||
else
|
||||
title = LEVELRANGE_COLORS.Hostile;
|
||||
actualside = "Hostile";
|
||||
end
|
||||
end
|
||||
levels = string.format(LEVELRANGE_LEVELS, min, max);
|
||||
end
|
||||
|
||||
-- Start making the Tooltip
|
||||
|
||||
-- Show the zone title and add level range if known
|
||||
LevelRangeTooltip:SetText(zoneName, normalcol.r, normalcol.g, normalcol.b);
|
||||
if levels then
|
||||
LevelRangeTooltip:AddLine(levels, levelscol.r, levelscol.g, levelscol.b);
|
||||
end
|
||||
|
||||
-- Show diplomacy if known and if wanted
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showPvP == true) then
|
||||
if actualside then
|
||||
LevelRangeTooltip:AddLine(actualside, title.r, title.g, title.b);
|
||||
end
|
||||
end
|
||||
|
||||
-- Add instance info if wanted
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showInstances == true) then
|
||||
if (LEVELRANGE_INSTANCES[zoneName]) then
|
||||
LevelRangeTooltip:AddLine(" ");
|
||||
LevelRangeTooltip:AddLine(LEVELRANGE_INSTANCESTEXT);
|
||||
getInstanceLevels(zoneName, LevelRangeTooltip);
|
||||
end
|
||||
end
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showRaids == true) then
|
||||
if (LEVELRANGE_RAIDS[zoneName]) then
|
||||
LevelRangeTooltip:AddLine(" ");
|
||||
LevelRangeTooltip:AddLine(LEVELRANGE_RAIDSTEXT);
|
||||
getRaidLevels(zoneName, LevelRangeTooltip);
|
||||
end
|
||||
end
|
||||
|
||||
-- This stuff seems to get reset each time
|
||||
--LevelRangeTooltip:SetBackdropColor(0, 0, 0, 0.8);
|
||||
LevelRangeTooltip:SetBackdropBorderColor(1, 1, 1, 1);
|
||||
LevelRangeTooltip:ClearAllPoints();
|
||||
LevelRangeTooltip:SetPoint("BOTTOMLEFT", "WorldMapDetailFrame", "BOTTOMLEFT", 0, 0);
|
||||
|
||||
-- Only show if there is level information
|
||||
if levels then
|
||||
LevelRangeTooltip:Show();
|
||||
else
|
||||
LevelRangeTooltip:Hide();
|
||||
end
|
||||
|
||||
-- Now go ahead and put the tooltip into the right location
|
||||
LevelRangeTooltip:ClearAllPoints();
|
||||
LevelRangeTooltip:SetPoint("BOTTOMLEFT", WorldMapDetailFrame);
|
||||
|
||||
if (FlightMapFrame) then
|
||||
LevelRangeTooltip:ClearAllPoints();
|
||||
LevelRangeTooltip:SetPoint("BOTTOMRIGHT", "WorldMapDetailFrame",
|
||||
"BOTTOMRIGHT", 0, 0);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-- Last drawn info for tooltip
|
||||
lLR_CurrentZone = nil;
|
||||
lLR_CurrentArea = nil;
|
||||
local lLR_OldUpdate = function() end;
|
||||
|
||||
-- Replacement function to draw all the extra goodies of LevelRange
|
||||
function LevelRange_WorldMapButton_OnUpdate(arg1)
|
||||
lLR_OldUpdate(arg1);
|
||||
local areaName = WorldMapFrame.areaName;
|
||||
local zoneNum = GetCurrentMapZone();
|
||||
|
||||
-- Zone name equivalence map
|
||||
if LEVELRANGE_SUBZONES[areaName] then
|
||||
areaName = LEVELRANGE_SUBZONES[areaName];
|
||||
end
|
||||
|
||||
-- Bail out if nothing has changed
|
||||
if zoneNum == lLR_CurrentZone and areaName == lLR_CurrentArea then
|
||||
return;
|
||||
end
|
||||
|
||||
-- Continent or zone map?
|
||||
if zoneNum == 0 then
|
||||
lUpdateTooltip(areaName);
|
||||
else
|
||||
lUpdateTooltip(nil); -- hide it
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- Print Message Functions
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
function printMSG(msg)
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|CF4FFFF4FLevelRange|r: " .. msg, 1, 1, 1);
|
||||
end
|
||||
|
||||
function printHELPMSG(msg)
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|CF4FF4F4FLevelRange Help|r: " .. msg, 1, 1, 1);
|
||||
end
|
||||
|
||||
function printOPTION(msg, status)
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|CF4FFFF4F" .. msg .. "|r" .. ": " .. status, 1 ,1 ,1);
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- Slash Command Functions
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
-- Command
|
||||
function LevelRange_GetCmd(msg)
|
||||
if msg then
|
||||
local a,b,c=strfind(msg, "(%S+)"); -- contiguous string of non-space characters
|
||||
if a then
|
||||
return c, strsub(msg, b+2);
|
||||
else
|
||||
return "";
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Handler
|
||||
function LevelRange_SlashHandler(msg)
|
||||
local Cmd, SubCmd = LevelRange_GetCmd(msg); -- call to above function
|
||||
if (Cmd == "help") then
|
||||
showHelp();
|
||||
|
||||
elseif (Cmd == "list") then
|
||||
printInstances();
|
||||
|
||||
-- Toggle LevelRange tooltip
|
||||
elseif (Cmd == "toggle") then
|
||||
toggleLevelRange();
|
||||
|
||||
-- Toggle LevelRange showing instances
|
||||
elseif (Cmd == "instances") then
|
||||
toggleInstances();
|
||||
|
||||
elseif (Cmd == "") then
|
||||
if (LevelRangeOptionsFrame:IsVisible()) then
|
||||
HideUIPanel(LevelRangeOptionsFrame);
|
||||
else
|
||||
ShowUIPanel(LevelRangeOptionsFrame);
|
||||
end
|
||||
|
||||
-- Wrong command so show help
|
||||
else
|
||||
showHelp();
|
||||
end
|
||||
end
|
||||
|
||||
function printInstances()
|
||||
return;
|
||||
end
|
||||
|
||||
function showHelp()
|
||||
printHELPMSG(LEVELRANGE_HELP0);
|
||||
printHELPMSG(LEVELRANGE_HELP1);
|
||||
printHELPMSG(LEVELRANGE_HELP2);
|
||||
printHELPMSG(LEVELRANGE_HELP3);
|
||||
printHELPMSG(LEVELRANGE_HELP4);
|
||||
printHELPMSG(LEVELRANGE_HELP5);
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- Toggles
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
function toggleLevelRange()
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showLevelRange == false) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showLevelRange = true;
|
||||
printOPTION(LEVELRANGE_TOGGLESHOW, LEVELRANGE_ENABLED);
|
||||
else
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showLevelRange = false;
|
||||
printOPTION(LEVELRANGE_TOGGLESHOW, LEVELRANGE_DISABLED);
|
||||
end
|
||||
end
|
||||
|
||||
function toggleInstances()
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showInstances == false) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showInstances = true;
|
||||
printOPTION(LEVELRANGE_TOGGLEINSTANCES, LEVELRANGE_ON);
|
||||
else
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showInstances = false;
|
||||
printOPTION(LEVELRANGE_TOGGLEINSTANCES, LEVELRANGE_OFF);
|
||||
end
|
||||
end
|
||||
|
||||
function toggleRaids()
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showRaids == false) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showRaids = true;
|
||||
printOPTION(LEVELRANGE_TOGGLERAIDS, LEVELRANGE_ON);
|
||||
else
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showRaids = false;
|
||||
printOPTION(LEVELRANGE_TOGGLERAIDS, LEVELRANGE_OFF);
|
||||
end
|
||||
end
|
||||
|
||||
function togglePvP()
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showPvP == false) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showPvP = true;
|
||||
printOPTION(LEVELRANGE_TOGGLEPVP, LEVELRANGE_ON);
|
||||
else
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showPvP = false;
|
||||
printOPTION(LEVELRANGE_TOGGLEPVP, LEVELRANGE_OFF);
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- Instance and Raid Information
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
function getInstanceLevels(zoneName, theTooltip)
|
||||
if (LEVELRANGE_INSTANCES[zoneName]) then
|
||||
if (LEVELRANGE_INSTANCES[zoneName][1]) then
|
||||
theTooltip:AddDoubleLine("|CFFcFcFcF" .. LEVELRANGE_INSTANCES[zoneName][1] .. "|r", "|CFFcFcFcF" .. LEVELRANGE_INSTANCES[zoneName][2] .. "|r");
|
||||
end
|
||||
if (LEVELRANGE_INSTANCES[zoneName][3]) then
|
||||
theTooltip:AddDoubleLine("|CFFcFcFcF" .. LEVELRANGE_INSTANCES[zoneName][3] .. "|r", "|CFFcFcFcF" .. LEVELRANGE_INSTANCES[zoneName][4] .. "|r");
|
||||
end
|
||||
if (LEVELRANGE_INSTANCES[zoneName][5]) then
|
||||
theTooltip:AddDoubleLine("|CFFcFcFcF" .. LEVELRANGE_INSTANCES[zoneName][5] .. "|r", "|CFFcFcFcF" .. LEVELRANGE_INSTANCES[zoneName][6] .. "|r");
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function getRaidLevels(zoneName, theTooltip)
|
||||
if (LEVELRANGE_RAIDS[zoneName]) then
|
||||
if (LEVELRANGE_RAIDS[zoneName][1]) then
|
||||
theTooltip:AddDoubleLine("|CFFcFcFcF" .. LEVELRANGE_RAIDS[zoneName][1] .. "|r", "|CFFcFcFcF" .. LEVELRANGE_RAIDS[zoneName][2] .. "|r");
|
||||
end
|
||||
if (LEVELRANGE_RAIDS[zoneName][3]) then
|
||||
theTooltip:AddDoubleLine("|CFFcFcFcF" .. LEVELRANGE_RAIDS[zoneName][3] .. "|r", "|CFFcFcFcF" .. LEVELRANGE_RAIDS[zoneName][4] .. "|r");
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- Options Frame
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
-- OnShow of options frame
|
||||
function LevelRangeOptionsFrame_OnShow()
|
||||
-- Set localised strings
|
||||
LevelRangeOptionsFrameClose:SetText(LEVELRANGE_OPTIONS_CLOSE);
|
||||
LevelRangeOptionsFrameTitle:SetText(LEVELRANGE_OPTIONS_TITLE);
|
||||
|
||||
-- Set up options from localised data
|
||||
local base = "LevelRangeOptionsFrame"
|
||||
for optid, option in pairs(LEVELRANGE_OPTIONS) do
|
||||
local name = base .. "Opt" .. optid;
|
||||
local button = getglobal(name);
|
||||
local label = getglobal(name .. "Text");
|
||||
OptionsFrame_EnableCheckBox(button, 1, LevelRange.Opts[option.option]);
|
||||
|
||||
-- Simple stuff
|
||||
label:SetText(option.label);
|
||||
button.tooltipText = option.tooltip;
|
||||
button.option = option.option;
|
||||
button.children = option.children or {};
|
||||
end
|
||||
|
||||
for optid, option in pairs(LEVELRANGE_OPTIONS) do
|
||||
-- Enable/disable any children
|
||||
for _, child in option.children or {} do
|
||||
local other = getglobal(base .. "Opt" .. child);
|
||||
if other then
|
||||
if LevelRange.Opts[option.option] then
|
||||
OptionsFrame_EnableCheckBox(other, 1,
|
||||
LevelRange.Opts[LEVELRANGE_OPTIONS[child].option]);
|
||||
else
|
||||
OptionsFrame_DisableCheckBox(other);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
loadSettings();
|
||||
end
|
||||
|
||||
-- OnHide of options frame
|
||||
function LevelRangeOptionsFrame_OnHide()
|
||||
return;
|
||||
end
|
||||
|
||||
-- OnClick of options button
|
||||
function LevelRangeOptionsCheckButton_OnClick()
|
||||
|
||||
if (this.option == "showLevelRange") then
|
||||
toggleLevelRange(this);
|
||||
elseif (this.option == "showInstances") then
|
||||
toggleInstances();
|
||||
elseif (this.option == "showRaids") then
|
||||
toggleRaids();
|
||||
elseif (this.option == "showPvP") then
|
||||
togglePvP();
|
||||
end
|
||||
|
||||
if (this:GetChecked()) then
|
||||
LevelRange.Opts[this.option] = true;
|
||||
else
|
||||
LevelRange.Opts[this.option] = false;
|
||||
end
|
||||
|
||||
local base = "LevelRangeOptionsFrame";
|
||||
for _, child in this.children do
|
||||
local other = getglobal(base .. "Opt" .. child);
|
||||
if other then
|
||||
if LevelRange.Opts[this.option] then
|
||||
OptionsFrame_EnableCheckBox(other, 1,
|
||||
LevelRange.Opts[LEVELRANGE_OPTIONS[child].option]);
|
||||
else
|
||||
OptionsFrame_DisableCheckBox(other);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Load Settings
|
||||
function loadSettings()
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showLevelRange == true) then
|
||||
local optionButton = getglobal("LevelRangeOptionsFrame" .. "Opt1");
|
||||
|
||||
optionButton:SetChecked(true);
|
||||
LevelRange.Opts["showLevelRange"] = true;
|
||||
|
||||
elseif (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showLevelRange == false) then
|
||||
local optionButton = getglobal("LevelRangeOptionsFrame" .. "Opt1");
|
||||
|
||||
optionButton:SetChecked(false);
|
||||
LevelRange.Opts["showLevelRange"] = false;
|
||||
end
|
||||
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showInstances == true) then
|
||||
local optionButton = getglobal("LevelRangeOptionsFrame" .. "Opt2");
|
||||
|
||||
optionButton:SetChecked(true);
|
||||
LevelRange.Opts["showInstances"] = true;
|
||||
|
||||
elseif (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showInstances == false) then
|
||||
local optionButton = getglobal("LevelRangeOptionsFrame" .. "Opt2");
|
||||
|
||||
optionButton:SetChecked(false);
|
||||
LevelRange.Opts["showInstances"] = false;
|
||||
end
|
||||
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showRaids == true) then
|
||||
local optionButton = getglobal("LevelRangeOptionsFrame" .. "Opt3");
|
||||
|
||||
optionButton:SetChecked(true);
|
||||
LevelRange.Opts["showRaids"] = true;
|
||||
|
||||
elseif (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showRaids == false) then
|
||||
local optionButton = getglobal("LevelRangeOptionsFrame" .. "Opt3");
|
||||
|
||||
optionButton:SetChecked(false);
|
||||
LevelRange.Opts["showRaids"] = false;
|
||||
end
|
||||
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showPvP == true) then
|
||||
local optionButton = getglobal("LevelRangeOptionsFrame" .. "Opt4");
|
||||
|
||||
optionButton:SetChecked(true);
|
||||
LevelRange.Opts["showPvP"] = true;
|
||||
|
||||
elseif (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showPvP == false) then
|
||||
local optionButton = getglobal("LevelRangeOptionsFrame" .. "Opt4");
|
||||
|
||||
optionButton:SetChecked(false);
|
||||
LevelRange.Opts["showPvP"] = false;
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------
|
||||
-- Initialize Functions
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
function LevelRange_OnLoad()
|
||||
-- Override the world map function
|
||||
lLR_OldUpdate = WorldMapButton_OnUpdate;
|
||||
WorldMapButton_OnUpdate = LevelRange_WorldMapButton_OnUpdate;
|
||||
|
||||
-- Setup slash commands
|
||||
SlashCmdList["LEVELRANGE"] = LevelRange_SlashHandler;
|
||||
SLASH_LEVELRANGE1 = "/" .. LEVELRANGE_SLASH1;
|
||||
SLASH_LEVELRANGE2 = "/" .. LEVELRANGE_SLASH2;
|
||||
|
||||
-- Reload UI Commands
|
||||
SlashCmdList["RELOADUI"] = ReloadUI;
|
||||
SLASH_RELOADUI1 = "/rui";
|
||||
SLASH_RELOADUI2 = "/reloadui";
|
||||
|
||||
-- LevelRange is loaded
|
||||
printMSG(LEVELRANGE_LOADEDPREFIX .. LEVELRANGE_VERSION .. LEVELRANGE_LOADEDSUFFIX)
|
||||
this:RegisterEvent("ADDON_LOADED");
|
||||
this:RegisterEvent("VARIABLES_LOADED");
|
||||
this:RegisterEvent("PLAYER_ENTERING_WORLD");
|
||||
end
|
||||
|
||||
function LevelRange_Initialize()
|
||||
-- Make sure LevelRangeSettings is ready
|
||||
if (not LevelRangeSettings) then
|
||||
LevelRangeSettings = { };
|
||||
end
|
||||
|
||||
if (not LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME]) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME] = { };
|
||||
end
|
||||
|
||||
|
||||
-- LevelRange Toggle
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showLevelRange == nil) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showLevelRange = DEFAULT_LEVELRANGE_SHOW;
|
||||
end
|
||||
|
||||
-- Instances Toggle
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showInstances == nil) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showInstances = DEFAULT_LEVELRANGE_SHOWINSTANCE;
|
||||
end
|
||||
|
||||
-- Raids Toggle
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showRaids == nil) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showRaids = DEFAULT_LEVELRANGE_SHOWRAIDS;
|
||||
end
|
||||
|
||||
-- PvP Toggle
|
||||
if (LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showPvP == nil) then
|
||||
LevelRangeSettings[LEVELRANGE_REALMPLAYERNAME].showPvP = DEFAULT_LEVELRANGE_SHOWPVP;
|
||||
end
|
||||
end
|
||||
|
||||
function LevelRange_OnEvent(event)
|
||||
if (event == "VARIABLES_LOADED") then
|
||||
LevelRange_Initialize();
|
||||
|
||||
-- Register LevelRange with myAddons
|
||||
if (myAddOnsFrame_Register) then
|
||||
myAddOnsFrame_Register(Details, Help);
|
||||
end
|
||||
end
|
||||
end
|
||||
+189
@@ -0,0 +1,189 @@
|
||||
<?xml-stylesheet type="text/xsl" href="/css/wowui.xsl"?>
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
|
||||
|
||||
<Script file="localisation.lua"/>
|
||||
<Script file="LevelRange.lua"/>
|
||||
|
||||
<!-- Hook OnLoad and OnEvent -->
|
||||
<Frame name="LevelRangeFrame" parent="UIParent" hidden="true">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
LevelRange_OnLoad();
|
||||
</OnLoad>
|
||||
<OnEvent>
|
||||
LevelRange_OnEvent(event);
|
||||
</OnEvent>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
<!-- Create a new tooltip for this AddOn, so the original WorldMap tip still works -->
|
||||
<GameTooltip name="LevelRangeTooltip" parent="WorldMapFrame" hidden="true"
|
||||
frameStrata="TOOLTIP" inherits="GameTooltipTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(
|
||||
TOOLTIP_DEFAULT_COLOR.r,
|
||||
TOOLTIP_DEFAULT_COLOR.g,
|
||||
TOOLTIP_DEFAULT_COLOR.b,
|
||||
0
|
||||
);
|
||||
this:SetBackdropColor(
|
||||
TOOLTIP_DEFAULT_BACKGROUND_COLOR.r,
|
||||
TOOLTIP_DEFAULT_BACKGROUND_COLOR.g,
|
||||
TOOLTIP_DEFAULT_BACKGROUND_COLOR.b,
|
||||
0
|
||||
);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
</GameTooltip>
|
||||
<!-- Configuration checkbox template -->
|
||||
<CheckButton name="LevelRangeOptionsCheckButtonTemplate"
|
||||
inherits="UICheckButtonTemplate" virtual="true">
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
if (this:GetChecked()) then
|
||||
PlaySound("igMainMenuOptionCheckBoxOff");
|
||||
else
|
||||
PlaySound("igMainMenuOptionCheckBoxOn");
|
||||
end
|
||||
LevelRangeOptionsCheckButton_OnClick();
|
||||
</OnClick>
|
||||
<OnEnter>
|
||||
if (this.tooltipText) then
|
||||
GameTooltip_AddNewbieTip(this.tooltipText, 1, 1, 1);
|
||||
end
|
||||
</OnEnter>
|
||||
<OnLeave>
|
||||
GameTooltip:Hide();
|
||||
</OnLeave>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<!-- Configuration window -->
|
||||
<Frame name="LevelRangeOptionsFrame" toplevel="true" frameStrata="DIALOG"
|
||||
movable="true" enableMouse="true" hidden="true" parent="UIParent"
|
||||
enableKeyboard="true">
|
||||
<Size>
|
||||
<AbsDimension x="350" y="195"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER"/>
|
||||
</Anchors>
|
||||
<Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background"
|
||||
edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true">
|
||||
<BackgroundInsets>
|
||||
<AbsInset left="11" right="12" top="12" bottom="11"/>
|
||||
</BackgroundInsets>
|
||||
<TileSize>
|
||||
<AbsValue val="32"/>
|
||||
</TileSize>
|
||||
<EdgeSize>
|
||||
<AbsValue val="32"/>
|
||||
</EdgeSize>
|
||||
</Backdrop>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<Texture name="LevelRangeOptionsFrameHeader"
|
||||
file="Interface\DialogFrame\UI-DialogBox-Header">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="64"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="12"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Texture>
|
||||
<FontString inherits="GameFontNormal" name="LevelRangeOptionsFrameTitle"
|
||||
text="LevelRange Options">
|
||||
<Anchors>
|
||||
<Anchor point="TOP" relativeTo="LevelRangeOptionsFrameHeader">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-14"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Frames>
|
||||
|
||||
<!-- Option #1; row 1, column 1 -->
|
||||
<CheckButton name="$parentOpt1"
|
||||
inherits="LevelRangeOptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-25"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
|
||||
<!-- Option #2; row 2, column 1 -->
|
||||
<CheckButton name="$parentOpt2"
|
||||
inherits="LevelRangeOptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="45" y="-55"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
|
||||
<!-- Option #3; row 3, column 1 -->
|
||||
<CheckButton name="$parentOpt3"
|
||||
inherits="LevelRangeOptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="45" y="-85"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
|
||||
<!-- Option #4; row 4, column 1 -->
|
||||
<CheckButton name="$parentOpt4"
|
||||
inherits="LevelRangeOptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="45" y="-115"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
|
||||
<Button name="LevelRangeOptionsFrameClose"
|
||||
inherits="OptionsButtonTemplate" text="Close">
|
||||
<Anchors>
|
||||
<Anchor point="BOTTOM">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="16"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
PlaySound("gsTitleOptionOK");
|
||||
HideUIPanel(LevelRangeOptionsFrame);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
</Frames>
|
||||
<Scripts>
|
||||
<OnShow>
|
||||
LevelRangeOptionsFrame_OnShow();
|
||||
</OnShow>
|
||||
<OnHide>
|
||||
LevelRangeOptionsFrame_OnHide();
|
||||
</OnHide>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
</Ui>
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
--
|
||||
-- LevelRange :: Readme
|
||||
-- Copyright (c) 2006 Philip Hughes (Bull3t)
|
||||
--
|
||||
|
||||
----------------------
|
||||
Details
|
||||
----------------------
|
||||
Title: LevelRange
|
||||
Interface: 11200
|
||||
Version: 1.2.0
|
||||
|
||||
Author: Bull3t, Tenyar97
|
||||
Addon Website: https://github.com/Tenyar97/LevelRange-Turtle
|
||||
|
||||
Current Features:
|
||||
[*] Shows zone level ranges, diplomacy, raids and instances on World Map.
|
||||
[*] Has two slash commands for easily reloading the User Interface.
|
||||
|
||||
|
||||
----------------------
|
||||
Change Log
|
||||
----------------------
|
||||
2.0.0 - Release
|
||||
[*] Ported to Turtle-Wow
|
||||
[*] Added Zone: Gillijim's Isle
|
||||
[*] Added Zone: Lapidis Isle
|
||||
[*] Added Zone: Tel'Abim
|
||||
|
||||
[*] Added Dungeon: The Crescent Grove
|
||||
[*] Added Dungeon: Hateforge Quarry
|
||||
[*] Added Dungeon: The Karazhan Crypt
|
||||
[*] Added Dungeon: The Stormwind Vaults
|
||||
[*] Added Dungeon: Caverns of Time: The Black Morass
|
||||
|
||||
[*] Added Raid: The Emerald Sanctum
|
||||
[*] Added Raid: Lower Karazhan Halls
|
||||
|
||||
|
||||
1.2.0 - Update
|
||||
[*] Added the showing of raids and raid level ranges.
|
||||
[*] Added an options frame, you can now specify what you want on and off, access with "/lr" or "/levelrange".
|
||||
[*] Added myAddons support, LevelRange will now show in myAddons correctly.
|
||||
[*] Added a small help system.
|
||||
[*] Added ReloadUI shortcut slash commands, this shortcut is on many addons, and is very useful, reload the UI with "/rui" or "/reloadui".
|
||||
[*] Changed the way LevelRange shows instance level ranges.
|
||||
[*] Fixed a bug with FlightMap collision, if FlightMap is enabled, LevelRange will be shown on the right, instead of the left.
|
||||
|
||||
1.1.0 - Update
|
||||
[*] Added the showing of instances and instance level ranges.
|
||||
[*] Added slash commands, but currently they do nothing.
|
||||
|
||||
1.0.0 - Release
|
||||
[*] Public release version.
|
||||
Reference in New Issue
Block a user