/tags
local L = AceLibrary("AceLocale-2.2"):new("CCBreaker") |
--[[ |
Explanation: |
[spell] : name of the broken spell |
[target] : name of the target the spell was on |
[breaker] : name of the person removing the spell |
[ability] : name of the ability breaking the spell |
]]-- |
L:RegisterTranslations("zhCN", function() return { |
["[spell] on [target] was removed by [breaker]"] = "[target]身ä¸ç[spell]å 为[breaker]çè¡ä¸ºèæ¶å¤±äº", |
["[spell] on [target] was removed by [breaker]'s [ability]"] = "[target]身ä¸ç[spell]å 为[breaker]ç[ability]èæ¶å¤±äº", |
["[spell] on [target] was removed"] = "[target]身ä¸ç[spell]æ¶å¤±äº", |
["ability"] = "èäºæè½", |
["breaker"] = "èäºè ", |
["broadcast as raidwarning"] = "以å¢éè¦åçå½¢å¼å¹¿æ", |
["broadcast to party"] = "广æå°éä¼é¢é", |
["broadcast to raid"] = "广æå°å¢éé¢é", |
["center"] = "é误æ示信æ¯æ¡", |
["Change the displayed text, leave blank for default"] = "æ´æ¹å±å¹ä¸é´çæåï¼ç空å使ç¨é»è®¤æå", |
["Chat options"] = "è天é¢éé项", |
["chat"] = "é¢é", |
["Chose color to use"] = "éæ©è¦ä½¿ç¨çé¢è²", |
["class"] = "èä¸", |
["Color messages"] = "é¢è²ä¿¡æ¯", |
["color text"] = "é¢è²æå", |
["color"] = "é¢è²", |
["config"] = "æå¼é ç½®çªå£", |
["console"] = "è天çªå£", |
["debug"] = "è°è¯", |
["Display ability breaking the CC"] = "æ¾ç¤ºç ´åäºæ§å¶æè½çæè½", |
["Display broken spell"] = "æ¾ç¤ºè¢«ç ´åäºçæè½", |
["Display centered messages"] = "å¨å±å¹ä¸é´æ¾ç¤ºä¿¡æ¯", |
["Display console messages"] = "å¨è天çªå£æ¾ç¤ºä¿¡æ¯", |
["Display freed target"] = "æ¾ç¤ºæ¾è¢«æ§å¶çé£ä¸ªç®æ ", |
["Display options for centered messages"] = "å¨é误æ示信æ¯æ¡ä¸æ¾ç¤ºæéææ¬", |
["Display options in console"] = "å¨è天çªå£éæ¾ç¤ºæéææ¬", |
["Display options in Fubar"] = "å¨FuBaræ示çªå£éæ¾ç¤º", |
["Display options"] = "æå ³ä¿¡æ¯æ¾ç¤ºçé项", |
["Display who broke CC"] = "æ¾ç¤ºæ¯è°ç ´åäºæ§å¶æè½", |
["display"] = "æ¾ç¤º", |
["druid"] = "å¾·é²ä¼", |
["Enable debug messages"] = "å¯ç¨è°è¯ä¿¡æ¯", |
["enable"] = "å¯ç¨", |
["Filter for classes"] = "èä¸è¿æ»¤å¨", |
["Filter for raid roles"] = "å¢éè§è²è¿æ»¤å¨", |
["Filter for unit types"] = "åä½ç±»åè¿æ»¤å¨", |
["Filter Options"] = "è¿æ»¤å¨é项", |
["filter"] = "è¿æ»¤å¨", |
["four"] = "详ç»ä¿¡æ¯", |
["fubar"] = "FuBar", |
["hunter"] = "ç人", |
["mage"] = "æ³å¸", |
["mainassist"] = "主å©ç", |
["maintank"] = "主å¦å ", |
["Open config in a Waterall window"] = "å¨Waterfallçªå£éè¿è¡é项é ç½®", |
["others"] = "å ¶ä»äºº", |
["paladin"] = "å£éªå£«", |
["party pet"] = "éä¼å® ç©", |
["party"] = "éä¼", |
["pet"] = "å® ç©", |
["player"] = "èªå·±", |
["priest"] = "ç§å¸", |
["raid pet"] = "å¢éå® ç©", |
["raid"] = "å¢é", |
["raidwarning"] = "å¢éè¦å", |
["Report CC breaks from those only"] = "åªæ¥åæ¥èªäºè¿äºéå®ç人çç ´å", |
["Report CC breaks of effects"] = "åªæ¥åè¿äºéå®çæ³æ¯ææ", |
["Report CC breaks to those targets only"] = "åªæ¥å对äºè¿äºç®æ çç ´å", |
["Reset breaker data"] = "éç½®æç»è®¡çæ°æ®", |
["reset"] = "éç½®", |
["Rightclick for options"] = "å³é®ç¹å»æå¼é项èå", |
["rogue"] = "æ½è¡è ", |
["role"] = "è§è²", |
["shaman"] = "è¨æ»¡ç¥å¸", |
["Show break from druids"] = "æ¾ç¤ºæ¥èªå¾·é²ä¼çç ´å", |
["Show break from hunters"] = "æ¾ç¤ºæ¥èªç人çç ´å", |
["Show break from mages"] = "æ¾ç¤ºæ¥èªæ³å¸çç ´å", |
["Show break from mainassists"] = "æ¾ç¤ºæ¥èªä¸»å©ççç ´å", |
["Show break from maintanks"] = "æ¾ç¤ºæ¥èªä¸»å¦å çç ´å", |
["Show break from others"] = "æ¾ç¤ºæ¥èªå ¶ä»äººçç ´å", |
["Show break from paladins"] = "æ¾ç¤ºæ¥èªå£éªå£«çç ´å", |
["Show break from party members"] = "æ¾ç¤ºæ¥èªéä¼æåçç ´å", |
["Show break from party pets"] = "æ¾ç¤ºæ¥èªéä¼å® ç©çç ´å", |
["Show break from player"] = "æ¾ç¤ºæ¥èªèªå·±çç ´å", |
["Show break from priests"] = "æ¾ç¤ºæ¥èªç§å¸çç ´å", |
["Show break from raid members"] = "æ¾ç¤ºæ¥èªå¢éæåçç ´å", |
["Show break from raid pets"] = "æ¾ç¤ºæ¥èªå¢éå® ç©çç ´å", |
["Show break from rogues"] = "æ¾ç¤ºæ¥èªæ½è¡è çç ´å", |
["Show break from shamans"] = "æ¾ç¤ºæ¥èªè¨æ»¡ç¥å¸çç ´å", |
["Show break from warlocks"] = "æ¾ç¤ºæ¥èªæ¯å£«çç ´å", |
["Show break from warriors"] = "æ¾ç¤ºæ¥èªæ士çç ´å", |
["Show break from your pet"] = "æ¾ç¤ºæ¥èªèªå·±å® ç©çç ´å", |
["Show break of "] = "å½è¯¥æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on druids"] = "å½ä½ç¨äºå¾·é²ä¼èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on hunters"] = "å½ä½ç¨äºç人身ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on mages"] = "å½ä½ç¨äºæ³å¸èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on mainassists"] = "å½ä½ç¨äºä¸»å©ç身ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on maintanks"] = "å½ä½ç¨äºä¸»å¦å 身ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on others"] = "å½ä½ç¨äºå ¶ä»äººèº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on paladins"] = "å½ä½ç¨äºå£éªå£«èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on party members"] = "å½ä½ç¨äºéä¼æå身ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on party pets"] = "å½ä½ç¨äºéä¼å® ç©èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on player"] = "å½ä½ç¨äºèªå·±èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on priests"] = "å½ä½ç¨äºç§å¸èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on raid members"] = "å½ä½ç¨äºå¢éæå身ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on raid pets"] = "å½ä½ç¨äºå¢éå® ç©èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on rogues"] = "å½ä½ç¨äºæ½è¡è 身ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on shamans"] = "å½ä½ç¨äºè¨æ»¡ç¥å¸èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on warlocks"] = "å½ä½ç¨äºæ¯å£«èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on warriors"] = "å½ä½ç¨äºæ士身ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["Show break on your pet"] = "å½ä½ç¨äºèªå·±å® ç©èº«ä¸æ§å¶æè½è¢«ç ´åæ¶æ¾ç¤º", |
["show effects"] = "è¦æ¾ç¤ºçææ", |
["show from"] = "èäºè è¿æ»¤", |
["show on"] = "ç®æ è¿æ»¤", |
["Slash-Commands"] = "å½ä»¤", |
["spell"] = "æ§å¶æè½", |
["target"] = "æ½æ¾ç®æ ", |
["text if only spell an target are given"] = "å¨åªè½å¾å°âæ§å¶æè½â以åâæ½æ¾ç®æ âä¿¡æ¯æ¶ä½¿ç¨çæå", |
["text if only spell, target and breaker are given"] = "å¨åªè½å¾å°âæ§å¶æè½âãâæ½æ¾ç®æ â以åâèäºè âä¿¡æ¯æ¶ä½¿ç¨çæå", |
["text if spell, target, breaker and ability are given"] = "å¨âæ§å¶æè½âãâæ½æ¾ç®æ âãâèäºè â以åâèäºæè½âä¿¡æ¯é½ææ¶ä½¿ç¨çæå", |
["text"] = "ææ¬", |
["three"] = "ç®çä¿¡æ¯", |
["two"] = "æçä¿¡æ¯", |
["unit"] = "åä½", |
["warlock"] = "æ¯å£«", |
["warrior"] = "æ士", |
} end) |
CCBreaker = AceLibrary("AceAddon-2.0"):new("AceEvent-2.0","FuBarPlugin-2.0","AceConsole-2.0","AceDB-2.0") |
local AceEvent = AceLibrary("AceEvent-2.0") |
local CCLocale = AceLibrary("AceLocale-2.2"):new("CCBreaker") |
local CCTablet = AceLibrary("Tablet-2.0") |
CCBreaker.revision = tonumber(string.find("$Revision$","%d+")) or 1 |
-- Database |
CCBreaker:RegisterDB("CCBreakerDB","CCBreakerDBPC") |
-- basic datastructures |
local oddline = { |
['text']="", |
['text2']="", |
['text3']="", |
['text4']="", |
['textR']=1, |
['textG']=1, |
['textB']=1, |
['text2R']=1, |
['text2G']=1, |
['text2B']=1, |
['text3R']=1, |
['text3G']=1, |
['text3B']=1, |
['text4R']=1, |
['text4G']=1, |
['text4B']=1, |
['justify']="LEFT", |
['justify2']="LEFT", |
['justify3']="LEFT", |
['justify4']="LEFT", |
} |
local evenline = { |
['text']="", |
['text2']="", |
['text3']="", |
['text4']="", |
['textR']=0.7, |
['textG']=0.7, |
['textB']=0.7, |
['text2R']=0.7, |
['text2G']=0.7, |
['text2B']=0.7, |
['text3R']=0.7, |
['text3G']=0.7, |
['text3B']=0.7, |
['text4R']=0.7, |
['text4G']=0.7, |
['text4B']=0.7, |
['justify']="LEFT", |
['justify2']="LEFT", |
['justify3']="LEFT", |
['justify4']="LEFT", |
} |
--combat log locals |
local CombatLog_Object_IsA = CombatLog_Object_IsA |
local COMBATLOG_OBJECT_NONE = COMBATLOG_OBJECT_NONE |
local COMBATLOG_OBJECT_REACTION_HOSTILE = COMBATLOG_OBJECT_REACTION_HOSTILE or 0x00000040 |
local breakers = {} |
local toUnitID = {} |
local playerName = UnitName("player") |
local should_UpdateToUnitID = false |
local function UpdateToUnitID() |
should_UpdateToUnitID = false |
for k in pairs(toUnitID) do |
if k ~= playerName then |
toUnitID[k] = nil |
end |
end |
local numParty = GetNumPartyMembers() |
local numRaid = GetNumRaidMembers() |
if numRaid > 0 then |
for i = 1, numRaid do |
local unitID = "raidpet" .. i |
if UnitExists(unitID) then |
toUnitID[UnitName(unitID)] = unitID |
end |
end |
if UnitExists("pet") then |
toUnitID[UnitName("pet")] = "pet" |
end |
for i = 1, numRaid do |
local unitID = "raid" .. i |
toUnitID[UnitName(unitID)] = unitID |
end |
elseif numParty > 0 then |
for i = 1, numParty do |
local unitID = "partypet" .. i |
if UnitExists(unitID) then |
toUnitID[UnitName(unitID)] = unitID |
end |
end |
if UnitExists("pet") then |
toUnitID[UnitName("pet")] = "pet" |
end |
for i = 1, numParty do |
local unitID = "party" .. i |
toUnitID[UnitName(unitID)] = unitID |
end |
else |
if UnitExists("pet") then |
toUnitID[UnitName("pet")] = "pet" |
end |
end |
end |
-- table recycling |
local breakertablecache ={} |
local function RecycleBreakerTable() |
while #breakers > 0 do |
table.insert(breakertablecache, table.remove(breakers)) |
end |
end |
local function GetBreakerTable() |
local t |
if #breakertablecache > 0 then |
t = table.remove(breakertablecache) |
else |
t = {} |
end |
return t |
end |
function CCBreaker:reset() |
self.lastBreaker = nil |
RecycleBreakerTable() |
self:UpdateText() |
end |
-- Initialisation |
CCBreaker.hasIcon = true |
function CCBreaker:OnInitialize() |
self.defaultMinimapPosition = 300 |
self:RegisterEvent("RAID_ROSTER_UPDATE","UnitUpdate") |
self:RegisterEvent("PARTY_MEMBERS_CHANGED","UnitUpdate") |
self:RegisterEvent("UNIT_PET","UnitUpdate") |
self:RegisterEvent("PLAYER_PET_CHANGED","UnitUpdate") |
self:RegisterEvent("PLAYER_LOGIN","UnitUpdate") |
self:RegisterEvent("UNIT_NAME_UPDATE","UnitUpdate") |
end |
function CCBreaker:UnitUpdate() |
should_UpdateToUnitID = true |
UpdateToUnitID() |
end |
function CCBreaker:OnEnable() |
toUnitID[playerName]="player" |
self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED", "CrowdControlBroken"); |
self.raidid = 0 |
end |
function CCBreaker:OnDisable() |
end |
-- Workload |
local function CreateText(info,textatt) |
local hlcolor |
local basecolor |
local text |
strings = textatt.strings |
if (strings.two =="") then |
strings.two = CCLocale["[spell] on [target] was removed"] |
end |
if (strings.three =="") then |
strings.three = CCLocale["[spell] on [target] was removed by [breaker]"] |
end |
if (strings.four =="") then |
strings.four = CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"] |
end |
if textatt.colors then |
hlcolor = textatt.color.colortext |
basecolor = "|r" |
else |
hlcolor = "" |
basecolor = "" |
end |
text = basecolor |
if info.sourceName then |
if info.sourceAbilityName then |
text = string.gsub(strings.four,"%[ability%]",hlcolor..info.sourceAbilityName..basecolor) |
else |
text = strings.three |
end |
text = string.gsub(text,"%[breaker%]",hlcolor..info.sourceName..basecolor) |
else |
text = strings.two |
end |
text = string.gsub(text,"%[spell%]",hlcolor..info.recipientAbilityName..basecolor) |
text = string.gsub(text,"%[target%]",hlcolor..info.recipientName..basecolor) |
return text |
end |
local function DisplayConsole(info) |
if CCBreaker.db.char.display.console.enable then |
CCBreaker:Print(CreateText(info,CCBreaker.db.char.display.console)) |
end |
end |
function DisplayCenter(info) |
if CCBreaker.db.char.display.center.enable then |
UIErrorsFrame:AddMessage(CreateText(info,CCBreaker.db.char.display.center), |
1.0, 1.0, 1.0, 5.0) |
end |
end |
function SendToChat(info) |
if (CCBreaker.db.char.chat.raid and GetNumRaidMembers() > 0) then |
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"RAID" ,nil ,nil) |
end |
if (CCBreaker.db.char.chat.raidwarning and GetNumRaidMembers()+GetNumPartyMembers() > 0)then |
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"RAID_WARNING" ,nil ,nil) |
end |
if (CCBreaker.db.char.chat.party and GetNumPartyMembers() > 0) then |
SendChatMessage( CreateText(info,CCBreaker.db.char.chat),"PARTY" ,nil ,nil) |
end |
end |
CCBreaker.filters={} |
function CCBreaker.filters.unitfilter(filter,value) |
local id |
local name, class, role |
if value then |
unittype, unitnumber = string.match(value,"(%a*)(%d*)") |
else |
return filter.others |
end |
if ((not(unitnumber == "")) and UnitInRaid(value)) then |
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(unitnumber) |
else |
if UnitInParty(value) then |
_,class = UnitClass(value) |
class = string.upper(class) |
end |
end |
local player = (unittype == "player") |
local party = (unittype == "party") |
local raid = (unittype == "raid") |
local pet = (unittype == "pet") |
local partypet = (unittype == "partypet") |
local raidpet = (unittype == "raidpet") |
-- I am in a raid |
if player and UnitInRaid(value) then |
local i = 0 |
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(CCBreaker.raidid) |
if not(name == UnitName("player")) then |
i=1 --go search |
end |
if i >0 then |
local playername = UnitName("player") |
while i <= 40 do |
name, _, _, _, _, class, _, _, _, role, _ = GetRaidRosterInfo(i) |
if name == playername then |
CCBreaker.raidid = i |
i = 40 |
end |
i=i+1 |
end |
end |
end |
-- finaly got my role for sure |
local typevalue = ( --check |
( player and (filter.player)) or |
( party and (filter.party)) or |
( raid and (filter.raid)) or |
( pet and (filter.pet)) or |
( partypet and (filter.partypet)) or |
( raidpet and (filter.raidpet)) or |
(not (player or party or raid or pet or partypet or raidpet) and filter.others) |
) |
local classvalue = ( --check |
(filter.warrior and class == "WARRIOR") or |
(filter.warlock and class == "WARLOCK") or |
(filter.hunter and class == "HUNTER") or |
(filter.mage and class == "MAGE") or |
(filter.priest and class == "PRIEST") or |
(filter.druid and class == "DRUID") or |
(filter.paladin and class == "PALADIN") or |
(filter.shaman and class == "SHAMAN") or |
(filter.rogue and class == "ROGUE") or |
(class == nil)) |
local rolevalue = not(((not filter.maintank) and role == "MAINTANK") or |
((not filter.mainassist) and role == "MAINASSIST")) |
return (typevalue and classvalue and rolevalue) |
end |
CCBreaker.PolyId={ |
[118]=true, -- Polymorph (rank 1) |
[12824]=true, -- Polymorph (rank 2) |
[12825]=true, -- Polymorph (rank 3) |
[12826]=true, -- Polymorph (rank 4) |
[28272]=true, -- Polymorph (rank 1:pig) |
[28271]=true, -- Polymorph (rank 1:turtle) |
} |
CCBreaker.ShackleId={ |
[9484]=true, -- Shackle Undead (rank 1) |
[9485]=true, -- Shackle Undead (rank 2) |
[10955]=true, -- Shackle Undead (rank 3) |
} |
CCBreaker.FreezingTrapId={ |
[3355]=true, -- Freezing Trap Effect (rank 1) |
[14308]=true, -- Freezing Trap Effect (rank 2) |
[14309]=true, -- Freezing Trap Effect (rank 3) |
} |
CCBreaker.HibernateId={ |
[2637]=true, -- Hibernate (rank 1) |
[18657]=true, -- Hibernate (rank 2) |
[18658]=true, -- Hibernate (rank 3) |
} |
CCBreaker.SapId={ |
[6770]=true, -- Sap (rank 1) |
[2070]=true, -- Sap (rank 2) |
[11297]=true, -- Sap (rank 3) |
} |
CCBreaker.SeductionId={ |
[6358]=true, -- Seduction (succubus) |
} |
local PolyId = CCBreaker.PolyId |
local ShackleId = CCBreaker.ShackleId |
local FreezingTrapId = CCBreaker.FreezingTrapId |
local HibernateId = CCBreaker.HibernateId |
local SapId = CCBreaker.SapId |
local SeductionId = CCBreaker.SeductionId |
function CCBreaker.filters.showeffects(showeffects,spellid) |
return (ShackleId[spellid] and showeffects.shackleundead) or |
(HibernateId[spellid] and showeffects.hibernate) or |
(SapId[spellid] and showeffects.sap) or |
(PolyId[spellid] and showeffects.polymorph) or |
(FreezingTrapId[spellid] and showeffects.freezingtrap) |
--[[ return (((spell == CCBabble["Shackle Undead"]) and (showeffects.shackleundead)) or |
((spell == CCBabble["Hibernate"]) and (showeffects.hibernate)) or |
((spell == CCBabble["Sap"]) and (showeffects.sap)) or |
((spell == CCBabble["Seduction"]) and (showeffects.seduction)) or |
(((spell == CCBabble["Polymorph"]) or (spell == CCBabble["Polymorph: Pig"]) |
or (spell == CCBabble["Polymorph: Turtle"])) and (showeffects.polymorphor |
((spell == CCBabble["Freezing Trap Effect"]) and (showeffects.freezingtrap)))]] |
end |
function CCBreaker:filter(info) |
local filters = self.filters |
local sourceid |
local targetid |
local db = self.db.char |
local spell = info.recipientAbilityName |
local showfrom = self.db.char.showfrom |
return ( |
-- "Show on" filter |
filters.unitfilter(db.showon,info.recipientID) and |
-- "Show From" filter |
filters.unitfilter(db.showfrom,info.sourceID) and |
-- "Show Effect" filter |
filters.showeffects(db.showeffects,info.recipientAbilityId) |
) |
end |
function CCBreaker:OnTextUpdate() |
local text = {} |
local lastbreaker = self.lastBreaker |
local fubar = self.db.char.display.fubar |
if ((lastbreaker == nil) or not |
(fubar.spell or |
fubar.target or |
fubar.breaker or |
fubar.ability |
))then |
table.insert(text,"CCBreaker") |
else |
if fubar.spell then |
table.insert(text,lastbreaker.spell) |
end |
if fubar.target then |
table.insert(text,lastbreaker.target) |
end |
if (fubar.breaker and not (lastbreaker.breaker=="")) then |
table.insert(text,lastbreaker.breaker) |
end |
if (fubar.ability and not (lastbreaker.ability=="")) then |
table.insert(text,lastbreaker.ability) |
end |
end |
self:SetText(table.concat(text,"|")) |
end |
function CCBreaker:OnTooltipUpdate() |
local cat = CCTablet:AddCategory( |
'text',"", |
'columns', 4 |
) |
cat:AddLine( |
'text', CCLocale["spell"], |
'text2',CCLocale["target"], |
'text3',CCLocale["breaker"], |
'text4',CCLocale["ability"], |
'textR',0, |
'textG',1, |
'textB',0, |
'text2R',0, |
'text2G',1, |
'text2B',0, |
'text3R',0, |
'text3G',1, |
'text3B',0, |
'text4R',0, |
'text4G',1, |
'text4B',0, |
'justify',"LEFT", |
'justify2',"LEFT", |
'justify3',"LEFT", |
'justify4',"LEFT" |
) |
local isodd = true |
local current |
for i=1, #breakers do |
if isodd then current = oddline else current = evenline end |
isodd = not isodd |
current['text'] = breakers[#breakers+1-i].spell |
current['text2'] = breakers[#breakers+1-i].target |
current['text3'] = breakers[#breakers+1-i].breaker |
current['text4'] = breakers[#breakers+1-i].ability |
cat:AddLine(current) |
end |
CCTablet:SetHint(CCLocale["Rightclick for options"]) |
end |
function CCBreaker:CrowdControlBroken( |
_, |
eventType, |
sourceGUID, |
sourceName, |
_, |
destGUID, |
destName, |
destFlags, |
spellId, |
spellName, |
_, |
extraSpellId, |
extraSpellName |
) |
if eventType == "SPELL_AURA_BROKEN" or eventType == "SPELL_AURA_BROKEN_SPELL" then |
local info = { |
["recipientID"] = toUnitID[recipientName], |
["recipientName"] = destName, |
["recipientAbilityName"] = spellName, |
["recipientAbilityId"] = spellId, |
["sourceID"] = toUnitID[sourceName], |
["sourceName"] = sourceName, |
["sourceAbilityName"] = extraSpellName, |
["sourceAbilityId"] = extraSpellId, |
} |
if CCBreaker.db.char.debug then |
CCBreaker:PrintLiteral(info) |
CCBreaker:PrintLiteral(CCBreaker:filter(info)) |
CCBreaker:PrintLiteral(toUnitID) |
--self:PrintLiteral(self.db.char.display.console) |
end |
if CCBreaker:filter(info) then |
DisplayConsole(info) |
DisplayCenter(info) |
SendToChat(info) |
--tooltip |
local breaker = GetBreakerTable() |
if (info.recipientAbilityName) then |
breaker.spell = info.recipientAbilityName |
else |
breaker.spell = "" |
end |
if (info.recipientName) then |
breaker.target = info.recipientName |
else |
breaker.target = "" |
end |
if (info.sourceAbilityName) then |
breaker.ability = info.sourceAbilityName |
else |
breaker.ability = "" |
end |
if (info.sourceName) then |
breaker.breaker = info.sourceName |
else |
breaker.breaker = "" |
end |
table.insert(breakers,breaker) |
self.lastBreaker = breaker |
self:UpdateText() |
end |
end |
end |
local CCLocale = AceLibrary("AceLocale-2.2"):new("CCBreaker") |
local CCWaterfall = AceLibrary("Waterfall-1.0") |
local PolyId = CCBreaker.PolyId |
local ShackleId = CCBreaker.ShackleId |
local FreezingTrapId = CCBreaker.FreezingTrapId |
local HibernateId = CCBreaker.HibernateId |
local SapId = CCBreaker.SapId |
local SeductionId = CCBreaker.SeductionId |
CCBreaker:RegisterDefaults("char",{ |
debug = false; |
showon = { |
player = false, |
party = false, |
raid = false, |
pet = false, |
partypet = false, |
raidpet = false, |
others = true, |
warrior = true, |
warlock = true, |
hunter = true, |
rogue = true, |
shaman = true, |
priest = true, |
paladin = true, |
mage = true, |
druid = true, |
maintank = true, |
mainassist = true, |
}, |
showfrom = { |
player = true, |
party = true, |
raid = true, |
pet = true, |
partypet = true, |
raidpet = true, |
others = false, |
warrior = true, |
warlock = true, |
hunter = true, |
rogue = true, |
shaman = true, |
priest = true, |
paladin = true, |
mage = true, |
druid = true, |
maintank = true, |
mainassist = true, |
}, |
showeffects = { |
freezingtrap = true, |
hibernate = true, |
polymorph = true, |
shackleundead = true, |
sap = true, |
seduction = true, |
}, |
chat = { |
raid = false, |
raidwarning = false, |
party = false, |
strings={ |
two=CCLocale["[spell] on [target] was removed"], |
three=CCLocale["[spell] on [target] was removed by [breaker]"], |
four=CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"], |
}, |
}, |
display = { |
fubar = { |
spell = true, |
target = false, |
breaker = true, |
ability = false, |
}, |
center = { |
colors = true, |
enable = false, |
color = { |
r = 1, |
g = 1, |
b = 0.5, |
a = 0, |
colortext = "|cffff8000" |
}, |
strings={ |
two=CCLocale["[spell] on [target] was removed"], |
three=CCLocale["[spell] on [target] was removed by [breaker]"], |
four=CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"], |
} |
}, |
console = { |
colors = true, |
enable = true, |
color = { |
r = 1, |
g = 1, |
b = 0.5, |
a = 0, |
colortext = "|cffff8000" |
}, |
strings={ |
two=CCLocale["[spell] on [target] was removed"], |
three=CCLocale["[spell] on [target] was removed by [breaker]"], |
four=CCLocale["[spell] on [target] was removed by [breaker]'s [ability]"], |
}, |
colors = false; |
}, |
}, |
}) |
-- Menu |
CCBreaker.OnMenuRequest = { |
type = "group", |
args = { |
debug ={ |
type = "toggle", |
name = CCLocale["debug"], |
desc = CCLocale["Enable debug messages"], |
get = function() return CCBreaker.db.char.debug end, |
set = function(v) CCBreaker.db.char.debug = v end, |
}, |
reset = { |
type = "execute", |
name = CCLocale["reset"], |
desc = CCLocale["Reset breaker data"], |
func = "reset", |
}, |
config = { |
type = "execute", |
name = CCLocale["config"], |
desc = CCLocale["Open config in a Waterall window"], |
func = function() CCWaterfall:Open("CCBreaker") end, |
}, |
chat = { |
type = "group", |
name = CCLocale["chat"], |
desc = CCLocale["Chat options"], |
args = { |
raid = { |
type = "toggle", |
name = CCLocale["raid"], |
desc = CCLocale["broadcast to raid"], |
get = function() return CCBreaker.db.char.chat.raid end, |
set = function(v) CCBreaker.db.char.chat.raid = v end, |
}, |
raidwarning = { |
type = "toggle", |
name = CCLocale["raidwarning"], |
desc = CCLocale["broadcast as raidwarning"], |
get = function() return CCBreaker.db.char.chat.raidwarning end, |
set = function(v) CCBreaker.db.char.chat.raidwarning = v end, |
}, |
party = { |
type = "toggle", |
name = CCLocale["party"], |
desc = CCLocale["broadcast to party"], |
get = function() return CCBreaker.db.char.chat.party end, |
set = function(v) CCBreaker.db.char.chat.party = v end, |
}, |
text = { |
type = "group", |
name = CCLocale["text"], |
desc = CCLocale["Change the displayed text, leave blank for default"], |
args ={ |
two = { |
type = "text", |
name = CCLocale["two"], |
desc = CCLocale["text if only spell an target are given"], |
usage = "[spell], [target]", |
get = function() return CCBreaker.db.char.chat.strings.two end, |
set = function(v) CCBreaker.db.char.chat.strings.two = v end, |
}, |
three = { |
type = "text", |
name = CCLocale["three"], |
desc = CCLocale["text if only spell, target and breaker are given"], |
usage = "[spell], [target], [breaker]", |
get = function() return CCBreaker.db.char.display.console.strings.three end, |
set = function(v) CCBreaker.db.char.chat.strings.three = v end, |
}, |
four = { |
type = "text", |
name = CCLocale["four"], |
desc = CCLocale["text if spell, target, breaker and ability are given"], |
usage = "[spell], [target], [breaker], [ability]", |
get = function() return CCBreaker.db.char.display.console.strings.four end, |
set = function(v) CCBreaker.db.char.chat.strings.four = v end, |
}, |
}, |
}, |
}, |
}, |
display = { |
type = "group", |
name = CCLocale["display"], |
desc = CCLocale["Display options"], |
args = { |
console ={ |
type = "group", |
name = CCLocale["console"], |
desc = CCLocale["Display options in console"], |
args = { |
color = { |
type = "toggle", |
name = CCLocale["color text"], |
desc = CCLocale["Color messages"], |
get = function() return CCBreaker.db.char.display.console.colors end, |
set = function(v) CCBreaker.db.char.display.console.colors = v end, |
}, |
colors = { |
type = "color", |
name = CCLocale["color"], |
desc = CCLocale["Chose color to use"], |
get = function() local color = CCBreaker.db.char.display.console.color |
return color.r,color.g,color.b,color.a |
end, |
set = function(r,g,b,a) local color = CCBreaker.db.char.display.console.color |
color.r = r |
color.g = g |
color.b = b |
color.colortext = string.format("|cff%02x%02x%02x", r * 255, g * 255, b * 255) |
end, |
}, |
enable = { |
type = "toggle", |
name = CCLocale["enable"], |
desc = CCLocale["Display console messages"], |
get = function() return CCBreaker.db.char.display.console.enable end, |
set = function(v) CCBreaker.db.char.display.console.enable = v end, |
}, |
text = { |
type = "group", |
name = CCLocale["text"], |
desc = CCLocale["Change the displayed text, leave blank for default"], |
args ={ |
two = { |
type = "text", |
name = CCLocale["two"], |
desc = CCLocale["text if only spell an target are given"], |
usage = "[spell], [target]", |
get = function() return CCBreaker.db.char.display.console.strings.two end, |
set = function(v) CCBreaker.db.char.display.console.strings.two = v end, |
}, |
three = { |
type = "text", |
name = CCLocale["three"], |
desc = CCLocale["text if only spell, target and breaker are given"], |
usage = "[spell], [target], [breaker]", |
get = function() return CCBreaker.db.char.display.console.strings.three end, |
set = function(v) CCBreaker.db.char.display.console.strings.three = v end, |
}, |
four = { |
type = "text", |
name = CCLocale["four"], |
desc = CCLocale["text if spell, target, breaker and ability are given"], |
usage = "[spell], [target], [breaker], [ability]", |
get = function() return CCBreaker.db.char.display.console.strings.four end, |
set = function(v) CCBreaker.db.char.display.console.strings.four = v end, |
}, |
}, |
}, |
}, |
}, |
center ={ |
type = "group", |
name = CCLocale["center"], |
desc = CCLocale["Display options for centered messages"], |
args = { |
color = { |
type = "toggle", |
name = CCLocale["color text"], |
desc = CCLocale["Color messages"], |
get = function() return CCBreaker.db.char.display.center.colors end, |
set = function(v) CCBreaker.db.char.display.center.colors = v end, |
}, |
colors = { |
type = "color", |
name = CCLocale["color"], |
desc = CCLocale["Chose color to use"], |
get = function() local color = CCBreaker.db.char.display.center.color |
return color.r,color.g,color.b,color.a |
end, |
set = function(r,g,b,a) local color = CCBreaker.db.char.display.center.color |
color.r = r |
color.g = g |
color.b = b |
color.colortext = string.format("|cff%02x%02x%02x", r * 255, g * 255, b * 255) |
end, |
}, |
enable = { |
type = "toggle", |
name = CCLocale["enable"], |
desc = CCLocale["Display centered messages"], |
get = function() return CCBreaker.db.char.display.center.enable end, |
set = function(v) CCBreaker.db.char.display.center.enable = v end, |
}, |
text = { |
type = "group", |
name = CCLocale["text"], |
desc = CCLocale["Change the displayed text, leave blank for default"], |
args ={ |
two = { |
type = "text", |
name = CCLocale["two"], |
desc = CCLocale["text if only spell an target are given"], |
usage = "[spell], [target]", |
get = function() return CCBreaker.db.char.display.center.strings.two end, |
set = function(v) CCBreaker.db.char.display.center.strings.two = v end, |
}, |
three = { |
type = "text", |
name = CCLocale["three"], |
desc = CCLocale["text if only spell, target and breaker are given"], |
usage = "[spell], [target], [breaker]", |
get = function() return CCBreaker.db.char.display.center.strings.three end, |
set = function(v) CCBreaker.db.char.display.center.strings.three = v end, |
}, |
four = { |
type = "text", |
name = CCLocale["four"], |
desc = CCLocale["text if spell, target, breaker and ability are given"], |
usage = "[spell], [target], [breaker], [ability]", |
get = function() return CCBreaker.db.char.display.center.strings.four end, |
set = function(v) CCBreaker.db.char.display.center.strings.four = v end, |
}, |
}, |
}, |
}, |
}, |
fubar = { |
type = "group", |
name = CCLocale["fubar"], |
desc = CCLocale["Display options in Fubar"], |
args = { |
spell = { |
type = "toggle", |
name = CCLocale["spell"], |
desc = CCLocale["Display broken spell"], |
get = function() return CCBreaker.db.char.display.fubar.spell end, |
set = function(v) CCBreaker.db.char.display.fubar.spell = v end, |
}, |
target = { |
type = "toggle", |
name = CCLocale["target"], |
desc = CCLocale["Display freed target"], |
get = function() return CCBreaker.db.char.display.fubar.target end, |
set = function(v) CCBreaker.db.char.display.fubar.target = v end, |
}, |
breaker = { |
type = "toggle", |
name = CCLocale["breaker"], |
desc = CCLocale["Display who broke CC"], |
get = function() return CCBreaker.db.char.display.fubar.breaker end, |
set = function(v) CCBreaker.db.char.display.fubar.breaker = v end, |
}, |
ability = { |
type = "toggle", |
name = CCLocale["ability"], |
desc = CCLocale["Display ability breaking the CC"], |
get = function() return CCBreaker.db.char.display.fubar.ability end, |
set = function(v) CCBreaker.db.char.display.fubar.ability = v end, |
}, |
}, |
}, |
}, |
}, |
filter = { |
type = "group", |
name = CCLocale["filter"], |
desc = CCLocale["Filter Options"], |
args = { |
showon = { |
type = "group", |
name = CCLocale["show on"], |
desc = CCLocale["Report CC breaks to those targets only"], |
args = { |
role = { |
type = "group", |
name = CCLocale["role"], |
desc = CCLocale["Filter for raid roles"], |
args = { |
maintank = { |
type = "toggle", |
name = CCLocale["maintank"], |
desc = CCLocale["Show break on maintanks"], |
get = function() return CCBreaker.db.char.showon.maintank end, |
set = function(v) CCBreaker.db.char.showon.maintank = v end, |
}, |
mainassist = { |
type = "toggle", |
name = CCLocale["mainassist"], |
desc = CCLocale["Show break on mainassists"], |
get = function() return CCBreaker.db.char.showon.mainassist end, |
set = function(v) CCBreaker.db.char.showon.mainassist = v end, |
}, |
}, |
}, |
unit = { |
type = "group", |
name = CCLocale["unit"], |
desc = CCLocale["Filter for unit types"], |
args = { |
player = { |
type = "toggle", |
name = CCLocale["player"], |
desc = CCLocale["Show break on player"], |
get = function() return CCBreaker.db.char.showon.player end, |
set = function(v) CCBreaker.db.char.showon.player = v end, |
}, |
party = { |
type = "toggle", |
name = CCLocale["party"], |
desc = CCLocale["Show break on party members"], |
get = function() return CCBreaker.db.char.showon.party end, |
set = function(v) CCBreaker.db.char.showon.party = v end, |
}, |
raid = { |
type = "toggle", |
name = CCLocale["raid"], |
desc = CCLocale["Show break on raid members"], |
get = function() return CCBreaker.db.char.showon.raid end, |
set = function(v) CCBreaker.db.char.showon.raid = v end, |
}, |
pet = { |
type = "toggle", |
name = CCLocale["pet"], |
desc = CCLocale["Show break on your pet"], |
get = function() return CCBreaker.db.char.showon.pet end, |
set = function(v) CCBreaker.db.char.showon.pet = v end, |
}, |
partypet = { |
type = "toggle", |
name = CCLocale["party pet"], |
desc = CCLocale["Show break on party pets"], |
get = function() return CCBreaker.db.char.showon.partypet end, |
set = function(v) CCBreaker.db.char.showon.partypet = v end, |
}, |
raidpet = { |
type = "toggle", |
name = CCLocale["raid pet"], |
desc = CCLocale["Show break on raid pets"], |
get = function() return CCBreaker.db.char.showon.raidpet end, |
set = function(v) CCBreaker.db.char.showon.raidpet = v end, |
}, |
others = { |
type = "toggle", |
name = CCLocale["others"], |
desc = CCLocale["Show break on others"], |
get = function() return CCBreaker.db.char.showon.others end, |
set = function(v) CCBreaker.db.char.showon.others = v end, |
}, |
}, |
}, |
class = { |
type = "group", |
name = CCLocale["class"], |
desc = CCLocale["Filter for classes"], |
args = { |
warrior = { |
type = "toggle", |
name = CCLocale["warrior"], |
desc = CCLocale["Show break on warriors"], |
get = function() return CCBreaker.db.char.showon.warrior end, |
set = function(v) CCBreaker.db.char.showon.warrior = v end, |
}, |
warlock = { |
type = "toggle", |
name = CCLocale["warlock"], |
desc = CCLocale["Show break on warlocks"], |
get = function() return CCBreaker.db.char.showon.warlock end, |
set = function(v) CCBreaker.db.char.showon.warlock = v end, |
}, |
hunter = { |
type = "toggle", |
name = CCLocale["hunter"], |
desc = CCLocale["Show break on hunters"], |
get = function() return CCBreaker.db.char.showon.hunter end, |
set = function(v) CCBreaker.db.char.showon.hunter = v end, |
}, |
paladin = { |
type = "toggle", |
name = CCLocale["paladin"], |
desc = CCLocale["Show break on paladins"], |
get = function() return CCBreaker.db.char.showon.paladin end, |
set = function(v) CCBreaker.db.char.showon.paladin = v end, |
}, |
priest = { |
type = "toggle", |
name = CCLocale["priest"], |
desc = CCLocale["Show break on priests"], |
get = function() return CCBreaker.db.char.showon.priest end, |
set = function(v) CCBreaker.db.char.showon.priest = v end, |
}, |
druid = { |
type = "toggle", |
name = CCLocale["druid"], |
desc = CCLocale["Show break on druids"], |
get = function() return CCBreaker.db.char.showon.druid end, |
set = function(v) CCBreaker.db.char.showon.druid = v end, |
}, |
shaman = { |
type = "toggle", |
name = CCLocale["shaman"], |
desc = CCLocale["Show break on shamans"], |
get = function() return CCBreaker.db.char.showon.shaman end, |
set = function(v) CCBreaker.db.char.showon.shaman = v end, |
}, |
mage = { |
type = "toggle", |
name = CCLocale["mage"], |
desc = CCLocale["Show break on mages"], |
get = function() return CCBreaker.db.char.showon.mage end, |
set = function(v) CCBreaker.db.char.showon.mage = v end, |
}, |
rogue = { |
type = "toggle", |
name = CCLocale["rogue"], |
desc = CCLocale["Show break on rogues"], |
get = function() return CCBreaker.db.char.showon.rogue end, |
set = function(v) CCBreaker.db.char.showon.rogue = v end, |
}, |
}, |
}, |
}, |
}, |
showfrom = { |
type = "group", |
name = CCLocale["show from"], |
desc = CCLocale["Report CC breaks from those only"], |
args = { |
role = { |
type = "group", |
name = CCLocale["role"], |
desc = CCLocale["Filter for raid roles"], |
args = { |
maintank = { |
type = "toggle", |
name = CCLocale["maintank"], |
desc = CCLocale["Show break from maintanks"], |
get = function() return CCBreaker.db.char.showfrom.maintank end, |
set = function(v) CCBreaker.db.char.showfrom.maintank = v end, |
}, |
mainassist = { |
type = "toggle", |
name = CCLocale["mainassist"], |
desc = CCLocale["Show break from mainassists"], |
get = function() return CCBreaker.db.char.showfrom.mainassist end, |
set = function(v) CCBreaker.db.char.showfrom.mainassist = v end, |
}, |
}, |
}, |
unit = { |
type = "group", |
name = CCLocale["unit"], |
desc = CCLocale["Filter for unit types"], |
args = { |
player = { |
type = "toggle", |
name = CCLocale["player"], |
desc = CCLocale["Show break from player"], |
get = function() return CCBreaker.db.char.showfrom.player end, |
set = function(v) CCBreaker.db.char.showfrom.player = v end, |
}, |
party = { |
type = "toggle", |
name = CCLocale["party"], |
desc = CCLocale["Show break from party members"], |
get = function() return CCBreaker.db.char.showfrom.party end, |
set = function(v) CCBreaker.db.char.showfrom.party = v end, |
}, |
raid = { |
type = "toggle", |
name = CCLocale["raid"], |
desc = CCLocale["Show break from raid members"], |
get = function() return CCBreaker.db.char.showfrom.raid end, |
set = function(v) CCBreaker.db.char.showfrom.raid = v end, |
}, |
pet = { |
type = "toggle", |
name = CCLocale["pet"], |
desc = CCLocale["Show break from your pet"], |
get = function() return CCBreaker.db.char.showfrom.pet end, |
set = function(v) CCBreaker.db.char.showfrom.pet = v end, |
}, |
partypet = { |
type = "toggle", |
name = CCLocale["party pet"], |
desc = CCLocale["Show break from party pets"], |
get = function() return CCBreaker.db.char.showfrom.partypet end, |
set = function(v) CCBreaker.db.char.showfrom.partypet = v end, |
}, |
raidpet = { |
type = "toggle", |
name = CCLocale["raid pet"], |
desc = CCLocale["Show break from raid pets"], |
get = function() return CCBreaker.db.char.showfrom.raidpet end, |
set = function(v) CCBreaker.db.char.showfrom.raidpet = v end, |
}, |
others = { |
type = "toggle", |
name = CCLocale["others"], |
desc = CCLocale["Show break from others"], |
get = function() return CCBreaker.db.char.showfrom.others end, |
set = function(v) CCBreaker.db.char.showfrom.others = v end, |
}, |
}, |
}, |
class = { |
type = "group", |
name = CCLocale["class"], |
desc = CCLocale["Filter for classes"], |
args = { |
warrior = { |
type = "toggle", |
name = CCLocale["warrior"], |
desc = CCLocale["Show break from warriors"], |
get = function() return CCBreaker.db.char.showfrom.warrior end, |
set = function(v) CCBreaker.db.char.showfrom.warrior = v end, |
}, |
warlock = { |
type = "toggle", |
name = CCLocale["warlock"], |
desc = CCLocale["Show break from warlocks"], |
get = function() return CCBreaker.db.char.showfrom.warlock end, |
set = function(v) CCBreaker.db.char.showfrom.warlock = v end, |
}, |
hunter = { |
type = "toggle", |
name = CCLocale["hunter"], |
desc = CCLocale["Show break from hunters"], |
get = function() return CCBreaker.db.char.showfrom.hunter end, |
set = function(v) CCBreaker.db.char.showfrom.hunter = v end, |
}, |
paladin = { |
type = "toggle", |
name = CCLocale["paladin"], |
desc = CCLocale["Show break from paladins"], |
get = function() return CCBreaker.db.char.showfrom.paladin end, |
set = function(v) CCBreaker.db.char.showfrom.paladin = v end, |
}, |
priest = { |
type = "toggle", |
name = CCLocale["priest"], |
desc = CCLocale["Show break from priests"], |
get = function() return CCBreaker.db.char.showfrom.priest end, |
set = function(v) CCBreaker.db.char.showfrom.priest = v end, |
}, |
druid = { |
type = "toggle", |
name = CCLocale["druid"], |
desc = CCLocale["Show break from druids"], |
get = function() return CCBreaker.db.char.showfrom.druid end, |
set = function(v) CCBreaker.db.char.showfrom.druid = v end, |
}, |
shaman = { |
type = "toggle", |
name = CCLocale["shaman"], |
desc = CCLocale["Show break from shamans"], |
get = function() return CCBreaker.db.char.showfrom.shaman end, |
set = function(v) CCBreaker.db.char.showfrom.shaman = v end, |
}, |
mage = { |
type = "toggle", |
name = CCLocale["mage"], |
desc = CCLocale["Show break from mages"], |
get = function() return CCBreaker.db.char.showfrom.mage end, |
set = function(v) CCBreaker.db.char.showfrom.mage = v end, |
}, |
rogue = { |
type = "toggle", |
name = CCLocale["rogue"], |
desc = CCLocale["Show break from rogues"], |
get = function() return CCBreaker.db.char.showfrom.rogue end, |
set = function(v) CCBreaker.db.char.showfrom.rogue = v end, |
}, |
}, |
}, |
}, |
}, |
showeffects = { |
type = "group", |
name = CCLocale["show effects"], |
desc = CCLocale["Report CC breaks of effects"], |
args = { |
freezingtrap = { |
type = "toggle", |
name = GetSpellInfo(3355), |
desc = CCLocale["Show break of "]..GetSpellInfo(3355), |
get = function() return CCBreaker.db.char.showeffects.freezingtrap end, |
set = function(v) CCBreaker.db.char.showeffects.freezingtrap = v end, |
}, |
hibernate = { |
type = "toggle", |
name = GetSpellInfo(2637), |
desc = CCLocale["Show break of "], GetSpellInfo(2637), |
get = function() return CCBreaker.db.char.showeffects.hibernate end, |
set = function(v) CCBreaker.db.char.showeffects.hibernate = v end, |
}, |
polymorph = { |
type = "toggle", |
name = GetSpellInfo(118), |
desc = CCLocale["Show break of "]..GetSpellInfo(118)..", " |
..GetSpellInfo(28271).." and " |
..GetSpellInfo(28272), |
get = function() return CCBreaker.db.char.showeffects.polymorph end, |
set = function(v) CCBreaker.db.char.showeffects.polymorph = v end, |
}, |
sap = { |
type = "toggle", |
name = GetSpellInfo(6770), |
desc = CCLocale["Show break of "]..GetSpellInfo(6770), |
get = function() return CCBreaker.db.char.showeffects.sap end, |
set = function(v) CCBreaker.db.char.showeffects.sap = v end, |
}, |
seduction = { |
type = "toggle", |
name = GetSpellInfo(6358), |
desc = CCLocale["Show break of "]..GetSpellInfo(6358), |
get = function() return CCBreaker.db.char.showeffects.seduction end, |
set = function(v) CCBreaker.db.char.showeffects.seduction = v end, |
}, |
shackleundead = { |
type = "toggle", |
name = GetSpellInfo(9484), |
desc = CCLocale["Show break of "]..GetSpellInfo(9484), |
get = function() return CCBreaker.db.char.showeffects.shackleundead end, |
set = function(v) CCBreaker.db.char.showeffects.shackleundead = v end, |
}, |
}, |
}, |
}, |
}, |
}, |
} |
--CCBreaker:RegisterChatCommand(CCLocale["Slash-Commands"],CCBreaker.OnMenuRequest) |
CCWaterfall:Register("CCBreaker","aceOptions",CCBreaker.OnMenuRequest,"title","CCBreaker Options","treeLevels",3) |
local L = AceLibrary("AceLocale-2.2"):new("CCBreaker") |
--[[ |
Explanation: |
[spell] : name of the broken spell |
[target] : name of the target the spell was on |
[breaker] : name of the person removing the spell |
[ability] : name of the ability breaking the spell |
]]-- |
L:RegisterTranslations("koKR", function() return { |
["[spell] on [target] was removed by [breaker]"] = "[target]ì [spell]|1ì´;ê°; [breaker]ì ìí´ì í´ì ëììµëë¤", |
["[spell] on [target] was removed by [breaker]"]= "[target]ì [spell]|1ì´;ê°; [breaker]ì ìí´ì í´ì ëììµëë¤", |
["[spell] on [target] was removed by [breaker]'s [ability]"] = "[target]ì [spell]|1ì´;ê°; [breaker]ì [ability]ì ìí´ì í´ì ëììµëë¤", |
["[spell] on [target] was removed by [breaker]'s [ability]"]= "[target]ì [spell]|1ì´;ê°; [breaker]ì [ability]ì ìí´ì í´ì ëììµëë¤", |
["[spell] on [target] was removed"] = "[target]ì [spell]|1ì´;ê°; í´ì ëììµëë¤", |
["[spell] on [target] was removed"]= "[target]ì [spell]|1ì´;ê°; í´ì ëììµëë¤", |
["ability"] = "í´ì 기ì ", |
["ability"]= "í´ì 기ì ", |
["breaker"] = "í´ì ì", |
["breaker"]= "í´ì ì", |
["center"] = "ì¤ì", |
["Change the displayed text, leave blank for default"] = "íìë 문ìì´ì ë³ê²½í©ëë¤. 기본ê°ì 공백ì¼ë¡ ë¨ê²¨ë¡ëë¤", |
["Chose color to use"] = "ì¬ì©í ììì ì íí©ëë¤", |
["class"] = "ì§ì ", |
["Color messages"] = "ë©ìì§ì ìì ì¬ì©", |
["color text"] = "문ì ìì", |
["color"] = "ìì", |
["config"] = "ì¤ì ", |
["console"] = "ëíì°½", |
["debug"] = "ëë²ê·¸", |
["Display ability breaking the CC"] = "êµ°ì¤ì ì´ í¨ê³¼ í´ì ë¥ë ¥ì íìí©ëë¤", |
["Display broken spell"] = "í´ì ë 주문ì íìí©ëë¤", |
["Display centered messages"] = "ì¤ìì ë©ì¸ì§ë¥¼ íìí©ëë¤", |
["Display console messages"] = "ëíì°½ì ë©ì¸ì§ë¥¼ íìí©ëë¤", |
["Display freed target"] = "í´ì ë ëì íì", |
["Display options for centered messages"] = "ì¤ìì íìë ë©ì¸ì§ì ì¤ì ì ë³ê²½í©ëë¤", |
["Display options in console"] = "ëíì°½ì íìë ë©ì¸ì§ì ì¤ì ì ë³ê²½í©ëë¤", |
["Display options in Fubar"] = "Fubarì íìë ë´ì©ì ì¤ì í©ëë¤", |
["Display options"] = "íì ì¤ì ", |
["Display who broke CC"] = "êµ°ì¤ ì ì´ í´ì ì íì", |
["display"] = "íì", |
["druid"] = "ë루ì´ë", |
["Enable debug messages"] = "ëë²ê·¸ ë©ì¸ì§ë¥¼ ì¬ì©", |
["enable"] = "ì¬ì©", |
["Filter for classes"] = "ì§ì ë³ íí°", |
["Filter for raid roles"] = "공격ë ìíë³ íí°", |
["Filter for unit types"] = "ì ë ì¢ ë¥ë³ íí°", |
["Filter Options"] = "íí° ì¤ì ", |
["filter"] = "íí°", |
["four"] = "주문 - ëì - í´ì ì - í´ì 기ì ", |
["fubar"] = "Fubar", |
["hunter"] = "ì¬ë¥ê¾¼", |
["mage"] = "ë§ë²ì¬", |
["mainassist"] = "ë©ì¸ì´ìì¤í¸", |
["maintank"] = "ë©ì¸í±ì»¤", |
["Open config in a Waterall window"] = "Waterfall ì¤ì ì°½ì ì½ëë¤", |
["others"] = "기í", |
["paladin"] = "ì±ê¸°ì¬", |
["party pet"] = "íí°ì ìíì", |
["party"] = "íí°", |
["pet"] = "ìíì", |
["player"] = "íë ì´ì´", |
["priest"] = "ì¬ì ", |
["raid pet"] = "공격ëì ìíì", |
["raid"] = "공격ë", |
["Report CC breaks from those only"] = "êµ°ì¤ì ì´ í´ì ììê² ì림", |
["Report CC breaks of effects"] = "êµ°ì¤ì ì´ í¨ê³¼ ë³´ê³ ", |
["Report CC breaks to those targets only"] = "í´ì ë êµ°ì¤ì ì´ ëª©íì ëììê² ì림", |
["Reset breaker data"] = "í´ì ì ë³´ ì´ê¸°í", |
["reset"] = "ì´ê¸°í", |
["Rightclick for options"] = "ì°í´ë¦ì ì¤ì ë³ê²½", |
["rogue"] = "ëì ", |
["role"] = "ìí", |
["shaman"] = "주ì ì¬", |
["Show break from druids"] = "ë루ì´ëê° í´ì í ê²½ì° íì", |
["Show break from hunters"] = "ì¬ë¥ê¾¼ì´ í´ì í ê²½ì° íì", |
["Show break from mages"] = "ë§ë²ì¬ê° í´ì í ê²½ì° íì", |
["Show break from mainassists"] = "ë©ì¸ì´ìì¤í¸ê° í´ì í ê²½ì° íì", |
["Show break from maintanks"] = "매ì¸í±ì»¤ê° í´ì í ê²½ì° íì", |
["Show break from others"] = "기í ê²½ì°ì í´ì ì ëí´ íì", |
["Show break from paladins"] = "ì±ê¸°ì¬ê° í´ì í ê²½ì° íì", |
["Show break from party members"] = "íí°ìì´ í´ì í ê²½ì° íì", |
["Show break from party pets"] = "íí°ìì ìíìê° í´ì í ê²½ì° íì", |
["Show break from player"] = "ìì ì´ í´ì í ê²½ì° íì", |
["Show break from priests"] = "ì¬ì ê° í´ì í ê²½ì° íì", |
["Show break from raid members"] = "공격ëìì´ í´ì í ê²½ì° íì", |
["Show break from raid pets"] = "공격ëìì ìíìê° í´ì í ê²½ì° íì", |
["Show break from rogues"] = "ëì ì´ í´ì í ê²½ì° íì", |
["Show break from shamans"] = "주ì ì¬ê° í´ì í ê²½ì° íì", |
["Show break from warlocks"] = "íë§ë²ì¬ê° í´ì í ê²½ì° íì", |
["Show break from warriors"] = "ì ì¬ê° í´ì í ê²½ì° íì", |
["Show break from your pet"] = "ìíìê° í´ì í ê²½ì° íì", |
["Show break of "] = " 주문ì í´ì íì", |
["Show break on druids"] = "ë루ì´ëê° ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on hunters"] = "ì¬ë¥ê¾¼ì´ 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on mages"] = "ë§ë²ì¬ê° 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on mainassists"] = "ë©ì¸ì´ìì¤í¸ê° 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on maintanks"] = "ë©ì¸í±ì»¤ê° 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on others"] = "기í ê²½ì°ê° 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on paladins"] = "ì±ê¸°ì¬ê° 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on party members"] = "íí°ìì´ ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on party pets"] = "íí°ìì ìíìê° ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on player"] = "ìì ì´ ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on priests"] = "ì¬ì ê° ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on raid members"] = "ê³µëìì´ ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on raid pets"] = "공격ëìì ìíìê° ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on rogues"] = "ëì ì´ ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on shamans"] = "주ì ì¬ê° 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on warlocks"] = "íë§ë²ì¬ê° 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on warriors"] = "ì ì¬ê° 걸린 êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["Show break on your pet"] = "ìíìê° ê±¸ë¦° êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["show effects"] = "êµ°ì¤ ì ì´ í¨ê³¼ íì", |
["show from"] = "êµ°ì¤ ì ì´ í´ì ì íì", |
["show on"] = "êµ°ì¤ ì ì´ ëì íì", |
-- ["Slash-Commands"] = true, |
-- ["Slash-Commands"] = { "/ccbreaker", "/ccb" }, |
["spell"] = "주문", |
["spell"]= "주문", |
["target"] = "ëì", |
["target"]= "ëì", |
["text if only spell an target are given"] = "주문과 êµ°ì¤ì ì´ ëìì´ ìì ê²½ì°ìë§ í ì¤í¸ íì", |
["text if only spell, target and breaker are given"] = "주문과 êµ°ì¤ ì ì´ ëì, í´ì ìê° ìì ê²½ì°ìë§ íì", |
["text if spell, target, breaker and ability are given"] = "주문과 êµ°ì¤ ì ì´ ëì, í´ì ì, í´ì 기ì ì´ ìì ê²½ì°ìë§ íì", |
["text"] = "í ì¤í¸", |
["three"] = "주문 - ëì - í´ì ì", |
["two"] = "주문 - ëì", |
["unit"] = "ì ë", |
["warlock"] = "íë§ë²ì¬", |
["warrior"] = "ì ì¬", |
} end) |
## Interface: 30000 |
## Title: CCBreaker |
## Notes: Displays who breaks CrowdControl Effects |
## Notes-zhTW: ç ´æ§è¦å |
## Notes-zhCN: æ¾ç¤ºæ¯è°ç ´åäºæ§å¶æè½çææ |
## Author: Pheredhel |
## Version: 0.5b |
## SavedVariables: CCBreakerDB |
## SavedVariablesPerCharacter: CCBreakerDBPC |
## OptionalDeps: Ace2, FuBarPlugin-2.0, Tablet-2.0, Waterfall-1.0 |
## X-Embeds: Ace2, FuBarPlugin-2.0, Tablet-2.0, Waterfall-1.0 |
## X-Revision: wowi:revision |
## X-Email: pheredhel@gmx.de |
## X-Category: Interface Enhancements |
#Librarys |
embeds.xml |
# Localisations |
Locale-enUS.lua |
Locale-koKR.lua |
Locale-zhCN.lua |
Locale-zhTW.lua |
# Addon Files |
CCBreaker.lua |
CCOptions.lua |
local L = AceLibrary("AceLocale-2.2"):new("CCBreaker") |
--[[ |
Explanation: |
[spell] : name of the broken spell |
[target] : name of the target the spell was on |
[breaker] : name of the person removing the spell |
[ability] : name of the ability breaking the spell |
]]-- |
L:RegisterTranslations("enUS", function() return { |
["[spell] on [target] was removed by [breaker]"] = true, |
["[spell] on [target] was removed by [breaker]"]= true, |
["[spell] on [target] was removed by [breaker]'s [ability]"] = true, |
["[spell] on [target] was removed by [breaker]'s [ability]"]= true, |
["[spell] on [target] was removed"] = true, |
["[spell] on [target] was removed"]= true, |
["ability"] = true, |
["ability"]= true, |
["breaker"] = true, |
["breaker"]= true, |
["broadcast as raidwarning"] = true, |
["broadcast to party"] = true, |
["broadcast to raid"] = true, |
["center"] = true, |
["Change the displayed text, leave blank for default"] = true, |
["Chat options"] = true, |
["chat"] = true, |
["Chose color to use"] = true, |
["class"] = true, |
["Color messages"] = true, |
["color text"] = true, |
["color"] = true, |
["config"] = true, |
["console"] = true, |
["debug"] = true, |
["Display ability breaking the CC"] = true, |
["Display broken spell"] = true, |
["Display centered messages"] = true, |
["Display console messages"] = true, |
["Display freed target"] = true, |
["Display options for centered messages"] = true, |
["Display options in console"] = true, |
["Display options in Fubar"] = true, |
["Display options"] = true, |
["Display who broke CC"] = true, |
["display"] = true, |
["druid"] = true, |
["Enable debug messages"] = true, |
["enable"] = true, |
["Filter for classes"] = true, |
["Filter for raid roles"] = true, |
["Filter for unit types"] = true, |
["Filter Options"] = true, |
["filter"] = true, |
["four"] = true, |
["fubar"] = true, |
["hunter"] = true, |
["mage"] = true, |
["mainassist"] = true, |
["maintank"] = true, |
["Open config in a Waterall window"] = true, |
["others"] = true, |
["paladin"] = true, |
["party pet"] = true, |
["party"] = true, |
["pet"] = true, |
["player"] = true, |
["priest"] = true, |
["raid pet"] = true, |
["raid"] = true, |
["raidwarning"] = true, |
["Report CC breaks from those only"] = true, |
["Report CC breaks of effects"] = true, |
["Report CC breaks to those targets only"] = true, |
["Reset breaker data"] = true, |
["reset"] = true, |
["Rightclick for options"]= true, |
["rogue"] = true, |
["role"] = true, |
["shaman"] = true, |
["Show break from druids"] = true, |
["Show break from hunters"] = true, |
["Show break from mages"] = true, |
["Show break from mainassists"] = true, |
["Show break from maintanks"] = true, |
["Show break from others"] = true, |
["Show break from paladins"] = true, |
["Show break from party members"] = true, |
["Show break from party pets"] = true, |
["Show break from player"] = true, |
["Show break from priests"] = true, |
["Show break from raid members"] = true, |
["Show break from raid pets"] = true, |
["Show break from rogues"] = true, |
["Show break from shamans"] = true, |
["Show break from warlocks"] = true, |
["Show break from warriors"] = true, |
["Show break from your pet"] = true, |
["Show break of "] = true, |
["Show break on druids"] = true, |
["Show break on hunters"] = true, |
["Show break on mages"] = true, |
["Show break on mainassists"] = true, |
["Show break on maintanks"] = true, |
["Show break on others"] = true, |
["Show break on paladins"] = true, |
["Show break on party members"] = true, |
["Show break on party pets"] = true, |
["Show break on player"] = true, |
["Show break on priests"] = true, |
["Show break on raid members"] = true, |
["Show break on raid pets"] = true, |
["Show break on rogues"] = true, |
["Show break on shamans"] = true, |
["Show break on warlocks"] = true, |
["Show break on warriors"] = true, |
["Show break on your pet"] = true, |
["show effects"] = true, |
["show from"] = true, |
["show on"] = true, |
["Slash-Commands"] = true, |
["spell"] = true, |
["spell"]= true, |
["target"] = true, |
["target"]= true, |
["text if only spell an target are given"] = true, |
["text if only spell, target and breaker are given"] = true, |
["text if spell, target, breaker and ability are given"] = true, |
["text"] = true, |
["three"] = true, |
["two"] = true, |
["unit"] = true, |
["warlock"] = true, |
["warrior"] = true, |
} end) |
--ç¿»è¯ï¼zhucc |
local L = AceLibrary("AceLocale-2.2"):new("CCBreaker") |
--[[ |
Explanation: |
[spell] : name of the broken spell |
[target] : name of the target the spell was on |
[breaker] : name of the person removing the spell |
[ability] : name of the ability breaking the spell |
]]-- |
L:RegisterTranslations("zhTW", function() return { |
["[spell] on [target] was removed by [breaker]"] = "[target]身ä¸ç[spell]å çº[breaker]çè¡çºèæ¶å¤±äº", |
["[spell] on [target] was removed by [breaker]'s [ability]"] = "[target]身ä¸ç[spell]å çº[breaker]ç[ability]èæ¶å¤±äº", |
["[spell] on [target] was removed"] = "[target]身ä¸ç[spell]æ¶å¤±äº", |
["ability"] = "ç ´å£æè½", |
["breaker"] = "ç ´å£è ", |
["broadcast as raidwarning"] = "以åéè¦åçå½¢å¼å»£æ", |
["broadcast to party"] = "廣æå°éä¼é »é", |
["broadcast to raid"] = "廣æå°åéé »é", |
["center"] = "é¯èª¤æ示è¨æ¯æ¡", |
["Change the displayed text, leave blank for default"] = "æ´æ¹è¢å¹ä¸éçæåï¼ç空å使ç¨é è¨æå", |
["Chat options"] = "èå¤©é »éé¸é ", |
["chat"] = "é »é", |
["Chose color to use"] = "é¸æè¦ä½¿ç¨çé¡è²", |
["class"] = "è·æ¥", |
["Color messages"] = "é¡è²è¨æ¯", |
["color text"] = "é¡è²æå", |
["color"] = "é¡è²", |
["config"] = "æéé ç½®çªå£", |
["console"] = "è天çªå£", |
["debug"] = "é¤é¯", |
["Display ability breaking the CC"] = "é¡¯ç¤ºç ´å£äºæ§å¶æè½çæè½", |
["Display broken spell"] = "é¡¯ç¤ºè¢«ç ´å£äºçæè½", |
["Display centered messages"] = "å¨è¢å¹ä¸é顯示è¨æ¯", |
["Display console messages"] = "å¨è天çªå£é¡¯ç¤ºè¨æ¯", |
["Display freed target"] = "顯示æ¾è¢«æ§å¶çé£åç®æ¨", |
["Display options for centered messages"] = "å¨é¯èª¤æ示è¨æ¯æ¡ä¸é¡¯ç¤ºæéæå", |
["Display options in console"] = "å¨è天çªå£è£¡é¡¯ç¤ºæéæå", |
["Display options in Fubar"] = "å¨FuBaræ示çªå£è£¡é¡¯ç¤º", |
["Display options"] = "æéè¨æ¯é¡¯ç¤ºçé¸é ", |
["Display who broke CC"] = "顯示æ¯èª°ç ´å£äºæ§å¶æè½", |
["display"] = "顯示", |
["druid"] = "å¾·é¯ä¼", |
["Enable debug messages"] = "åç¨é¤é¯è¨æ¯", |
["enable"] = "åç¨", |
["Filter for classes"] = "è·æ¥é濾å¨", |
["Filter for raid roles"] = "åéè§è²é濾å¨", |
["Filter for unit types"] = "å®ä½é¡åé濾å¨", |
["Filter Options"] = "é濾å¨é¸é ", |
["filter"] = "é濾å¨", |
["four"] = "詳細è¨æ¯", |
["fubar"] = "FuBar", |
["hunter"] = "çµäºº", |
["mage"] = "æ³å¸«", |
["mainassist"] = "主å©ç", |
["maintank"] = "主å¦å ", |
["Open config in a Waterall window"] = "å¨Waterfallçªå£è£¡é²è¡é¸é é ç½®", |
["others"] = "å ¶ä»äºº", |
["paladin"] = "èé¨å£«", |
["party pet"] = "éä¼å¯µç©", |
["party"] = "éä¼", |
["pet"] = "寵ç©", |
["player"] = "èªå·±", |
["priest"] = "ç§å¸«", |
["raid pet"] = "åé寵ç©", |
["raid"] = "åé", |
["raidwarning"] = "åéè¦å", |
["Report CC breaks from those only"] = "åªå ±åä¾èªæ¼éäºé¸å®ç人çç ´å£", |
["Report CC breaks of effects"] = "åªå ±åéäºé¸å®çæ³è¡ææ", |
["Report CC breaks to those targets only"] = "åªå ±åå°æ¼éäºç®æ¨çç ´å£", |
["Reset breaker data"] = "éç½®æçµ±è¨çæ¸æ", |
["reset"] = "éç½®", |
["Rightclick for options"] = "å³éµé»ææéé¸é é¸å®", |
["rogue"] = "çè³", |
["role"] = "è§è²", |
["shaman"] = "è©æ»¿", |
["Show break from druids"] = "顯示ä¾èªå¾·é¯ä¼çç ´å£", |
["Show break from hunters"] = "顯示ä¾èªçµäººçç ´å£", |
["Show break from mages"] = "顯示ä¾èªæ³å¸«çç ´å£", |
["Show break from mainassists"] = "顯示ä¾èªä¸»å©ççç ´å£", |
["Show break from maintanks"] = "顯示ä¾èªä¸»å¦å çç ´å£", |
["Show break from others"] = "顯示ä¾èªå ¶ä»äººçç ´å£", |
["Show break from paladins"] = "顯示ä¾èªèé¨å£«çç ´å£", |
["Show break from party members"] = "顯示ä¾èªéä¼æå¡çç ´å£", |
["Show break from party pets"] = "顯示ä¾èªéä¼å¯µç©çç ´å£", |
["Show break from player"] = "顯示ä¾èªèªå·±çç ´å£", |
["Show break from priests"] = "顯示ä¾èªç§å¸«çç ´å£", |
["Show break from raid members"] = "顯示ä¾èªåéæå¡çç ´å£", |
["Show break from raid pets"] = "顯示ä¾èªåé寵ç©çç ´å£", |
["Show break from rogues"] = "顯示ä¾èªçè³çç ´å£", |
["Show break from shamans"] = "顯示ä¾èªè©æ»¿çç ´å£", |
["Show break from warlocks"] = "顯示ä¾èªè¡å£«çç ´å£", |
["Show break from warriors"] = "顯示ä¾èªæ°å£«çç ´å£", |
["Show break from your pet"] = "顯示ä¾èªèªå·±å¯µç©çç ´å£", |
["Show break of "] = "ç¶è©²æè½è¢«ç ´å£æ顯示", |
["Show break on druids"] = "ç¶ä½ç¨æ¼å¾·é¯ä¼èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on hunters"] = "ç¶ä½ç¨æ¼çµäººèº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on mages"] = "ç¶ä½ç¨æ¼æ³å¸«èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on mainassists"] = "ç¶ä½ç¨æ¼ä¸»å©ç身ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on maintanks"] = "ç¶ä½ç¨æ¼ä¸»å¦å 身ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on others"] = "ç¶ä½ç¨æ¼å ¶ä»äººèº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on paladins"] = "ç¶ä½ç¨æ¼èé¨å£«èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on party members"] = "ç¶ä½ç¨æ¼éä¼æå¡èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on party pets"] = "ç¶ä½ç¨æ¼éä¼å¯µç©èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on player"] = "ç¶ä½ç¨æ¼èªå·±èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on priests"] = "ç¶ä½ç¨æ¼ç§å¸«èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on raid members"] = "ç¶ä½ç¨æ¼åéæå¡èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on raid pets"] = "ç¶ä½ç¨æ¼åé寵ç©èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on rogues"] = "ç¶ä½ç¨æ¼çè³èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on shamans"] = "ç¶ä½ç¨æ¼è©æ»¿èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on warlocks"] = "ç¶ä½ç¨æ¼è¡å£«èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on warriors"] = "ç¶ä½ç¨æ¼æ°å£«èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["Show break on your pet"] = "ç¶ä½ç¨æ¼èªå·±å¯µç©èº«ä¸æ§å¶æè½è¢«ç ´å£æ顯示", |
["show effects"] = "è¦é¡¯ç¤ºçææ", |
["show from"] = "ç ´å£è é濾", |
["show on"] = "ç®æ¨é濾", |
["Slash-Commands"] = "å½ä»¤", |
["spell"] = "æ§å¶æè½", |
["target"] = "æ½æ¾ç®æ¨", |
["text if only spell an target are given"] = "å¨åªè½å¾å°âæ§å¶æè½â以åâæ½æ¾ç®æ¨âè¨æ¯æ使ç¨çæå", |
["text if only spell, target and breaker are given"] = "å¨åªè½å¾å°âæ§å¶æè½âãâæ½æ¾ç®æ¨â以åâç ´å£è âè¨æ¯æ使ç¨çæå", |
["text if spell, target, breaker and ability are given"] = "å¨âæ§å¶æè½âãâæ½æ¾ç®æ¨âãâç ´å£è â以åâç ´å£æè½âè¨æ¯é½ææ使ç¨çæå", |
["text"] = "æå", |
["three"] = "ç°¡çè¨æ¯", |
["two"] = "æçè¨æ¯", |
["unit"] = "å®ä½", |
["warlock"] = "è¡å£«", |
["warrior"] = "æ°å£«", |
} end) |
<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/ |
..\FrameXML\UI.xsd"> |
<Script file="libs\AceLibrary\AceLibrary.lua"/> |
<Script file="libs\AceAddon-2.0\AceAddon-2.0.lua"/> |
<Script file="libs\AceConsole-2.0\AceConsole-2.0.lua"/> |
<Script file="libs\AceEvent-2.0\AceEvent-2.0.lua"/> |
<Script file="libs\AceDB-2.0\AceDB-2.0.lua"/> |
<Script file="libs\AceLocale-2.2\AceLocale-2.2.lua"/> |
<Script file="libs\FuBarPlugin-2.0\FuBarPlugin-2.0.lua"/> |
<Script file="libs\Tablet-2.0\Tablet-2.0.lua"/> |
<Script file="libs\Waterfall-1.0\Waterfall-1.0.lua"/> |
</Ui> |