/trunk
## Interface: 32000 |
## Title: CCBreaker |
## Notes: Displays who breaks CrowdControl Effects |
## Notes-zhTW: ç ´æ§è¦å |
## Notes-zhCN: æ¾ç¤ºæ¯è°ç ´åäºæ§å¶æè½çææ |
## Author: Pheredhel |
## Version: 0.5.1 |
## 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 |
## Interface: 30200 |
## Title: CCBreaker |
## Notes: Displays who breaks CrowdControl Effects |
## Author: Dahtank (Previously: Pheredhel) |
## Version: 1.01 |
## 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-Email: mustics@yahoo.com (please put ccbreaker in the subject) |
## X-Category: Combat |
#Librarys |
embeds.xml |
# Localisations |
Locale-enUS.lua |
Locale-deDE.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) |
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, |
["deathknight"] = 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 deathknights"] = 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 deathknights"] = 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) |
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]"] = "[spell] auf [target] wurde von [breaker] entfernt ", |
["[spell] on [target] was removed by [breaker]'s [ability]"] = "[spell] auf [target] wurde durch [breaker]s [ability] entfernt", |
["[spell] on [target] was removed"] = "[spell] auf [target] wurde entfernt", |
["ability"] = "Fähigkeit", |
["breaker"] = "CC-Entferner", |
["broadcast as raidwarning"] = "Als Schlachtzugwarnung senden", |
["broadcast to party"] = "An Gruppe senden", |
["broadcast to raid"] = "An Schlachtzug senden", |
["center"] = "Mitte", |
["Change the displayed text, leave blank for default"] = "Textausgabe ändern, leerlassen für Standard", |
["Chat options"] = "Chatoptionen", |
["chat"] = "Chat", |
["Chose color to use"] = "Textfarbe auswählen", |
["class"] = "Klasse", |
["Color messages"] = "Texte einfärben", |
["color text"] = "einfärben", |
["color"] = "Farbe", |
["config"] = "Einstellungen", |
["console"] = "Konsole", |
["debug"] = "Debug", |
["Display ability breaking the CC"] = "Fähigkeit anzeigen durch die der CC entfernt wurde", |
["Display broken spell"] = "Enfernten CC anzeigen", |
["Display centered messages"] = "Nachricht in der Mitte anzeigen", |
["Display console messages"] = "Nachrichten im Chatfenster anzeigen", |
["Display freed target"] = "Befreites CC-Ziel anzeigen", |
["Display options for centered messages"] = "Anzeigeoptionen für Mitte", |
["Display options in console"] = "Anzeigeoptionen für Chatfenster", |
["Display options in Fubar"] = "Anzeigeoptionen für FuBar", |
["Display options"] = "Anzeigeoptionen", |
["Display who broke CC"] = "Anzeigen wer den CC entfernt hat", |
["display"] = "Anzeige", |
["druid"] = "Druide", |
["Enable debug messages"] = "Debug-Informationen anzeigen", |
["enable"] = "aktivieren", |
["Filter for classes"] = "Klassenfilter", |
["Filter for raid roles"] = "Filter für Raidaufgaben", |
["Filter for unit types"] = "Filter nach Art", |
["Filter Options"] = "Filtereinstellungen", |
["filter"] = "Filter", |
["four"] = "vier", |
["fubar"] = "FuBar", |
["hunter"] = "Jäger", |
["mage"] = "Magier", |
["mainassist"] = "Mainassist", |
["maintank"] = "Maintank", |
["Open config in a Waterall window"] = "Einstellungen in Waterfall anzeigen", |
["others"] = "Andere", |
["paladin"] = "Paladin", |
["party pet"] = "Gruppenpet", |
["party"] = "Gruppe", |
["pet"] = "Pet", |
["player"] = "Spieler", |
["priest"] = "Priester", |
["raid pet"] = "Raidpet", |
["raid"] = "Raid", |
["raidwarning"] = "Raidwarnung", |
["Report CC breaks from those only"] = "Nur anzeigen wenn entfernt von", |
["Report CC breaks of effects"] = "Anzuzeigende CC's auswählen", |
["Report CC breaks to those targets only"] = "Nur anzeigen wenn entfernt auf", |
["Reset breaker data"] = "Liste löschen", |
["reset"] = "reset", |
["Rightclick for options"]= "Rechtsklick für Optionen", |
["rogue"] = "Schurke", |
["role"] = "Raidaufgabe", |
["shaman"] = "Schamane", |
["Show break from druids"] = "Anzeigen wenn CC durch einen Druiden entfernt wurde", |
["Show break from hunters"] = "Anzeigen wenn CC durch einen Jäger entfernt wurde", |
["Show break from mages"] = "Anzeigen wenn CC durch einen Magier entfernt wurde", |
["Show break from mainassists"] = "Anzeigen wenn CC durch einen Mainassist entfernt wurde", |
["Show break from maintanks"] = "Anzeigen wenn CC durch einen Maintank entfernt wurde", |
["Show break from others"] = "Anzeigen wenn CC durch einen Andere entfernt wurde", |
["Show break from paladins"] = "Anzeigen wenn CC durch einen Paladin entfernt wurde", |
["Show break from party members"] = "Anzeigen wenn CC durch einen Gruppenmitglieder entfernt wurde", |
["Show break from party pets"] = "Anzeigen wenn CC durch einen Gruppenpets entfernt wurde", |
["Show break from player"] = "Anzeigen wenn CC durch einen Spieler entfernt wurde", |
["Show break from priests"] = "Anzeigen wenn CC durch einen Priester entfernt wurde", |
["Show break from raid members"] = "Anzeigen wenn CC durch eine Mitglied des Schlachtzuges entfernt wurde", |
["Show break from raid pets"] = "Anzeigen wenn CC durch einen Raidpet entfernt wurde", |
["Show break from rogues"] = "Anzeigen wenn CC durch einen Schurken entfernt wurde", |
["Show break from shamans"] = "Anzeigen wenn CC durch einen Schamanen entfernt wurde", |
["Show break from warlocks"] = "Anzeigen wenn CC durch einen Hexenmeister entfernt wurde", |
["Show break from warriors"] = "Anzeigen wenn CC durch einen Krieger entfernt wurde", |
["Show break from your pet"] = "Anzeigen wenn CC durch dein Pet entfernt wurde", |
["Show break of "] = "Anzeigen wenn CC auf ... entfernt wurde", |
["Show break on druids"] = "Anzeigen wenn CC auf einem Druiden entfernt wurde", |
["Show break on hunters"] = "Anzeigen wenn CC auf einem Jäger entfernt wurde", |
["Show break on mages"] = "Anzeigen wenn CC auf einem Magier entfernt wurde", |
["Show break on mainassists"] = "Anzeigen wenn CC auf einem Mainassist entfernt wurde", |
["Show break on maintanks"] = "Anzeigen wenn CC auf einem Maintank entfernt wurde", |
["Show break on others"] = "Anzeigen wenn CC auf einem Andern entfernt wurde", |
["Show break on paladins"] = "Anzeigen wenn CC auf einem Paladin entfernt wurde", |
["Show break on party members"] = "Anzeigen wenn CC auf einem Gruppenmitglied entfernt wurde", |
["Show break on party pets"] = "Anzeigen wenn CC auf einem Gruppenpet entfernt wurde", |
["Show break on player"] = "Anzeigen wenn CC auf dem Spieler wurde", |
["Show break on priests"] = "Anzeigen wenn CC auf einem Priester entfernt wurde", |
["Show break on raid members"] = "Anzeigen wenn CC auf einem Schlachtzugsmitglied entfernt wurde", |
["Show break on raid pets"] = "Anzeigen wenn CC auf einem Raidpet entfernt wurde", |
["Show break on rogues"] = "Anzeigen wenn CC auf einem Schurken entfernt wurde", |
["Show break on shamans"] = "Anzeigen wenn CC auf einem Schamanen entfernt wurde", |
["Show break on warlocks"] = "Anzeigen wenn CC auf einem Hexenmeister entfernt wurde", |
["Show break on warriors"] = "Anzeigen wenn CC auf einem Krieger entfernt wurde", |
["Show break on your pet"] = "Anzeigen wenn CC auf deinem Pet entfernt wurde", |
["show effects"] = "CC-Effekte", |
["show from"] = "zeige durch", |
["show on"] = "zeige auf", |
["Slash-Commands"] = "/-Befehle", |
["spell"] = "CC-Effekt", |
["target"] = "Ziel", |
["text if only spell an target are given"] = "Text der angezeigt wird, wenn nur CC-Effekt und Ziel bekannt sind", |
["text if only spell, target and breaker are given"] = "Text der angezeigt wird, wenn nur CC-Effekt, Ziel und CC-Entferner bekannt sind", |
["text if spell, target, breaker and ability are given"] = "Text der angezeigt wird, wenn CC-Effekt, Ziel, CC-Entferner und Fähigkeit bekannt sind", |
["text"] = "Text", |
["three"] = "drei", |
["two"] = "zwei", |
["unit"] = "Art", |
["warlock"] = "Hexenmeister", |
["warrior"] = "Krieger", |
} end) |
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("deDE", function() return { |
["[spell] on [target] was removed by [breaker]"] = "[spell] auf [target] wurde von [breaker] entfernt ", |
["[spell] on [target] was removed by [breaker]'s [ability]"] = "[spell] auf [target] wurde durch [breaker]s [ability] entfernt", |
["[spell] on [target] was removed"] = "[spell] auf [target] wurde entfernt", |
["ability"] = "Fähigkeit", |
["breaker"] = "CC-Entferner", |
["broadcast as raidwarning"] = "Als Schlachtzugwarnung senden", |
["broadcast to party"] = "An Gruppe senden", |
["broadcast to raid"] = "An Schlachtzug senden", |
["center"] = "Mitte", |
["Change the displayed text, leave blank for default"] = "Textausgabe ändern, leerlassen für Standard", |
["Chat options"] = "Chatoptionen", |
["chat"] = "Chat", |
["Chose color to use"] = "Textfarbe auswählen", |
["class"] = "Klasse", |
["Color messages"] = "Texte einfärben", |
["color text"] = "einfärben", |
["color"] = "Farbe", |
["config"] = "Einstellungen", |
["console"] = "Konsole", |
["deathknight"] = "Deathknight", |
["debug"] = "Debug", |
["Display ability breaking the CC"] = "Fähigkeit anzeigen durch die der CC entfernt wurde", |
["Display broken spell"] = "Enfernten CC anzeigen", |
["Display centered messages"] = "Nachricht in der Mitte anzeigen", |
["Display console messages"] = "Nachrichten im Chatfenster anzeigen", |
["Display freed target"] = "Befreites CC-Ziel anzeigen", |
["Display options for centered messages"] = "Anzeigeoptionen für Mitte", |
["Display options in console"] = "Anzeigeoptionen für Chatfenster", |
["Display options in Fubar"] = "Anzeigeoptionen für FuBar", |
["Display options"] = "Anzeigeoptionen", |
["Display who broke CC"] = "Anzeigen wer den CC entfernt hat", |
["display"] = "Anzeige", |
["druid"] = "Druide", |
["Enable debug messages"] = "Debug-Informationen anzeigen", |
["enable"] = "aktivieren", |
["Filter for classes"] = "Klassenfilter", |
["Filter for raid roles"] = "Filter für Raidaufgaben", |
["Filter for unit types"] = "Filter nach Art", |
["Filter Options"] = "Filtereinstellungen", |
["filter"] = "Filter", |
["four"] = "vier", |
["fubar"] = "FuBar", |
["hunter"] = "Jäger", |
["mage"] = "Magier", |
["mainassist"] = "Mainassist", |
["maintank"] = "Maintank", |
["Open config in a Waterall window"] = "Einstellungen in Waterfall anzeigen", |
["others"] = "Andere", |
["paladin"] = "Paladin", |
["party pet"] = "Gruppenpet", |
["party"] = "Gruppe", |
["pet"] = "Pet", |
["player"] = "Spieler", |
["priest"] = "Priester", |
["raid pet"] = "Raidpet", |
["raid"] = "Raid", |
["raidwarning"] = "Raidwarnung", |
["Report CC breaks from those only"] = "Nur anzeigen wenn entfernt von", |
["Report CC breaks of effects"] = "Anzuzeigende CC's auswählen", |
["Report CC breaks to those targets only"] = "Nur anzeigen wenn entfernt auf", |
["Reset breaker data"] = "Liste löschen", |
["reset"] = "reset", |
["Rightclick for options"]= "Rechtsklick für Optionen", |
["rogue"] = "Schurke", |
["role"] = "Raidaufgabe", |
["shaman"] = "Schamane", |
["Show break from druids"] = "Anzeigen wenn CC durch einen Druiden entfernt wurde", |
["Show break from hunters"] = "Anzeigen wenn CC durch einen Jäger entfernt wurde", |
["Show break from mages"] = "Anzeigen wenn CC durch einen Magier entfernt wurde", |
["Show break from mainassists"] = "Anzeigen wenn CC durch einen Mainassist entfernt wurde", |
["Show break from maintanks"] = "Anzeigen wenn CC durch einen Maintank entfernt wurde", |
["Show break from others"] = "Anzeigen wenn CC durch einen Andere entfernt wurde", |
["Show break from paladins"] = "Anzeigen wenn CC durch einen Paladin entfernt wurde", |
["Show break from party members"] = "Anzeigen wenn CC durch einen Gruppenmitglieder entfernt wurde", |
["Show break from party pets"] = "Anzeigen wenn CC durch einen Gruppenpets entfernt wurde", |
["Show break from player"] = "Anzeigen wenn CC durch einen Spieler entfernt wurde", |
["Show break from priests"] = "Anzeigen wenn CC durch einen Priester entfernt wurde", |
["Show break from raid members"] = "Anzeigen wenn CC durch eine Mitglied des Schlachtzuges entfernt wurde", |
["Show break from raid pets"] = "Anzeigen wenn CC durch einen Raidpet entfernt wurde", |
["Show break from rogues"] = "Anzeigen wenn CC durch einen Schurken entfernt wurde", |
["Show break from shamans"] = "Anzeigen wenn CC durch einen Schamanen entfernt wurde", |
["Show break from warlocks"] = "Anzeigen wenn CC durch einen Hexenmeister entfernt wurde", |
["Show break from warriors"] = "Anzeigen wenn CC durch einen Krieger entfernt wurde", |
["Show break from deathknighs"] = "Anzeigen wenn CC durch einen Deathknight entfernt wurde", |
["Show break from your pet"] = "Anzeigen wenn CC durch dein Pet entfernt wurde", |
["Show break of "] = "Anzeigen wenn CC auf ... entfernt wurde", |
["Show break on druids"] = "Anzeigen wenn CC auf einem Druiden entfernt wurde", |
["Show break on hunters"] = "Anzeigen wenn CC auf einem Jäger entfernt wurde", |
["Show break on mages"] = "Anzeigen wenn CC auf einem Magier entfernt wurde", |
["Show break on mainassists"] = "Anzeigen wenn CC auf einem Mainassist entfernt wurde", |
["Show break on maintanks"] = "Anzeigen wenn CC auf einem Maintank entfernt wurde", |
["Show break on others"] = "Anzeigen wenn CC auf einem Andern entfernt wurde", |
["Show break on paladins"] = "Anzeigen wenn CC auf einem Paladin entfernt wurde", |
["Show break on party members"] = "Anzeigen wenn CC auf einem Gruppenmitglied entfernt wurde", |
["Show break on party pets"] = "Anzeigen wenn CC auf einem Gruppenpet entfernt wurde", |
["Show break on player"] = "Anzeigen wenn CC auf dem Spieler wurde", |
["Show break on priests"] = "Anzeigen wenn CC auf einem Priester entfernt wurde", |
["Show break on raid members"] = "Anzeigen wenn CC auf einem Schlachtzugsmitglied entfernt wurde", |
["Show break on raid pets"] = "Anzeigen wenn CC auf einem Raidpet entfernt wurde", |
["Show break on rogues"] = "Anzeigen wenn CC auf einem Schurken entfernt wurde", |
["Show break on shamans"] = "Anzeigen wenn CC auf einem Schamanen entfernt wurde", |
["Show break on warlocks"] = "Anzeigen wenn CC auf einem Hexenmeister entfernt wurde", |
["Show break on warriors"] = "Anzeigen wenn CC auf einem Krieger entfernt wurde", |
["Show break on deathknights"] = "Anzeigen wenn CC auf einem Deathknight entfernt wurde", |
["Show break on your pet"] = "Anzeigen wenn CC auf deinem Pet entfernt wurde", |
["show effects"] = "CC-Effekte", |
["show from"] = "zeige durch", |
["show on"] = "zeige auf", |
["Slash-Commands"] = "/-Befehle", |
["spell"] = "CC-Effekt", |
["target"] = "Ziel", |
["text if only spell an target are given"] = "Text der angezeigt wird, wenn nur CC-Effekt und Ziel bekannt sind", |
["text if only spell, target and breaker are given"] = "Text der angezeigt wird, wenn nur CC-Effekt, Ziel und CC-Entferner bekannt sind", |
["text if spell, target, breaker and ability are given"] = "Text der angezeigt wird, wenn CC-Effekt, Ziel, CC-Entferner und Fähigkeit bekannt sind", |
["text"] = "Text", |
["three"] = "drei", |
["two"] = "zwei", |
["unit"] = "Art", |
["warlock"] = "Hexenmeister", |
["warrior"] = "Krieger", |
} 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> |
<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> |
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 |
(filter.deathknight and class == "DEATHKNIGHT") 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) |
[61721]=true, -- Polymorph (rank 1:rabbit) ? is this even ingame? just to be sure |
} |
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) |
[51724]=true, -- Sap (rank 4) |
} |
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) |
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 |
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 |
(filter.deathknight and class == "DEATHKNIGHT") 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) |
[61305]=true, -- Polymorph (rank 1:blackcat) |
} |
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) |
[51724]=true, -- Sap (rank 4) |
} |
CCBreaker.SeductionId={ |
[6358]=true, -- Seduction (succubus) |
} |
CCBreaker.HexId={ |
[51514]=true, -- Hex |
} |
CCBreaker.WyvernStingId={ |
[19386]=true, -- Wyvern Sting (rank 1) |
[24132]=true, -- Wyvern Sting (rank 2) |
[24133]=true, -- Wyvern Sting (rank 3) |
[27068]=true, -- Wyvern Sting (rank 4) |
[49011]=true, -- Wyvern Sting (rank 5) |
[49012]=true, -- Wyvern Sting (rank 6) |
} |
CCBreaker.RepentanceId={ |
[20066]=true, -- Repentance (rank 1) |
} |
CCBreaker.FreezingArrowId={ |
[60210]=true, -- Freezing Arrow (rank 1) |
} |
local PolyId = CCBreaker.PolyId |
local ShackleId = CCBreaker.ShackleId |
local FreezingTrapId = CCBreaker.FreezingTrapId |
local HibernateId = CCBreaker.HibernateId |
local SapId = CCBreaker.SapId |
local SeductionId = CCBreaker.SeductionId |
local HexId = CCBreaker.HexId |
local WyvernStingId = CCBreaker.WyvernStingId |
local RepentanceId = CCBreaker.RepentanceId |
local FreezingArrowId = CCBreaker.FreezingArrowId |
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) or |
(HexId[spellid] and showeffects.hex) or |
(WyvernStingId[spellid] and showeffects.wyvernsting) or |
(RepentanceId[spellid] and showeffects.repentance) or |
(FreezingArrowId[spellid] and showeffects.freezingarrow) |
--[[ 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"]) or (spell == CCBabble["Polymorph: Black Cat"])) and (showeffects.polymorph)) |
((spell == CCBabble["Freezing Trap Effect"]) and (showeffects.freezingtrap)) or |
((spell == CCBabble["Hex"]) and (showeffects.hex)) or |
((spell == CCBabble["Wyvern Sting"]) and (showeffects.wyvernsting)) or |
((spell == CCBabble["Repentance"]) and (showeffects.repentance)) or |
((spell == CCBabble["Freezing Arrow"]) and (showeffects.freezingarrow)))]] |
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, |
deathknight=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, |
deathknight=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 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 |
local HexId = CCBreaker.HexId |
local WyvernStingId = CCBreaker.WyvernStingId |
local RepentanceId = CCBreaker.RepentanceId |
local FreezingArrowId = CCBreaker.FreezingArrowId |
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, |
deathknight = 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, |
deathknight = true, |
maintank = true, |
mainassist = true, |
}, |
showeffects = { |
freezingtrap = true, |
hibernate = true, |
polymorph = true, |
shackleundead = true, |
sap = true, |
seduction = true, |
hex = true, |
wyvernsting = true, |
repentance = true, |
freezingarrow = 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 = 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]"], |
} |
}, |
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, |
}, |
deathknight = { |
type = "toggle", |
name = CCLocale["deathknight"], |
desc = CCLocale["Show break on deathknights"], |
get = function() return CCBreaker.db.char.showon.deathknight end, |
set = function(v) CCBreaker.db.char.showon.deathknight = 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, |
}, |
deathknight = { |
type = "toggle", |
name = CCLocale["deathknight"], |
desc = CCLocale["Show break from deathknights"], |
get = function() return CCBreaker.db.char.showfrom.deathknight end, |
set = function(v) CCBreaker.db.char.showfrom.deathknight = 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)..", " |
..GetSpellInfo(28272).." and " |
..GetSpellInfo(61305), |
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, |
}, |
hex = { |
type = "toggle", |
name = GetSpellInfo(51514), |
desc = CCLocale["Show break of "]..GetSpellInfo(51514), |
get = function() return CCBreaker.db.char.showeffects.hex end, |
set = function(v) CCBreaker.db.char.showeffects.hex = v end, |
}, |
wyvernsting = { |
type = "toggle", |
name = GetSpellInfo(19386), |
desc = CCLocale["Show break of "]..GetSpellInfo(19386), |
get = function() return CCBreaker.db.char.showeffects.wyvernsting end, |
set = function(v) CCBreaker.db.char.showeffects.wyvernsting = v end, |
}, |
repentance = { |
type = "toggle", |
name = GetSpellInfo(20066), |
desc = CCLocale["Show break of "]..GetSpellInfo(20066), |
get = function() return CCBreaker.db.char.showeffects.repentance end, |
set = function(v) CCBreaker.db.char.showeffects.repentance = v end, |
}, |
freezingarrow = { |
type = "toggle", |
name = GetSpellInfo(60210), |
desc = CCLocale["Show break of "]..GetSpellInfo(60210), |
get = function() return CCBreaker.db.char.showeffects.freezingarrow end, |
set = function(v) CCBreaker.db.char.showeffects.freezingarrow = v end, |
}, |
}, |
}, |
}, |
}, |
}, |
} |
--CCBreaker:RegisterChatCommand(CCLocale["Slash-Commands"],CCBreaker.OnMenuRequest) |
CCWaterfall:Register("CCBreaker","aceOptions",CCBreaker.OnMenuRequest,"title","CCBreaker Options","treeLevels",3) |