-- MinMaxScale local function MinMaxScale(arg) arg = tonumber(arg) if (arg < 0.5) then arg = 0.5 elseif (arg > XPerlConfig.MaximumScale) then arg = XPerlConfig.MaximumScale end return arg end -- XPerl_SlashHandler local function XPerl_SlashHandler(msg) local args = {} local BLU = "|c000000FF" local CYN = "|c0000A0A0" local RED = "|c00FF0000" local GRN = "|c0000FF00" local YELLOW = "|c00FFFF00" local CLR = "|r" for value in string.gfind(msg, "[^ ]+") do tinsert(args, string.lower(value)) end if (args[1]=="") then XPerl_OptionsMenu_Frame:Show() return end local enable = 0 if (args[2]) then if (args[2] == "on" or args[2] == "show" or args[2] == "true" or args[2] == "1") then enable = 1 end end local SimpleOptions = { ["playerportrait"] = "ShowPlayerPortrait", ["portrait3d"] = "ShowPlayerPortrait3D", ["counters"] = "TargetCounters", ["combatflash"] = "CombatFlash", ["fadeframes"] = "PerlFadeFrames", ["highlight"] = "HighlightSelection", ["counthealersonly"] = "TargetCountersSelf", ["enemycounters"] = "TargetCountersEnemy", ["playerlevel"] = "ShowPlayerLevel=enable;", ["playerclass"] = "ShowPlayerClassIcon", ["targetportrait"] = "ShowTargetPortrait", ["targetmobtype"] = "ShowTargetMobType", ["targetlevel"] = "ShowTargetLevel", ["targetmana"] = "ShowTargetMana", ["targetelite"] = "ShowTargetElite", ["targetclass"] = "ShowTargetClassIcon", ["hitindicator"] = "CombatHitIndicator", ["partylevel"] = "ShowPartyLevel", ["partyicon"] = "ShowPartyClassIcon", ["partyvalues"] = "ShowPartyValues", ["partypercent"] = "ShowPartyPercent", ["partynames"] = "ShowPartyNames", ["partytarget"] = "ShowPartyTarget", ["partybuffs"] = "PartyBuffs", ["partydebuffs"] = "PartyDebuffs", ["classcolours"] = "ClassColouredNames", ["classcolors"] = "ClassColouredNames", ["petlevel"] = "ShowPetLevel", ["pethappiness"] = "PetHappiness", ["playerxp"] = "ShowPlayerXPBar", ["playerrank"] = "ShowPlayerPVPRank", ["targetrank"] = "ShowTargetPVPRank", ["arcanebar"] = "ArcaneBar", ["oldcastbar"] = "OldCastBar", ["partyinraid"] = "ShowPartyRaid", ["targettarget"] = "ShowTargetTarget", ["targethistory"] = "TargetTargetHistory", ["petxp"] = "ShowPetXP", ["targettargetbuffs"] = "TargetTargetBuffs", ["target30yard"] = "Show30YardSymbol", ["casttime"] = "CastTime", ["partynumber"] = "ShowPartyNumber", ["raidpercent"] = "ShowRaidPercents", ["group1"] = "ShowGroup1", ["group2"] = "ShowGroup2", ["group3"] = "ShowGroup3", ["group4"] = "ShowGroup4", ["group5"] = "ShowGroup5", ["group6"] = "ShowGroup6", ["group7"] = "ShowGroup7", ["group8"] = "ShowGroup8", ["group9"] = "ShowGroup9", ["minimapbutton"] = "MinimapButtonShown" } local foundSimple = SimpleOptions[args[1]] if (foundSimple) then XPerlConfig[foundSimple] = enable else if (args[1] == nil or args[1] == "menu" or args[1] == "options") then XPerl_UnlockFrames() elseif (args[1]=="lock") then XPerlLocked = 1 if (XPerl_RaidTitles) then XPerl_RaidTitles() end elseif (args[1]=="unlock") then XPerlLocked = 0 if (XPerl_RaidTitles) then XPerl_RaidShowAllTitles() end elseif (args[1]=="usecptext") then XPerlConfig.UseCPMeter=0 elseif (args[1]=="usecpmeter") then XPerlConfig.UseCPMeter=1 elseif (args[1]=="nobartextures") then XPerlConfig.BarTextures=0 elseif (args[1]=="bartextures") then XPerlConfig.BarTextures=1 elseif (args[1]=="settexttrans") then XPerlConfig.TextTransparency = tonumber(args[2]) elseif (args[1]=="settrans") then XPerlConfig.Transparency = tonumber(args[2]) elseif (args[1]=="setplayerscale") then XPerlConfig.Scale_PlayerFrame = MinMaxScale(args[2]) elseif (args[1]=="setpetscale") then XPerlConfig.Scale_PetFrame = MinMaxScale(args[2]) elseif (args[1]=="setpartyscale") then XPerlConfig.Scale_PartyFrame = MinMaxScale(args[2]) elseif (args[1]=="setpartypetscale") then XPerlConfig.Scale_PartyPets = MinMaxScale(args[2]) elseif (args[1]=="settargetscale") then XPerlConfig.Scale_TargetFrame = MinMaxScale(args[2]) elseif (args[1]=="settargettargetscale") then XPerlConfig.Scale_TargetTargetFrame = MinMaxScale(args[2]) elseif (args[1]=="partydebuffs" and args[2]=="below") then XPerlConfig.PartyDebuffsBelow=1 elseif (args[1]=="partydebuffs" and args[2]=="right") then XPerlConfig.PartyDebuffsBelow=0 elseif (args[1]=="raidbyclass") then XPerlConfig.SortRaidByClass=1 elseif (args[1]=="raidbygroup") then XPerlConfig.SortRaidByClass=0 elseif (args[1]=="raid") then XPerlConfig.ShowRaid = enable for i = 1,10 do XPerlConfig["ShowRaid"..i] = enable end elseif (args[1]=="setraidscale") then XPerlConfig.Scale_Raid = MinMaxScale(args[2]) elseif (args[1]=="backcolor" or args[1]=="bordercolor" or args[1]=="backcolour" or args[1]=="bordercolour") then local r = tonumber(args[2]) local g = tonumber(args[3]) local b = tonumber(args[4]) if (r >= 0 and r <= 1) then if (g >= 0 and g <= 1) then if (b >= 0 and b <= 1) then if (args[1]=="backcolor" or args[1]=="backcolour") then XPerlConfig.BackColour.r = r XPerlConfig.BackColour.g = g XPerlConfig.BackColour.b = b else XPerlConfig.BorderColour.r = r XPerlConfig.BorderColour.g = g XPerlConfig.BorderColour.b = b end end end end elseif (args[1]=="simpleframes" or args[1]=="complexframes") then if (args[1]=="simpleframes") then enable = 0 else enable = 1 end XPerlConfig.ShowPlayerPortrait = enable XPerlConfig.ShowPlayerLevel = enable XPerlConfig.ShowPlayerClassIcon = enable XPerlConfig.ShowTargetClassIcon = enable XPerlConfig.ShowTargetPortrait = enable XPerlConfig.ShowTargetMobType = enable XPerlConfig.ShowTargetLevel = enable XPerlConfig.ShowTargetElite = enable XPerlConfig.ShowPartyLevel = enable XPerlConfig.ShowPartyClassIcon = enable XPerlConfig.ShowPartyPercent = enable XPerlConfig.ShowPetLevel = enable XPerlConfig.PetHappiness = enable elseif (args[1] == "basichelp" or args[1] == "help") then DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."lock"..CLR.." /xperl "..CYN.."unlock"..CLR.." /xperl "..CYN.."menu") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."simpleframes"..CLR.." /xperl "..CYN.."complexframes") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."showhidehelp"..CLR.." /xperl "..CYN.."settexttrans "..YELLOW.."#") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."settrans "..YELLOW.."#"..CLR.." /xperl "..CYN.."settargetscale "..YELLOW.."#") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."setpartyscale "..YELLOW.."#"..CLR.." /xperl "..CYN.."setplayerscale "..YELLOW.."#") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."setpetscale "..YELLOW.."#"..CLR.." /xperl "..CYN.."settargettargetscale "..YELLOW.."#") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."usecptext"..CLR.." /xperl "..CYN.."bartextures"..CLR.." /xperl "..CYN.."usecpmeter") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."nobartextures"..CLR.." /xperl "..CYN.."castparty "..YELLOW.."on/off") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."targettarget "..YELLOW.."on"..CLR.." /xperl "..CYN.."targethistory "..YELLOW.."on/off") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."portrait3d "..YELLOW.."hide/show"..CLR.." /xperl "..CYN.."counters "..YELLOW.."on/off") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."enemycounters "..YELLOW.."on/off"..CLR.." /xperl "..CYN.."counthealersonly "..YELLOW.."on/off") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."combatflash "..YELLOW.."on/off") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."partynumber "..YELLOW.."on/off"..CLR.." /xperl "..CYN.."targettargetbuffs "..YELLOW.."on/off") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."backcolor "..RED.."r "..GRN.."g "..BLU.."b"..CLR.." /xperl "..CYN.."bordercolor "..RED.."r "..GRN.."g "..BLU.."b") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."hitindicator "..YELLOW.."on/off"..CLR.." /xperl "..CYN.."partybuffs "..YELLOW.."on/off") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."partydebuffs "..YELLOW.."on/off"..CLR.." /xperl "..CYN.."minimapbutton "..YELLOW.."on/off") DEFAULT_CHAT_FRAME:AddMessage("/xperl "..CYN.."highlight "..YELLOW.."on/off"..CLR.." /xperl "..CYN.."fadeframes "..YELLOW.."on/off") elseif (args[1]=="showhidehelp") then DEFAULT_CHAT_FRAME:AddMessage("Use /xperl target show/hide") DEFAULT_CHAT_FRAME:AddMessage("For example, to hide the player level, use") DEFAULT_CHAT_FRAME:AddMessage("/xperl playerlevel hide --make sure your only space is directly after 'perl'.") DEFAULT_CHAT_FRAME:AddMessage("Valid Targets:") DEFAULT_CHAT_FRAME:AddMessage("playerportrait "..CYN.."targetportrait"..CLR.." partyicon") DEFAULT_CHAT_FRAME:AddMessage(CYN.."playerlevel"..CLR.." targetlevel "..CYN.."partylevel"..CLR.." petlevel") DEFAULT_CHAT_FRAME:AddMessage("playerclass "..CYN.."targetmobtype"..CLR.." partypercent "..CYN.."partyvalues") DEFAULT_CHAT_FRAME:AddMessage(CYN.."playerxp"..CLR.." targetmana "..CYN.."partyinraid"..CLR.." castparty") DEFAULT_CHAT_FRAME:AddMessage("playerrank "..CYN.."targetrank"..CLR.." partynames "..CYN.."blizzardplayer") DEFAULT_CHAT_FRAME:AddMessage(CYN.."targetclass"..CLR.." targetelite "..CYN.."arcanebar"..CLR.." oldcastbar") DEFAULT_CHAT_FRAME:AddMessage("partytarget "..CYN.."petxp"..CLR.." pethappiness") DEFAULT_CHAT_FRAME:AddMessage("Note that /xperl simpleframes or complexframes may override these settings.") else DEFAULT_CHAT_FRAME:AddMessage("Unknown command, type /xperl "..CYN.."help") end end XPerl_OptionActions() end -- XPerl_SlashOnLoad function XPerl_SlashOnLoad() SlashCmdList["XPERL"] = XPerl_SlashHandler SLASH_XPERL1 = "/xperl" XPerl_SlashOnLoad = nil end