Compare with Previous | Blame | View Log
--[[ZoneLevel--]] --[[Soulofsin_007--]] --[[6.0.5--]] local zoneLevelShort; local zoneLevelLow; local zoneLevelHigh; local zone; -- Load/initialization function function ZoneLevel_OnLoad() -- Register for events ZoneLevelBase:RegisterEvent("MINIMAP_ZONE_CHANGED"); ZoneLevelBase:RegisterEvent("VARIABLES_LOADED"); ZoneLevelBase:RegisterEvent("ZONE_CHANGED_NEW_AREA"); ZoneLevelBase:RegisterEvent("PLAYER_LEVEL_UP"); DEFAULT_CHAT_FRAME:AddMessage("Welcome to ZoneLevel 6.0.5. Please type /zlvl for help.") DEFAULT_CHAT_FRAME:AddMessage("If you find any issue, please email me at soulofsin007@gmail.com -- Thank you!") SLASH_ZoneLevel1 = "/zonelevel"; SLASH_ZoneLevel2 = "/zlvl"; SlashCmdList["ZoneLevel"] = ZoneLevel_SlashHandler; SLASH_ZoneLevelInfo1 = "/zonelevelinfo"; SLASH_ZoneLevelInfo2 = "/zinfo"; SlashCmdList["ZoneLevelInfo"] = ZoneLevel_InfoHandler; SLASH_ZoneLevelLDB1 = "/zonelevelldb"; SLASH_ZoneLevelLDB2 = "/zlvlldb"; SlashCmdList["ZoneLevelLDB"] = ZoneLevel_LDBHandler; zoneLevelOnMap = false; zoneLevelShowIcon = true; zoneLevelLocked = false; zonelevelcords = false; zonelevellevel = false; zonelevelfps = false; zonelevelhonor = false; zonelevelhonorsession = false; zlvlmaptext = false; tankcap = false; -- Put in for personal use. zlvlldbfps = false; -- ldb displays zlvlldb = false; -- LDB functionality zlvlexpbar = true; zlvlrepbartext = false; zlvlrepbartogo = false; -- Construct tables to hold level information for each zone zoneLevelLow={}; zoneLevelHigh={}; zoneLevelShort={}; ZoneLevel_MakeTables(); end function ZoneLevel_LDBHandler(arg1) if(arg1 == "help") or (arg1 == "") then DEFAULT_CHAT_FRAME:AddMessage("fps - adds fps to displays.") elseif(arg1 == "fps") then if(zlvlldbfps == true) then DEFAULT_CHAT_FRAME:AddMessage("Removing it from LDB displays.") zlvlldbfps = false; elseif(zlvlldbfps == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing FPS instead of ZoneLevel on LDB displays.") zlvlldbfps = true; end else DEFAULT_CHAT_FRAME:AddMessage("Not Valid") end end function ZoneLevel_ShowTooltip() GameTooltip:SetOwner(ZoneLevelBase, "ANCHOR_BOTTOMLEFT"); if(ZoneLevel_ZoneIsValid(GetRealZoneText())) then ZoneLevel_SetTooltipText(); else GameTooltip:AddLine(ZONELEVEL_ZONENOTFOUNDTOOLTIP, 1.0, 1.0, 1.0); end GameTooltip:Show(); end if IsAddOnLoaded("Carousel") or IsAddOnLoaded("Titan Panel") or IsAddOnLoaded("FuBar") or IsAddOnLoaded("StatBlockCore") or IsAddOnLoaded("Wraith") or IsAddOnLoaded("StatBlockCore") or IsAddOnLoaded("cargoShip") or IsAddOnLoaded("Fortress") then local UPDATEPERIOD, elapsed = 0.5, 0 local ldb = LibStub:GetLibrary("LibDataBroker-1.1") local dataobj = ldb:NewDataObject("ZoneLevel", {type = "data source", text = "N/A"}) local f = CreateFrame("frame") f:SetScript("OnUpdate", function(self, elap) elapsed = elapsed + elap if elapsed < UPDATEPERIOD then return end local fps = GetFramerate(); elapsed = 0 local low = zoneLevelLow[zone]; local high = zoneLevelHigh[zone]; capZone = GetRealZoneText(); zone = string.lower(capZone); if(capZone == "Silvermoon City") then dataobj.text = string.format(capZone.." ".."Town") elseif(capZone == "Orgrimmar") then dataobj.text = string.format(capZone.." ".."Town") elseif(capZone == "Thunderbluff") then dataobj.text = string.format(capZone.." ".."Town") elseif(capZone == "Undercity") then dataobj.text = string.format(capZone.." ".."Town") elseif(capZone == "The Exodar") then dataobj.text = string.format(capZone.." ".."Town") elseif(capZone == "Darnassus") then dataobj.text = string.format(capZone.." ".."Town") elseif(capZone == "Stormwind") then dataobj.text = string.format(capZone.." ".."Town") elseif(capZone == "Ironforge") then dataobj.text = string.format(capZone.." ".."Town") elseif(zlvlldbfps == true) then dataobj.text = string.format("%.1f FPS", fps) else dataobj.text = string.format(capZone.." "..low.."-"..high) end end) function dataobj:OnTooltipShow() local low = zoneLevelLow[zone]; local high = zoneLevelHigh[zone]; capZone = GetRealZoneText(); zone = string.lower(capZone); local subzone = GetSubZoneText() local xp = UnitXP("player") local xpmax = UnitXPMax("player") self:AddLine("ZoneLevel") if(capZone == "Silvermoon City") then self:AddLine(capZone.." ".."Town") elseif(capZone == "Orgrimmar") then self:AddLine(capZone.." ".."Town") elseif(capZone == "Thunderbluff") then self:AddLine(capZone.." ".."Town") elseif(capZone == "Undercity") then self:AddLine(capZone.." ".."Town") elseif(capZone == "The Exodar") then self:AddLine(capZone.." ".."Town") elseif(capZone == "Darnassus") then self:AddLine(capZone.." ".."Town") elseif(capZone == "Stormwind") then self:AddLine(capZone.." ".."Town") elseif(capZone == "Ironforge") then self:AddLine(capZone.." ".."Town") else self:AddLine(capZone.." "..low.."-"..high) self:AddLine(subzone) self:AddLine("Current XP "..xp) self:AddLine("Max XP "..xpmax) self:AddLine("Till Level "..xpmax-xp) self:AddLine(rating) end end function dataobj:OnEnter() GameTooltip:SetOwner(self, "ANCHOR_NONE") GameTooltip:SetPoint("TOPLEFT", self, "BOTTOMLEFT") GameTooltip:ClearLines() dataobj.OnTooltipShow(GameTooltip) GameTooltip:Show() end function dataobj:OnLeave() GameTooltip:Hide() end end function ZoneLevel_StartDrag() end -- Slash command handler for ZoneLevel function ZoneLevel_SlashHandler(arg1) zone = string.lower(GetRealZoneText()); if(arg1 == "") or (arg1 == "help") then DEFAULT_CHAT_FRAME:AddMessage("ZoneLevel Help:") DEFAULT_CHAT_FRAME:AddMessage("/zlvl maptext -- turns on/off the text on the world map.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl minimap -- adds the level of the zone next to the zone name on the minimap.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl icon -- will show or hide the icon.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl lock -- will lock or unlock the icon.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl fps -- adds fps to icon.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl honor -- adds honor to icon.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl cords -- adds cords to icon.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl level -- adds level to icon.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl config -- opens the config window.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl honor session -- adds session info to icon.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl exptogo -- toggles the display of how much more exp you have left to go.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl repbartext -- toggles the display of your current standing with the rep that you are watching.") DEFAULT_CHAT_FRAME:AddMessage("/zlvl rebbartogo -- toggles the display of how much more rep you need to gain your next rep up.") --DEFAULT_CHAT_FRAME:AddMessage(ZONELEVEL_HELP_HEADER..ZONELEVEL_HELP_MINIMAP..ZONELEVEL_HELP_MAPCMD.. --ZONELEVEL_HELP_ICON..ZONELEVEL_HELP_ICOCMD..ZONELEVEL_HELP_CMD); elseif(arg1 == "minimap") or (arg1 == "mini map") then if(zoneLevelOnMap) then MinimapZoneText:SetText(GetMinimapZoneText()); zoneLevelOnMap = false; else if(ZoneLevel_ZoneIsValid(zone)) then if(zoneLevelLow[zone] < 1) then txt = "City"; else txt = "("..zoneLevelLow[zone].." - "..zoneLevelHigh[zone]..") "; end else txt = "N/A" end MinimapZoneText:SetText(txt..GetMinimapZoneText()); zoneLevelOnMap = true; end elseif(arg1 == "icon") then if(zoneLevelShowIcon) then ZoneLevelBase:Hide(); zoneLevelShowIcon = false; DEFAULT_CHAT_FRAME:AddMessage("Now hiding icon.") else ZoneLevelBase:Show(); zoneLevelShowIcon = true; DEFAULT_CHAT_FRAME:AddMessage("Now showing icon.") end elseif(arg1 == "config") then if(MyFrame:IsShown()) then MyFrame:Hide() else MyFrame:Show() end elseif(arg1 == "0") or (arg1 == "reload") or (arg1 == "r") or (arg1 == "1") then ReloadUI(); elseif(arg1 == "contribute") or (arg1 == "con") or (arg == "c") then DEFAULT_CHAT_FRAME:AddMessage("If you wish to donate, we welcome it, we do not require donations. Please contact me by email soulofsin007@gmail.com") elseif(arg1 == "lock") then if(zoneLevelLocked == true) then DEFAULT_CHAT_FRAME:AddMessage("Unlocking the icon.") zoneLevelLocked = false; ZoneLevelBase:GetTitleRegion():SetAllPoints(ZoneLevelBase); elseif(zoneLevelLocked == false) then DEFAULT_CHAT_FRAME:AddMessage("Locking the icon.") zoneLevelLocked = true; ZoneLevelBase:GetTitleRegion():ClearAllPoints() ZoneLevelBase:GetTitleRegion():SetPoint("TOPLEFT", frame, "TOPLEFT", 0,0 ) ZoneLevelBase:GetTitleRegion():SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", 0,0 ) end elseif(arg1 == "cords") then if(zonelevelcords == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding your cords on icon. Need to reload UI for change to take effect. Reload Now? /zlvl 1.") zonelevelcords = false; elseif(zonelevelcords == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing Cords.") zonelevelcords = true; end elseif(arg1 == "level") then if(zonelevellevel == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding your level on icon. Need to reload UI for change to take effect. /zlvl 1") zonelevellevel = false; elseif(zonelevellevel == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing your level on icon.") zonelevellevel = true; end elseif(arg1 == "camera") then DEFAULT_CHAT_FRAME:AddMessage("Setting camera max view distence.") SetCVar("cameraDistanceMax",50) elseif(arg1 == "fps") then if(zonelevelfps == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding fps from icon. Need to reload UI for change to take effect. /zlvl 1") zonelevelfps = false; elseif(zonelevelfps == false) then DEFAULT_CHAT_FRAME:AddMessage("Adding FPS to icon.") zonelevelfps = true; end elseif(arg1 == "honor") then if(zonelevelhonor == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding honor from icon. Need reload UI for change to take effect. /zlvl 1") zonelevelhonor = false; elseif(zonelevelhonor == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing honor on icon.") zonelevelhonor = true; end elseif(arg1 == "honor session") then if(zonelevelhonorsession == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding your today honor/kills info from icon. Need reload UI for change to take effect. /zlvl 1.") zonelevelhonorsession = false; elseif(zonelevelhonorsession == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing your today honor/kills info.") zonelevelhonorsession = true; end elseif(arg1 == "tankcap") then -- in for personal use. tankcap = true; elseif(arg1 == "maptext") then if(zlvlmaptext == true) then DEFAULT_CHAT_FRAME:AddMessage("Removing text from world map. Please do /zlvl 1 to reload ui.") zlvlmaptext = false; elseif(zlvlmaptext == false) then DEFAULT_CHAT_FRAME:AddMessage("Now showing text on world map.") zlvlmaptext = true; end elseif(arg1 == "exptogo") then if(zlvlexpbar == true) then DEFAULT_CHAT_FRAME:AddMessage("No longer showing needed exp on bar.") zlvlexpbar = false; elseif(zlvlexpbar == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing need exp to level on bar.") zlvlexpbar = true; end elseif(arg1 == "repbartext") then if(zlvlrepbartext == true) then DEFAULT_CHAT_FRAME:AddMessage("No longer showing current rep status name on bar.") zlvlrepbartext = false; elseif(zlvlrepbartext == false) then DEFAULT_CHAT_FRAME:AddMessage("Now showing rep status name on bar.") zlvlrepbartext = true; end elseif(arg1 == "repbartogo") then if(zlvlrepbartogo == true) then DEFAULT_CHAT_FRAME:AddMessage("No longer showing how much more rep you need to rep up.") zlvlrepbartogo = false; elseif(zlvlrepbartogo == false) then DEFAULT_CHAT_FRAME:AddMessage("Toggling display of how much more rep you need to rep up.") zlvlrepbartogo = true; end elseif(arg1 == "reset") then DEFAULT_CHAT_FRAME:AddMessage("Reseting icon. Will require reload of UI.") ZoneLevelBase:SetPoint("CENTER",0,0) ZoneLevelBase:ClearAllPoints() zoneLevelLocked = false; else DEFAULT_CHAT_FRAME:AddMessage(string.format(ZONELEVEL_BADOPT, arg1)); end end function ZoneLevel_InfoHandler(arg1) local lower = string.lower(arg1); capZone = ZoneLevel_TranslateShort(lower); if(zoneLevelLow[lower]) then zone = lower; else zone = string.lower(capZone); end if(ZoneLevel_ZoneIsValid(zone)) then if(ZoneLevel_ZoneIsTiered(zone)) then low, high = ZoneLevel_HandleTiering(zone); txt = capZone.." "..(string.format(ZONELEVEL_ZONETEXT, low, high)); else if(zoneLevelLow[zone] < 1) then txt = capZone.." "..ZONELEVEL_CITYTEXT; else txt = capZone.." "..(string.format(ZONELEVEL_ZONETEXT, zoneLevelLow[zone], zoneLevelHigh[zone])); end --[[ Commented out for possible color coding in the future local mid = (low+high)/2; if(high < level-5) then -- Grey icon GameTooltip:AddLine(zone, 2.0, 2.0, 2.0); elseif(low > level+5) then -- Red icon GameTooltip:AddLine(zone, 1.0, 0.0, 0.0); elseif(mid < level) then -- Green icon GameTooltip:AddLine(zone, 0.0, 1.0, 0.0); else -- Yellow icon GameTooltip:AddLine(zone, 1.0, 1.0, 0.0); end ]]-- end else -- Zone not found txt = ZONELEVEL_ZONENOTFOUNDTOOLTIP; end DEFAULT_CHAT_FRAME:AddMessage(txt); end -- Event handler for ZoneLevel function ZoneLevel_OnEvent() if(event == "VARIABLES_LOADED") then zone = string.lower(GetRealZoneText()); if(zoneLevelShowIcon) then ZoneLevelBase:Show(); else ZoneLevelBase:Hide(); end if(not zoneLevelOnMap) then MinimapZoneText:SetText(GetMinimapZoneText()); end if(zoneLevelLocked) then ZoneLevelBase:GetTitleRegion():ClearAllPoints() ZoneLevelBase:GetTitleRegion():SetPoint("TOPLEFT", frame, "TOPLEFT", 0,0 ) ZoneLevelBase:GetTitleRegion():SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", 0,0 ) else ZoneLevelBase:GetTitleRegion():SetAllPoints(ZoneLevelBase); end else -- zone = string.lower(GetRealZoneText()); local level = UnitLevel("player"); if(ZoneLevel_ZoneIsValid(zone)) then local low = zoneLevelLow[zone]; local high = zoneLevelHigh[zone]; if(zoneLevelOnMap) then if(zoneLevelLow[zone] < 1) then txt = "("..ZONELEVEL_CITYMINIMAP..") "; else txt = "("..zoneLevelLow[zone].." - "..zoneLevelHigh[zone]..") "; end MinimapZoneText:SetText(txt..GetMinimapZoneText()); end local mid = (low+high)/2; if(zoneLevelLow[zone] < 1) then ZoneLevelGrey:Hide(); ZoneLevelGreen:Hide(); ZoneLevelYellow:Hide(); ZoneLevelRed:Hide(); ZoneLevelCity:Show(); ZoneLevelBad:Hide(); elseif(high < level-5) then -- Grey icon ZoneLevelGrey:Show(); ZoneLevelGreen:Hide(); ZoneLevelYellow:Hide(); ZoneLevelRed:Hide(); ZoneLevelCity:Hide(); ZoneLevelBad:Hide(); elseif(low > level+5) then -- Red icon ZoneLevelGrey:Hide(); ZoneLevelGreen:Hide(); ZoneLevelYellow:Hide(); ZoneLevelRed:Show(); ZoneLevelCity:Hide(); ZoneLevelBad:Hide(); elseif(mid < level) then -- Green icon ZoneLevelGrey:Hide(); ZoneLevelGreen:Show(); ZoneLevelYellow:Hide(); ZoneLevelRed:Hide(); ZoneLevelCity:Hide(); ZoneLevelBad:Hide(); else -- Yellow icon ZoneLevelGrey:Hide(); ZoneLevelGreen:Hide(); ZoneLevelYellow:Show(); ZoneLevelRed:Hide(); ZoneLevelCity:Hide(); ZoneLevelBad:Hide(); end else if(event == "ZONE_CHANGED_NEW_AREA") then DEFAULT_CHAT_FRAME:AddMessage(string.format(ZONELEVEL_ZONENOTFOUND, zone)); ZoneLevelGrey:Hide(); ZoneLevelGreen:Hide(); ZoneLevelYellow:Hide(); ZoneLevelRed:Hide(); ZoneLevelCity:Hide(); ZoneLevelBad:Show(); end end if(zoneLevelShowIcon == false) then ZoneLevelBase:Hide(); end end end local function round(num, idp) local mult = 10 ^ (idp or 0); return math.floor(num * mult + 0.5) / mult; end function ZoneLevel_SetTooltipText() local level = UnitLevel("player"); capZone = GetRealZoneText(); zone = string.lower(capZone); local x, y = GetPlayerMapPosition("player"); local text; local framerate = GetFramerate(); local xp = UnitXP("player") local xpmax = UnitXPMax("player") local TodayKills, TodayHonor = GetPVPSessionStats(); local low; local high; if(x == 0 and y == 0)then text = "N/A"; else x = round(x * 100, 2); y = round(y * 100, 2); text = string.format("%.2f, %.2f", x, y); end local low = zoneLevelLow[zone]; local high = zoneLevelHigh[zone]; local txt; if(ZoneLevel_ZoneIsValid(zone)) then if(ZoneLevel_ZoneIsTiered(zone)) then low, high = ZoneLevel_HandleTiering(zone); else if(zoneLevelLow[zone] < 1) then txt = ZONELEVEL_CITYTEXT; else txt = string.format(ZONELEVEL_ZONETEXT, zoneLevelLow[zone], zoneLevelHigh[zone]); if(level == 80) then elseif(level <79) then txt6 = string.format("Your Experience: "..xp.."/"..xpmax) txt7 = string.format("Needed to level: "..floor(xpmax-xp)) end if(zonelevellevel == true) then txt2 = string.format("Your Level: ")..level end if(zonelevelcords == true) then txt3 = string.format("Your Location: "..text); end if(zonelevelfps == true) then txt4 = string.format("Your FPS:"..floor(framerate)) end if(zonelevelhonor == true) then --txt5 = string.format("Your current honor: "..points) end if(zonelevelhonorsession == true) then txt9 = string.format("Honor Kills Today: "..TodayKills) txt10 = string.format("Honor Points Today: "..TodayHonor) end if(tankcap == true) then txt11 = string.format("Unhittable at 102.4%% - you have %.2f%%", GetDodgeChance() + GetBlockChance() + GetParryChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))) end if(zonelevelinbg == true) then txt12 = string.format(capZone) txt9 = string.format("Honor Kills Today: "..TodayKills) txt10 = string.format("Honor Points Today: "..TodayHonor) txt5 = string.format("Your current honor: "..points) end end local mid = (low+high)/2; if(high < level-5) then -- Grey text GameTooltip:AddLine(capZone, 2.0, 2.0, 2.0); elseif(low > level+5) then -- Red text GameTooltip:AddLine(capZone, 1.0, 0.0, 0.0); elseif(mid < level) then -- Green text GameTooltip:AddLine(capZone, 0.0, 1.0, 0.0); else -- Yellow icon GameTooltip:AddLine(capZone, 1.0, 1.0, 0.0); end end else -- Zone not found txt = ZONELEVEL_ZONENOTFOUNDTOOLTIP; end GameTooltip:AddLine(txt, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt2, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt3, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt4, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt5, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt6, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt7, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt8, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt9, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt10, 1.0, 1.0, 1.0); GameTooltip:AddLine(txt11, 1.0, 1.0, 1.0); end -- Returns true if zone is in table, false otherwise function ZoneLevel_ZoneIsValid(zone) local retVal; if(zone == nil or zoneLevelLow[string.lower(zone)] == nil) then retVal = false; else retVal = true; end return retVal; end function ZoneLevel_TranslateShort(zone) if(zone == nil) then return nil; end if(zoneLevelShort[zone] == nil) then return zone; else return zoneLevelShort[zone]; end end -- Returns true is the zone is segregated by level ranges function ZoneLevel_ZoneIsTiered(zone) local low; local high; if (zone == nil) then DEFAULT_CHAT_FRAME:AddMessage(ZONELEVEL_NOZONE); retVal = false; else if(zone == string.lower(WGch) or (zone == string.lower(ABsn)) or (zone == string.lower(AVal))) then zonelevelinbg = true; else zonelevelinbg = false; end end return retVal; end -- Handles the level stuff for tiered zones function ZoneLevel_HandleTiering(zone) local level = UnitLevel("player"); local low; local high; if(level == 10) then low = 10; high = 19; elseif(level == 20) then low = 20; high = 29; elseif(level == 30) then low = 30; high = 39; elseif(level == 40) then low = 40; high = 49; elseif(level == 50) then low = 50; high = 59; elseif(level == 60) then low = 60; high = 69; elseif(level == 70) then low = 70; high = 79; elseif(level == 80) then low = 80; high = 89; end return low, high; end -- Makes tables containing level ranges for each zone function ZoneLevel_MakeTables() -- Eastern Kingdom zones zoneLevelLow[string.lower(ChHl)]=-1; zoneLevelHigh[string.lower(ChHl)]=-1; zoneLevelLow[string.lower(BtyB)]=-1; -- booty bay zoneLevelHigh[string.lower(BtyB)]=-1; -- booty bay zoneLevelLow[string.lower(Tram)]=-1; -- deeprun tram zoneLevelHigh[string.lower(Tram)]=-1; -- deeprun tram zoneLevelLow[string.lower(Irfg)]=-1; -- ironforge zoneLevelHigh[string.lower(Irfg)]=-1; -- ironforge zoneLevelLow[string.lower(StwC)]=-1; -- stormwind city zoneLevelHigh[string.lower(StwC)]=-1; -- stormwind city zoneLevelLow[string.lower(EwnF)]=1; -- elwyn forest zoneLevelHigh[string.lower(EwnF)]=10; -- elwyn forest zoneLevelLow[string.lower(DunM)]=1; -- dun morogh zoneLevelHigh[string.lower(DunM)]=10; -- dun morogh zoneLevelLow[string.lower(Tfal)]=1; -- trisfal zoneLevelHigh[string.lower(Tfal)]=10; -- trisfal zoneLevelLow[string.lower(LMod)]=10; -- Loc Modan zoneLevelHigh[string.lower(LMod)]=20; -- Loc Modan zoneLevelLow[string.lower(SvpF)]=10; zoneLevelHigh[string.lower(SvpF)]=20; zoneLevelLow[string.lower(Wtfl)]=10; -- Westfall zoneLevelHigh[string.lower(Wtfl)]=20; -- Westfall zoneLevelLow[string.lower(RrMt)]=15; -- Redridge mountain zoneLevelHigh[string.lower(RrMt)]=25; -- redridge mountain zoneLevelLow[string.lower(Dkwd)]=18; -- duskwood zoneLevelHigh[string.lower(Dkwd)]=30; -- duskwood zoneLevelLow[string.lower(HdFt)]=20; zoneLevelHigh[string.lower(HdFt)]=30; zoneLevelLow[string.lower(Wtld)]=20; zoneLevelHigh[string.lower(Wtld)]=30; zoneLevelLow[string.lower(AcMt)]=30; -- alterac mountain zoneLevelHigh[string.lower(AcMt)]=40; -- alterac mountain zoneLevelLow[string.lower(AHld)]=30; zoneLevelHigh[string.lower(AHld)]=40; zoneLevelLow[string.lower(StrV)]=30; zoneLevelHigh[string.lower(StrV)]=50; zoneLevelLow[string.lower(Bdld)]=35; zoneLevelHigh[string.lower(Bdld)]=45; zoneLevelLow[string.lower(SoSs)]=35; zoneLevelHigh[string.lower(SoSs)]=45; zoneLevelLow[string.lower(DwPs)]=70; -- Deadwind Pass zoneLevelHigh[string.lower(DwPs)]=73; -- Deadwind Pass zoneLevelLow[string.lower(Htld)]=40; zoneLevelHigh[string.lower(Htld)]=50; zoneLevelLow[string.lower(SgGg)]=43; zoneLevelHigh[string.lower(SgGg)]=50; zoneLevelLow[string.lower(BlLd)]=45; zoneLevelHigh[string.lower(BlLd)]=55; zoneLevelLow[string.lower(BgSt)]=50; zoneLevelHigh[string.lower(BgSt)]=58; zoneLevelLow[string.lower(WPlg)]=51; -- Western Plaguelands zoneLevelHigh[string.lower(WPlg)]=58; -- Western Plaguelands zoneLevelLow[string.lower(EPlg)]=53; -- Eastern Plaguelands zoneLevelHigh[string.lower(EPlg)]=60; -- Eastern Plaguelands zoneLevelLow[string.lower(MST)]=70; -- Magisters' Terrace zoneLevelHigh[string.lower(MST)]=75; -- Magisters' Terrace zoneLevelLow[string.lower(PlgScrlt)]=55; -- Plaguelands: The Scarlet Enclave zoneLevelHigh[string.lower(PlgScrlt)]=58; -- Plaguelands: The Scarlet Enclave -- Kalimdor Zones zoneLevelLow[string.lower(Rcht)]=10; -- Ratchet zoneLevelHigh[string.lower(Rcht)]=20; -- Rachet zoneLevelLow[string.lower(Gtzn)]=40; -- Gadgetstan zoneLevelHigh[string.lower(Gtzn)]=50; -- Gadgetstan zoneLevelLow[string.lower(Orgr)]=-1; -- Orgrimmar zoneLevelHigh[string.lower(Orgr)]=-1; -- Orgrimmar zoneLevelLow[string.lower(TdrB)]=-1; -- Thunderbluff zoneLevelHigh[string.lower(TdrB)]=-1; -- Thunderbluff zoneLevelLow[string.lower(Ucty)]=-1; -- Undercity zoneLevelHigh[string.lower(Ucty)]=-1; -- Undercity zoneLevelLow[string.lower(Drtr)]=1; -- Durotar zoneLevelHigh[string.lower(Drtr)]=10; -- Durotar zoneLevelLow[string.lower(Mlgr)]=1; -- Mulgore zoneLevelHigh[string.lower(Mlgr)]=10; -- Mulgore zoneLevelLow[string.lower(Dksr)]=10; zoneLevelHigh[string.lower(Dksr)]=20; zoneLevelLow[string.lower(Brns)]=10; zoneLevelHigh[string.lower(Brns)]=25; zoneLevelLow[string.lower(StMt)]=15; -- Stonetalon Mountains zoneLevelHigh[string.lower(StMt)]=27; -- Stonetalon Mountains zoneLevelLow[string.lower(Ashv)]=18; -- Ashenvale zoneLevelHigh[string.lower(Ashv)]=30; -- Ashenvale zoneLevelLow[string.lower(KNdl)]=25; zoneLevelHigh[string.lower(KNdl)]=35; zoneLevelLow[string.lower(Dslc)]=30; -- Desolace zoneLevelHigh[string.lower(Dslc)]=40; -- Desolace zoneLevelLow[string.lower(DtwM)]=35; zoneLevelHigh[string.lower(DtwM)]=45; zoneLevelLow[string.lower(Frls)]=40; -- ferlas zoneLevelHigh[string.lower(Frls)]=50; -- ferlas zoneLevelLow[string.lower(Tnrs)]=40; zoneLevelHigh[string.lower(Tnrs)]=50; zoneLevelLow[string.lower(Azsr)]=45; -- Azshara zoneLevelHigh[string.lower(Azsr)]=55; -- Azshara zoneLevelLow[string.lower(Flwd)]=48; zoneLevelHigh[string.lower(Flwd)]=55; zoneLevelLow[string.lower(Goro)]=48; -- Ungoro zoneLevelHigh[string.lower(Goro)]=55; -- Ungoro zoneLevelLow[string.lower(Slts)]=55; zoneLevelHigh[string.lower(Slts)]=60; zoneLevelLow[string.lower(Wtsg)]=55; zoneLevelHigh[string.lower(Wtsg)]=60; zoneLevelLow[string.lower(Hyal)]=60; zoneLevelHigh[string.lower(Hyal)]=60; zoneLevelLow[string.lower(AnQG)]=60; -- AQ I think zoneLevelHigh[string.lower(AnQG)]=65; -- AQ I think -- Instances zoneLevelLow[string.lower(Stck)]=24; zoneLevelHigh[string.lower(Stck)]=32; zoneLevelLow[string.lower(RfCm)]=13; zoneLevelHigh[string.lower(RfCm)]=18; zoneLevelLow[string.lower(ZlFk)]=44; zoneLevelHigh[string.lower(ZlFk)]=54; zoneLevelLow[string.lower(Ddmn)]=17; zoneLevelHigh[string.lower(Ddmn)]=26; zoneLevelLow[string.lower(WCvn)]=17; zoneLevelHigh[string.lower(WCvn)]=24; zoneLevelLow[string.lower(Grgn)]=29; zoneLevelHigh[string.lower(Grgn)]=38; zoneLevelLow[string.lower(RfKr)]=29; zoneLevelHigh[string.lower(RfKr)]=38; zoneLevelLow[string.lower(BlfD)]=24; zoneLevelHigh[string.lower(BlfD)]=32; zoneLevelLow[string.lower(SfKp)]=22; zoneLevelHigh[string.lower(SfKp)]=30; zoneLevelLow[string.lower(StMn)]=34; zoneLevelHigh[string.lower(StMn)]=45; zoneLevelLow[string.lower(Uldm)]=41; zoneLevelHigh[string.lower(Uldm)]=51; zoneLevelLow[string.lower(RfDn)]=37; zoneLevelHigh[string.lower(RfDn)]=46; zoneLevelLow[string.lower(Mrdn)]=46; zoneLevelHigh[string.lower(Mrdn)]=55; zoneLevelLow[string.lower(Onyx)]=80; zoneLevelHigh[string.lower(Onyx)]=80; zoneLevelLow[string.lower(BlMt)]=42; zoneLevelHigh[string.lower(BlMt)]=54; zoneLevelLow[string.lower(CvTm)]=43; zoneLevelHigh[string.lower(CvTm)]=61; zoneLevelLow[string.lower(Tmpl)]=50; zoneLevelHigh[string.lower(Tmpl)]=60; zoneLevelLow[string.lower(DrMl)]=56; zoneLevelHigh[string.lower(DrMl)]=60; zoneLevelLow[string.lower(BlrD)]=52; zoneLevelHigh[string.lower(BlrD)]=60; zoneLevelLow[string.lower(BlrS)]=55; zoneLevelHigh[string.lower(BlrS)]=60; zoneLevelLow[string.lower(Sthm)]=58; zoneLevelHigh[string.lower(Sthm)]=60; zoneLevelLow[string.lower(MCor)]=60; zoneLevelHigh[string.lower(MCor)]=62; zoneLevelLow[string.lower(Slmc)]=58; zoneLevelHigh[string.lower(Slmc)]=60; zoneLevelLow[string.lower(BlwL)]=60; zoneLevelHigh[string.lower(BlwL)]=62; zoneLevelLow[string.lower(ZlGb)]=60; zoneLevelHigh[string.lower(ZlGb)]=62; zoneLevelLow[string.lower(AnQR)]=60; zoneLevelHigh[string.lower(AnQR)]=65; zoneLevelLow[string.lower(AnQT)]=60; zoneLevelHigh[string.lower(AnQT)]=65; zoneLevelLow[string.lower(Naxx)]=60; zoneLevelHigh[string.lower(Naxx)]=65; zoneLevelLow[string.lower(Krzn)]=70; zoneLevelHigh[string.lower(Krzn)]=75; zoneLevelLow[string.lower(HfCt)]=60; zoneLevelHigh[string.lower(HfCt)]=70; zoneLevelLow[string.lower(ZlAm)]=70; zoneLevelHigh[string.lower(ZlAm)]=75; zoneLevelLow[string.lower(CfRs)]=62; zoneLevelHigh[string.lower(CfRs)]=72; zoneLevelLow[string.lower(Auch)]=64; zoneLevelHigh[string.lower(Auch)]=72; zoneLevelLow[string.lower(TmKp)]=69; zoneLevelHigh[string.lower(TmKp)]=72; zoneLevelLow[string.lower(GrLr)]=60; zoneLevelHigh[string.lower(GrLr)]=72; zoneLevelLow[string.lower(BTmp)]=70; zoneLevelHigh[string.lower(BTmp)]=75; zoneLevelLow[string.lower(Stck)]=23; zoneLevelHigh[string.lower(Stck)]=26; zoneLevelLow[string.lower(RfCm)]=13; zoneLevelHigh[string.lower(RfCm)]=15; zoneLevelLow[string.lower(ZlFk)]=43; zoneLevelHigh[string.lower(ZlFk)]=47; zoneLevelLow[string.lower(Ddmn)]=15; zoneLevelHigh[string.lower(Ddmn)]=20; zoneLevelLow[string.lower(WCvn)]=15; zoneLevelHigh[string.lower(WCvn)]=21; zoneLevelLow[string.lower(Grgn)]=24; zoneLevelHigh[string.lower(Grgn)]=33; zoneLevelLow[string.lower(RfKr)]=25; zoneLevelHigh[string.lower(RfKr)]=35; zoneLevelLow[string.lower(BlfD)]=20; zoneLevelHigh[string.lower(BlfD)]=27; zoneLevelLow[string.lower(SfKp)]=18; zoneLevelHigh[string.lower(SfKp)]=25; zoneLevelLow[string.lower(StMn)]=30; zoneLevelHigh[string.lower(StMn)]=40; zoneLevelLow[string.lower(Uldm)]=35; zoneLevelHigh[string.lower(Uldm)]=45; zoneLevelLow[string.lower(RfDn)]=35; zoneLevelHigh[string.lower(RfDn)]=40; zoneLevelLow[string.lower(Mrdn)]=40; zoneLevelHigh[string.lower(Mrdn)]=49; zoneLevelLow[string.lower(Onyx)]=60; zoneLevelHigh[string.lower(Onyx)]=62; zoneLevelLow[string.lower(BlMt)]=42; zoneLevelHigh[string.lower(BlMt)]=54; zoneLevelLow[string.lower(CvTm)]=-1; zoneLevelHigh[string.lower(CvTm)]=-1; zoneLevelLow[string.lower(Tmpl)]=44; zoneLevelHigh[string.lower(Tmpl)]=50; zoneLevelLow[string.lower(DrMl)]=56; zoneLevelHigh[string.lower(DrMl)]=60; zoneLevelLow[string.lower(BlrD)]=48; zoneLevelHigh[string.lower(BlrD)]=56; zoneLevelLow[string.lower(BlrS)]=53; zoneLevelHigh[string.lower(BlrS)]=60; zoneLevelLow[string.lower(Sthm)]=55; zoneLevelHigh[string.lower(Sthm)]=60; zoneLevelLow[string.lower(MCor)]=60; zoneLevelHigh[string.lower(MCor)]=62; zoneLevelLow[string.lower(Slmc)]=56; zoneLevelHigh[string.lower(Slmc)]=60; zoneLevelLow[string.lower(BlwL)]=60; zoneLevelHigh[string.lower(BlwL)]=62; zoneLevelLow[string.lower(ZlGb)]=60; zoneLevelHigh[string.lower(ZlGb)]=62; zoneLevelLow[string.lower(AnQR)]=60; zoneLevelHigh[string.lower(AnQR)]=65; zoneLevelLow[string.lower(AnQT)]=60; zoneLevelHigh[string.lower(AnQT)]=65; zoneLevelLow[string.lower(Naxx)]=60; zoneLevelHigh[string.lower(Naxx)]=65; zoneLevelLow[string.lower(Krzn)]=70; zoneLevelHigh[string.lower(Krzn)]=75; zoneLevelLow[string.lower(HfCt)]=60; zoneLevelHigh[string.lower(HfCt)]=70; zoneLevelLow[string.lower(ZlAm)]=70; zoneLevelHigh[string.lower(ZlAm)]=75; zoneLevelLow[string.lower(CfRs)]=62; zoneLevelHigh[string.lower(CfRs)]=72; zoneLevelLow[string.lower(Auch)]=64; zoneLevelHigh[string.lower(Auch)]=72; zoneLevelLow[string.lower(TmKp)]=69; zoneLevelHigh[string.lower(TmKp)]=72; zoneLevelLow[string.lower(GrLr)]=60; zoneLevelHigh[string.lower(GrLr)]=72; zoneLevelLow[string.lower(BTmp)]=70; zoneLevelHigh[string.lower(BTmp)]=75; zoneLevelLow[string.lower(Mngd)]=-1; --MoonGlade zoneLevelHigh[string.lower(Mngd)]=-1; -- MoonGlade zoneLevelLow[string.lower(Darn)]=-1; -- Darnassus zoneLevelHigh[string.lower(Darn)]=-1; -- Darnassus zoneLevelLow[string.lower(Tldr)]=1; --Teldrassel zoneLevelHigh[string.lower(Tldr)]=10; -- Teldrassel zoneLevelLow[string.lower(AVal)]=60; -- AV zoneLevelHigh[string.lower(AVal)]=80; -- AV zoneLevelLow[string.lower(WGch)]=10; -- WSG zoneLevelHigh[string.lower(WGch)]=90; -- WSG zoneLevelLow[string.lower(ABsn)]=20; -- AB zoneLevelHigh[string.lower(ABsn)]=80; -- AB zoneLevelLow[string.lower(EoTS)]=61; -- Eye of the Storm zoneLevelHigh[string.lower(EoTS)]=80; -- Eye of the Storm zoneLevelLow[string.lower(EsWd)]=1; --Eversong Woods zoneLevelHigh[string.lower(EsWd)]=10; --Eversong Woods zoneLevelLow[string.lower(GstL)]=10; -- Not sure, Have not played BE zoneLevelHigh[string.lower(GstL)]=20; -- Not sure, Have not played BE. zoneLevelLow[string.lower(SvmC)]=-1; --Silvermoon City zoneLevelHigh[string.lower(SvmC)]=-1; --Silvermoon City zoneLevelLow[string.lower(AzmI)]=1; -- Azuremyst Isle zoneLevelHigh[string.lower(AzmI)]=10; -- Azuremyst Isle zoneLevelLow[string.lower(BldI)]=10; -- Bloodmyst Isle zoneLevelHigh[string.lower(BldI)]=20; -- Bloodmyst Isle zoneLevelLow[string.lower(Exdr)]=-1; -- Exodar zoneLevelHigh[string.lower(Exdr)]=-1; -- Exodar zoneLevelLow[string.lower(VldS)]=1; -- Not Sure, have not played Dranei to much zoneLevelHigh[string.lower(VldS)]=10; -- Not Sure, Have not played Dranei to much zoneLevelLow[string.lower(IoQD)]=70; -- isle of quel danas zoneLevelHigh[string.lower(IoQD)]=75; -- Isle of quel danas zoneLevelLow[string.lower(HiddenReef)]=20; zoneLevelHigh[string.lower(HiddenReef)]=25; zoneLevelLow[string.lower(SlavePens)]=63; zoneLevelHigh[string.lower(SlavePens)]=66; zoneLevelLow[string.lower(Underbog)]=63; zoneLevelHigh[string.lower(Underbog)]=66; --northrend zoneLevelLow[string.lower(Dalran)]=-1; -- dalaran zoneLevelHigh[string.lower(Dalran)]=-1; -- dalaran zoneLevelLow[string.lower(BRTA)]=68; --Borean Tundra zoneLevelHigh[string.lower(BRTA)]=72; -- Borean Tundra zoneLevelLow[string.lower(CrystlSng)]=77; --Crystalsong Forest zoneLevelHigh[string.lower(CrystlSng)]=80; --Crystalsong Forest zoneLevelLow[string.lower(DrgnBlght)]=71; --Dragonblight zoneLevelHigh[string.lower(DrgnBlght)]=76; --Dragonblight zoneLevelLow[string.lower(GrzlyHils)]=73; --Grizzly Hills zoneLevelHigh[string.lower(GrzlyHils)]=76; --Grizzly Hills zoneLevelLow[string.lower(HwlngFjrd)]=-68; -- Howling Fjord zoneLevelHigh[string.lower(HwlngFjrd)]=73; -- Howling Fjord zoneLevelLow[string.lower(Icecrwn)]=77; --Icecrown zoneLevelHigh[string.lower(Icecrwn)]=82; --Icecrown zoneLevelLow[string.lower(ShlzBasn)]=76; --Sholzar Basin zoneLevelHigh[string.lower(ShlzBasn)]=79; --Sholzar Basin zoneLevelLow[string.lower(StrmPeak)]=77; --Storms Peak zoneLevelHigh[string.lower(StrmPeak)]=82; --Storms Peak zoneLevelLow[string.lower(ZulDrak)]=74; -- Zul'Drak zoneLevelHigh[string.lower(ZulDrak)]=78; --Zul'Drak zoneLevelLow[string.lower(Wintergrsp)]=78; --Wintersgrasp zoneLevelHigh[string.lower(Wintergrsp)]=82; -- Wintersgrasp zoneLevelLow[string.lower(SOTA)]=71; -- Strand of the Ancients zoneLevelHigh[string.lower(SOTA)]=80; -- Strand of the Ancients zoneLevelLow[string.lower(SlzBasn)]=74; -- Sholazar Basin zoneLevelHigh[string.lower(SlzBasn)]=78; -- Sholazar Basin -- Outland Zones zoneLevelLow[string.lower(ShtC)]=-6; --Shattrath zoneLevelHigh[string.lower(ShtC)]=-6; --Shattrath zoneLevelLow[string.lower(HfPn)]=58; -- Hellfire zoneLevelHigh[string.lower(HfPn)]=63; -- Hellfire zoneLevelLow[string.lower(Zgrm)]=60; --Zangermarsh zoneLevelHigh[string.lower(Zgrm)]=64; -- Zangermarsh zoneLevelLow[string.lower(Ngrd)]=64; -- Nagrand zoneLevelHigh[string.lower(Ngrd)]=67; -- Nagrand zoneLevelLow[string.lower(TkrF)]=62; -- Terrokar zoneLevelHigh[string.lower(TkrF)]=65; -- Terrokar zoneLevelLow[string.lower(SdmV)]=67; -- Shadowmoon zoneLevelHigh[string.lower(SdmV)]=70; -- Shadowmoon zoneLevelLow[string.lower(BEMt)]=65; -- Blades Edge Mountains zoneLevelHigh[string.lower(BEMt)]=68; -- Blades Edge Mountains zoneLevelLow[string.lower(Nstm)]=67; -- Netherstorm zoneLevelHigh[string.lower(Nstm)]=70; -- Netherstorm zoneLevelLow[string.lower(BlackMorass)]=68; zoneLevelHigh[string.lower(BlackMorass)]=70; zoneLevelLow[string.lower(OldHilsbrad)]=68; --CoT Hillsbrad zoneLevelHigh[string.lower(OldHilsbrad)]=70; -- CoT Hillsbrad zoneLevelHigh[string.lower(FrozenSea)]=-1; zoneLevelLow[string.lower(FrozenSea)]=-1; zoneLevelLow[string.lower(TwistingNether)]=-1; zoneLevelHigh[string.lower(TwistingNether)]=-1; zoneLevelLow[string.lower(HellfireRamparts)]=58; zoneLevelHigh[string.lower(HellfireRamparts)]=62; zoneLevelLow[string.lower(SteamVault)]=68; zoneLevelHigh[string.lower(SteamVault)]=70; -- Northrend Dungeons zoneLevelLow[string.lower(UtK)]=70; -- Utargde Keep zoneLevelHigh[string.lower(UtK)]=74; -- Utargde Keep zoneLevelLow[string.lower(TheNexus)]=71; -- The Nexus zoneLevelHigh[string.lower(TheNexus)]=74; -- The Nexus zoneLevelLow[string.lower(AhnKaht)]=73; -- Ahn'Kahet zoneLevelHigh[string.lower(AhnKaht)]=76; -- Ahn'Kahet zoneLevelLow[string.lower(AzjNerub)]=72; -- Azjol'Nerub zoneLevelHigh[string.lower(AzjNerub)]=75; -- Azjol'Nerub zoneLevelLow[string.lower(NaxxNrth)]=80; -- Naxxramas zoneLevelHigh[string.lower(NaxxNrth)]=80; -- Naxxramas zoneLevelLow[string.lower(Ulduar)]=80; -- Ulduar zoneLevelHigh[string.lower(Ulduar)]=80; -- Ulduar zoneLevelLow[string.lower(IcrwnCitadel)]=80; -- Icecrown Citadel zoneLevelHigh[string.lower(IcrwnCitadel)]=80; -- Icecrown Citadel zoneLevelLow[string.lower(DrakTharKeep)]=74; -- Drak'tharon keep zoneLevelHigh[string.lower(DrakTharKeep)]=78; -- Drak'tharon Keep zoneLevelLow[string.lower(ChmbrOfAspect)]=80; -- Chamber of Aspects zoneLevelHigh[string.lower(ChmbrOfAspect)]=80; -- Chamber of Aspects zoneLevelLow[string.lower(CoTCoStrat)]=78; -- Culling of Strathhomle zoneLevelHigh[string.lower(CoTCoStrat)]=80; -- Culling of Strathhomle zoneLevelLow[string.lower(Gundrak)]=76; -- Gundrak zoneLevelHigh[string.lower(Gundrak)]=80; -- Gundrak zoneLevelLow[string.lower(HallsofLighting)]=76; -- Halls of Lighting zoneLevelHigh[string.lower(HallsofLighting)]=80; -- Halls of Lighting zoneLevelLow[string.lower(HallsofStone)]=76; -- Halls of Stone zoneLevelHigh[string.lower(HallsofStone)]=80; -- Halls of Stone zoneLevelLow[string.lower(Malygos)]=80; -- Malygos zoneLevelHigh[string.lower(Malygos)]=80; -- malygos zoneLevelLow[string.lower(TheDocOc)]=78; -- Occulus zoneLevelHigh[string.lower(TheDocOc)]=80; -- Occulus zoneLevelLow[string.lower(Sartharion)]=80; -- Sartharion zoneLevelHigh[string.lower(Sartharion)]=80; -- Sartharion zoneLevelLow[string.lower(UtgrdKptwo)]=78; -- I believe this was saposta be UP but isn't zoneLevelHigh[string.lower(UtgrdKptwo)]=80; zoneLevelLow[string.lower(TheVioletHld)]=75; -- THe Violet Hold zoneLevelHigh[string.lower(TheVioletHld)]=80; -- The Violet Hold zoneLevelLow[string.lower(UtgPin)]=78; -- Utargde Pinnicle zoneLevelHigh[string.lower(UtgPin)]=80; -- Utargde Pinnicle zoneLevelLow[string.lower(IcecrownCitadel)]=80; zoneLevelHigh[string.lower(IcecrownCitadel)]=80; zoneLevelLow[string.lower(RubySanctum)]=80; zoneLevelHigh[string.lower(RubySanctum)]=80; zoneLevelLow[string.lower(PitofSaron)]=78; zoneLevelHigh[string.lower(PitofSaron)]=80; zoneLevelLow[string.lower(TrialoftheGrandCrusader)]=80; zoneLevelHigh[string.lower(TrialoftheGrandCrusader)]=80; zoneLevelLow[string.lower(ForgeofSouls)]=78; zoneLevelHigh[string.lower(ForgeofSouls)]=80; zoneLevelLow[string.lower(HallsofReflection)]=78; zoneLevelHigh[string.lower(HallsofReflection)]=80; zoneLevelLow[string.lower(TrialoftheChampion)]=80; zoneLevelHigh[string.lower(TrialoftheChampion)]=80; zoneLevelLow[string.lower(HrothgarsLanding)]=80; zoneLevelHigh[string.lower(HrothgarsLanding)]=80; zoneLevelLow[string.lower(Deepholm)]=82; zoneLevelHigh[string.lower(Deepholm)]=84; zoneLevelLow[string.lower(Kezan)]=1; zoneLevelHigh[string.lower(Kezan)]=7; zoneLevelLow[string.lower(TheLostIsles)]=5; zoneLevelHigh[string.lower(TheLostIsles)]=12; zoneLevelLow[string.lower(TheMaelstrom)]=-1; zoneLevelHigh[string.lower(TheMaelstrom)]=-1; zoneLevelLow[string.lower(TolBarad)]=85; zoneLevelHigh[string.lower(TolBarad)]=85; zoneLevelLow[string.lower(TBPen)]=85; zoneLevelHigh[string.lower(TBPen)]=85; zoneLevelLow[string.lower(MountHyjal)]=80; zoneLevelHigh[string.lower(MountHyjal)]=82; zoneLevelLow[string.lower(TheSteamPools)]=-1; zoneLevelHigh[string.lower(TheSteamPools)]=-1; zoneLevelLow[string.lower(Uldum)]=83; zoneLevelHigh[string.lower(Uldum)]=84; zoneLevelLow[string.lower(Gilneas)]=1; zoneLevelHigh[string.lower(Gilneas)]=5; zoneLevelLow[string.lower(GilneasCity)]=1; zoneLevelHigh[string.lower(GilneasCity)]=5; zoneLevelLow[string.lower(TwilightHighlands)]=84; zoneLevelHigh[string.lower(TwilightHighlands)]=85; zoneLevelLow[string.lower(Vashjir)]=80; zoneLevelHigh[string.lower(Vashjir)]=82; zoneLevelLow[string.lower(VashjirAbyssalDepths)]=80; zoneLevelHigh[string.lower(VashjirAbyssalDepths)]=82; zoneLevelLow[string.lower(VashjirKelptharForest)]=80; zoneLevelHigh[string.lower(VashjirKelptharForest)]=82; zoneLevelLow[string.lower(VashjirShimmeringExpanse)]=80; zoneLevelHigh[string.lower(VashjirShimmeringExpanse)]=82; -- Abbreviation table zoneLevelShort["alterac"] = AcMt; zoneLevelShort["alterac mountains"] = AcMt; zoneLevelShort["ab"] = ABsn; zoneLevelShort["aq"] = AnQG; zoneLevelShort["arathi basin"] = ABsn; zoneLevelShort["arathi"] = AHld; zoneLevelShort["arathi highlands"] = AHld; zoneLevelShort["av"] = AVal; zoneLevelShort["alterac valley"] = AVal; zoneLevelShort["ashenvale"] = Ashv; zoneLevelShort["azshara"] = Azsr; zoneLevelShort["badlands"] = Bdld; zoneLevelShort["bs"] = BgSt; zoneLevelShort["burning steppes"] = BgSt; zoneLevelShort["bfd"] = BlfD; zoneLevelShort["blackfathom deeps"] = BlfD; zoneLevelShort["bl"] = BlLd; zoneLevelShort["blasted lands"] = BlLd; zoneLevelShort["brm"] = BlMt; zoneLevelShort["blackrock mountain"] = BlMt; zoneLevelShort["brd"] = BlrD; zoneLevelShort["blackrock depths"] = BlrD; zoneLevelShort["brs"] = BlrS; zoneLevelShort["blackrock spire"] = BlrS; zoneLevelShort["barrens"] = Brns; zoneLevelShort["bwl"] = BlwL; zoneLevelShort["blackwing lair"] = BlwL; zoneLevelShort["bb"] = BtyB; zoneLevelShort["booty bay"] = BtyB; zoneLevelShort["cot"] = CvTm; zoneLevelShort["caverns of time"] = CvTm; zoneLevelShort["darkshore"] = Dksr; zoneLevelShort["darn"] = Darn; zoneLevelShort["darnassus"] = Darn; zoneLevelShort["deadmines"] = Ddmn; zoneLevelShort["deadwind"] = DwPs; zoneLevelShort["deadwind pass"] = DwPs; zoneLevelShort["desolace"] = Dslc; zoneLevelShort["dm"] = DrMl; zoneLevelShort["dire maul"] = DrMl; zoneLevelShort["dun morogh"] = DunM; zoneLevelShort["durotar"] = Drtr; zoneLevelShort["duskwood"] = Dkwd; zoneLevelShort["dustwallow"] = DtwM; zoneLevelShort["dwm"] = DtwM; zoneLevelShort["dustwallow marsh"] = DtwM; zoneLevelShort["epl"] = EPlg; zoneLevelShort["eastern plaguelands"] = EPlg; zoneLevelShort["elwynn"] = EwnF; zoneLevelShort["elwynn forest"] = EwnF; zoneLevelShort["felwood"] = Flwd; zoneLevelShort["feralas"] = Frls; zoneLevelShort["loch"] = LMod; zoneLevelShort["loch modan"] = LMod; zoneLevelShort["mulgore"] = Mlgr; zoneLevelShort["moonglade"] = Mngd; zoneLevelShort["silithus"] = Slts; zoneLevelShort["ungoro"] = Goro; zoneLevelShort["ungoro crater"] = Goro; zoneLevelShort["gnomer"] = Grgn; zoneLevelShort["gnomeregon"] = Grgn; zoneLevelShort["gadget"] = Gtzn; zoneLevelShort["gadgetzan"] = Gtzn; zoneLevelShort["hellfire"] = HfPn zoneLevelShort["hellfire Peninsula"] = HfPn zoneLevelShort["hillsbrad"] = Hellfire; zoneLevelShort["hillsbrad foothills"] = HdFt; zoneLevelShort["hinterlands"] = Htld; zoneLevelShort["1kn"] = KNdl; zoneLevelShort["thousand needles"] = KNdl; zoneLevelShort["mc"] = MCor; zoneLevelShort["molten core"] = MCor; zoneLevelShort["md"] = Mrdn; zoneLevelShort["maur"] = Mrdn; zoneLevelShort["mauradon"] = Mrdn; zoneLevelShort["nax"] = Naxx; zoneLevelShort["naxx"] = Naxx; zoneLevelShort["naxxramas"] = Naxx; zoneLevelShort["onyxia"] = Onyx; zoneLevelShort["onyx"] = Onyx; zoneLevelShort["onyxias lair"] = Onyx; zoneLevelShort["rfc"] = RfCm; zoneLevelShort["ragefire chasm"] = RfCm; zoneLevelShort["rfd"] = RfDn; zoneLevelShort["razorfen downs"] = RfDn; zoneLevelShort["rfk"] = RfKr; zoneLevelShort["razorfen kraul"] = RfKr; zoneLevelShort["redridge"] = RrMt; zoneLevelShort["redridge mts"] = RrMt; zoneLevelShort["redridge mountains"] = RrMt; zoneLevelShort["sfk"] = SfKp; zoneLevelShort["shadowfang keep"] = SfKp; zoneLevelShort["scholo"] = Slmc; zoneLevelShort["scholomance"] = Slmc; zoneLevelShort["stratholme"] = Sthm; zoneLevelShort["sos"] = SoSs; zoneLevelShort["swamp of sorrows"] = SoSs; zoneLevelShort["stockade"] = Stck; zoneLevelShort["sm"] = StMn; zoneLevelShort["scarlet monastery"] = StMn; zoneLevelShort["stonetalon"] = StMt; zoneLevelShort["stonetalon mts"] = StMt; zoneLevelShort["stonetalon mountains"] = StMt; zoneLevelShort["stv"] = StrV; zoneLevelShort["stranglethorn vale"] = StrV; zoneLevelShort["silverpine"] = SvpF; zoneLevelShort["silverpine forest"] = SvpF; zoneLevelShort["tb"] = TdrB; zoneLevelShort["thunder bluff"] = TdrB; zoneLevelShort["tirisfal"] = Tfal; zoneLevelShort["tirisfal glades"] = Tfal; zoneLevelShort["teldrassil"] = Trdl; zoneLevelShort["tanaris"] = Tnrs; zoneLevelShort["uldaman"] = Uldm; zoneLevelShort["westfall"] = Wtfl; zoneLevelShort["wetlands"] = Wtld; zoneLevelShort["ws"] = Wtsg; zoneLevelShort["winterspring"] = Wtsg; zoneLevelShort["st"] = Tmpl; zoneLevelShort["sunken temple"] = Tmpl; zoneLevelShort["wc"] = WCvn; zoneLevelShort["wailing caverns"] = WCvn; zoneLevelShort["wsg"] = WGch; zoneLevelShort["warsong gulch"] = WGch; zoneLevelShort["wpl"] = WPlg; zoneLevelShort["western plaguelands"] = WPlg; zoneLevelShort["zf"] = ZlFk; zoneLevelShort["zulfarrak"] = ZlFk; zoneLevelShort["zul farrak"] = ZlFk; zoneLevelShort["zg"] = ZlGb; zoneLevelShort["zulgurub"] = ZlGb; zoneLevelShort["zul gurub"] = ZlGb; zoneLevelShort["blade's edge mountain"] = BladesEdgeMountains; zoneLevelShort["blade's edge"] = BladesEdgeMountains; zoneLevelShort["blades edge"] = BladesEdgeMountains; zoneLevelShort["nagrand"] = Nagrand; zoneLevelShort["netherstorm"] = Netherstorm; zoneLevelShort["shadowmoon"] = ShadowmoonValley; zoneLevelShort["shadowmoon valley"] = ShadowmoonValley; zoneLevelShort["shatt"] = ShattrathCity; zoneLevelShort["shattrath"] = ShattrathCity; zoneLevelShort["shattrath City"] = ShattrathCity; zoneLevelShort["terokkar forest"] = TerokkarForest; zoneLevelShort["terokkar"] = TerokkarForest; zoneLevelShort["zangar"] = Zgrm ; zoneLevelShort["zangarmarsh"] = Zgrm; zoneLevelShort["borean tundra"] = BoreanTundra; zoneLevelShort["crystalsong forest"] = CrystlSng; zoneLevelShort["crystalsong"] = CrystlSng; zoneLevelShort["dalaran"] = Dalran; zoneLevelShort["dragonblight"] = Dragonblight; zoneLevelShort["grizzly hills"] = GrizzlyHills; zoneLevelShort["howling fjord"] = HwlngFjrd; zoneLevelShort["hrothgar's landing"] = HrothgarsLanding; zoneLevelShort["icecrown"] = Icecrown; zoneLevelShort["sholazar basin"] = SholazarBasin; zoneLevelShort["the storm peaks"] = StormPeaks; zoneLevelShort["storm peaks"] = Wintergrasp; zoneLevelShort["wintergrasp"] = Wintergrasp; zoneLevelShort["zul'drak"] = ZulDrak; zoneLevelShort["zul drak"] = ZulDrak; end function ZLVLMAP() ZoneLevelM=CreateFrame("Frame","ZoneLevelM",WorldMapFrame); ZoneLevelM.c=ZoneLevelM:CreateFontString(nil,"OVERLAY"); if IsAddOnLoaded("Carbonite") or IsAddOnLoaded("TomTom") or IsAddOnLoaded("AlphaMap") or IsAddOnLoaded("Mapster") or IsAddOnLoaded("pMap") then ZoneLevelM.c:SetPoint("TOPLEFT", WorldMapFrame, "TopLeft",0,730); end ZoneLevelM.c:SetPoint("Bottom",WorldMapFrame,"Bottom",0,10); if IsAddOnLoaded("Carbonite") or IsAddOnLoaded("TomTom") or IsAddOnLoaded("pMap")then ZoneLevelM.c:SetJustifyV("CENTER"); end ZoneLevelM.c:SetJustifyH("CENTER"); ZoneLevelM.c:SetFontObject(GameFontNormal); ZoneLevelM:SetScript("OnUpdate",ZoneLevelMapOnUpdate); end function ZoneLevelMapOnUpdate() if(zlvlmaptext == true) then local level = UnitLevel("player"); capZone = GetRealZoneText(); zone = string.lower(capZone); zoneIndex = GetCurrentMapZone(); zoneindexreturn = ""; continent = GetCurrentMapContinent(); if(continent == 2) then -- Eastern Kindgoms if(zoneIndex == 11) then zoneindexreturn = "Eversong Woods 1-10"; elseif(zoneIndex == 7) then zoneindexreturn = "Dun Morogh 1-10"; elseif(zoneIndex == 1) then zoneindexreturn = "Alterac Mountains 30-40"; elseif(zoneIndex == 2) then zoneindexreturn = "Arathi Highlands 30-40"; elseif(zoneIndex == 3) then zoneindexreturn = "Badlands 30-40"; elseif(zoneIndex == 4) then zoneindexreturn = "Blasted Lands 50-60"; elseif(zoneIndex == 5) then zoneindexreturn = "Burning Steppes 50-60"; elseif(zoneIndex == 6) then zoneindexreturn = "Deadwind Pass 68-70"; elseif(zoneIndex == 8) then zoneindexreturn = "Duskwood 20-30"; elseif(zoneIndex == 9) then zoneindexreturn = "Eastern Plaguelands 50-60"; elseif(zoneIndex == 10) then zoneindexreturn = "Elwynn Forest 1-10"; elseif(zoneIndex == 12) then zoneindexreturn = "Ghostlands 10-20"; elseif(zoneIndex == 13) then zoneindexreturn = "Hillsbrad Foothills 20-30"; elseif(zoneIndex == 14) then zoneindexreturn = "Ironforge Town"; elseif(zoneIndex == 15) then zoneindexreturn = "Isle of Quel'Danas 68-72"; elseif(zoneIndex == 16) then zoneindexreturn = "Loch Modan 10-20"; elseif(zoneIndex == 17) then zoneindexreturn = "Redrige Mountains 20-30"; elseif(zoneIndex == 18) then zoneindexreturn = "Searing Gorge 40-50"; elseif(zoneIndex == 19) then zoneindexreturn = "Silvermoon City Town"; elseif(zoneIndex == 20) then zoneindexreturn = "Silverpine Forest 10-20"; elseif(zoneIndex == 21) then zoneindexreturn = "Stormwind City Town"; elseif(zoneIndex == 22) then zoneindexreturn = "Stranglethorn Vale 30-45"; elseif(zoneIndex == 23) then zoneindexreturn = "Swampe of Sorrows 35-45"; elseif(zoneIndex == 24) then zoneindexreturn = "The Hinterlands 40-50"; elseif(zoneIndex == 25) then zoneindexreturn = "Tirisfal Glades 1-10"; elseif(zoneIndex == 26) then zoneindexreturn = "Undercity Town"; elseif(zoneIndex == 27) then zoneindexreturn = "Western Plaguelands 50-60"; elseif(zoneIndex == 28) then zoneindexreturn = "Westfall 10-20"; elseif(zoneIndex == 29) then zoneindexreturn = "Wetlands 20-30"; elseif(zoneIndex == 0) then zoneindexreturn = "Pick a zone!"; end elseif(continent == 1) then -- kalimdor if(zoneIndex == 1) then zoneindexreturn = "Ashenvale 20-30"; elseif(zoneIndex == 2) then zoneindexreturn = "Azshara 45-55"; elseif(zoneIndex == 3) then zoneindexreturn = "Azuremyst Isle 1-10"; elseif(zoneIndex == 4) then zoneindexreturn = "Bloodmyst Isle 10-20"; elseif(zoneIndex == 5) then zoneindexreturn = "Darkshore 10-20"; elseif(zoneIndex == 6) then zoneindexreturn = "Darnassus Town"; elseif(zoneIndex == 7) then zoneindexreturn = "Desolace 30-40"; elseif(zoneIndex == 8) then zoneindexreturn = "Durotar 1-10"; elseif(zoneIndex == 9) then zoneindexreturn = "Dustwallow Marsh 30-40"; elseif(zoneIndex == 10) then zoneindexreturn = "Felwood 50-60"; elseif(zoneIndex == 11) then zoneindexreturn = "Feralas 40-50" elseif(zoneIndex == 12) then zoneindexreturn = "Moonglade Town"; elseif(zoneIndex == 13) then zoneindexreturn = "Mulgore 1-10"; elseif(zoneIndex == 14) then zoneindexreturn = "Orgrimmar Town"; elseif(zoneIndex == 15) then zoneindexreturn = "Silithus 50-60"; elseif(zoneIndex == 16) then zoneindexreturn = "Stonetalon Mountains 20-30"; elseif(zoneIndex == 17) then zoneindexreturn = "Tanaris 40-50"; elseif(zoneIndex == 18) then zoneindexreturn = "Teldrassil 1-10"; elseif(zoneIndex == 19) then zoneindexreturn = "The Barrens 10-20"; elseif(zoneIndex == 20) then zoneindexreturn = "The Exodar Town"; elseif(zoneIndex == 21) then zoneindexreturn = "Thousand Needles 20-30"; elseif(zoneIndex == 22) then zoneindexreturn = "Thunderbluff Town"; elseif(zoneIndex == 23) then zoneindexreturn = "Un'Goro Crater 50-55"; elseif(zoneIndex == 24) then zoneindexreturn = "Winterspring 50-60"; elseif(zoneIndex == 0) then zoneindexreturn = "Pick a zone!"; end elseif(continent == 0) then zoneindexreturn = "Pick a Continent"; elseif(continent == 3) then if(zoneIndex == 1) then zoneindexreturn = "Blade's Edge Mountains 68-70" elseif(zoneIndex == 2) then zoneindexreturn = "Hellfire Peninsula 58-62" elseif(zoneIndex == 3) then zoneindexreturn = "Nagrand 65-68" elseif(zoneIndex == 4) then zoneindexreturn = "Netherstorm 68-70" elseif(zoneIndex == 5) then zoneindexreturn = "Shadowmoon Valley 68-70" elseif(zoneIndex == 6) then zoneindexreturn = "Shattrath City Town" elseif(zoneIndex == 7) then zoneindexreturn = "Terokar Forest 65-68"; elseif(zoneIndex == 8) then zoneindexreturn = "Zangarmarsh 62-65"; elseif(zoneIndex == 0) then zoneindexreturn = "Pick a zone!" end elseif(continent == 4) then if(zoneIndex == 1) then zoneindexreturn = "Borean Tundra 68-72" elseif(zoneIndex == 2) then zoneindexreturn = "Crystalsong Forest 65-68" elseif(zoneIndex == 3) then zoneindexreturn = "Dalaran Town" elseif(zoneIndex == 4) then zoneindexreturn = "Dragonblight 63-66" elseif(zoneIndex == 5) then zoneindexreturn = "Grizzly HIlls 65-68" elseif(zoneIndex == 6) then zoneindexreturn = "Howling Fjord 68-72" elseif(zoneIndex == 8) then zoneindexreturn = "Icecrown 78-80" elseif(zoneIndex == 9) then zoneindexreturn = "Sholazar Basin 65-68" elseif(zoneIndex == 10) then zoneindexreturn = "The Storm Peaks 78-80" elseif(zoneIndex == 11) then zoneindexreturn = "Wintersgrasp PVP"; elseif(zoneIndex == 12) then zoneindexreturn = "Zul'Drak 75-78"; elseif(zoneIndex == 0)then zoneindexreturn = "Pick a zone!" end elseif(continent == -1) then zoneindexreturn = "Pick a World!" end text="Player:"..capZone.." "..zoneLevelLow[zone].."-"..zoneLevelHigh[zone].." ".."Map:"..zoneindexreturn ZoneLevelM.c:SetText(text) end end ZLVLMAP() function ZLVLEXPBAR() ZoneLevelEXP=CreateFrame("Frame","ZoneLevelEXP",MainMenuExpBar); ZoneLevelEXP.c=ZoneLevelEXP:CreateFontString(nil,"OVERLAY"); --OVERLAY --nil ARTWORK ZoneLevelEXP.c:SetPoint("BOTTOMRIGHT",MainMenuExpBar,"BOTTOMRIGHT",4,2); --0,10 ZoneLevelEXP.c:SetJustifyH("RIGHT"); ZoneLevelEXP.c:SetFontObject(GameFontNormal); ZoneLevelEXP:SetScript("OnUpdate",ZoneLevelEXPOnUpdate); end function ZoneLevelEXPOnUpdate() local xp = UnitXP("player") local xpmax = UnitXPMax("player") local level = UnitLevel("player") if(zlvlexpbar == true) then text="("..floor(xpmax-xp)..")"; ZoneLevelEXP.c:SetText(text) elseif(level == 80) then text=""; ZoneLevelEXP.c:SetText(text) elseif(zlvlexpbar == false) then text=""; ZoneLevelEXP.c:SetText(text) end end ZLVLEXPBAR() function ZLVLREPBAR() ZoneLevelREP=CreateFrame("Frame","ZoneLevelREP",ReputationWatchBar); ZoneLevelREP.c=ZoneLevelREP:CreateFontString(nil,"OVERLAY"); --OVERLAY --nil ARTWORK ZoneLevelREP.c:SetPoint("BOTTOMRIGHT",ReputationWatchBar,"BOTTOMRIGHT",-25,2); --0,10 ZoneLevelREP.c:SetJustifyH("RIGHT"); ZoneLevelREP.c:SetFontObject(GameFontNormal); ZoneLevelREP:SetScript("OnUpdate",ZoneLevelREPOnUpdate); end function ZoneLevelREPOnUpdate() local name, standing, min, max, value = GetWatchedFactionInfo(); if(zlvlrepbartogo == true) then text=floor(max-value) ZoneLevelREP.c:SetText(text) elseif(zlvlrepbartogo == false) then text="" ZoneLevelREP.c:SetText(text) end end ZLVLREPBAR() function ZLVLREPBART() ZoneLevelREPT=CreateFrame("Frame","ZoneLevelREPT",ReputationWatchBar); ZoneLevelREPT.c=ZoneLevelREPT:CreateFontString(nil,"OVERLAY"); --OVERLAY --nil ARTWORK ZoneLevelREPT.c:SetPoint("BOTTOMLEFT",ReputationWatchBar,"BOTTOMLEFT",25,2); --0,10 ZoneLevelREPT.c:SetJustifyH("LEFT"); ZoneLevelREPT.c:SetFontObject(GameFontNormal); ZoneLevelREPT:SetScript("OnUpdate",ZoneLevelREPTOnUpdate); end function ZoneLevelREPTOnUpdate() local name, standing, min, max, value = GetWatchedFactionInfo(); if(zlvlrepbartext == true) then if(standing == 0) then text="Unknown" ZoneLevelREPT.c:SetText(text) elseif(standing == 1) then text="Hated" ZoneLevelREPT.c:SetText(text) elseif(standing == 2) then text="Hostile" ZoneLevelREPT.c:SetText(text) elseif(standing == 3) then text="Unfriendly" ZoneLevelREPT.c:SetText(text) elseif(standing == 4) then text="Neutral" ZoneLevelREPT.c:SetText(text) elseif(standing == 5) then text="Friendly" ZoneLevelREPT.c:SetText(text) elseif(standing == 6) then text="Honored" ZoneLevelREPT.c:SetText(text) elseif(standing == 7) then text="Revered" ZoneLevelREPT.c:SetText(text) elseif(standing == 8) then text="Exalted" ZoneLevelREPT.c:SetText(text) end elseif(zlvlrepbartext == false) then text="" ZoneLevelREPT.c:SetText(text) end end ZLVLREPBART() -- BASE FRAME MyFrame = CreateFrame("Frame", "ZLVLCONFIG", ZLVLCONFIG) MyFrame:ClearAllPoints() MyFrame:SetBackdrop(StaticPopup1:GetBackdrop()) MyFrame:SetFrameStrata("HIGH") MyFrame:SetHeight(300) MyFrame:SetWidth(300) MyFrame:SetClampedToScreen(true) MyFrame:SetMovable(true) MyFrame:EnableMouse(true) MyFrame:Hide() MyFrame:SetScript("OnMouseDown",function() MyFrame:StartMoving() end) MyFrame:SetScript("OnMouseUp",function() MyFrame:StopMovingOrSizing() end) --TOP TEXT MyFrame.text = MyFrame:CreateFontString(nil, "BACKGROUND", "GameFontNormal") MyFrame.text:SetPoint("TOP",ZLVLCONFIG,"TOP", 0,-15) MyFrame.text:SetText("ZoneLevel") MyFrame:SetPoint("CENTER", 0, 0) --UNDER TOP TEXT MyFrame.textt = MyFrame:CreateFontString(nil, "OVERLAY", "GameFontNormal") MyFrame.textt:SetPoint("TOP", ZLVLCONFIG, "TOP", 0,-25) MyFrame.textt:SetText("Config") --REP/EXP MyFrame.textaz = MyFrame:CreateFontString(nil, "BACKGROUND", "GameFontNormal") MyFrame.textaz:SetPoint("TOP", ZLVLCONFIG, "TOP", -75,-45) MyFrame.textaz:SetText("Rep/Exp Bar") --ICONFUNCTION CONT MyFrame.texticona = MyFrame:CreateFontString(nil, "BACKGROUND", "GameFontNormal") MyFrame.texticona:SetPoint("TOP", ZLVLCONFIG, "TOP", -75,-150) MyFrame.texticona:SetText("Icon Functions") --INFO BOTTOM MyFrame.textab = MyFrame:CreateFontString(nil, "BACKGROUND", "GameFontNormal") MyFrame.textab:SetPoint("BOTTOM", ZLVLCONFIG, "BOTTOM", -30,15) MyFrame.textab:SetText("ZoneLevel - soulofsin007@gmail.com") --ICON FUNCTIONS MyFrame.texticon = MyFrame:CreateFontString(nil, "BACKGROUND", "GameFontNormal") MyFrame.texticon:SetPoint("TOP", ZLVLCONFIG, "TOP", 75,-45) MyFrame.texticon:SetText("Icon Cont.") --BUTTON Exp TOGO MyFrame.btn = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btn:SetWidth(100) MyFrame.btn:SetHeight(22) MyFrame.btn:SetPoint("TOP", ZLVLCONFIG, "TOP", -75,-64) MyFrame.btn:SetText("EXP ToGo") MyFrame.btn:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btn:SetScript("OnClick", function() if(zlvlexpbar == true) then DEFAULT_CHAT_FRAME:AddMessage("Turning off exp bar text.") zlvlexpbar = false elseif(zlvlexpbar == false) then DEFAULT_CHAT_FRAME:AddMessage("Turning on exp bar togo.") zlvlexpbar = true end end) MyFrame.btn:SetAlpha(1) MyFrame.btn:Show() --BUTTON REP EXP TO GO MyFrame.btnrep = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnrep:SetWidth(100) MyFrame.btnrep:SetHeight(22) MyFrame.btnrep:SetPoint("TOP", ZLVLCONFIG, "TOP", -75,-94) MyFrame.btnrep:SetText("Rep ToGo") MyFrame.btnrep:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnrep:SetScript("OnClick", function() if(zlvlrepbartogo == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding rep togo.") zlvlrepbartogo = false; elseif(zlvlrepbartogo == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing rep togo.") zlvlrepbartogo = true end end) MyFrame.btnrep:SetAlpha(1) MyFrame.btnrep:Show() --BUTTON REP STATUS MyFrame.btnrepstat = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnrepstat:SetWidth(100) MyFrame.btnrepstat:SetHeight(22) MyFrame.btnrepstat:SetPoint("TOP", ZLVLCONFIG, "TOP", -75,-124) MyFrame.btnrepstat:SetText("Rep Status") MyFrame.btnrepstat:SetPoint("CENTER", MyFrame, "Center") MyFrame.btnrepstat:SetScript("OnClick", function() if(zlvlrepbartext == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding your current status from rep bar.") zlvlrepbartext = false; elseif(zlvlrepbartext == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing your current status on rep bar.") zlvlrepbartext = true end end) --BUTTON EXIT MyFrame.btnexit = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnexit:SetWidth(20) MyFrame.btnexit:SetHeight(20) MyFrame.btnexit:SetPoint("TOP", ZLVLCONFIG, "TOP", 125,-10) MyFrame.btnexit:SetText("X") MyFrame.btnexit:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnexit:SetScript("OnClick", function() if(MyFrame:Show()) then MyFrame:Hide() elseif(MyFrame:Hide()) then MyFrame:Show() end end) MyFrame.btnexit:SetAlpha(1) MyFrame.btnexit:Show() --HIDE/SHOW ICOn MyFrame.btnicon = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnicon:SetWidth(100) MyFrame.btnicon:SetHeight(22) MyFrame.btnicon:SetPoint("TOP", ZLVLCONFIG, "TOP", 75,-55) MyFrame.btnicon:SetText("Icon") MyFrame.btnicon:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnicon:SetScript("OnClick", function() if(zoneLevelShowIcon == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding Icon.") zoneLevelShowIcon = false ZoneLevelBase:Hide(); elseif(zoneLevelShowIcon == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing icon.") ZoneLevelBase:Show() zoneLevelShowIcon = true end end) MyFrame.btnicon:SetAlpha(1) MyFrame.btnicon:Show() --LOCK ICON MyFrame.btnlock = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnlock:SetWidth(100) MyFrame.btnlock:SetHeight(22) MyFrame.btnlock:SetPoint("TOP", ZLVLCONFIG, "TOP", 75,-85) MyFrame.btnlock:SetText("Lock/Unlock") MyFrame.btnlock:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnlock:SetScript("OnClick", function() if(zoneLevelLocked == true) then DEFAULT_CHAT_FRAME:AddMessage("Unlocking Icon.") zoneLevelLocked = false; ZoneLevelBase:GetTitleRegion():SetAllPoints(ZoneLevelBase); elseif(zoneLevelLocked == false) then DEFAULT_CHAT_FRAME:AddMessage("Locking Icon.") zoneLevelLocked = true; ZoneLevelBase:GetTitleRegion():ClearAllPoints() ZoneLevelBase:GetTitleRegion():SetPoint("TOPLEFT", frame, "TOPLEFT", 0,0 ) ZoneLevelBase:GetTitleRegion():SetPoint("BOTTOMRIGHT", frame, "TOPRIGHT", 0,0 ) end end) MyFrame.btnlock:SetAlpha(1) MyFrame.btnlock:Show() --CORDS MyFrame.btnlock = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnlock:SetWidth(100) MyFrame.btnlock:SetHeight(22) MyFrame.btnlock:SetPoint("TOP", ZLVLCONFIG, "TOP", 75,-115) MyFrame.btnlock:SetText("Cords") MyFrame.btnlock:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnlock:SetScript("OnClick", function() if(zonelevelcords == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding Cords from icon. Requires reload of ui. Type /zlvl 1 to reload UI.") zonelevelcords = false; elseif(zonelevelcords == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing cords on icon.") zonelevelcords = true; end end) MyFrame.btnlock:SetAlpha(1) MyFrame.btnlock:Show() --LEVEL ON ICOn MyFrame.btnlock = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnlock:SetWidth(100) MyFrame.btnlock:SetHeight(22) MyFrame.btnlock:SetPoint("TOP", ZLVLCONFIG, "TOP", 75,-145) MyFrame.btnlock:SetText("Your Level") MyFrame.btnlock:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnlock:SetScript("OnClick", function() if(zonelevellevel == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding your level from icon. Requires reload of ui. Type /zlvl 1 to reload UI.") zonelevellevel = false; elseif(zonelevellevel == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing your level on icon.") zonelevellevel = true; end end) MyFrame.btnlock:SetAlpha(1) MyFrame.btnlock:Show() -- FPS ON ICON MyFrame.btnlock = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnlock:SetWidth(100) MyFrame.btnlock:SetHeight(22) MyFrame.btnlock:SetPoint("TOP", ZLVLCONFIG, "TOP", 75,-175) MyFrame.btnlock:SetText("FPS") MyFrame.btnlock:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnlock:SetScript("OnClick", function() if(zonelevelfps == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding your FPS from icon. Requires reload of ui. Type /zlvl 1 to reload UI.") zonelevelfps = false; elseif(zonelevelfps == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing your FPS on icon.") zonelevelfps = true; end end) MyFrame.btnlock:SetAlpha(1) MyFrame.btnlock:Show() --HONOR ON ICON MyFrame.btnlock = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnlock:SetWidth(100) MyFrame.btnlock:SetHeight(22) MyFrame.btnlock:SetPoint("TOP", ZLVLCONFIG, "TOP", -75,-195) MyFrame.btnlock:SetText("Honor") MyFrame.btnlock:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnlock:SetScript("OnClick", function() if(zonelevelhonor == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding your current honor from icon. Requires reload of ui. Type /zlvl 1 to reload UI.") zonelevelhonor = false; elseif(zonelevelhonor == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing your current honor on icon.") zonelevelhonor = true; end end) MyFrame.btnlock:SetAlpha(1) MyFrame.btnlock:Show() --HONOR SESSION MyFrame.btnlock = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnlock:SetWidth(100) MyFrame.btnlock:SetHeight(22) MyFrame.btnlock:SetPoint("TOP", ZLVLCONFIG, "TOP", -75,-225) MyFrame.btnlock:SetText("Honor Session") MyFrame.btnlock:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnlock:SetScript("OnClick", function() if(zonelevelhonorsession == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding your current honor session from icon. Requires reload of ui. Type /zlvl 1 to reload UI.") zonelevelhonorsession = false; elseif(zonelevelhonorsession == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing your current honor session on icon.") zonelevelhonorsession = true; end end) MyFrame.btnlock:SetAlpha(1) MyFrame.btnlock:Show() --MAPTEXT MyFrame.btnlock = CreateFrame("BUTTON", nil, MyFrame, "UIPanelButtonTemplate") MyFrame.btnlock:SetWidth(100) MyFrame.btnlock:SetHeight(22) MyFrame.btnlock:SetPoint("TOP", ZLVLCONFIG, "TOP", -75,-165) MyFrame.btnlock:SetText("Map Text") MyFrame.btnlock:SetPoint("CENTER", MyFrame, "CENTER") MyFrame.btnlock:SetScript("OnClick", function() if(zlvlmaptext == true) then DEFAULT_CHAT_FRAME:AddMessage("Hiding map text from world map. Requires reload of ui. Type /zlvl 1 to reload UI.") zlvlmaptext = false; elseif(zlvlmaptext == false) then DEFAULT_CHAT_FRAME:AddMessage("Showing text on world map.") zlvlmaptext = true; end end) MyFrame.btnlock:SetAlpha(1) MyFrame.btnlock:Show()