WoWInterface SVN CCBreaker

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 3 to Rev 4
    Reverse comparison

Rev 3 → Rev 4

branches/v0.6/Locale-koKR.lua New file
0,0 → 1,131
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)
branches/v0.6/icon.blp Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream Added: svn:executable + *
branches/v0.6/CCBreaker.toc New file
0,0 → 1,27
## 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
\ No newline at end of file
branches/v0.6/Locale-enUS.lua New file
0,0 → 1,136
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)
branches/v0.6/Locale-zhTW.lua New file
0,0 → 1,130
--翻譯: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)
\ No newline at end of file
branches/v0.6/libs/libdatabroker-1-1/README.textile New file
0,0 → 1,13
LibDataBroker is a small WoW addon library designed to provide a "MVC":http://en.wikipedia.org/wiki/Model-view-controller interface for use in various addons.
LDB's primary goal is to "detach" plugins for TitanPanel and FuBar from the display addon.
Plugins can provide data into a simple table, and display addons can receive callbacks to refresh their display of this data.
LDB also provides a place for addons to register "quicklaunch" functions, removing the need for authors to embed many large libraries to create minimap buttons.
Users who do not wish to be "plagued" by these buttons simply do not install an addon to render them.
 
Due to it's simple generic design, LDB can be used for any design where you wish to have an addon notified of changes to a table.
 
h2. Links
 
* "API documentation":http://github.com/tekkub/libdatabroker-1-1/wikis/api
* "Data specifications":http://github.com/tekkub/libdatabroker-1-1/wikis/data-specifications
* "Addons using LDB":http://github.com/tekkub/libdatabroker-1-1/wikis/addons-using-ldb
branches/v0.6/libs/libdatabroker-1-1/LibDataBroker-1.1.lua New file
0,0 → 1,90
 
assert(LibStub, "LibDataBroker-1.1 requires LibStub")
assert(LibStub:GetLibrary("CallbackHandler-1.0", true), "LibDataBroker-1.1 requires CallbackHandler-1.0")
 
local lib, oldminor = LibStub:NewLibrary("LibDataBroker-1.1", 4)
if not lib then return end
oldminor = oldminor or 0
 
 
lib.callbacks = lib.callbacks or LibStub:GetLibrary("CallbackHandler-1.0"):New(lib)
lib.attributestorage, lib.namestorage, lib.proxystorage = lib.attributestorage or {}, lib.namestorage or {}, lib.proxystorage or {}
local attributestorage, namestorage, callbacks = lib.attributestorage, lib.namestorage, lib.callbacks
 
if oldminor < 2 then
lib.domt = {
__metatable = "access denied",
__index = function(self, key) return attributestorage[self] and attributestorage[self][key] end,
}
end
 
if oldminor < 3 then
lib.domt.__newindex = function(self, key, value)
if not attributestorage[self] then attributestorage[self] = {} end
if attributestorage[self][key] == value then return end
attributestorage[self][key] = value
local name = namestorage[self]
if not name then return end
callbacks:Fire("LibDataBroker_AttributeChanged", name, key, value, self)
callbacks:Fire("LibDataBroker_AttributeChanged_"..name, name, key, value, self)
callbacks:Fire("LibDataBroker_AttributeChanged_"..name.."_"..key, name, key, value, self)
callbacks:Fire("LibDataBroker_AttributeChanged__"..key, name, key, value, self)
end
end
 
if oldminor < 2 then
function lib:NewDataObject(name, dataobj)
if self.proxystorage[name] then return end
 
if dataobj then
assert(type(dataobj) == "table", "Invalid dataobj, must be nil or a table")
self.attributestorage[dataobj] = {}
for i,v in pairs(dataobj) do
self.attributestorage[dataobj][i] = v
dataobj[i] = nil
end
end
dataobj = setmetatable(dataobj or {}, self.domt)
self.proxystorage[name], self.namestorage[dataobj] = dataobj, name
self.callbacks:Fire("LibDataBroker_DataObjectCreated", name, dataobj)
return dataobj
end
end
 
if oldminor < 1 then
function lib:DataObjectIterator()
return pairs(self.proxystorage)
end
 
function lib:GetDataObjectByName(dataobjectname)
return self.proxystorage[dataobjectname]
end
 
function lib:GetNameByDataObject(dataobject)
return self.namestorage[dataobject]
end
end
 
if oldminor < 4 then
local next = pairs(attributestorage)
function lib:pairs(dataobject_or_name)
local t = type(dataobject_or_name)
assert(t == "string" or t == "table", "Usage: ldb:pairs('dataobjectname') or ldb:pairs(dataobject)")
 
local dataobj = self.proxystorage[dataobject_or_name] or dataobject_or_name
assert(attributestorage[dataobj], "Data object not found")
 
return next, attributestorage[dataobj], nil
end
 
local ipairs_iter = ipairs(attributestorage)
function lib:ipairs(dataobject_or_name)
local t = type(dataobject_or_name)
assert(t == "string" or t == "table", "Usage: ldb:ipairs('dataobjectname') or ldb:ipairs(dataobject)")
 
local dataobj = self.proxystorage[dataobject_or_name] or dataobject_or_name
assert(attributestorage[dataobj], "Data object not found")
 
return ipairs_iter, attributestorage[dataobj], 0
end
end
branches/v0.6/embeds.xml New file
0,0 → 1,15
<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>
branches/v0.6/Locale-zhCN.lua New file
0,0 → 1,129
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)
branches/v0.6/CCBreaker.lua New file
0,0 → 1,533
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
\ No newline at end of file
branches/v0.6/CCOptions.lua New file
0,0 → 1,755
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)
 
 
 
branches/v0.6 Property changes : Added: svn:mergeinfo Added: svn:externals + libs/AceAddon-2.0 svn://svn.wowace.com/wow/ace2/mainline/trunk/AceAddon-2.0 libs/Waterfall-1.0 svn://svn.wowace.com/wow/waterfall-1-0/mainline/trunk/Waterfall-1.0 libs/Tablet-2.0 svn://svn.wowace.com/wow/tabletlib/mainline/trunk/Tablet-2.0 libs/Dewdrop-2.0 svn://svn.wowace.com/wow/dewdroplib/mainline/trunk/Dewdrop-2.0 libs/AceDB-2.0 svn://svn.wowace.com/wow/ace2/mainline/trunk/AceDB-2.0 libs/AceLocale-2.2 svn://svn.wowace.com/wow/ace2/mainline/trunk/AceLocale-2.2 libs/FuBarPlugin-2.0 svn://svn.wowace.com/wow/fubarplugin-2-0/mainline/trunk/FuBarPlugin-2.0 libs/AceEvent-2.0 svn://svn.wowace.com/wow/ace2/mainline/trunk/AceEvent-2.0 libs/AceLibrary svn://svn.wowace.com/wow/ace2/mainline/trunk/AceLibrary libs/AceConsole-2.0 svn://svn.wowace.com/wow/ace2/mainline/trunk/AceConsole-2.0 libs/AceOO-2.0 svn://svn.wowace.com/wow/ace2/mainline/trunk/AceOO-2.0