/
-------- --------------------------------------------------------------------------------------------------------------------------------------- |
FRANCAIS |
-------- |
Cet AddOn a été créé afin d'avoir une meilleure visibilité lorsque l'on acquière des buffs, debuffs, points de combos, enchantement d'arme... Très util principalement pour les buffs ou debuffs court, il permet d'avoir au centre de l'écran, ou autour de son personnages, des effets visuels extrèmement paramétrables, plutôt que tout le temps avoir à regarder si on a l'icone du buff ou debuff sur les bords de l'écran. |
Initialement créé pour avoir un aperçu des buffs d'amélioration courts comme "idées claires" ou un quelconque bijou qui boosterait notre attaque, il fonctionne désormais aussi bien avec des débuffs (quel que soient leur nom), les type de débuffs (magie, malédiction, etc), les points de combos, les effets de zone ainsi que les enchantements d'armes |
Utilisation : |
Tapez /powa |
pour avoir accès au menu d'édition des effets, il ne vous reste plus qu'à choisir la texture à appliquer à l'effet, la position, taille, symétrie, etc... |
Entrez ensuite le nom ou une partie du nom du buff/debuff (ex: si vous cherchez à activer l'effet visuel sur "Idées claires", vous pouvez n'entrer que "claires" dans le nom du buff). |
L'addon se chargera donc d'afficher l'effet là où vous le désirez et à le faire disparaitre une fois le buff fini. |
Vous pouvez aussi facilement ajouter de nouvelles textures en les mettant dans le dossier "custom" de l'addon. |
-= Mises à jour : =- |
Version 2.34 : |
-------------- |
+ Ajout d'une activation d'effet suivant les actions utilisable de vos barres d'actions |
- Finalement, correction d'un bug qui empechait certaines personne d'utiliser les effets d'enchantements d'arme |
Version 2.32 : |
-------------- |
+ Compatibilité avec la version 2.0.3 de WoW |
+ Désormais Power Auras est livré avec 50 textures (plus besoin de télécharger les packs 1 et 2) |
+ Ajout de 3 timers supplémentaires |
+ Ajout d'un décompte de durée des buffs / debuffs sur la cible |
+ Ajout de la possibilité de créer ses propres textures et de les inclure facilement (dans le dossier "Custom") |
+ Ajout des tests sur les cibles amies ou ennemies |
+ Possibilité de déplacer les effets ou timers sur l'écran plus facilement |
+ Possibilité d'afficher les textures avec une transparence normale |
- Les effets de zones ne devraient plus persister à la mort ou au changement de zone |
- Corrections de quelques bugs mineurs |
Version 2.17 : |
-------------- |
+ Compatibilité avec la version 2.0.0 de WoW |
Version 2.16 : |
-------------- |
- Correction d'un problème d'allocation de mémoire trop important |
- Correction d'un message d'erreur qui parfois pouvait survenir |
+ Ajout de 2 paramètres : "Afficher si en combat" et "Afficher si hors combat" |
Version 2.15 : |
-------------- |
+ Ajout d'une nouvelle interface pour facilement naviguer entre les effets. Elle dispose de 120 effets par personnage et de 240 effets communs à tous les personnages. |
+ Tous les effets pourront être copiés ou déplacés entre les diverses pages disponibles, et les pages pourront être renommées pour une meilleur visibilité |
+ Ajout d'une fonction pour activer ou désactiver les effets |
+ Ajout de l'activation des effets par debuff de zone (marche avec les pluies de feu, blizzard, etc...) |
+ Ajout de l'activation des effets par enchantement des armes (droite, gauche ou les deux) |
+ Ajout de l'activation des effets par points de combo, pour les druides-chat et voleurs |
+ Ajout du paramètre "Sur la cible" pour activer les effets suivant les buffs/debuffs qu'aura la cible |
+ Ajout du paramètre "Couleurs aléatoire", afin que la couleur d'un effet change à chaque activation |
+ Ajout du paramètre "Texture WoW", permettant d'utiliser 25 textures internes du jeu à la place des textures de l'Addon |
+ Les modifications de taille des textures seront désormais plus précises |
- Suppression de la fonction "Liste" qui n'est plus utilisée pour sauvegarder des effets, tous vos effets sauvegardés seront placés dans les pages d'effets communs à tous les personnages et mis sur "OFF". |
- Corrections de quelques bugs mineurs |
Version 2.10 : |
-------------- |
+ Ajout d'un bouton "+" permettant d'ajouter facilement un effet supplémentaire |
+ Ajout d'un bouton "-" qui efface toutes les pages d'effets inutilisées et trie les autres par type |
+ Désormais vous pouvez déplacer les effets plus précisément sur l'écran, et n'importe où |
+ Ajout d'une commande qui définie si les Majuscules/minuscules des noms des buffs/débuff doivent être prises en compte (corrige certains soucis avec les versions non latines du jeu) |
+ Ajout de deux options d'animation supplémentaires : "animation de départ" et "animation de fin", permettant des combinaisons d'effets plus sympas |
+ Changement des numéros d'animation par des noms |
+ Finallement, ajout de la 10ème animation |
+ Ajout d'un paramètre qui remplace les centièmes de secondes du compteur de durée par la durée du second buff/débuff le plus court |
+ Amélioration visuelle de l'interface d'option |
- Suppression du paramètre de "disparition rapide" qui est devenu obsolète |
- Suppression des lignes de commandes avancées qui ne sont plus utiles |
- Enfin, correction du bug qui faisait que certains effets apparaissaient ou disparaissaient aléatoirement |
- Corrections mineures de certains bugs d'animation |
Version 2.01 : |
-------------- |
+ Ajout du timer pour les débuffs et type de débuffs (et d'autres fonctions) |
+ Ajout du paramètre "vitesse d'animation" pour tous les effets |
+ Ajout du paramètre "durée de l'animation", si vous voulez que l'effet soit masqué après un certain temps |
+ Ajout d'un paramètre permettant d'afficher les effets si les buffs/débuff ne sont pas actifs |
+ Ajout d'une option qui vous permet de choisir plus facilement le nombre maximum de textures disponible pour l'AddOn |
- Correction d'un bug qui empêchait les types de débuff de fonctionner correctement sur les versions non anglaises du jeu |
- Correction d'un bug qui empêchait la sauvegarde du nombre max de textures |
Version 1.12b : |
--------------- |
- Ajout de 5 textures et de 3 animations (penser à ne pas écraser vos textures si vous en avez modifiées ou créés de nouvelles) |
- Ajout d'un timer déplaçable pour les buffs (gestion des debuffs dans une future version). Le timer affichera toujours le temps restant du buff le plus court actif. |
- Vous pouvez augmenter le nombre d'effet maximum jusqu'à 100 (via la commande /powa maxeffect) |
- Vous pouvez entrer plusieurs noms de buffs/débuffs dans une seule page d'effet, si vous les séparez par un "/" (ex : Robustesse/Don du fauve) |
- Vous pouvez activer un type de debuff qui n'est pas une magie, maladie, etc... via le nom "aucun" (l'effet s'activera si un débuff n'a aucun type particulier). De plus, vous pouvez entrer plusieurs type de débuffs dans la partie "nom du débuff" (pour pister les poisons en même temps que les maladies par exemple). |
Version 1.12a : |
--------------- |
- Correction d'un problème d'allocation de mémoire, tout devrait fonctionner normalement désormais |
Version 1.12 : |
-------------- |
- Ajout de la possibilité de sauvegarder ses effets dans une liste commune à tous les personnages, cliquez sur le bouton "Liste" |
- Ajout de fonctions avancées, disponibles en tapant : /powa help |
------- ---------------------------------------------------------------------------------------------------------------------------------------- |
ENGLISH |
------- |
This Mod was created to have a better visibility when you gain buffs, debuffs and many more. Very util for shorts buffs or debuffs, it allows you to have in the center of the screen, or around your character, very customizable visual effects, rather than all the time have to look on the other side of the screen to see if you have a buff or a debuff on you. |
Initially created to have an better visibility on the short buffs like "clear cast" or some boost trinket you activate, it works now with debuffs (whatever their name), debuff types like Magic or Curse, combo points, Aoe debuffs and weapon enchants. |
How to use : |
Type /powa |
to open the effect editor, then you can choose the texture to apply to the effect, the position, the size, the symmetry, etc... |
Then, enter the name or a part of the name of the buff / debuff (ex: if you try to activate the visual effect on "Clear cast", you can enter only "Clear" in the name of the buff). |
The Mod will take care to show the effect where you wish and to remove it when the buff is finished. |
You can so easily change the 20 available textures or add new ones. |
- = Updates: =- |
Version 2.34 : |
-------------- |
+ Added an effect activation when a specific action is ready or not in your action bars. |
- Finally, corrected the bug that cause some weapon enchant effect don't appear normally. |
Version 2.32 : |
-------------- |
+ Compatibility with version 2.0.3 of Wow |
+ Power Auras come now with 50 textures (you don't need anymore to download the 2 texture packs) |
+ Added 3 timers |
+ Added a timer duration for buffs/debuffs on the target |
+ You can now add easily your own textures (in the "Custom" Directory) |
+ Added tests on friendly or ennemy target |
+ Added a easy way to move the effects or timer anywhere on the screen |
+ You can now display the textures with the normal transparency mode |
- The Aoe debuffs should no longer persist after death or zone change |
- Corrections of some minor bugs |
Version 2.17 : |
-------------- |
+ Compatibility to version 2.0.0 of Wow |
Version 2.16 : |
-------------- |
- Fixed the problem of high memory usage |
- Fixed some error message that sometimes can be displayed |
+ Added 2 options : "Only if in combat" and "Only if not in combat" for every effects |
Version 2.15 : |
-------------- |
+ Added a new interface to easily navigate through all the effects. You can now create/edit 120 effects per character and 240 effects shared by all your characters. |
+ All the effects can be copied and moved in the differents pages available, and the pages can be renamed for better visibility |
+ Added a function to put the effects ON or OFF |
+ Added the effect activation by AOE debuffs (like rain of fire, blizzard, etc...) |
+ Added the effect activation by weapon enchants (main hand, off hand or both hands) |
+ Added the effect activation by combo points, for cats-druids and rogues |
+ Added the option "On target" to display effects when the target has a buff/debuff |
+ Added the option "Random color" to randomly change the color of an effect after each activation |
+ Added the option "WoW Textures", which can be used to browse through 25 internal textures of the game instead of the mod's textures |
+ Texture size modifications will now be more precise. |
- Removed the panel "List" which is not any more used to save effects, all your saved effects will be placed in the global effects' pages and put on "OFF". |
- Corrections of some minor bugs |
Version 2.10 : |
-------------- |
+ Added a button "+" to easily add more effects |
+ Added a button "-" to clear all unused effects and sort the other by type |
+ You can now move the effects with more precision and anywhere one the screen (or outside ;) |
+ Added a way to ignore or not the upper/lowercase of buffs/debuffs names (fixing some bugs in non-latin versions of the game) |
+ Added two new animation's options : "Begin animation" and "End animation", allowing more cool effects combinations |
+ Changed numbers of animations by names |
+ Finally, added the 10th animation |
+ Added a option to show the 2 shortest timers for both buffs and debuffs |
+ Visual upgrade of the option interface |
- Useless option "Quick Hide" as been removed |
- Advanced command line parameters removed (no more used) |
- Finally, fixed the bug which cause some effects beeing randomly activated or deactivated |
- Some minor animation bugs fixes |
Version 2.01 : |
-------------- |
+ Added a timer for debuffs and debuff types (and more functions) |
+ Added the option "animation speed" for all effects |
+ Added the option "animation duration", if you want an effect to be hidden after some time |
+ Added the option to show the effects only when buff/debuff are not active |
+ Added an option to easily change the number of textures available to the Mod |
- Fixed a bug causing incorrect display of debuff types on non-english versions of the game |
- Fixed a bug not allowing to save the maximum number of texture correctly |
Version 1.12b : |
--------------- |
- Added 5 textures and 3 animations (don't overwrite your textures if you modified or created new ones) |
- Added a movable timer for buffs (debuffs in a future version). This timer will always show the remaining time of the shortest buff. |
- You can now increase the maximum number of effects to 100 (with the command /powa maxeffect) |
- You can enter several names of buffs/debuffs on a single page of effect, if you separate them by "/" (ex: Fortitude/Mark of the wild) |
- You can activate a type of debuff which isn't a Magic, Disease... with the word "None" (the effect will show if the debuff has no particular type). Furthermore, you can enter multiple type of debuffs to the "Name of the debuff" (to track Poison and Disease for example). |
Version 1.12a : |
--------------- |
- Fixed a problem with memory usage, it should work great now |
Version 1.12: |
------------- |
- Added the possibility to save yours effects in a list common to all the characters, juste click the button "List" |
- Added advanced options, available by typing : / powa help |
if (GetLocale() == "frFR") then |
PowaAuras.Anim[0] = "[Invisible]"; |
PowaAuras.Anim[1] = "Statique"; |
PowaAuras.Anim[2] = "Clignotement"; |
PowaAuras.Anim[3] = "Agrandir"; |
PowaAuras.Anim[4] = "Pulsation"; |
PowaAuras.Anim[5] = "Effet bulle"; |
PowaAuras.Anim[6] = "Goutte d'eau"; |
PowaAuras.Anim[7] = "Electrique"; |
PowaAuras.Anim[8] = "R\195\169tr\195\169cir"; |
PowaAuras.Anim[9] = "Flamme"; |
PowaAuras.Anim[10] = "Orbite"; |
PowaAuras.BeginAnimDisplay[0] = "[Aucun]"; |
PowaAuras.BeginAnimDisplay[1] = "Zoom Avant"; |
PowaAuras.BeginAnimDisplay[2] = "Zoom Arriere"; |
PowaAuras.BeginAnimDisplay[3] = "Transparence seule"; |
PowaAuras.BeginAnimDisplay[4] = "Gauche"; |
PowaAuras.BeginAnimDisplay[5] = "Haut-Gauche"; |
PowaAuras.BeginAnimDisplay[6] = "Haut"; |
PowaAuras.BeginAnimDisplay[7] = "Haut-Droite"; |
PowaAuras.BeginAnimDisplay[8] = "Droite"; |
PowaAuras.BeginAnimDisplay[9] = "Bas-Droite"; |
PowaAuras.BeginAnimDisplay[10] = "Bas"; |
PowaAuras.BeginAnimDisplay[11] = "Bas-Gauche"; |
PowaAuras.BeginAnimDisplay[12] = "Bounce"; |
PowaAuras.EndAnimDisplay[0] = "[Aucun]"; |
PowaAuras.EndAnimDisplay[1] = "Zoom Avant"; |
PowaAuras.EndAnimDisplay[2] = "Zoom Arriere"; |
PowaAuras.EndAnimDisplay[3] = "Transparence seule"; |
-- untranslated--francais--------------------- -- |
PowaAuras.Sound[0] = "None"; -- |
PowaAuras.Sound[1] = "LEVELUP"; -- |
PowaAuras.Sound[2] = "LOOTWINDOWCOINSOUND"; |
PowaAuras.Sound[3] = "MapPing"; -- |
PowaAuras.Sound[4] = "Exploration"; |
PowaAuras.Sound[5] = "QUESTADDED"; -- |
PowaAuras.Sound[6] = "QUESTCOMPLETED"; |
PowaAuras.Sound[7] = "WriteQuest"; -- |
PowaAuras.Sound[8] = "Fishing Reel in"; |
PowaAuras.Sound[9] = "igPVPUpdate"; -- |
PowaAuras.Sound[10] = "ReadyCheck"; |
PowaAuras.Sound[11] = "RaidWarning"; -- |
PowaAuras.Sound[12] = "AuctionWindowOpen"; |
PowaAuras.Sound[13] = "AuctionWindowClose"; -- |
PowaAuras.Sound[14] = "TellMessage"; |
PowaAuras.Sound[15] = "igBackPackOpen"; -- |
PowaAuras.Text = { |
welcome = "Tapez /powa pour afficher les options.", |
aucune = "Aucune", |
aucun = "Aucun", |
largeur = "Largeur", |
hauteur = "Hauteur", |
mainHand = "droite", |
offHand = "gauche", |
bothHands = "toutes", |
DebuffType = |
{ |
Magic = "Magie", |
Disease = "Maladie", |
Curse = "Mal\195\169diction", |
Poison = "Poison", |
}, |
DebuffCatType = |
{ |
[PowaAuras.DebuffCatType.CC] = "CC", |
[PowaAuras.DebuffCatType.Silence] = "Silence", |
[PowaAuras.DebuffCatType.Snare] = "Snare", |
[PowaAuras.DebuffCatType.Stun] = "Stun", |
[PowaAuras.DebuffCatType.Root] = "Root", |
[PowaAuras.DebuffCatType.Disarm] = "Disarm", |
[PowaAuras.DebuffCatType.PvE] = "PvE", |
}, |
-- Main |
nomEnable = "Activer Power Auras", |
aideEnable = "Active tous les effets de Power Auras", |
ListePlayer = "Page", |
ListeGlobal = "Global", |
aideMove = "D\195\169place l'effet s\195\169l\195\169ctionn\195\169 ici.", |
aideCopy = "Copie l'effet s\195\169l\195\169ctionn\195\169 ici.", |
nomRename = "Renommer", |
aideRename = "Renomme la page d'effet en cours.", |
nomTest = "Tester", |
nomHide = "Tout masquer", |
nomEdit = "Editer", |
nomNew = "Nouveau", |
nomDel = "Suppr.", |
nomImport = "Import", --- untranslated |
nomExport = "Export", --- untranslated |
aideImport = "Paste the Aura String to the editbox and press \'Accept\'", --- untranslated |
aideExport = "Copy the Aura String from the editbox to share with others.", --- untranslated |
aideDel = "Supprime l'effet s\195\169l\195\169ctionn\195\169 (appuyez sur CTRL pour autoriser la suppression)", |
nomMove = "D\195\169placer", |
nomCopy = "Copier", |
nomPlayerEffects = "Effets du personnage", |
nomGlobalEffects = "Effets\nglobaux", |
aideEffectTooltip = "(Maj-click pour mettre cet effet sur ON ou OFF)", |
-- untranslated --francais------------------- |
nomDebug = "Activer Debug Messages", |
aideDebug = "Shows Debug Messages in the chat", |
nomSound = "Sound to play", |
aideSound = "Plays a sound at the beginning.", |
nomCustomSound = "OR soundfile:", |
aideCustomSound = "Enter a soundfile that is in the Sounds folder, BEFORE you started the game. mp3 and wav are supported. example: 'cookie.mp3' ;)", |
nomExact = "Exact Name", |
nomThreshold = "Threshold", |
nomGCD = "Global Cooldown", |
aideThreshInv = "Check this to invert the threshold logic. Health/Mana: default = Low Warning / checked = High Warning. Energy/Rage/Power: default = High Warning / checked = Low Warning", --- untranslated |
nomThreshInv = "</>", |
nomMine = "Cast by me", --- untranslated |
nomDispellable = "I can dispell", |
aideGCD = "Check this and the Global Cooldown triggers with aura. May cause blinking the aura, when an action only has a Global Cooldown.", |
aideStance = "Select which Stance,Aura or Form trigger the event.", |
nomCheckHealth = "Health", |
nomCheckMana = "Mana", |
nomCheckRageEnergy = "Rage/Energy/Runic", |
nomCheckStance = "Stance", |
nomCheckSpells = "Spell Alert", --- untranslated |
nomCheckOwnSpell = "Spell from my Spellbook", |
aideExact = "Check this to test the exact name of the buff/debuff.", |
aideMine = "Check this to test only buffs/debuffs cast by the player", --- untranslated |
nomTabSound = "Sound", |
nomTabTimer = "Timer", |
-- ------------------------------------------- |
nomTexture = "Texture", |
aideTexture = "La texture \195\160 afficher. Vous pouvez facilement remplacer les textures en changeant les fichier Aura#.tga du dossier de l'AddOn.", |
nomAnim1 = "Animation principale", |
nomAnim2 = "Animation secondaire", |
aideAnim1 = "Anime la texture ou pas, avec diff\195\169rents effets.", |
aideAnim2 = "Cette animation sera affich\195\169e avec moins d'opacit\195\169 que la principale. Attention, afin de ne pas surcharger le tout.", |
nomDeform = "D\195\169formation", |
aideDeform = "Etire la texture vers le haut ou en largeur.", |
aideColor = "Cliquez ici pour changer la couleur de la texture.", |
aideFont = "Click here to pick Font. Press OK to apply the selection.", --- untranslated |
aideMultiID = "Enter here other Aura IDs to combine checks. Multiple IDs must be separated with '/'. Aura ID can be found as [#] on first line of Aura tooltip.", --- untranslated |
aideTooltipCheck = "Also check the tooltip starts with this text", --- untranslated |
aideBuff = "Entrez ici le nom du buff, ou une partie du nom, qui doit activer/d\195\169sactiver l'effet. Vous pouvez entrer plusieurs noms s'ils sont s\195\169par\195\169 comme il convient (ex: Super Buff/Puissance)", |
aideBuff2 = "Entrez ici le nom du d\195\169buff, ou une partie du nom, qui doit activer/d\195\169sactiver l'effet. Vous pouvez entrer plusieurs noms s'ils sont s\195\169par\195\169 comme il convient (ex: Maladie noire/Peste)", |
aideBuff3 = "Entrez ici le type du d\195\169buff qui doit activer ou d\195\169sactiver l'effet (Poison, Maladie, Mal\195\169diction, Magie ou Aucun). Vous pouvez aussi entrer plusieurs types de d\195\169buffs \195\160 la fois.", |
aideBuff4 = "Entrez ici le nom de l'effet de zone qui activera l'effet (comme une pluie de feu par exemple, g\195\169n\195\169ralement le nom de l'effet est disponible dans le journal de combat)", |
aideBuff5 = "Enter here the temporary enchant which must activate this effect : optionally prepend it with 'main/' or 'off/ to designate mainhand or offhand slot. (ex: main/crippling)", --- untranslated |
aideBuff6 = "Vous pouvez entrez ici le ou les chiffres des points de combos qui activeront l'effet (ex : 1 ou 1/2/3 ou 0/4/5 etc...) ", |
aideBuff7 = "Indiquez ici le nom, ou une partie du nom, d'une des actions dans vos barres. L'effet sera actif si l'action est utilisable.", |
aideSpells = "Enter here the Spell Name that will trigger a spell alert Aura.", --- untranslated |
aideStacks = "Enter here the operator and the amount of stacks, which must activate/deactivate the effect. It works only with an operator! ex: '<5' '>3' '=11' '!5' '>=0' '<=6' '2-8'", -- untranslated |
aideUnitn = "Entrez ici le nom du unit, qui doit activer/d\195\169sactiver l'effet. Works only for raid/partymembers.", |
aideUnitn2 = "Only for raid/group.", |
aideMaxTex = "Defini le maximum de textures disponibles dans l'Editeur d'Effets. Si vous rajoutez des textures en les mettant dans le dossier de l'AddOn (nomm\195\169es de AURA1.tga \195\160 AURA50.tga) c'est ici qu'il faudra le signaler.", |
aideAddEffect = "Ajoute une page d'effet.", |
aideWowTextures = "Cochez cette case pour utiliser les textures internes du jeu plut\195\180t que le dossier de l'addon pour cet effet.", |
aideRealaura = "Reale Aura", |
aideTextAura = "Check this to type text instead of texture.", -- untranslated |
aideCustomTextures = "Cochez cette case pour utiliser les textures pr\195\169sentes dans le sous-dossier 'Custom'. Vous devez connaitre le nom du fichier et indiquer son nom (ex : myTexture.tga)", --- untraslated (needs update to match enGB string) |
aideRandomColor = "Cochez cette case pour que l'effet prenne des couleurs au hasard \195\160 chaque activation.", |
aideTexMode = "Decochez cette case pour utiliser la transparence de la texture. Par defaut, les couleurs sombres seront plus transparentes.", |
nomActivationBy = "Activation par :", |
nomOwnTex = "Use own Texture", -- untranslated |
aideOwnTex = "Use the De/Buff or Ability Texture instead.", -- untranslated |
nomStacks = "Stacks", -- untranslated |
nomSpeed = "Vitesse d'Anim.", |
nomBegin = "Animation de d\195\169part", |
nomEnd = "Animation de fin", |
nomSymetrie = "Sym\195\169trie", |
nomAlpha = "Transparence", |
nomPos = "Position", |
nomTaille = "Taille", |
nomCheckBuff = "Buff", |
nomCheckDebuff = "Debuff", |
nomCheckDebuffType = "Type du Debuff", |
nomCheckAoeDebuff = "Debuff de zone", |
nomCheckEnchant = "Enchant. d'arme", |
nomCheckCombo = "Combos", |
nomCheckSkill = "Action utilisable", |
nomCheckAggro = "Aggro", -- untranslated |
nomCheckPvP = "PvP", -- untranslated |
nomCheckTarget = "Cible ennemie", |
nomCheckFriend = "Cible amie", |
nomCheckParty = "Cible partie", |
nomCheckFocus = "Cible focus", |
nomCheckRaid = "Cible raid", |
nomCheckGroupOrSelf = "Raid/Party or self", |
nomCheckGroupAny = "Any", --- untranslated |
nomCheckOptunitn = "Cible unit", |
aideTarget = "Cochez cette case pour v\195\169rifier plut\195\180t les buffs/d\195\169buffs d'une cible ennemie.", |
aideTargetFriend = "Cochez cette case pour v\195\169rifier plut\195\180t les buffs/d\195\169buffs d'une cible amie.", |
aideParty = "Cochez cette case pour v\195\169rifier plut\195\180t les buffs/d\195\169buffs d'une cible partie.", |
aideGroupOrSelf = "Check this to test a party or raid member or self.", |
aideFocus = "Cochez cette case pour v\195\169rifier plut\195\180t les buffs/d\195\169buffs d'une cible focus.", |
aideRaid = "Cochez cette case pour v\195\169rifier plut\195\180t les buffs/d\195\169buffs d'une cible raid.", |
aideGroupAny = "Cochez cette case pour v\195\169rifier plut\195\180t les buffs/d\195\169buffs d'une cible unit de raid ou partie.", |
aideExact = "Check this to test the exact name of the buff/debuff.", |
aideMine = "Check this to test only buffs/debuffs cast by the player", --- untranslated |
nomCheckShowTimer = "Afficher", |
nomTimerDuration = "Chronometre", |
aideTimerDuration = "Affiche un timer pour simuler la dur\195\169e d'un buff/debuff sur la cible (0 pour d\195\169sactiver)", |
aideShowTimer = "Cochez cette case pour afficher la dur\195\169e de cet effet.", |
aideSelectTimer = "Choisissez quel timer sera pris pour afficher la dur\195\169e", |
aideSelectTimerBuff = "Choisissez quel timer sera pris pour afficher la dur\195\169e (celui-ci est reserv\195\169 aux buffs du joueur)", |
aideSelectTimerDebuff = "Choisissez quel timer sera pris pour afficher la dur\195\169e (celui-ci est reserv\195\169 aux debuffs du joueur)", |
nomCheckInverse = "Afficher si inactif", |
aideInverse = "Cochez cette case pour afficher cet effet uniquement quand le buff/d\195\169buff n'est pas actif.", |
nomCheckIgnoreMaj = "Ignorer les majuscules", |
aideIgnoreMaj = "Cochez cette case pour ignorer les majuscules/minuscules du nom des buffs/d\195\169buffs.", |
nomDuration = "Dur\195\169e de l'Anim.", |
aideDuration = "Pass\195\169 ce d\195\169lai, l'animation sera masqu\195\169e (0 pour d\195\169sactiver)", |
nomCentiemes = "Afficher centiemes", |
nomDual = "Afficher 2 dur\195\169es", |
nomHideLeadingZeros = "Hide Leading Zeros", |
nomTransparent = "Use transparent textures", |
nomClose = "Fermer", |
nomEffectEditor = "Editeur d'Effet", |
nomAdvOptions = "Options", |
nomMaxTex = "Maximum de textures disponibles", |
nomTabAnim = "Animation", |
nomTabActiv = "Activation", |
nomWowTextures = "Textures WoW", |
nomCustomTextures = "Autres Textures", |
nomRealaura = "Reale Aura", |
nomTextAura = "Text Aura", --- untranslated |
nomRandomColor = "Couleurs al\195\169atoires", |
nomTexMode = "Glow", |
nomInCombat = "Actif si en combat", |
aideInCombat = "Affiche cet effet uniquement si le personnage est en combat.", |
nomTalentGroup1 = "Spec 1", |
aideTalentGroup1 = "Show this effect only when you are in your primary talent spec.", |
nomTalentGroup2 = "Spec 2", |
aideTalentGroup2 = "Show this effect only when you are in your secondary talent spec.", |
nomNotInCombat = "Actif si hors combat", |
aideNotInCombat = "Affiche cet effet uniquement si le personnage ne se trouve pas en combat.", |
nomIsMounted = "Only if Mounted", -- untranslated |
aideIsMounted = "Checked: Only when on mount. Uncheked: Only when dismounted.", -- untranslated |
nomInVehicle = "Only if in Vehicle", -- untranslated |
aideInVehicle = "Checked: Only when in vehicle. Uncheked: Only when not in vehicle.", -- untranslated |
nomIsInRaid = "Only if in Raid", -- untranslated |
aideIsInRaid = "Show this effect only when you are in a raid.", -- untranslated |
nomResting = "Only if Resting", |
aideResting = "Checked: Only when Resting. Uncheked: Only when not Resting.", |
}; |
end |
00 01 02 03 04 05 06 07 08 09 |
10 11 12 13 14 15 16 17 18 19 |
20 21 22 23 24 25 26 27 28 29 |
30 31 32 33 34 35 36 37 38 39 |
40 41 42 43 44 45 46 47 48 49 |
50 51 52 53 54 55 56 57 58 59 |
60 61 62 63 64 65 66 67 68 69 |
70 71 72 73 74 75 76 77 78 79 |
80 81 82 83 84 85 86 87 88 89 |
90 91 92 93 94 95 96 97 98 99 |
-- * [DONE] Aggro gain/loss aura. |
-- * [DONE] Option to use item/spell icons available on your actionbars instead of the pre-defined ones |
-- * [DONE] PvP flagged |
-- * [DONE] Make the custom texture field accept spell name (for spellbook spells) or spellid as input. |
-- * [DONE] Option to use text as aura |
-- * [DONE] Option to combine checks (AND logic) |
-- * [DONE] new trigger: Minimal spell alert functionality (enemytarget/focus spellcasts) |
-- * [DONE] option to test buff/debuffs casted by the player only. |
-- * [DONE] Link timer to aura to overcome the 5timers limit. |
-- * [DONE] Export/Import Auras. |
-- * [DONE] Death Knight presence. |
-- * [DONE] Better formatting of export strings (add whitespace so they wrap). |
-- * [DONE] Smaller increments in health/mana/energy sliders. |
-- * [DONE] "Casted" -> "Cast" typo. |
-- * [DONE] Timer texture glow option. |
-- * [DONE]Vehicle support and option to disable if in vehicle. |
-- * [partially done] a redesign of Custom/Default auras to make adding / managing auras easier. |
-- * Timer offset option. |
-- * Enable Timer for Debuffs on enemies (if possible) |
-- * Hide when resting option. |
-- * Support for spellid in buff/debuff fields. |
-- * Death Knight Runes. |
-- * new trigger: Target Properties (name, race, class, creature family or type, classification) |
-- * new trigger: Buff type for hostiles |
-- * Option to show stacks instead of timer or secondary timer. |
-- * a couple more transformation effects. (wiggle, ripple, explosion, flip, spin) |
-- * Add more debuff types. (fear, bleed, stun, snare, sap etc). EDIT: Not possible without hardcoded debuff lists :( |
-- * loop sound option: main problem how to determine loop duration? |
-- * optimize code and table usage |
-- * rename "Global 10" to "Share" and change the "Rename" button to "Send" for sending the page effects to other users. |
- =============== ¸üÐÂÈÕÖ¾: ===============- |
* v.2.37 |
-- Ôö¼ÓÁËÒ»¸ö¼¤»îÌõ¼þ,µ±ÍŶӳÉÔ±»ñµÃij¸ödebuffʱ´¥·¢ |
-- Ôö¼ÓÁËÒ»¸ö¼¤»îÌõ¼þ,µ±ÍŶӳÉԱȫ²¿»ñµÃij¸öbuffʱ´¥·¢ |
-- Ôö¼ÓÁ˽¹µã×·×Ù |
-- Ôö¼ÓÁËÍŶÓ×·×Ù |
-- Ôö¼ÓÁËС¶Ó×·×Ù(Äã¿ÉÒÔÊäÈëÒ»¸öС¶ÓÃûÀ´¼ì²âËûÃǵÄbuff/debuff,Ö»Äܼì²â×Ô¼ºÍŶÓÖеÄС¶Ó) |
-- Ôö¼ÓÁ˵ÂÓïÖ§³Ö |
But i had no time to test this in raid. pls report if it works or not. |
v.2.36b |
-- ÐÞÕýÁËbuff/debuff±»Ë¢ÐÂʱ,ÌØЧʱ¼ä²»¸Ä±äµÄ´íÎó |
v.2.36a |
-- È¡ÏûÁËÁÄÌì´°¿ÚÖеÄdebugÅÅ´íÐÅÏ¢ |
-- Ôö¼ÓÁËÈý¸ö±±Å·×ÖÌåµÄ×Ô¶¨Òå²ÄÖÊ,¼ûcustomÎļþ¼Ð |
-- ÍŶÓbuffÏÖÔÚÖ»ÔÚÍŶÓģʽÏÂÓÐЧ |
v.2.35 |
-- Ôö¼ÓÁËÒ»¸ö¼ì²éÍŶӳÉÔ±buff/debuffµÄÑ¡Ïî |
Version 2.34 : |
-------------- |
+ Ôö¼ÓÁËÒ»¸ö¼¤»îÌõ¼þ£ºÖ¸¶¨¶¯×÷ÊÇ·ñÀäÈ´£¨»òÖ¸¶¨¶¯×÷ÊÇ·ñÔÚ¶¯×÷ÌõÉÏ£© |
- ×îÖÕ£¬ÐÞÕýÁËijЩÎäÆ÷¸½Ä§²»ÄÜÕýÈ·ÏÔʾµÄbug¡£ |
Version 2.32 : |
-------------- |
+ Ϊ2.03°æ±¾×öÁ˼æÈÝÐÔµ÷Õû |
+ PowerAuras°²×°°üÀïÏÖÔÚ°üÀ¨50ÖÖ²ÄÖÊ(Äã²»ÐèÒªÔÚ¶îÍâÏÂÔØÁíÍâÁ½¸ö²ÄÖÊ°üÁË) |
+ Ôö¼ÓÁË3¸ö¼ÆʱÆ÷ |
+ Ôö¼ÓÁËÒ»¸ö¼ÆʱÆ÷ÒÔÏÔʾĿ±êÉíÉÏbuff/debuffµÄ³ÖÐøʱ¼ä |
+ ÏÖÔÚ×Ô¶¨Òå²ÄÖʱäµÃÈÝÒ×ÁË,ÄãÖ»Ðè°Ñ×öºÃµÄ²ÄÖÊ·ÅÔÚCustomÎļþ¼ÐÏ |
+ Ôö¼ÓÁËÒ»¸öÔÚÓѺÃ/µÐ¶ÔÄ¿±êÉϽøÐвâÊԵŦÄÜ |
+ Ôö¼ÓÁËÒ»¸ö·½·¨Ê¹Íæ¼Ò¸ü·½±ãµÄÒƶ¯ÌØЧºÍ¼ÆʱÆ÷ÔÚÆÁÄ»ÉϵÄλÖà |
+ ÏÖÔÚ¿ÉÒÔÈòÄÖÊÏÔʾΪÕý³£Í¸Ã÷ģʽÁË |
- AOE·¨ÊõÌØЧÔÚÄãËÀÍö»òÇл»ÇøÓòʱÄÜÕýÈ·ÏûʧÁË |
- ÐÞÕýÁËһЩÆäËü½ÏСµÄbug |
Version 2.17 : |
-------------- |
+ Ϊ2.0.0°æ±¾×öÁ˼æÈÝÐÔµ÷Õû |
[11/07]Version 2.16 : |
-------------- |
- ÐÞÕýÁ˵¼ÖÂÄÚ´æÕ¼Óùý¸ßµÄÎÊÌâ; |
- ÐÞÕýÁËijЩÇé¿ö»áµ¯³ö´íÎóÌáʾµÄÎÊÌâ |
+ ΪÿÖÖÌØЧÔö¼ÓÁËÁ½¸öÑ¡Ïî:"½öÓÃÓÚÕ½¶·×´Ì¬"ºÍ"½öÓÃÓÚ·ÇÕ½¶·×´Ì¬" |
[11/03]Version 2.15 : |
-------------- |
+ Ôö¼ÓÁËÒ»¸öнçÃæ·½±ã¹ÜÀíËùÓÐÌØЧ.ÏÖÔÚÿ¸ö½ÇÉ«¿ÉÒÔ´´½¨/±à¼¹²120¸öÌØЧ,»¹¿ÉÒÔ±£´æ240¸öËùÓнÇÉ«¿ÉÓõĹ²ÓÃÌØЧ. |
+ ËùÓеÄÌØЧ¶¼¿ÉÒÔÔÚ¿ÉÓõķÖÀàÖи´ÖÆ»òÕßÒƶ¯,ÕâЩ·ÖÀàÄã¿ÉÒÔÖØÃüÃû,ÒÔ±ã¸üºÃµÄ¹ÜÀíºÍʹÓÃÕâЩÌØЧ. |
+ Ôö¼ÓÁËÒ»¸ö¿ÉÒÔµ¥¶ÀÆôÓÃ/½ûÓÃij¸öÌØЧµÄ¹¦ÄÜ |
+ Ôö¼ÓÁËÒ»¸öͨ¹ýÊܵ½AOEÀà·¨ÊõÓ°Ïì¶ø¼¤»îÌØЧµÄ¼¤»î·½Ê½(±ÈÈç »ðÑæÖ®Óê, ±©·çÑ©, µÈµÈ...) |
+ Ôö¼ÓÁËÒ»¸öͨ¹ýÎäÆ÷¸½Ä§¼¤¶ø¼¤»îÌØЧµÄ¼¤»î·½Ê½ (Ö÷ÊÖ, ¸±ÊÖ »òË«ÎäÆ÷) |
+ Ôö¼ÓÁËÒ»¸öͨ¹ý»ñµÃÁ¬»÷µãÊý¶ø¼¤»îÌØЧµÄ¼¤»î·½Ê½,µÁÔôºÍèÐÎ̬µÄµÂ³ÒÁ¿ÉÓÃ. |
+ Ôö¼ÓÁËÒ»¸öÑ¡Ïî"ÔÚÄ¿±êÉíÉÏ",×÷ÓÃÊǵ±Ä¿±êÉíÉÏÓÐijÖÖBUFF»òÕßDEBUFFʱ,Äã¿ÉÒÔ¿´¼û¶¨ÒåºÃµÄÌØЧ. |
+ Ôö¼ÓÁËÒ»¸öÑ¡Ïî"Ëæ»úÑÕÉ«",×÷ÓÃÊǵ±ÌØЧÿ´Î¼¤»îʱ¶¼Ñ¡ÔñÒ»ÖÖËæ»úµÄÑÕÉ« |
+ Ôö¼ÓÁËÒ»¸öÑ¡Ïî"WOWÄÚÖòÄÖÊ",×÷ÓÃÊÇ¿ÉÓÃä¯ÀÀºÍʹÓÃÓÎÏ·ÄÚÖõÄ25ÖÖ²ÄÖʶø²»Ê¹Óòå¼þ×Ô´øµÄ²ÄÖÊ. |
+ ²ÄÖʳߴçÐ޸ŦÄܽ«»á¸ü¾«È·. |
- È¥³ýÁË[Áбí]Ãæ°å,ÒԺ󽫲»ÔÙʹÓÃ[Áбí]¹¦ÄÜÀ´±£´æÌØЧ,ËùÓÐÌØЧ½«±»±£´æÔÚ[¹«ÓÃÌØЧ·ÖÀà]ÖÐ,²¢±»ÉèÖÃΪ"½ûÓÃ" |
- ÐÞÕýÁËһЩСbug |
<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"> |
<Frame name="PowaAuras_Frame" |
hidden="false"> |
<Scripts> |
<OnLoad> |
PowaAuras:OnLoad(self) |
</OnLoad> |
<OnEvent> |
if (PowaAuras.ModTest == false) then |
PowaAuras:Debug(event); |
end |
PowaAuras[event](PowaAuras, ...); |
</OnEvent> |
<OnUpdate> |
PowaAuras:OnUpdate(elapsed) |
</OnUpdate> |
</Scripts> |
</Frame> |
<GameTooltip name="PowaAuras_Tooltip" |
frameStrata="TOOLTIP" |
hidden="false" |
parent="UIParent" |
inherits="GameTooltipTemplate"> |
<Anchors> |
<Anchor point="BOTTOM" |
relativePoint="TOP"> |
<Offset> |
<AbsDimension x="0" |
y="100" /> |
</Offset> |
</Anchor> |
</Anchors> |
</GameTooltip> |
<GameTooltip name="PowaAction_Tooltip" |
frameStrata="TOOLTIP" |
hidden="false" |
parent="UIParent" |
inherits="GameTooltipTemplate"> |
<Anchors> |
<Anchor point="BOTTOM" |
relativePoint="TOP"> |
<Offset> |
<AbsDimension x="0" |
y="100" /> |
</Offset> |
</Anchor> |
</Anchors> |
</GameTooltip> |
<!-- Copied from OptionSliderTemplate 2.4.3 because Blizzard is ...... |
Check to see if they use consistent fontsizes in build > 8982 and remove this template. |
Revert PowaBarSliderTemplate to inherit from OptionsSliderTemplate if it's fixed as well. --> |
<Slider name="OptionsSmallSliderTemplate" orientation="HORIZONTAL" virtual="true" enableMouse="true"> |
<Size> |
<AbsDimension x="144" y="17"/> |
</Size> |
<HitRectInsets> |
<AbsInset left="0" right="0" top="-10" bottom="-10"/> |
</HitRectInsets> |
<Backdrop bgFile="Interface\Buttons\UI-SliderBar-Background" edgeFile="Interface\Buttons\UI-SliderBar-Border" tile="true"> |
<EdgeSize> |
<AbsValue val="8"/> |
</EdgeSize> |
<TileSize> |
<AbsValue val="8"/> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="3" right="3" top="6" bottom="6"/> |
</BackgroundInsets> |
</Backdrop> |
<Layers> |
<Layer level="ARTWORK"> |
<FontString name="$parentText" inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="BOTTOM" relativePoint="TOP"/> |
</Anchors> |
</FontString> |
<FontString name="$parentLow" inherits="GameFontHighlightSmall" text="LOW"> |
<Anchors> |
<Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="-4" y="3"/> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
<FontString name="$parentHigh" inherits="GameFontHighlightSmall" text="HIGH"> |
<Anchors> |
<Anchor point="TOPRIGHT" relativePoint="BOTTOMRIGHT"> |
<Offset> |
<AbsDimension x="4" y="3"/> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnEnter> |
if ( self:IsEnabled() ) then |
if ( self.tooltipText ) then |
GameTooltip:SetOwner(self, self.tooltipOwnerPoint or "ANCHOR_RIGHT"); |
GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1); |
end |
if ( self.tooltipRequirement ) then |
GameTooltip:AddLine(self.tooltipRequirement, 1.0, 1.0, 1.0, 1.0); |
GameTooltip:Show(); |
end |
end |
</OnEnter> |
<OnLeave> |
GameTooltip:Hide(); |
</OnLeave> |
</Scripts> |
<ThumbTexture name="$parentThumb" file="Interface\Buttons\UI-SliderBar-Button-Horizontal"> |
<Size> |
<AbsDimension x="32" y="32"/> |
</Size> |
</ThumbTexture> |
</Slider> |
<Slider name="PowaBarSliderTemplate" |
inherits="OptionsSmallSliderTemplate" |
virtual="true"> |
<Scripts> |
<OnEnter> |
if (self.aide) then |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetText(self.aide, nil, nil, nil, nil, 1); |
end |
</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
</Slider> |
<CheckButton name="PowaCheckTemplate" |
inherits="OptionsSmallCheckButtonTemplate" |
virtual="true"> |
<HitRectInsets> |
<AbsInset left="0" |
right="0" |
top="0" |
bottom="0" /> |
</HitRectInsets> |
</CheckButton> |
<CheckButton name="PowaRadioTemplate" |
inherits="UIRadioButtonTemplate" |
virtual="true"> |
<HitRectInsets> |
<AbsInset left="0" |
right="0" |
top="0" |
bottom="0" /> |
</HitRectInsets> |
<Scripts> |
<OnEnter> |
if (self.tooltipText) then |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetText(self.tooltipText, nil, nil, nil, nil, 1); |
end |
</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
</CheckButton> |
<Button name="PowaFontButtonTemplate" virtual="true"> |
<Size> |
<AbsDimension x="200" y="16"/> |
</Size> |
<Layers> |
<Layer level="BORDER"> |
<FontString name="$parentText" inherits="GameFontNormalSmall" justifyH="CENTER"> |
<Size> |
<AbsDimension x="196" y="14"/> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT"> |
<Offset> |
<AbsDimension x="10" y="-3"/> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnClick> |
PowaAuras:FontButton_OnClick(self); |
</OnClick> |
</Scripts> |
<HighlightTexture file="Interface\QuestFrame\UI-QuestTitleHighlight" alphaMode="ADD"> |
<Size> |
<AbsDimension x="200" y="16"/> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="5" y="-2"/> |
</Offset> |
</Anchor> |
</Anchors> |
</HighlightTexture> |
</Button> |
<Frame name="PowaDebugMessages" |
parent="UIParent" |
frameStrata="HIGH" |
hidden="true"> |
<Size> |
<AbsDimension x="300" |
y="300" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="UIParent" |
relativePoint="LEFT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer> |
<FontString name="PowaDebugMessagesText" |
inherits="GameFontNormalSmall" |
justifyH="LEFT" |
text="Texte"> |
<Size> |
<AbsDimension x="300" |
y="300" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<FontHeight> |
<AbsValue val="14" /> |
</FontHeight> |
</FontString> |
</Layer> |
</Layers> |
</Frame> |
<Frame name="PowaBarConfigFrame" |
movable="true" |
parent="UIParent" |
frameStrata="DIALOG" |
hidden="true" |
enableMouse="true" |
enableKeyboard="true"> |
<Size> |
<AbsDimension x="348" |
y="704" /> |
</Size> |
<Anchors> |
<Anchor point="CENTER" |
relativeTo="UIParent"> |
<Offset> |
<AbsDimension x="0" |
y="50" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" |
edgeFile="Interface\DialogFrame\UI-DialogBox-Border" |
tile="true"> |
<BackgroundInsets> |
<AbsInset left="11" |
right="12" |
top="12" |
bottom="11" /> |
</BackgroundInsets> |
<TileSize> |
<AbsValue val="200" /> |
</TileSize> |
<EdgeSize> |
<AbsValue val="32" /> |
</EdgeSize> |
</Backdrop> |
<Scripts> |
<OnLoad>self:SetBackdropBorderColor(0.9, 1.0, 0.95); self:SetBackdropColor(0.6, 0.6, 0.6);</OnLoad> |
<OnMouseDown>PowaAuras:Bar_MouseDown(self, button, "PowaBarConfigFrame" );</OnMouseDown> |
<OnMouseUp>PowaAuras:Bar_MouseUp(self, button, "PowaBarConfigFrame" );</OnMouseUp> |
</Scripts> |
<Layers> |
<Layer> |
<Texture file="Interface\DialogFrame\UI-DialogBox-Header"> |
<Size> |
<AbsDimension x="180" |
y="32" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" |
y="8" /> |
</Offset> |
</Anchor> |
</Anchors> |
<TexCoords left="0.2" |
right="0.8" |
top="0" |
bottom="0.6" /> |
</Texture> |
<FontString name="PowaHeader" |
inherits="GameFontNormalSmall" |
text="POWER AURAS"> |
<Size> |
<AbsDimension x="140" |
y="0" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" |
y="-4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<FontHeight> |
<AbsValue val="14" /> |
</FontHeight> |
</FontString> |
</Layer> |
</Layers> |
<Frames> |
<Button name="PowaCloseButton"> |
<Size> |
<AbsDimension x="30" |
y="30" /> |
</Size> |
<Anchors> |
<Anchor point="TOPRIGHT" |
relativeTo="PowaBarConfigFrame" |
relativePoint="TOPRIGHT"> |
<Offset> |
<AbsDimension x="-4" |
y="-4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick>PowaAuras:EditorClose();</OnClick> |
</Scripts> |
<NormalTexture file="Interface\Buttons\UI-Panel-MinimizeButton-Up" /> |
<PushedTexture file="Interface\Buttons\UI-Panel-MinimizeButton-Down" /> |
<HighlightTexture file="Interface\Buttons\UI-Panel-MinimizeButton-Highlight" |
alphaMode="ADD" /> |
</Button> |
<Frame name="PowaBarConfigFrameEditor"> |
<Size> |
<AbsDimension x="310" |
y="300" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" |
y="-25" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" |
edgeFile="Interface\Tooltips\UI-Tooltip-Border" |
tile="true"> |
<EdgeSize> |
<AbsValue val="12" /> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" |
right="2" |
top="2" |
bottom="2" /> |
</BackgroundInsets> |
</Backdrop> |
<Scripts> |
<OnLoad>self:SetBackdropBorderColor(0.0, 0.0, 0.0); self:SetBackdropColor(0.1, 0.1, 0.1);</OnLoad> |
</Scripts> |
<Layers> |
<Layer>-- texture |
<Texture name="AuraTexture" |
file="Interface\AddOns\PowerAuras\Auras\Aura1.tga" |
alphaMode="ADD"> |
<Size> |
<AbsDimension x="107" |
y="107" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT"> |
<Offset> |
<AbsDimension x="22" |
y="-5" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Texture></Layer> |
</Layers> |
<Frames> |
<Slider name="PowaBarAuraTextureSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="230" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="AuraTexture" |
relativePoint="TOPRIGHT"> |
<Offset> |
<AbsDimension x="-80" |
y="-104" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.aide = PowaAuras.Text.aideTexture; self:SetValueStep(1); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraTextureSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<EditBox name="PowaBarAurasText" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="225" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarAuraTextureSlider" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="5" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="100" /> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad>self:SetMaxLetters(100)</OnLoad> |
<OnEnterPressed>PowaAuras:AurasTextChanged(); self:ClearFocus()</OnEnterPressed> |
<OnEditFocusLost>PowaAuras:AurasTextChanged()</OnEditFocusLost> |
<OnEscapePressed>PowaAuras:AurasTextCancel(); self:ClearFocus()</OnEscapePressed> |
</Scripts> |
</EditBox> |
<Button name="PowaFontsButton" inherits="OptionsButtonTemplate" text="[T]"> |
<Size> |
<AbsDimension x="22" |
y="22" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarAurasText" |
relativePoint="TOPRIGHT"> |
<Offset> |
<AbsDimension x="5" |
y="3" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick>PowaAuras:OpenFontSelector(self);</OnClick> |
<OnEnter> |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetText(PowaAuras.Text.aideFont, nil, nil, nil, nil, 1); |
</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
</Button> |
<EditBox name="PowaBarCustomTexName" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="145" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarAuraTextureSlider" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="5" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="100" /> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad>self:SetMaxLetters(100)</OnLoad> |
<OnEnterPressed>PowaAuras:CustomTextChanged() self:ClearFocus()</OnEnterPressed> |
</Scripts> |
</EditBox> |
<CheckButton name="PowaTextAuraButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarAuraTextureSlider" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="100" |
y="8" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideTextAura; |
getglobal("PowaTextAuraButtonText"):SetText(PowaAuras.Text.nomTextAura); |
</OnLoad> |
<OnClick>PowaAuras:TextAuraChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaCustomTextureButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaTextAuraButton" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="-2" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideCustomTextures; |
getglobal("PowaCustomTextureButtonText"):SetText(PowaAuras.Text.nomCustomTextures); |
</OnLoad> |
<OnClick>PowaAuras:CustomTexturesChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaWowTextureButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaCustomTextureButton" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="-2" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideWowTextures; |
getglobal("PowaWowTextureButtonText"):SetText(PowaAuras.Text.nomWowTextures); |
</OnLoad> |
<OnClick>PowaAuras:WowTexturesChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaRandomColorButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="AuraTexture" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="-15" |
y="-42" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideRandomColor; |
getglobal("PowaRandomColorButtonText"):SetText(PowaAuras.Text.nomRandomColor); |
</OnLoad> |
<OnClick>PowaAuras:RandomColorChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaTexModeButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaWowTextureButton" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="-2" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideTexMode; |
getglobal("PowaTexModeButtonText"):SetText(PowaAuras.Text.nomTexMode); |
</OnLoad> |
<OnClick>PowaAuras:TexModeChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<Slider name="PowaBarAuraSymSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="AuraTexture" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-55" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(0,3); self:SetValue(0); self:SetValueStep(1); |
getglobal("PowaBarAuraSymSliderText"):SetText(PowaAuras.Text.nomSymetrie.." : "..PowaAuras.Text.aucune); |
getglobal("PowaBarAuraSymSliderLow"):SetText(PowaAuras.Text.aucune); |
getglobal("PowaBarAuraSymSliderHigh"):SetText("XY"); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraSymSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<Slider name="PowaBarAuraAlphaSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBarAuraTextureSlider" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="50" |
y="-17" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(0.1,1.0); self:SetValue(1.0); self:SetValueStep(0.05); |
getglobal("PowaBarAuraAlphaSliderText"):SetText(PowaAuras.Text.nomAlpha.." : 1.0"); |
getglobal("PowaBarAuraAlphaSliderLow"):SetText("10"); |
getglobal("PowaBarAuraAlphaSliderHigh"):SetText("100"); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraAlphaSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<Slider name="PowaBarAuraDeformSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBarAuraAlphaSlider" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-17" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.aide = PowaAuras.Text.aideDeform; self:SetMinMaxValues(0.5,1.5); self:SetValue(1); self:SetValueStep(0.05); |
getglobal("PowaBarAuraDeformSliderText"):SetText(PowaAuras.Text.nomDeform.." : 1"); |
getglobal("PowaBarAuraDeformSliderLow"):SetText(PowaAuras.Text.hauteur); |
getglobal("PowaBarAuraDeformSliderHigh"):SetText(PowaAuras.Text.largeur); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraDeformSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<Slider name="PowaBarAuraSizeSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="268" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarAuraSymSlider" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="-18" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(0.1,2.0); self:SetValue(1.0); self:SetValueStep(0.02); |
getglobal("PowaBarAuraSizeSliderText"):SetText(PowaAuras.Text.nomTaille.." : 100"); |
getglobal("PowaBarAuraSizeSliderLow"):SetText("10%"); |
getglobal("PowaBarAuraSizeSliderHigh"):SetText("200%"); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraSizeSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<Slider name="PowaBarAuraCoordXSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="220" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarAuraSizeSlider" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="-18" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(-300,300); self:SetValue(0); self:SetValueStep(1); |
getglobal("PowaBarAuraCoordXSliderText"):SetText(PowaAuras.Text.nomPos.." X : 0"); |
getglobal("PowaBarAuraCoordXSliderLow"):SetText("-300"); |
getglobal("PowaBarAuraCoordXSliderHigh"):SetText("300"); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraCoordXSliderChanged();</OnValueChanged> |
<OnMouseUp> |
self:SetMinMaxValues(self:GetValue()-200,self:GetValue()+200); |
getglobal("PowaBarAuraCoordXSliderLow"):SetText(self:GetValue()-200); |
getglobal("PowaBarAuraCoordXSliderHigh"):SetText(self:GetValue()+200); |
</OnMouseUp> |
</Scripts> |
</Slider> |
<EditBox name="PowaBarAuraCoordXEdit" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="40" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaBarAuraCoordXSlider" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="10" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="6" /> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad>self:SetMaxLetters(6)</OnLoad> |
<OnEnterPressed>self:ClearFocus() PowaAuras:TextCoordXChanged();</OnEnterPressed> |
</Scripts> |
</EditBox> |
<Slider name="PowaBarAuraCoordSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="220" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBarAuraCoordXSlider" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-16" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(-300,300); self:SetValue(-30); self:SetValueStep(1); |
getglobal("PowaBarAuraCoordSliderText"):SetText(PowaAuras.Text.nomPos.." Y : -30"); |
getglobal("PowaBarAuraCoordSliderLow"):SetText("-300"); |
getglobal("PowaBarAuraCoordSliderHigh"):SetText("300"); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraCoordSliderChanged();</OnValueChanged> |
<OnMouseUp> |
self:SetMinMaxValues(self:GetValue()-200,self:GetValue()+200); |
getglobal("PowaBarAuraCoordSliderLow"):SetText(self:GetValue()-200); |
getglobal("PowaBarAuraCoordSliderHigh"):SetText(self:GetValue()+200); |
</OnMouseUp> |
</Scripts> |
</Slider> |
<EditBox name="PowaBarAuraCoordYEdit" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="40" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaBarAuraCoordSlider" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="10" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="6" /> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad>self:SetMaxLetters(6)</OnLoad> |
<OnEnterPressed>self:ClearFocus() PowaAuras:TextCoordYChanged();</OnEnterPressed> |
</Scripts> |
</EditBox> |
<Button name="PowaColor"> |
<Size> |
<AbsDimension x="16" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="AuraTexture" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="-11" |
y="-15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<Texture name="$parent_SwatchBg"> |
<Size> |
<AbsDimension x="14" |
y="14" /> |
</Size> |
<Anchors> |
<Anchor point="CENTER"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Color r="1.0" |
g="1.0" |
b="1.0" /> |
</Texture> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad>getglobal(self:GetName().."_SwatchBg").r = 1.0; getglobal(self:GetName().."_SwatchBg").g = 1.0; getglobal(self:GetName().."_SwatchBg").b = 1.0;</OnLoad> |
<OnClick>PowaAuras:OpenColorPicker();</OnClick> |
<OnEnter> |
getglobal(self:GetName().."_SwatchBg"):SetVertexColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b); |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetText(PowaAuras.Text.aideColor, nil, nil, nil, nil, 1); |
</OnEnter> |
<OnLeave>getglobal(self:GetName().."_SwatchBg"):SetVertexColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b); GameTooltip:Hide();</OnLeave> |
</Scripts> |
<NormalTexture name="$parentNormalTexture" |
file="Interface\ChatFrame\ChatFrameColorSwatch" /> |
</Button> |
<Frame name="PowaBarConfigFrameEditor2"> |
<Size> |
<AbsDimension x="310" |
y="340" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBarConfigFrameEditor" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-25" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" |
edgeFile="Interface\Tooltips\UI-Tooltip-Border" |
tile="true"> |
<EdgeSize> |
<AbsValue val="12" /> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" |
right="2" |
top="2" |
bottom="2" /> |
</BackgroundInsets> |
</Backdrop> |
<Scripts> |
<OnLoad>self:SetBackdropBorderColor(0.0, 0.0, 0.0); self:SetBackdropColor(0.1, 0.1, 0.1);</OnLoad> |
</Scripts> |
<Layers> |
<Layer> |
<Texture name="PowaIconTexture" |
file="Interface\InventoryItems\WowUnknownItem01"> |
<Size> |
<AbsDimension x="40" |
y="40" /> |
</Size> |
<Anchors> |
<Anchor point="TOPRIGHT" |
relativeTo="PowaBarConfigFrameEditor2" |
relativePoint="TOPRIGHT"> |
<Offset> |
<AbsDimension x="-5" |
y="-5" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Texture> |
</Layer> |
</Layers> |
<Frames> |
<EditBox name="PowaBarBuffName" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="272" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarConfigFrameEditor2" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="13" |
y="-55" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self:SetMaxLetters(200) self.aide = PowaAuras.Text.aideBuff;</OnLoad> |
<OnEnterPressed>self:ClearFocus()</OnEnterPressed> |
<OnTextChanged>PowaAuras:TextChanged()</OnTextChanged> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(self.aide, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="200" /> |
</Layer> |
<Layer level="OVERLAY"> |
<FontString name="PowaBarBuffNameText" |
inherits="GameFontNormalSmall" |
justifyH="LEFT" |
text=""> |
<Size> |
<AbsDimension x="150" |
y="20" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarBuffName" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
</EditBox> |
<EditBox name="PowaBarMultiID" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="145" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPRIGHT" |
relativeTo="PowaBarBuffName" |
relativePoint="BOTTOMRIGHT"> |
<Offset> |
<AbsDimension x="0" |
y="-15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self:SetMaxLetters(50) self.aide = PowaAuras.Text.aideMultiID;</OnLoad> |
<OnEnterPressed>self:ClearFocus()</OnEnterPressed> |
<OnTextChanged>PowaAuras:MultiIDChanged()</OnTextChanged> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(self.aide, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="50" /> |
</Layer> |
<Layer level="OVERLAY"> |
<FontString name="PowaBarMultiIDText" |
inherits="GameFontNormalSmall" |
justifyH="LEFT" |
text=""> |
<Size> |
<AbsDimension x="150" |
y="20" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarMultiID" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
</EditBox> |
<EditBox name="PowaBarTooltipCheck" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="145" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarMultiID" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="-15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self:SetMaxLetters(15) self.aide = PowaAuras.Text.aideTooltipCheck;</OnLoad> |
<OnEnterPressed>self:ClearFocus()</OnEnterPressed> |
<OnTextChanged>PowaAuras:TooltipCheckChanged()</OnTextChanged> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(self.aide, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="50" /> |
</Layer> |
<Layer level="OVERLAY"> |
<FontString name="PowaBarTooltipCheckText" |
inherits="GameFontNormalSmall" |
justifyH="LEFT" |
text=""> |
<Size> |
<AbsDimension x="150" |
y="20" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarTooltipCheck" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
</EditBox> |
<EditBox name="PowaBarBuffStacks" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="50" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarBuffName" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="200" |
y="12" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaBarBuffStacksLabel"):SetText(PowaAuras.Text.nomStacks); |
self:SetMaxLetters(10); |
self.aide = PowaAuras.Text.aideStacks; |
</OnLoad> |
<OnEnterPressed>self:ClearFocus()</OnEnterPressed> |
<OnTextChanged>PowaAuras:StacksTextChanged()</OnTextChanged> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(self.aide, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
<Layers> |
<Layer level="BACKGROUND"> |
<FontString name="$parentLabel" |
inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="RIGHT" |
relativePoint="LEFT"> |
<Offset> |
<AbsDimension x="-5" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
</EditBox> |
<Frame name="PowaDropDownBuffType" |
inherits="UIDropDownMenuTemplate" |
id="10"> |
<Size> |
<AbsDimension x="225" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarBuffName" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="-25" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<FontString name="$parentLabel" |
inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="21" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
getglobal("PowaDropDownBuffTypeLabel"):SetText(PowaAuras.Text.nomActivationBy); |
UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize); |
</OnLoad> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT");</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
</Frame> |
<Frame name="PowaDropDownStance" |
inherits="UIDropDownMenuTemplate" |
id="12"> |
<Size> |
<AbsDimension x="210" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarBuffName" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="30" |
y="20" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<FontString name="$parentLabel" |
inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="TOPRIGHT" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="-5" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
getglobal("PowaDropDownStanceLabel"):SetText(PowaAuras.Text.nomStance); |
UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize); |
</OnLoad> |
<OnShow>UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize);</OnShow> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(PowaAuras.Text.aideStance, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
</Frame> |
<Slider name="PowaBarThresholdSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="245" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarBuffName" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="18" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(0,100); self:SetValue(50); self:SetValueStep(2); |
getglobal("PowaBarThresholdSliderText"):SetText(PowaAuras.Text.nomThreshold.." : 50"); |
getglobal("PowaBarThresholdSliderLow"):SetText("0%"); |
getglobal("PowaBarThresholdSliderHigh"):SetText("100%"); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarThresholdSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<CheckButton name="PowaThresholdInvertButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarThresholdSlider" |
relativePoint="TOPRIGHT"> |
<Offset> |
<AbsDimension x="2" |
y="3" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self.tooltipText = PowaAuras.Text.aideThreshInv; getglobal("PowaThresholdInvertButtonText"):SetText(PowaAuras.Text.nomThreshInv);</OnLoad> |
<OnClick>PowaAuras:ThresholdInvertChecked(self);</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaOwntexButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaDropDownBuffType" |
relativePoint="TOPRIGHT"> |
<Offset> |
<AbsDimension x="-70" |
y="15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self.tooltipText = PowaAuras.Text.aideOwnTex; getglobal("PowaOwntexButtonText"):SetText(PowaAuras.Text.nomOwnTex); getglobal("PowaOwntexButtonText"):SetTextColor(1.0,0.2,0.2);</OnLoad> |
<OnClick>PowaAuras:OwntexChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaExactButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarBuffName" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="-8" |
y="-10" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self.tooltipText = PowaAuras.Text.aideExact; getglobal("PowaExactButtonText"):SetText(PowaAuras.Text.nomExact); getglobal("PowaExactButtonText"):SetTextColor(1.0,0.2,0.2);</OnLoad> |
<OnClick>PowaAuras:ExactChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaIgnoreMajButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaExactButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self.tooltipText = PowaAuras.Text.aideIgnoreMaj; getglobal("PowaIgnoreMajButtonText"):SetText(PowaAuras.Text.nomCheckIgnoreMaj);</OnLoad> |
<OnClick>PowaAuras:IgnoreMajChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaGCDButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaIgnoreMajButton" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideGCD; |
getglobal("PowaGCDButtonText"):SetText(PowaAuras.Text.nomGCD); |
getglobal("PowaGCDButtonText"):SetTextColor(1.0,0.2,0.2); |
</OnLoad> |
<OnClick>PowaAuras:GCDChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaInverseButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaGCDButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideInverse; |
getglobal("PowaInverseButtonText"):SetText(PowaAuras.Text.nomCheckInverse); |
</OnLoad> |
<OnClick>PowaAuras:InverseChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaMineButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaInverseButton" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideMine; |
getglobal("PowaMineButtonText"):SetText(PowaAuras.Text.nomMine); |
getglobal("PowaMineButtonText"):SetTextColor(1.0,0.2,0.2); |
</OnLoad> |
<OnClick>PowaAuras:MineChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaInCombatButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaInverseButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self.tooltipText = PowaAuras.Text.aideInCombat; getglobal("PowaInCombatButtonText"):SetText(PowaAuras.Text.nomInCombat);</OnLoad> |
<OnClick>PowaAuras:CombatChecked(1);</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaNotInCombatButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaInCombatButton" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideNotInCombat; |
getglobal("PowaNotInCombatButtonText"):SetText(PowaAuras.Text.nomNotInCombat); |
</OnLoad> |
<OnClick>PowaAuras:CombatChecked(2);</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaIsInRaidButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaInCombatButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideIsInRaid; |
getglobal("PowaIsInRaidButtonText"):SetText(PowaAuras.Text.nomIsInRaid); |
getglobal("PowaIsInRaidButtonText"):SetTextColor(1.0,0.2,0.2); |
</OnLoad> |
<OnClick>PowaAuras:CheckedButtonOnClick(self, "isinraid");</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaRestingButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaIsInRaidButton" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideResting; |
getglobal("PowaRestingButtonText"):SetText(PowaAuras.Text.nomResting); |
</OnLoad> |
<OnClick>PowaAuras:CheckedButtonOnClick(self, "ignoreResting");</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaIsMountedButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaIsInRaidButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideIsMounted; |
getglobal("PowaIsMountedButtonText"):SetText(PowaAuras.Text.nomIsMounted); |
</OnLoad> |
<OnClick>PowaAuras:CheckedButtonOnClick(self, "ismounted");</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaInVehicleButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaIsMountedButton" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideInVehicle; |
getglobal("PowaInVehicleButtonText"):SetText(PowaAuras.Text.nomInVehicle); |
</OnLoad> |
<OnClick>PowaAuras:CheckedButtonOnClick(self, "inVehicle");</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaTargetButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaIsMountedButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideTarget; |
getglobal("PowaTargetButtonText"):SetText(PowaAuras.Text.nomCheckTarget); |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
</OnLoad> |
<OnClick>PowaAuras:TargetChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaTargetFriendButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaTargetButton" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideTargetFriend; |
getglobal("PowaTargetFriendButtonText"):SetText(PowaAuras.Text.nomCheckFriend); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
</OnLoad> |
<OnClick>PowaAuras:TargetFriendChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaFocusButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaTargetButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideFocus; |
getglobal("PowaFocusButtonText"):SetText(PowaAuras.Text.nomCheckFocus); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
</OnLoad> |
<OnClick>PowaAuras:FocusChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaGroupOrSelfButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaFocusButton" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideGroupOrSelf; |
getglobal("PowaGroupOrSelfButtonText"):SetText(PowaAuras.Text.nomCheckGroupOrSelf); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
</OnLoad> |
<OnClick>PowaAuras:GroupOrSelfChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaPartyButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaFocusButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideParty; |
getglobal("PowaPartyButtonText"):SetText(PowaAuras.Text.nomCheckParty); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
</OnLoad> |
<OnClick>PowaAuras:PartyChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaRaidButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaPartyButton" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideRaid; |
getglobal("PowaRaidButtonText"):SetText(PowaAuras.Text.nomCheckRaid); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
</OnLoad> |
<OnClick>PowaAuras:RaidChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaGroupAnyButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaRaidButton" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideGroupAny; |
getglobal("PowaGroupAnyButtonText"):SetText(PowaAuras.Text.nomCheckGroupAny); |
</OnLoad> |
<OnClick>PowaAuras:GroupAnyChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaOptunitnButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaPartyButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideOptunitn; |
getglobal("PowaOptunitnButtonText"):SetText(PowaAuras.Text.nomCheckOptunitn); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.2,1.0,0.2); |
</OnLoad> |
<OnClick>PowaAuras:OptunitnChecked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaTalentGroup1Button" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaOptunitnButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self.tooltipText = PowaAuras.Text.aideTalentGroup1; getglobal("PowaTalentGroup1ButtonText"):SetText(PowaAuras.Text.nomTalentGroup1);</OnLoad> |
<OnClick>PowaAuras:TalentGroup1Checked();</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaTalentGroup2Button" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaTalentGroup1Button" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="100" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>self.tooltipText = PowaAuras.Text.aideTalentGroup2; getglobal("PowaTalentGroup2ButtonText"):SetText(PowaAuras.Text.nomTalentGroup2);</OnLoad> |
<OnClick>PowaAuras:TalentGroup2Checked();</OnClick> |
</Scripts> |
</CheckButton> |
<EditBox name="PowaBarUnitn" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="150" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaOptunitnButtonText" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="80" |
y="3" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="200" /> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad>self:SetMaxLetters(200) self.aide = PowaAuras.Text.aideUnitn;</OnLoad> |
<OnEnterPressed>self:ClearFocus()</OnEnterPressed> |
<OnTextChanged>PowaAuras:UnitnTextChanged()</OnTextChanged> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(self.aide, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString name="PowaBarUnitnText" |
inherits="GameFontNormalSmall" |
justifyH="LEFT" |
text=""> |
<Size> |
<AbsDimension x="150" |
y="20" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarUnitn" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
</EditBox> |
</Frames> |
</Frame> |
<Frame name="PowaBarConfigFrameEditor3" |
hidden="true"> |
<Size> |
<AbsDimension x="310" |
y="130" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBarConfigFrameEditor" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-25" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" |
edgeFile="Interface\Tooltips\UI-Tooltip-Border" |
tile="true"> |
<EdgeSize> |
<AbsValue val="12" /> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" |
right="2" |
top="2" |
bottom="2" /> |
</BackgroundInsets> |
</Backdrop> |
<Scripts> |
<OnLoad>self:SetBackdropBorderColor(0.0, 0.0, 0.0); self:SetBackdropColor(0.1, 0.1, 0.1);</OnLoad> |
</Scripts> |
<Frames> |
<Frame name="PowaDropDownAnimBegin" |
inherits="UIDropDownMenuTemplate" |
id="1"> |
<Size> |
<AbsDimension x="140" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarConfigFrameEditor3" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="-8" |
y="-15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<FontString name="$parentLabel" |
inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="21" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
getglobal("PowaDropDownAnimBeginLabel"):SetText(PowaAuras.Text.nomBegin); |
UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize); |
</OnLoad> |
<OnShow>UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize);</OnShow> |
</Scripts> |
</Frame> |
<Frame name="PowaDropDownAnimEnd" |
inherits="UIDropDownMenuTemplate" |
id="2"> |
<Size> |
<AbsDimension x="140" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaDropDownAnimBegin" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<FontString name="$parentLabel" |
inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="21" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
getglobal("PowaDropDownAnimEndLabel"):SetText(PowaAuras.Text.nomEnd); |
UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize); |
</OnLoad> |
<OnShow>UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize);</OnShow> |
</Scripts> |
</Frame> |
<Frame name="PowaDropDownAnim1" |
inherits="UIDropDownMenuTemplate" |
id="3"> |
<Size> |
<AbsDimension x="140" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaDropDownAnimBegin" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-10" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<FontString name="$parentLabel" |
inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="21" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
getglobal("PowaDropDownAnim1Label"):SetText(PowaAuras.Text.nomAnim1); |
UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize); |
</OnLoad> |
<OnShow>UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize);</OnShow> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(PowaAuras.Text.aideAnim1, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
</Frame> |
<Frame name="PowaDropDownAnim2" |
inherits="UIDropDownMenuTemplate" |
id="4"> |
<Size> |
<AbsDimension x="140" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaDropDownAnim1" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<FontString name="$parentLabel" |
inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="21" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
getglobal("PowaDropDownAnim2Label"):SetText(PowaAuras.Text.nomAnim2); |
UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize); |
</OnLoad> |
<OnShow>UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize);</OnShow> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(PowaAuras.Text.aideAnim2, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
</Frame> |
<Slider name="PowaBarAuraAnimSpeedSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarConfigFrameEditor3" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="10" |
y="15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(0.50,2.00); self:SetValue(1.0); self:SetValueStep(0.05); |
getglobal("PowaBarAuraAnimSpeedSliderText"):SetText(PowaAuras.Text.nomSpeed.." : 100%"); |
getglobal("PowaBarAuraAnimSpeedSliderLow"):SetText("50"); |
getglobal("PowaBarAuraAnimSpeedSliderHigh"):SetText("200"); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraAnimSpeedSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<Slider name="PowaBarAuraDurationSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaBarAuraAnimSpeedSlider" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="10" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.aide = PowaAuras.Text.aideDuration; self:SetMinMaxValues(0,30); self:SetValue(0); self:SetValueStep(1); |
getglobal("PowaBarAuraDurationSliderText"):SetText(PowaAuras.Text.nomDuration.." : 0 sec"); |
getglobal("PowaBarAuraDurationSliderLow"):SetText(PowaAuras.Text.aucune); |
getglobal("PowaBarAuraDurationSliderHigh"):SetText("30"); |
</OnLoad> |
<OnValueChanged>PowaAuras:BarAuraAnimDurationSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
</Frames> |
</Frame> |
<Frame name="PowaBarConfigFrameEditor5" |
hidden="true"> |
<Size> |
<AbsDimension x="310" |
y="150" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBarConfigFrameEditor" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-25" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" |
edgeFile="Interface\Tooltips\UI-Tooltip-Border" |
tile="true"> |
<EdgeSize> |
<AbsValue val="12" /> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" |
right="2" |
top="2" |
bottom="2" /> |
</BackgroundInsets> |
</Backdrop> |
<Scripts> |
<OnLoad>self:SetBackdropBorderColor(0.0, 0.0, 0.0); self:SetBackdropColor(0.1, 0.1, 0.1);</OnLoad> |
</Scripts> |
<Frames> |
<Frame name="PowaDropDownSound" |
inherits="UIDropDownMenuTemplate" |
id="11"> |
<Size> |
<AbsDimension x="220" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarConfigFrameEditor5" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="5" |
y="-15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="BACKGROUND"> |
<FontString name="$parentLabel" |
inherits="GameFontNormalSmall"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="15" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
getglobal("PowaDropDownSoundLabel"):SetText(PowaAuras.Text.nomSound); |
UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize); |
</OnLoad> |
<OnShow>UIDropDownMenu_Initialize(self, PowaAuras.DropDownMenu_Initialize);</OnShow> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(PowaAuras.Text.aideSound, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
</Frame> |
<EditBox name="PowaBarCustomSound" |
autoFocus="false" |
inherits="InputBoxTemplate"> |
<Size> |
<AbsDimension x="150" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaDropDownSound" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="20" |
y="-15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="ChatFontNormal" |
bytes="200" /> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad>getglobal("PowaBarCustomSoundText"):SetText(PowaAuras.Text.nomCustomSound); self:SetMaxLetters(200) self.aide = PowaAuras.Text.aideCustomSound;</OnLoad> |
<OnEnterPressed>self:ClearFocus()</OnEnterPressed> |
<OnTextChanged>PowaAuras:CustomSoundTextChanged()</OnTextChanged> |
<OnEnter>GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); GameTooltip:SetText(self.aide, nil, nil, nil, nil, 1);</OnEnter> |
<OnLeave>GameTooltip:Hide();</OnLeave> |
</Scripts> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString name="PowaBarCustomSoundText" |
inherits="GameFontNormalSmall" |
justifyH="LEFT"> |
<Size> |
<AbsDimension x="220" |
y="20" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="PowaBarCustomSound" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</FontString> |
</Layer> |
</Layers> |
</EditBox> |
</Frames> |
</Frame> |
<Frame name="PowaBarConfigFrameEditor4" |
hidden="true"> |
<Size> |
<AbsDimension x="310" |
y="260" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBarConfigFrameEditor" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-25" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" |
edgeFile="Interface\Tooltips\UI-Tooltip-Border" |
tile="true"> |
<EdgeSize> |
<AbsValue val="12" /> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" |
right="2" |
top="2" |
bottom="2" /> |
</BackgroundInsets> |
</Backdrop> |
<Scripts> |
<OnLoad>self:SetBackdropBorderColor(0.0, 0.0, 0.0); self:SetBackdropColor(0.1, 0.1, 0.1);</OnLoad> |
</Scripts> |
<Frames> |
<CheckButton name="PowaShowTimerButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarConfigFrameEditor4" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="10" |
y="-5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideShowTimer; |
getglobal("PowaShowTimerButtonText"):SetText(PowaAuras.Text.nomCheckShowTimer); |
getglobal("PowaShowTimerButtonText"):SetTextColor(0.2,1.0,0.2); |
</OnLoad> |
<OnClick>PowaAuras:ShowTimerChecked(self);</OnClick> |
</Scripts> |
</CheckButton> |
<Slider name="PowaTimerCoordXSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarConfigFrameEditor4" |
relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="10" |
y="-42" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(-150,150); self:SetValue(0); self:SetValueStep(5); |
getglobal("PowaTimerCoordXSliderText"):SetText(PowaAuras.Text.nomPos.." X : 0"); |
getglobal("PowaTimerCoordXSliderLow"):SetText("-150"); |
getglobal("PowaTimerCoordXSliderHigh"):SetText("150"); |
</OnLoad> |
<OnValueChanged>PowaAuras:TimerCoordXSliderChanged();</OnValueChanged> |
<OnMouseUp> |
self:SetMinMaxValues(self:GetValue()-100,self:GetValue()+100); |
getglobal("PowaTimerCoordXSliderLow"):SetText(self:GetValue()-100); |
getglobal("PowaTimerCoordXSliderHigh"):SetText(self:GetValue()+100); |
</OnMouseUp> |
</Scripts> |
</Slider> |
<Slider name="PowaTimerCoordSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="LEFT" |
relativeTo="PowaTimerCoordXSlider" |
relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="10" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(-200,100); self:SetValue(0); self:SetValueStep(5); |
getglobal("PowaTimerCoordSliderText"):SetText(PowaAuras.Text.nomPos.." Y : 0"); |
getglobal("PowaTimerCoordSliderLow"):SetText("-200"); |
getglobal("PowaTimerCoordSliderHigh"):SetText("100"); |
</OnLoad> |
<OnValueChanged>PowaAuras:TimerCoordSliderChanged();</OnValueChanged> |
<OnMouseUp> |
self:SetMinMaxValues(self:GetValue()-100,self:GetValue()+100); |
getglobal("PowaTimerCoordSliderLow"):SetText(self:GetValue()-100); |
getglobal("PowaTimerCoordSliderHigh"):SetText(self:GetValue()+100); |
</OnMouseUp> |
</Scripts> |
</Slider> |
<Slider name="PowaTimerSizeSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaTimerCoordXSlider" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-20" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(0.5,2.0); self:SetValue(1.0); self:SetValueStep(0.05); |
getglobal("PowaTimerSizeSliderText"):SetText(PowaAuras.Text.nomTaille.." : 1.0"); |
getglobal("PowaTimerSizeSliderLow"):SetText("0.5"); |
getglobal("PowaTimerSizeSliderHigh"):SetText("2.0"); |
</OnLoad> |
<OnValueChanged>PowaAuras:TimerSizeSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<Slider name="PowaTimerAlphaSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaTimerCoordSlider" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-20" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self:SetMinMaxValues(0.1,1.0); self:SetValue(1.0); self:SetValueStep(0.05); |
getglobal("PowaTimerAlphaSliderText"):SetText(PowaAuras.Text.nomAlpha.." : 1.0"); |
getglobal("PowaTimerAlphaSliderLow"):SetText("0.1"); |
getglobal("PowaTimerAlphaSliderHigh"):SetText("1.0"); |
</OnLoad> |
<OnValueChanged>PowaAuras:TimerAlphaSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<Slider name="PowaTimerDurationSlider" |
inherits="PowaBarSliderTemplate"> |
<Size> |
<AbsDimension x="130" |
y="16" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaTimerAlphaSlider" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="-20" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.aide = PowaAuras.Text.aideTimerDuration; self:SetMinMaxValues(0,60); self:SetValue(0); self:SetValueStep(1); |
getglobal("PowaTimerDurationSliderText"):SetText(PowaAuras.Text.nomTimerDuration.." : 0"); |
getglobal("PowaTimerDurationSliderLow"):SetText("0"); |
getglobal("PowaTimerDurationSliderHigh"):SetText("60"); |
</OnLoad> |
<OnValueChanged>PowaAuras:TimerDurationSliderChanged();</OnValueChanged> |
</Scripts> |
</Slider> |
<CheckButton name="PowaBuffTimerCentsButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaTimerSizeSlider" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="0" |
y="-10" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>getglobal("PowaBuffTimerCentsButtonText"):SetText(PowaAuras.Text.nomCentiemes);</OnLoad> |
<OnClick>PowaAuras:TimerChecked(self, "cents");</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaBuffTimerDualButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBuffTimerCentsButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>getglobal("PowaBuffTimerDualButtonText"):SetText(PowaAuras.Text.nomDual);</OnLoad> |
<OnClick>PowaAuras:TimerChecked(self, "dual");</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaBuffTimerLeadingZerosButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBuffTimerDualButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>getglobal("PowaBuffTimerLeadingZerosButtonText"):SetText(PowaAuras.Text.nomHideLeadingZeros);</OnLoad> |
<OnClick>PowaAuras:TimerChecked(self, "HideLeadingZeros");</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaBuffTimerTransparentButton" |
inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" |
y="25" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" |
relativeTo="PowaBuffTimerLeadingZerosButton" |
relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" |
y="4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad>getglobal("PowaBuffTimerTransparentButtonText"):SetText(PowaAuras.Text.nomTransparent);</OnLoad> |
<OnClick>PowaAuras:TimerTransparentChecked(self);</OnClick> |
</Scripts> |
</CheckButton> |
</Frames> |
</Frame> |
<Button name="PowaEditorTab2" |
inherits="TabButtonTemplate"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativePoint="TOPLEFT" |
relativeTo="PowaBarConfigFrameEditor2"> |
<Offset> |
<AbsDimension x="5" |
y="-2" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick> |
PanelTemplates_SelectTab(self); |
PanelTemplates_DeselectTab(PowaEditorTab1); |
PanelTemplates_DeselectTab(PowaEditorTab3); |
PanelTemplates_DeselectTab(PowaEditorTab4); |
getglobal("PowaBarConfigFrameEditor2"):Show(); |
getglobal("PowaBarConfigFrameEditor3"):Hide(); |
getglobal("PowaBarConfigFrameEditor4"):Hide(); |
getglobal("PowaBarConfigFrameEditor5"):Hide(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
<OnLoad> |
getglobal("PowaEditorTab2Text"):SetText(PowaAuras.Text.nomTabActiv); |
PanelTemplates_SelectTab(self); PanelTemplates_TabResize(self, 0); |
getglobal(self:GetName().."HighlightTexture"):SetWidth(self:GetTextWidth() + 31); |
</OnLoad> |
</Scripts> |
</Button> |
<Button name="PowaEditorTab1" |
inherits="TabButtonTemplate"> |
<Anchors> |
<Anchor point="LEFT" |
relativePoint="RIGHT" |
relativeTo="PowaEditorTab2"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick> |
PanelTemplates_SelectTab(self); |
PanelTemplates_DeselectTab(PowaEditorTab2); |
PanelTemplates_DeselectTab(PowaEditorTab3); |
PanelTemplates_DeselectTab(PowaEditorTab4); |
getglobal("PowaBarConfigFrameEditor2"):Hide(); |
getglobal("PowaBarConfigFrameEditor3"):Show(); |
getglobal("PowaBarConfigFrameEditor4"):Hide(); |
getglobal("PowaBarConfigFrameEditor5"):Hide(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
<OnLoad> |
getglobal("PowaEditorTab1Text"):SetText(PowaAuras.Text.nomTabAnim); |
PanelTemplates_DeselectTab(self); |
PanelTemplates_TabResize(self, 0); |
getglobal(self:GetName().."HighlightTexture"):SetWidth(self:GetTextWidth() + 31); |
</OnLoad> |
</Scripts> |
</Button> |
<Button name="PowaEditorTab4" |
inherits="TabButtonTemplate"> |
<Anchors> |
<Anchor point="LEFT" |
relativePoint="RIGHT" |
relativeTo="PowaEditorTab1"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick> |
PanelTemplates_SelectTab(self); |
PanelTemplates_DeselectTab(PowaEditorTab1); |
PanelTemplates_DeselectTab(PowaEditorTab2); |
PanelTemplates_DeselectTab(PowaEditorTab3); |
getglobal("PowaBarConfigFrameEditor5"):Show(); |
getglobal("PowaBarConfigFrameEditor2"):Hide(); |
getglobal("PowaBarConfigFrameEditor3"):Hide(); |
getglobal("PowaBarConfigFrameEditor4"):Hide(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
<OnLoad> |
getglobal("PowaEditorTab4Text"):SetText(PowaAuras.Text.nomTabSound); |
PanelTemplates_DeselectTab(self); |
PanelTemplates_TabResize(self, 0); |
getglobal(self:GetName().."HighlightTexture"):SetWidth(self:GetTextWidth() + 31); |
</OnLoad> |
</Scripts> |
</Button> |
<Button name="PowaEditorTab3" |
inherits="TabButtonTemplate"> |
<Anchors> |
<Anchor point="LEFT" |
relativePoint="RIGHT" |
relativeTo="PowaEditorTab4"> |
<Offset> |
<AbsDimension x="0" |
y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick> |
PanelTemplates_SelectTab(self); |
PanelTemplates_DeselectTab(PowaEditorTab1); |
PanelTemplates_DeselectTab(PowaEditorTab2); |
PanelTemplates_DeselectTab(PowaEditorTab4); |
getglobal("PowaBarConfigFrameEditor4"):Show(); |
getglobal("PowaBarConfigFrameEditor2"):Hide(); |
getglobal("PowaBarConfigFrameEditor3"):Hide(); |
getglobal("PowaBarConfigFrameEditor5"):Hide(); |
PowaAuras:UpdateTimerOptions(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
<OnLoad> |
getglobal("PowaEditorTab3Text"):SetText(PowaAuras.Text.nomTabTimer); |
PanelTemplates_DeselectTab(self); |
PanelTemplates_TabResize(self, 0); |
getglobal(self:GetName().."HighlightTexture"):SetWidth(self:GetTextWidth() + 31); |
</OnLoad> |
</Scripts> |
</Button> |
</Frames> |
</Frame> |
</Frames> |
</Frame> |
<Frame name="FontSelectorFrame" |
movable="false" |
parent="UIParent" |
frameStrata="DIALOG" |
hidden="true" |
enableMouse="true" |
enableKeyboard="true"> |
<Size> |
<AbsDimension x="250" |
y="225" /> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="PowaBarConfigFrame" |
relativePoint="TOPRIGHT"> |
<Offset> |
<AbsDimension x="0" |
y="-200" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" |
edgeFile="Interface\DialogFrame\UI-DialogBox-Border" |
tile="true"> |
<BackgroundInsets> |
<AbsInset left="11" |
right="12" |
top="12" |
bottom="11" /> |
</BackgroundInsets> |
<TileSize> |
<AbsValue val="200" /> |
</TileSize> |
<EdgeSize> |
<AbsValue val="32" /> |
</EdgeSize> |
</Backdrop> |
<Scripts> |
<OnShow>PowaAuras:FontSelectorOnShow(self);</OnShow> |
</Scripts> |
<Layers> |
<Layer> |
<Texture file="Interface\DialogFrame\UI-DialogBox-Header"> |
<Size> |
<AbsDimension x="180" |
y="32" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" |
y="8" /> |
</Offset> |
</Anchor> |
</Anchors> |
<TexCoords left="0.2" |
right="0.8" |
top="0" |
bottom="0.6" /> |
</Texture> |
<FontString name="PowaFontHeader" |
inherits="GameFontNormalSmall" |
text="Font Picker"> |
<Size> |
<AbsDimension x="120" |
y="0" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" |
y="-4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<FontHeight> |
<AbsValue val="14" /> |
</FontHeight> |
</FontString> |
</Layer> |
</Layers> |
<Frames> |
<Button name="PowaFontsCloseButton"> |
<Size> |
<AbsDimension x="30" |
y="30" /> |
</Size> |
<Anchors> |
<Anchor point="TOPRIGHT" |
relativeTo="FontSelectorFrame" |
relativePoint="TOPRIGHT"> |
<Offset> |
<AbsDimension x="-4" |
y="-4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick>PowaAuras:FontSelectorClose(self);</OnClick> |
</Scripts> |
<NormalTexture file="Interface\Buttons\UI-Panel-MinimizeButton-Up" /> |
<PushedTexture file="Interface\Buttons\UI-Panel-MinimizeButton-Down" /> |
<HighlightTexture file="Interface\Buttons\UI-Panel-MinimizeButton-Highlight" |
alphaMode="ADD" /> |
</Button> |
<Button name="PowaFontsOkayButton" inherits="OptionsButtonTemplate" text="Okay"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" |
relativeTo="FontSelectorFrame" |
relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="20" |
y="15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick>PowaAuras:FontSelectorOkay(self);</OnClick> |
</Scripts> |
</Button> |
<Button name="PowaFontsCancelButton" inherits="OptionsButtonTemplate" text="Cancel"> |
<Anchors> |
<Anchor point="BOTTOMRIGHT" |
relativeTo="FontSelectorFrame" |
relativePoint="BOTTOMRIGHT"> |
<Offset> |
<AbsDimension x="-20" |
y="15" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick>PowaAuras:FontSelectorCancel(self);</OnClick> |
</Scripts> |
</Button> |
<Frame name="FontSelectorEditor"> |
<Size> |
<AbsDimension x="210" |
y="162" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" |
y="-25" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" |
edgeFile="Interface\Tooltips\UI-Tooltip-Border" |
tile="true"> |
<EdgeSize> |
<AbsValue val="12" /> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" |
right="2" |
top="2" |
bottom="2" /> |
</BackgroundInsets> |
</Backdrop> |
<Scripts> |
<OnLoad>self:SetBackdropBorderColor(0.0, 0.0, 0.0); self:SetBackdropColor(0.1, 0.1, 0.1);</OnLoad> |
</Scripts> |
<Frames> |
<ScrollFrame name="$parentScrollFrame" inherits="FauxScrollFrameTemplate"> |
<Anchors> |
<Anchor point="TOPLEFT" |
relativeTo="FontSelectorEditor"> |
<Offset> |
<AbsDimension x="-22" y="-3"/> |
</Offset> |
</Anchor> |
<Anchor point="BOTTOMRIGHT" |
relativeTo="FontSelectorEditor"> |
<Offset> |
<AbsDimension x="-22" y="2"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnVerticalScroll> |
FauxScrollFrame_OnVerticalScroll(self, offset, 16, PowaAuras.FontScrollBar_Update); |
</OnVerticalScroll> |
<OnShow> |
PowaAuras.FontScrollBar_Update(self); |
</OnShow> |
</Scripts> |
</ScrollFrame> |
<Button name="$parentScrollButton1" inherits="PowaFontButtonTemplate" id="1"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parent" relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="0" y="0"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton2" inherits="PowaFontButtonTemplate" id="2"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton1" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton3" inherits="PowaFontButtonTemplate" id="3"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton2" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton4" inherits="PowaFontButtonTemplate" id="4"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton3" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton5" inherits="PowaFontButtonTemplate" id="5"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton4" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton6" inherits="PowaFontButtonTemplate" id="6"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton5" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton7" inherits="PowaFontButtonTemplate" id="7"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton6" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton8" inherits="PowaFontButtonTemplate" id="8"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton7" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton9" inherits="PowaFontButtonTemplate" id="9"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton8" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="$parentScrollButton10" inherits="PowaFontButtonTemplate" id="10"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="$parentScrollButton9" relativePoint="BOTTOMLEFT"> |
</Anchor> |
</Anchors> |
</Button> |
</Frames> |
</Frame> |
</Frames> |
</Frame> |
</Ui> |
-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MAIN OPTIONS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
-- --------------------------------------------------------------------------------------------------------------------- |
-- --------------------------------------------------------------------------------------------------------------------- |
function PowaAuras:UpdateMainOption() |
-- traductions |
getglobal("PowaOptionsHeader"):SetText("POWER AURAS "..self.Version); |
getglobal("PowaMainHideAllButton"):SetText(self.Text.nomHide); |
getglobal("PowaMainTestButton"):SetText(self.Text.nomTest); |
getglobal("PowaEditButton"):SetText(self.Text.nomEdit); |
getglobal("PowaOptionsRename"):SetText(self.Text.nomRename); |
if (self.Misc.disabled) then |
getglobal("PowaEnableButton"):SetChecked(false); |
else |
getglobal("PowaEnableButton"):SetChecked(true); |
end |
if (self.Misc.debug) then |
getglobal("PowaDebugButton"):SetChecked(true); |
else |
getglobal("PowaDebugButton"):SetChecked(false); |
end |
-- affiche les icones |
for i = 1, 24 do |
local k = ((self.MainOptionPage-1)*24) + i; |
--self:Message("icon ", k); |
local aura = self.Auras[k]; |
-- icone |
if (aura == nil) then |
getglobal("PowaIcone"..i):SetNormalTexture("Interface\\PaperDoll\\UI-Backpack-EmptySlot"); |
getglobal("PowaIcone"..i):SetText(""); |
getglobal("PowaIcone"..i):SetAlpha(0.33); |
else |
--self:Message("buffname ", aura.buffname, "icon", aura.icon); |
if (aura.buffname == "" or aura.buffname == " ") then -- pas de nom -> desactive |
getglobal("PowaIcone"..i):SetNormalTexture("Interface\\PaperDoll\\UI-Backpack-EmptySlot"); |
elseif (aura.icon == "") then -- active mais pas d'icone |
getglobal("PowaIcone"..i):SetNormalTexture("Interface\\Icons\\Inv_Misc_QuestionMark"); |
else |
getglobal("PowaIcone"..i):SetNormalTexture(aura.icon); |
end |
-- off ou ON |
if (aura.buffname ~= "" and aura.buffname ~= " " and aura.off) then |
getglobal("PowaIcone"..i):SetText("OFF"); |
else |
getglobal("PowaIcone"..i):SetText(""); |
end |
-- surbrillance de l'effet en cours |
if (self.CurrentAuraId == k) then -- le bouton en cours |
if (aura == nil or aura.buffname == "" or aura.buffname == " ") then -- nulle |
getglobal("PowaSelected"):Hide(); |
else |
getglobal("PowaSelected"):SetPoint("CENTER", "PowaIcone"..i, "CENTER"); |
getglobal("PowaSelected"):Show(); |
end |
end |
-- grisage des effets non visibles |
if (not aura.Showing) then |
getglobal("PowaIcone"..i):SetAlpha(0.33); |
else |
getglobal("PowaIcone"..i):SetAlpha(1.0); |
end |
end |
end |
-- choisi la liste en cours |
getglobal("PowaOptionsList"..self.MainOptionPage):SetHighlightTexture("Interface\\Buttons\\UI-Panel-Button-Highlight"); |
getglobal("PowaOptionsList"..self.MainOptionPage):LockHighlight(); |
end |
-- --------------------------------------------------------------------------------------------------------------------- |
function PowaAuras:IconeClick(owner, button) |
local iconeID = owner:GetID(); |
local auraId = ((self.MainOptionPage-1)*24) + iconeID; |
if (self.MoveEffect > 0) then -- mode move, annule |
return; |
end |
if (ColorPickerFrame:IsVisible()) then -- color picker visible, ca deconne |
return; |
end |
local aura = self.Auras[auraId]; |
if (self.Auras[auraId] == nil or aura.buffname == "" or aura.buffname == " ") then -- ne fait rien si bouton vide |
return; |
end |
if IsShiftKeyDown() then -- Toggle ON ou OFF |
if (aura.off) then |
aura.off = false; |
getglobal("PowaIcone"..iconeID):SetText(""); |
else |
aura.off = true; |
getglobal("PowaIcone"..iconeID):SetText("OFF"); |
end |
elseif IsControlKeyDown() then |
local show, reason = self:TestThisEffect(auraId, true); |
if (show) then |
self:Message("Should show because ", reason); --OK |
else |
self:Message("Won't show because ", reason); --OK |
end |
elseif (self.CurrentAuraId == auraId) then -- on appuie sur le meme bouton, show ou hide |
if (button == "RightButton") then |
self:EditorShow(); |
return; |
elseif (aura.Showing) then -- deja visible, on la cache |
aura.HideRequest = true; |
getglobal("PowaIcone"..iconeID):SetAlpha(0.33); |
else -- pas visible alors on affiche |
self:DisplayAura(auraId); |
getglobal("PowaIcone"..iconeID):SetAlpha(1.0); |
end |
elseif (self.CurrentAuraId ~= auraId) then -- on appuie un bouton different... |
self.CurrentAuraId = auraId; |
self.CurrentAuraPage = self.MainOptionPage; |
getglobal("PowaSelected"):SetPoint("CENTER", owner, "CENTER"); |
getglobal("PowaSelected"):Show(); |
self:InitPage(); -- change de page dans l'editeur d'effet |
end |
end |
function PowaAuras:IconeEntered(owner) |
local iconeID = owner:GetID(); |
local k = ((self.MainOptionPage-1)*24) + iconeID; |
local ID_COLOR_OPEN, ID_COLOR_CLOSE = "|cffFFFFFF[", "] |r"; |
if (self.MoveEffect > 0) then -- mode move, annule |
return; |
elseif (self.Auras[k] == nil) then |
-- rien si pas actif |
elseif (self.Auras[k].buffname == "" or self.Auras[k].buffname == " ") then |
-- rien si pas de nom |
else |
GameTooltip:SetOwner(owner, "ANCHOR_RIGHT"); |
if (self.Auras[k].bufftype == self.BuffTypes.Debuff) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckDebuff, 1.0, 0.8, 0.8, 1); --- |
if not (self.Auras[k].buffname == "???") then |
GameTooltip:AddLine(self.Auras[k].buffname, nil, nil, nil, nil, 1); |
end |
GameTooltip:AddLine(self.Text.nomStacks..self.Auras[k].stacksOperator..self.Auras[k].stacks, 1.0, 0.7, 0.7, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.TypeDebuff) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckDebuffType, 0.8, 1.0, 0.8, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.AoE) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckAoeDebuff, 0.6, 0.4, 1.0, 1); |
if not (self.Auras[k].buffname == "???") then |
GameTooltip:AddLine(self.Auras[k].buffname, nil, nil, nil, nil, 1); |
end |
elseif (self.Auras[k].bufftype == self.BuffTypes.Enchant) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckEnchant, 1.0, 0.8, 1.0, 1); |
if not (self.Auras[k].buffname == "???") then |
GameTooltip:AddLine(self.Auras[k].buffname, nil, nil, nil, nil, 1); |
end |
elseif (self.Auras[k].bufftype == self.BuffTypes.Combo) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckCombo, 1.0, 1.0, 0.0, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.ActionReady) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckSkill, 0.8, 0.8, 1.0, 1); |
if not (self.Auras[k].buffname == "???") then |
GameTooltip:AddLine(self.Auras[k].buffname, nil, nil, nil, nil, 1); |
end |
elseif (self.Auras[k].bufftype == self.BuffTypes.Health) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckHealth, 0.2, 1.0, 0.2, 1); |
GameTooltip:AddLine(self.Auras[k].threshold, 0.2, 1.0, 0.2, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.Mana) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckMana, 0.2, 0.2, 1.0, 1); |
GameTooltip:AddLine(self.Auras[k].threshold, 0.2, 0.2, 1.0, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.EnergyRagePower) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckRageEnergy, 1.0, 0.4, 0.0, 1); |
GameTooltip:AddLine(self.Auras[k].threshold, 1.0, 0.4, 0.0, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.Aggro) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckAggro, 1.0, 0.4, 0.2, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.PvP) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckPvP, 1.0, 1.0, 0.8, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.SpellAlert) then --- Spell Alert |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckSpells, 0.4, 0.4, 1.0, 1); |
if not (self.Auras[k].buffname == "???") then |
GameTooltip:AddLine(self.Auras[k].buffname, nil, nil, nil, nil, 1); |
end |
elseif (self.Auras[k].bufftype == self.BuffTypes.Stance) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckStance, 1.0, 0.6, 0.2, 1); |
GameTooltip:AddLine(self.PowaStance[self.Auras[k].stance], 1.0, 0.6, 0.2, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.OwnSpell) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckOwnSpell, 1.0, 0.6, 0.2, 1); |
GameTooltip:AddLine(self.PowaStance[self.Auras[k].buffname], 1.0, 0.6, 0.2, 1); |
elseif (self.Auras[k].bufftype == self.BuffTypes.Buff) then |
GameTooltip:SetText(ID_COLOR_OPEN..k..ID_COLOR_CLOSE..self.Text.nomCheckBuff, 0.0, 1.0, 1.0, 1); |
if not (self.Auras[k].buffname == "???") then |
GameTooltip:AddLine(self.Auras[k].buffname, nil, nil, nil, nil, 1); |
end |
GameTooltip:AddLine(self.Text.nomStacks..self.Auras[k].stacksOperator..self.Auras[k].stacks, 0.7, 1.0, 0.7, 1); |
end |
if (self.Auras[k].party) then |
GameTooltip:AddLine("("..self.Text.nomCheckParty..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].exact) then |
GameTooltip:AddLine("("..self.Text.nomExact..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].gcd) then |
GameTooltip:AddLine("("..self.Text.nomGCD..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].mine) then |
GameTooltip:AddLine("("..self.Text.nomMine..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].focus) then |
GameTooltip:AddLine("("..self.Text.nomCheckFocus..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].raid) then |
GameTooltip:AddLine("("..self.Text.nomCheckRaid..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].groupOrSelf) then |
GameTooltip:AddLine("("..self.Text.nomCheckGroupOrSelf..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].optunitn) then |
GameTooltip:AddLine("("..self.Text.nomCheckOptunitn..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].target) then |
GameTooltip:AddLine("("..self.Text.nomCheckTarget..")", 1.0, 0.2, 0.2, 1); |
end |
if (self.Auras[k].targetfriend) then |
GameTooltip:AddLine("("..self.Text.nomCheckFriend..")", 0.2, 1.0, 0.2, 1); |
end |
GameTooltip:AddLine(self.Text.aideEffectTooltip,1.0,1.0,1.0,1); |
GameTooltip:Show(); |
end |
end |
function PowaAuras:MainListClick(owner) |
local listeID = owner:GetID(); |
if (self.MoveEffect == 1) then |
-- deplace l'effet |
self:BeginCopyEffect( self.CurrentAuraId, listeID) |
return; |
elseif (self.MoveEffect == 2) then |
-- deplace l'effet |
self:BeginMoveEffect( self.CurrentAuraId, listeID) |
return; |
end |
getglobal("PowaOptionsList"..self.MainOptionPage):SetHighlightTexture(""); |
getglobal("PowaOptionsList"..self.MainOptionPage):UnlockHighlight(); |
getglobal("PowaSelected"):Hide(); |
self.MainOptionPage = listeID; |
-- selectionne le premier effet de la page |
self.CurrentAuraId = ((self.MainOptionPage-1)*24)+1; |
self.CurrentAuraPage = self.MainOptionPage; |
-- change de page dans l'editeur d'effet ou cache l'editeur |
if (self.Auras[auraId] ~= nil and self.Auras[ self.CurrentAuraId].buffname ~= "" and self.Auras[ self.CurrentAuraId].buffname ~= " ") then |
self:InitPage(); |
else |
self:EditorClose(); |
end |
-- en cas d'edition de renommage :) |
getglobal("PowaOptionsRenameEditBox"):SetText( getglobal("PowaOptionsList"..self.MainOptionPage):GetText() ); |
self:UpdateMainOption(); |
end |
function PowaAuras:MainListEntered(owner) |
local listeID = owner:GetID(); |
if (self.MainOptionPage ~= listeID) then |
if (self.MoveEffect > 0) then |
getglobal("PowaOptionsList"..listeID):SetHighlightTexture("Interface\\Buttons\\UI-Panel-Button-Highlight"); |
else |
getglobal("PowaOptionsList"..listeID):SetHighlightTexture(""); |
getglobal("PowaOptionsList"..listeID):UnlockHighlight(); |
end |
end |
if (self.MoveEffect == 1) then |
GameTooltip:SetOwner(owner, "ANCHOR_RIGHT"); |
GameTooltip:SetText(self.Text.aideCopy, nil, nil, nil, nil, 1); |
GameTooltip:Show(); |
elseif (self.MoveEffect == 2) then |
GameTooltip:SetOwner(owner, "ANCHOR_RIGHT"); |
GameTooltip:SetText(self.Text.aideMove, nil, nil, nil, nil, 1); |
GameTooltip:Show(); |
end |
end |
-- --------------------------------------------------------------------------------------------------------------------- |
function PowaAuras:OptionRename() |
getglobal("PowaOptionsRename"):Hide(); |
getglobal("PowaOptionsRenameEditBox"):Show(); |
getglobal("PowaOptionsRenameEditBox"):SetText( getglobal("PowaOptionsList"..self.MainOptionPage):GetText() ); |
end |
function PowaAuras:OptionRenameEdited() |
getglobal("PowaOptionsRename"):Show(); |
getglobal("PowaOptionsRenameEditBox"):Hide(); |
getglobal("PowaOptionsList"..self.MainOptionPage):SetText( getglobal("PowaOptionsRenameEditBox"):GetText() ); |
if (self.MainOptionPage > 5) then |
PowaGlobalListe[self.MainOptionPage-5] = getglobal("PowaOptionsRenameEditBox"):GetText(); |
else |
PowaPlayerListe[self.MainOptionPage] = getglobal("PowaOptionsRenameEditBox"):GetText(); |
end |
end |
-- --------------------------------------------------------------------------------------------------------------------- |
function PowaAuras:TriageIcones(nPage) |
local min = ((nPage-1)*24) + 1; |
local max = ((nPage-1)*24) + 24; |
local a = min; |
-- masque les effets de la page |
for i = min, max do |
local aura = self.Auras[i]; |
if (aura) then |
aura:Hide(); |
end |
self.SecondaryAuras[i] = nil; |
end |
for i = min, max do |
if (self.Auras[i]) then |
self.Auras[a] = self.Auras[i]; |
self.Auras[a].id = a; |
if (self.Auras[a].Timer) then |
self.Auras[a].Timer.id = a; |
end |
if (i>a) then |
self.Auras[i] = nil; |
end |
a = a+1; |
end |
end |
-- gere les liens vers les effets globaux |
for i = 121, 360 do |
if (self.Auras[i]) then |
PowaGlobalSet[i] = self.Auras[i]; |
else |
PowaGlobalSet[i] = nil; |
end |
end |
end |
function PowaAuras:OptionDeleteEffect(auraId) |
local min = ((self.MainOptionPage-1)*24) + 1; |
local max = ((self.MainOptionPage-1)*24) + 24; |
if (not IsControlKeyDown()) then return; end |
self.Auras[auraId]:Hide(); |
self.Auras[auraId] = nil; |
if (auraId > 120) then |
PowaGlobalSet[auraId] = nil; |
end |
self:DeleteTimerFrames(auraId); |
self.Frames[auraId] = nil; |
self.Textures[auraId] = nil; |
self.SecondaryAuras[auraId] = nil; |
self.SecondaryFrames[auraId] = nil; |
self.SecondaryTextures[auraId] = nil; |
getglobal("PowaSelected"):Hide(); |
if (getglobal("PowaBarConfigFrame"):IsVisible()) then |
getglobal("PowaBarConfigFrame"):Hide(); |
end |
self:TriageIcones(self.MainOptionPage); -- trie les trous |
self:UpdateMainOption(); |
end |
function PowaAuras:GetNextFreeSlot() |
local min = ((self.MainOptionPage-1)*24) + 1; |
local max = ((self.MainOptionPage-1)*24) + 24; |
for i = min, max do |
if (self.Auras[i] == nil or self.Auras[i].buffname == "" or self.Auras[i].buffname == " ") then -- Found a free slot |
return i; |
end |
end |
return nil; |
end |
function PowaAuras:OptionNewEffect() |
local i = self:GetNextFreeSlot(); |
if (not i) then |
self:Message("All aura slots filled"); --OK |
return; |
end |
--self:Message("New Effect slot=", i) |
self.CurrentAuraId = i; |
self.CurrentAuraPage = self.MainOptionPage; |
local aura = self:AuraFactory(PowaAuras.BuffTypes.Buff, i, {buffname = "???", off = false}); |
--self:Message("Timer.enabled=", aura.Timer.enabled) |
self.Auras[i] = aura; |
self.Showing = true; |
-- effet global ? |
if (i > 120) then |
PowaGlobalSet[i] = aura; |
end |
self:DisplayAura(i); |
self:UpdateMainOption(); |
self:InitPage(); |
self:UpdateTimerOptions(); |
if (not getglobal("PowaBarConfigFrame"):IsVisible()) then |
getglobal("PowaBarConfigFrame"):Show(); |
PlaySound("TalentScreenOpen"); |
end |
self:Debug("New aura ", i); |
--aura:Display(); |
end |
function PowaAuras:OptionImportEffect() |
local i = self:GetNextFreeSlot(); |
if (not i) then |
self:Message("All aura slots filled"); -- OK |
return; |
end |
self.ImportAuraId = i; |
self.CurrentAuraPage = self.MainOptionPage; |
StaticPopup_Show("POWERAURAS_IMPORT_AURA"); |
end |
function PowaAuras:OptionExportEffect() |
if self.Auras[self.CurrentAuraId] then |
StaticPopup_Show("POWERAURAS_EXPORT_AURA"); |
end |
end |
function PowaAuras:DisableMoveMode() |
getglobal("PowaOptionsMove"):UnlockHighlight(); |
getglobal("PowaOptionsCopy"):UnlockHighlight(); |
self.MoveEffect = 0; |
for i = 1, 15 do |
getglobal("PowaOptionsList"..i.."Glow"):Hide(); |
end |
-- reactive les boutons |
getglobal("PowaOptionsMove"):Enable(); |
getglobal("PowaOptionsCopy"):Enable(); |
getglobal("PowaOptionsRename"):Enable(); |
getglobal("PowaEditButton"):Enable(); |
getglobal("PowaMainTestButton"):Enable(); |
getglobal("PowaMainHideAllButton"):Enable(); |
getglobal("PowaOptionsSelectorNew"):Enable(); |
getglobal("PowaOptionsSelectorDelete"):Enable(); |
end |
function PowaAuras:OptionMoveEffect(isMove) |
if (self.Auras[self.CurrentAuraId] == nil or self.Auras[self.CurrentAuraId].buffname == "" or self.Auras[self.CurrentAuraId].buffname == " ") then |
return; -- on essaye de deplacer un effet vide !! |
end |
-- illumine le bouton pour dire que c'est actif |
if (self.MoveEffect == 0) then |
if (isMove) then |
self.MoveEffect = 2; |
getglobal("PowaOptionsMove"):LockHighlight(); |
getglobal("PowaOptionsCopy"):Disable(); |
else |
self.MoveEffect = 1; |
getglobal("PowaOptionsCopy"):LockHighlight(); |
getglobal("PowaOptionsMove"):Disable(); |
end |
for i = 1, 15 do |
getglobal("PowaOptionsList"..i.."Glow"):SetVertexColor(0.5,0.5,0.5); |
getglobal("PowaOptionsList"..i.."Glow"):Show(); |
end |
-- annule tous les boutons |
getglobal("PowaOptionsRename"):Disable(); |
getglobal("PowaEditButton"):Disable(); |
getglobal("PowaMainTestButton"):Disable(); |
getglobal("PowaMainHideAllButton"):Disable(); |
getglobal("PowaOptionsSelectorNew"):Disable(); |
getglobal("PowaOptionsSelectorDelete"):Disable(); |
else |
self:DisableMoveMode(); |
end |
end |
function PowaAuras:BeginMoveEffect(Pfrom, ToPage) |
local min = ((ToPage-1)*24) + 1; |
local max = ((ToPage-1)*24) + 24; |
-- trouve un endroit dispo dans la page choisie |
for i = min, max do |
if (self.Auras[i] == nil or self.Auras[i].buffname == "" or self.Auras[i].buffname == " ") then -- on a trouve une place dispo |
self:DoCopyEffect(Pfrom, i, true); -- copie et efface effet actuel |
self:TriageIcones(self.CurrentAuraPage); -- trie les pages pour eviter les trous |
self.CurrentAuraId = ((self.MainOptionPage-1)*24)+1; -- nouvelle aura en cours sera le premier effet de cette page |
-- gere les visus |
self:DisableMoveMode(); |
-- met a jour la page |
self:UpdateMainOption(); |
return; |
end |
end |
end |
function PowaAuras:BeginCopyEffect(Pfrom, ToPage) |
local min = ((ToPage-1)*24) + 1; |
local max = ((ToPage-1)*24) + 24; |
-- trouve un endroit dispo dans la page choisie |
for i = min, max do |
if (self.Auras[i] == nil or self.Auras[i].buffname == "" or self.Auras[i].buffname == " ") then -- on a trouve une place dispo |
self:DoCopyEffect(Pfrom, i, false); -- copie et efface effet actuel |
self.CurrentAuraId = i; -- nouvelle aura en cours sera l'effet cree |
-- gere les visus |
self:DisableMoveMode(); |
-- met a jour la page |
self:UpdateMainOption(); |
return; |
end |
end |
end |
function PowaAuras:DoCopyEffect(idFrom, idTo, isMove) |
self.Auras[idTo] = self:AuraFactory(self.Auras[idFrom].bufftype, idTo, self.Auras[idFrom]); |
if (self.Auras[idFrom].Timer) then |
--self:CreateTimerFrameIfMissing(idTo) |
self.Auras[idTo].Timer = cPowaTimer(idTo, self.Auras[idFrom].Timer); |
end |
if (idTo > 120) then -- on entre dans la zone des effets globaux |
PowaGlobalSet[idTo] = self.Auras[idTo]; |
end |
if (isMove == true) then |
if (self.Auras[idFrom].Timer) then |
self.TimerFrame[idFrom] = nil; |
end |
self.Auras[idFrom] = nil; |
if (idFrom > 120) then |
PowaGlobalSet[idFrom] = nil; |
end |
end |
end |
-- --------------------------------------------------------------------------------------------------------------------- |
function PowaAuras:MainOptionShow() |
if (PowaOptionsFrame:IsVisible()) then |
self:MainOptionClose(); |
else |
self:OptionHideAll(); |
self.ModTest = true; |
self:UpdateMainOption(); |
getglobal("PowaOptionsFrame"):Show(); |
PlaySound("TalentScreenOpen"); |
end |
end |
function PowaAuras:MainOptionClose() --- ferme la fenetre d'option |
self:DisableMoveMode(); |
self.ModTest = false; |
if ColorPickerFrame:IsVisible() then |
self.CancelColor(); |
ColorPickerFrame:Hide(); |
end |
getglobal("FontSelectorFrame"):Hide(); |
getglobal("PowaBarConfigFrame"):Hide(); |
getglobal("PowaOptionsFrame"):Hide(); |
PlaySound("TalentScreenClose"); |
-- cache tous les effets en test |
for _, aura in pairs(self.Auras) do |
aura.HideRequest = true; |
end |
self:CreateEffectLists(); |
self.DoCheck.All = true; |
self:NewCheckBuffs(); |
self:MemorizeActions(); |
end |
function PowaAuras:EnableChecked() |
if (getglobal("PowaEnableButton"):GetChecked()) then |
self:Toggle(true); |
else |
self:MainOptionClose(); |
self:Toggle(false); |
end |
end |
function PowaAuras:DebugChecked() |
if (getglobal("PowaDebugButton"):GetChecked()) then |
self.Misc.debug = true; |
else |
self.Misc.debug = false; |
end |
end |
-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MAIN OPTIONS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
function PowaAuras:UpdateTimerOptions() |
local timer = self.Auras[self.CurrentAuraId].Timer; |
if (timer) then |
getglobal("PowaShowTimerButton"):SetChecked(timer.enabled); |
getglobal("PowaTimerAlphaSlider"):SetValue(timer.a); |
getglobal("PowaTimerSizeSlider"):SetValue(timer.h); |
-- ajuste slider Y |
getglobal("PowaTimerCoordSlider"):SetMinMaxValues(timer.y-5000,timer.y+5000); |
getglobal("PowaTimerCoordSliderLow"):SetText(timer.y-100); |
getglobal("PowaTimerCoordSliderHigh"):SetText(timer.y+100); |
getglobal("PowaTimerCoordSlider"):SetValue(timer.y); |
getglobal("PowaTimerCoordSlider"):SetMinMaxValues(timer.y-100,timer.y+100); |
-- ajuste slider X |
getglobal("PowaTimerCoordXSlider"):SetMinMaxValues(timer.x-5000,timer.x+5000); |
getglobal("PowaTimerCoordXSliderLow"):SetText(timer.x-100); |
getglobal("PowaTimerCoordXSliderHigh"):SetText(timer.x+100); |
getglobal("PowaTimerCoordXSlider"):SetValue(timer.x); |
getglobal("PowaTimerCoordXSlider"):SetMinMaxValues(timer.x-100,timer.x+100); |
getglobal("PowaBuffTimerCentsButton"):SetChecked(timer.cents); |
getglobal("PowaBuffTimerDualButton"):SetChecked(timer.dual); |
getglobal("PowaBuffTimerLeadingZerosButton"):SetChecked(timer.HideLeadingZeros); |
getglobal("PowaBuffTimerTransparentButton"):SetChecked(timer.Transparent); |
end |
end |
function PowaAuras:InitPage() |
--self:Message("InitPage ", self.CurrentAuraId); |
local CheckTexture = 0; |
local aura = self.Auras[self.CurrentAuraId]; |
--self:Message("aura ", aura); |
self:UpdateTimerOptions(); |
getglobal("PowaDropDownAnim1Text"):SetText(self.Anim[aura.anim1]); |
getglobal("PowaDropDownAnim2Text"):SetText(self.Anim[aura.anim2]); |
getglobal("PowaDropDownAnimBeginText"):SetText(self.BeginAnimDisplay[aura.begin]); |
getglobal("PowaDropDownAnimEndText"):SetText(self.EndAnimDisplay[aura.finish]); |
getglobal("PowaDropDownSoundText"):SetText(self.Sound[aura.sound]); |
getglobal("PowaDropDownStanceText"):SetText(self.PowaStance[aura.stance]); |
getglobal("PowaBarCustomSound").aide = self.Text.aideCustomSound; |
getglobal("PowaBarBuffStacks").aide = self.Text.aideStacks; |
-- --------------- |
getglobal("PowaOwntexButton"):SetChecked(aura.owntex); |
getglobal("PowaWowTextureButton"):SetChecked(aura.wowtex); |
getglobal("PowaCustomTextureButton"):SetChecked(aura.customtex); |
getglobal("PowaTextAuraButton"):SetChecked(aura.textaura); -- added |
getglobal("PowaRandomColorButton"):SetChecked(aura.randomcolor); |
getglobal("PowaIgnoreMajButton"):SetChecked(aura.ignoremaj); |
getglobal("PowaInverseButton"):SetChecked(aura.inverse); |
getglobal("PowaTargetButton"):SetChecked(aura.target); |
getglobal("PowaTargetFriendButton"):SetChecked(aura.targetfriend); |
getglobal("PowaPartyButton"):SetChecked(aura.party); |
getglobal("PowaFocusButton"):SetChecked(aura.focus); |
getglobal("PowaRaidButton"):SetChecked(aura.raid); |
getglobal("PowaGroupOrSelfButton"):SetChecked(aura.groupOrSelf); |
getglobal("PowaGroupAnyButton"):SetChecked(aura.groupany); |
getglobal("PowaOptunitnButton"):SetChecked(aura.optunitn); |
getglobal("PowaExactButton"):SetChecked(aura.exact); |
getglobal("PowaGCDButton"):SetChecked(aura.gcd); |
getglobal("PowaMineButton"):SetChecked(aura.mine); |
getglobal("PowaIsInRaidButton"):SetChecked(aura.isinraid); |
getglobal("PowaRestingButton"):SetChecked(aura.ignoreResting); |
getglobal("PowaIsMountedButton"):SetChecked(aura.ismounted); |
getglobal("PowaInVehicleButton"):SetChecked(aura.inVehicle); |
getglobal("PowaThresholdInvertButton"):SetChecked(aura.thresholdinvert); |
-- ---------------- |
getglobal("PowaTexModeButton"):SetChecked(aura.texmode == 1); |
getglobal("PowaTimerDurationSlider"):SetValue(aura.timerduration); |
getglobal("PowaBarThresholdSlider"):SetValue(aura.threshold); |
---------------- |
-- dual specs |
self:EnableCheckBox("PowaTalentGroup1Button"); |
self:EnableCheckBox("PowaTalentGroup2Button"); |
getglobal("PowaTalentGroup1Button"):SetChecked(aura.spec1); |
getglobal("PowaTalentGroup2Button"):SetChecked(aura.spec2); |
-- modes combats |
self:EnableCheckBox("PowaInCombatButton"); |
self:EnableCheckBox("PowaNotInCombatButton"); |
if (aura.bufftype == self.BuffTypes.AoE or aura.bufftype == 6) then |
getglobal("PowaNotInCombatButton"):SetChecked(false); |
getglobal("PowaInCombatButton"):SetChecked(false); |
self:DisableCheckBox("PowaInCombatButton"); |
self:DisableCheckBox("PowaNotInCombatButton"); |
elseif (aura.combat == 1) then |
getglobal("PowaInCombatButton"):SetChecked(true); |
getglobal("PowaNotInCombatButton"):SetChecked(false); |
elseif (aura.combat == 2) then |
getglobal("PowaNotInCombatButton"):SetChecked(true); |
getglobal("PowaInCombatButton"):SetChecked(false); |
else |
getglobal("PowaNotInCombatButton"):SetChecked(false); |
getglobal("PowaInCombatButton"):SetChecked(false); |
end |
-- inverse, target and timer |
if ((aura.inverse) and not (aura.bufftype == self.BuffTypes.ActionReady or aura.bufftype == self.BuffTypes.OwnSpell)) then |
aura.Timer.enabled = false; |
PowaEditorTab3:Hide(); |
else |
PowaEditorTab3:Show(); |
end |
--self:Message("bufftype ", aura.bufftype); |
-- Dropdown selection alias buffs type. variable self.Auras[int].bufftype |
if (aura.bufftype == self.BuffTypes.Buff) then -- BUFF |
getglobal("PowaBarBuffName").aide = self.Text.aideBuff; |
getglobal("PowaExactButton").aide = self.Text.aideExact; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckBuff); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
getglobal("PowaBarBuffStacks"):Show(); |
getglobal("PowaGroupAnyButton"):Show(); |
getglobal("PowaBarTooltipCheck"):Show(); |
self:EnableCheckBox("PowaTargetButton"); |
self:EnableCheckBox("PowaTargetFriendButton"); |
self:EnableCheckBox("PowaPartyButton"); |
self:EnableCheckBox("PowaFocusButton"); |
self:EnableCheckBox("PowaRaidButton"); |
self:EnableCheckBox("PowaGroupOrSelfButton"); |
self:EnableCheckBox("PowaGroupAnyButton"); |
self:EnableCheckBox("PowaOptunitnButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaExactButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
self:EnableCheckBox("PowaOwntexButton"); |
self:EnableCheckBox("PowaMineButton"); |
getglobal("PowaMineButtonText"):SetText(self.Text.nomMine); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
self:DisableCheckBox("PowaGCDButton"); |
-- -------- |
if (aura.target |
or aura.targetfriend |
or aura.party |
or aura.focus |
or aura.raid |
or aura.optunitn) then |
getglobal("PowaTimerDurationSlider"):Show(); |
else |
getglobal("PowaTimerDurationSlider"):Hide(); |
end |
if (aura.inverse == false) then |
PowaEditorTab3:Show(); |
end |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.2,1.0,0.2); |
elseif (aura.bufftype == self.BuffTypes.Debuff) then -- DEBUFF |
getglobal("PowaBarBuffName").aide = self.Text.aideBuff2; |
getglobal("PowaExactButton").aide = self.Text.aideExact2; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckDebuff); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
getglobal("PowaBarBuffStacks"):Show(); |
getglobal("PowaBarTooltipCheck"):Show(); |
self:EnableCheckBox("PowaTargetButton"); |
self:EnableCheckBox("PowaTargetFriendButton"); |
self:EnableCheckBox("PowaPartyButton"); |
self:EnableCheckBox("PowaGroupOrSelfButton"); |
self:EnableCheckBox("PowaFocusButton"); |
self:EnableCheckBox("PowaRaidButton"); |
self:EnableCheckBox("PowaOptunitnButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaExactButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
self:EnableCheckBox("PowaOwntexButton"); |
self:EnableCheckBox("PowaMineButton"); |
getglobal("PowaMineButtonText"):SetText(self.Text.nomMine); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
self:DisableCheckBox("PowaGCDButton"); |
-- -------- |
if (aura.target |
or aura.targetfriend |
or aura.party |
or aura.focus |
or aura.raid |
or aura.optunitn) then |
getglobal("PowaTimerDurationSlider"):Show(); |
else |
getglobal("PowaTimerDurationSlider"):Hide(); |
end |
if (aura.inverse == false) then PowaEditorTab3:Show(); end |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.2,1.0,0.2); |
elseif (aura.bufftype == self.BuffTypes.TypeDebuff) then -- DEBUFF-TYPE |
getglobal("PowaBarBuffName").aide = self.Text.aideBuff3; |
getglobal("PowaExactButton").aide = self.Text.aideExact3; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckDebuffType); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
getglobal("PowaBarTooltipCheck"):Show(); |
self:EnableCheckBox("PowaTargetButton"); |
self:EnableCheckBox("PowaTargetFriendButton"); |
self:EnableCheckBox("PowaPartyButton"); |
self:EnableCheckBox("PowaFocusButton"); |
self:EnableCheckBox("PowaRaidButton"); |
self:EnableCheckBox("PowaGroupOrSelfButton"); |
self:EnableCheckBox("PowaOptunitnButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaExactButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
self:EnableCheckBox("PowaMineButton"); |
getglobal("PowaMineButtonText"):SetText(self.Text.nomDispellable); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
if (aura.target or aura.targetfriend or aura.party or aura.focus or aura.raid or aura.optunitn) then |
getglobal("PowaTimerDurationSlider"):Show(); |
else |
getglobal("PowaTimerDurationSlider"):Hide(); |
end |
if (aura.inverse == false) then PowaEditorTab3:Show(); end |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.2,1.0,0.2); |
elseif (aura.bufftype == self.BuffTypes.AoE) then -- AOE |
getglobal("PowaBarBuffName").aide = self.Text.aideBuff4; |
getglobal("PowaExactButton").aide = self.Text.aideExact4; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckAoeDebuff); |
aura.target = false; |
getglobal("PowaTargetButton"):SetChecked(false); |
getglobal("PowaTargetFriendButton"):SetChecked(false); |
getglobal("PowaPartyButton"):SetChecked(false); |
getglobal("PowaGroupOrSelfButton"):SetChecked(false); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
getglobal("PowaBarTooltipCheck"):Show(); |
self:EnableCheckBox("PowaExactButton"); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
PowaEditorTab3:Hide(); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaTargetButton"); |
self:DisableCheckBox("PowaTargetFriendButton"); |
self:DisableCheckBox("PowaPartyButton"); |
self:DisableCheckBox("PowaFocusButton"); |
self:DisableCheckBox("PowaRaidButton"); |
self:DisableCheckBox("PowaGroupOrSelfButton"); |
self:DisableCheckBox("PowaOptunitnButton"); |
self:DisableCheckBox("PowaInverseButton"); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- ------- |
aura.Timer.enabled = false; |
elseif (aura.bufftype == self.BuffTypes.Enchant) then -- ENCHANT |
getglobal("PowaBarBuffName").aide = self.Text.aideBuff5; |
getglobal("PowaExactButton").aide = self.Text.aideExact5; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckEnchant); |
aura.target = false; |
getglobal("PowaTargetButton"):SetChecked(false); |
getglobal("PowaTargetFriendButton"):SetChecked(false); |
getglobal("PowaPartyButton"):SetChecked(false); |
getglobal("PowaGroupOrSelfButton"):SetChecked(false); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
getglobal("PowaBarBuffStacks"):Show(); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaExactButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaTimerDurationSlider"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
self:DisableCheckBox("PowaTargetButton"); |
self:DisableCheckBox("PowaTargetFriendButton"); |
self:DisableCheckBox("PowaPartyButton"); |
self:DisableCheckBox("PowaFocusButton"); |
self:DisableCheckBox("PowaRaidButton"); |
self:DisableCheckBox("PowaGroupOrSelfButton"); |
self:DisableCheckBox("PowaOptunitnButton"); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
if (aura.inverse == false) then PowaEditorTab3:Show(); end |
elseif (aura.bufftype == self.BuffTypes.Combo) then -- COMBOS |
getglobal("PowaBarBuffName").aide = self.Text.aideBuff6; |
getglobal("PowaExactButton").aide = self.Text.aideExact6; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckCombo); |
aura.target = false; |
getglobal("PowaTargetButton"):SetChecked(true); |
getglobal("PowaTargetFriendButton"):SetChecked(false); |
getglobal("PowaPartyButton"):SetChecked(false); |
getglobal("PowaGroupOrSelfButton"):SetChecked(false); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
PowaEditorTab3:Hide(); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaTargetButton"); |
self:DisableCheckBox("PowaTargetFriendButton"); |
self:DisableCheckBox("PowaPartyButton"); |
self:DisableCheckBox("PowaFocusButton"); |
self:DisableCheckBox("PowaRaidButton"); |
self:DisableCheckBox("PowaGroupOrSelfButton"); |
self:DisableCheckBox("PowaOptunitnButton"); |
self:DisableCheckBox("PowaInverseButton"); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
aura.Timer.enabled = false; |
elseif (aura.bufftype == self.BuffTypes.ActionReady) then -- ACTION READY |
getglobal("PowaBarBuffName").aide = self.Text.aideBuff7; |
getglobal("PowaExactButton").aide = self.Text.aideExact7; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckSkill); |
aura.target = false; |
getglobal("PowaTargetButton"):SetChecked(false); |
getglobal("PowaTargetFriendButton"):SetChecked(false); |
getglobal("PowaPartyButton"):SetChecked(false); |
getglobal("PowaGroupOrSelfButton"):SetChecked(false); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
getglobal("PowaTimerDurationSlider"):Show(); |
self:EnableCheckBox("PowaGCDButton"); |
self:EnableCheckBox("PowaExactButton"); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
self:EnableCheckBox("PowaOwntexButton"); |
if (aura.inverse == true) then |
PowaEditorTab3:Show(); |
end |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarBuffStacks"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
self:DisableCheckBox("PowaTargetButton"); |
self:DisableCheckBox("PowaTargetFriendButton"); |
self:DisableCheckBox("PowaPartyButton"); |
self:DisableCheckBox("PowaGroupOrSelfButton"); |
self:DisableCheckBox("PowaFocusButton"); |
self:DisableCheckBox("PowaRaidButton"); |
self:DisableCheckBox("PowaOptunitnButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- ------- |
elseif (aura.bufftype == self.BuffTypes.Health) then -- HEALTH |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckHealth); |
-- enabled |
getglobal("PowaBarThresholdSlider"):Show(); |
getglobal("PowaThresholdInvertButton"):Show(); |
self:EnableCheckBox("PowaTargetButton"); |
self:EnableCheckBox("PowaTargetFriendButton"); |
self:EnableCheckBox("PowaPartyButton"); |
self:EnableCheckBox("PowaGroupOrSelfButton"); |
self:EnableCheckBox("PowaFocusButton"); |
self:EnableCheckBox("PowaRaidButton"); |
self:EnableCheckBox("PowaOptunitnButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
-- disabled |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
PowaEditorTab3:Hide(); |
self:DisableTextfield("PowaBarBuffName"); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaExactButton"); |
self:DisableCheckBox("PowaIgnoreMajButton"); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- ------- |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.2,1.0,0.2); |
aura.Timer.enabled = false; |
elseif (aura.bufftype == self.BuffTypes.Mana) then -- Mana |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckMana); |
-- enabled |
getglobal("PowaBarThresholdSlider"):Show(); |
getglobal("PowaThresholdInvertButton"):Show(); |
self:EnableCheckBox("PowaTargetButton"); |
self:EnableCheckBox("PowaTargetFriendButton"); |
self:EnableCheckBox("PowaPartyButton"); |
self:EnableCheckBox("PowaFocusButton"); |
self:EnableCheckBox("PowaRaidButton"); |
self:EnableCheckBox("PowaGroupOrSelfButton"); |
self:EnableCheckBox("PowaOptunitnButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
-- disabled |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
PowaEditorTab3:Hide(); |
self:DisableTextfield("PowaBarBuffName"); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaExactButton"); |
self:DisableCheckBox("PowaIgnoreMajButton"); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.2,1.0,0.2); |
aura.Timer.enabled = false; |
elseif (aura.bufftype == self.BuffTypes.EnergyRagePower) then -- Rage/Energy/RunicPower |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckRageEnergy); |
-- enabled |
getglobal("PowaBarThresholdSlider"):Show(); |
getglobal("PowaThresholdInvertButton"):Show(); |
self:EnableCheckBox("PowaTargetButton"); |
self:EnableCheckBox("PowaTargetFriendButton"); |
self:EnableCheckBox("PowaPartyButton"); |
self:EnableCheckBox("PowaFocusButton"); |
self:EnableCheckBox("PowaRaidButton"); |
self:EnableCheckBox("PowaGroupOrSelfButton"); |
self:EnableCheckBox("PowaOptunitnButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
-- disabled |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
PowaEditorTab3:Hide(); |
self:DisableTextfield("PowaBarBuffName"); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaExactButton"); |
self:DisableCheckBox("PowaIgnoreMajButton"); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.2,1.0,0.2); |
aura.Timer.enabled = false; |
elseif (aura.bufftype == self.BuffTypes.Aggro) then -- Aggro |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckAggro); |
-- enabled |
self:EnableCheckBox("PowaPartyButton"); |
self:EnableCheckBox("PowaRaidButton"); |
self:EnableCheckBox("PowaGroupOrSelfButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
self:EnableCheckBox("PowaInverseButton"); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
PowaEditorTab3:Hide(); |
self:DisableTextfield("PowaBarBuffName"); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaTargetButton"); |
self:DisableCheckBox("PowaExactButton"); |
self:DisableCheckBox("PowaIgnoreMajButton"); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
self:DisableCheckBox("PowaFocusButton"); |
self:DisableCheckBox("PowaTargetFriendButton"); |
self:DisableCheckBox("PowaOptunitnButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
aura.Timer.enabled = false; |
elseif (aura.bufftype == self.BuffTypes.PvP) then -- PvP Flag |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckPvP); |
-- enabled |
self:EnableCheckBox("PowaTargetButton"); |
self:EnableCheckBox("PowaTargetFriendButton"); |
self:EnableCheckBox("PowaPartyButton"); |
self:EnableCheckBox("PowaGroupOrSelfButton"); |
self:EnableCheckBox("PowaRaidButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
-- disabled |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
PowaEditorTab3:Hide(); |
self:DisableTextfield("PowaBarBuffName"); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaExactButton"); |
self:DisableCheckBox("PowaIgnoreMajButton"); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaOwntexButton"); |
self:DisableCheckBox("PowaInverseButton"); |
self:DisableCheckBox("PowaFocusButton"); |
self:DisableCheckBox("PowaOptunitnButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
aura.Timer.enabled = false; |
elseif (aura.bufftype == self.BuffTypes.SpellAlert) then -- SPELL ALERT |
getglobal("PowaBarBuffName").aide = self.Text.aideSpells; |
getglobal("PowaExactButton").aide = self.Text.aideExact; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckSpells); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
getglobal("PowaTimerDurationSlider"):Show(); |
self:EnableCheckBox("PowaTargetButton"); |
self:EnableCheckBox("PowaFocusButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaExactButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
self:EnableCheckBox("PowaOwntexButton"); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarBuffStacks"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
self:DisableCheckBox("PowaGCDButton"); |
self:DisableCheckBox("PowaTargetFriendButton"); |
self:DisableCheckBox("PowaRaidButton"); |
self:DisableCheckBox("PowaPartyButton"); |
self:DisableCheckBox("PowaOptunitnButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
if (aura.inverse == false) then |
PowaEditorTab3:Show(); |
end |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
elseif (aura.bufftype == self.BuffTypes.Stance) then -- Stance |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckStance); |
getglobal("PowaTargetButtonText"):SetTextColor(1.0,0.2,0.2); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaPartyButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaFocusButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaRaidButtonText"):SetTextColor(0.2,1.0,0.2); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.2,0.2,1.0); |
getglobal("PowaInverseButtonText"):SetTextColor(0.3,0.3,0.3); |
-- enabled |
getglobal("PowaDropDownStance"):Show(); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaBarTooltipCheck"):Hide(); |
PowaEditorTab3:Hide(); |
self:DisableTextfield("PowaBarBuffName"); |
getglobal("PowaBarBuffStacks"):Hide(); |
self:DisableCheckBox("PowaTargetButton"); |
aura.target = false; |
self:DisableCheckBox("PowaTargetFriendButton"); |
aura.targetfriend = false; |
self:DisableCheckBox("PowaPartyButton"); |
self:DisableCheckBox("PowaGroupOrSelfButton"); |
aura.party = false; |
self:DisableCheckBox("PowaFocusButton"); |
aura.focus = false; |
self:DisableCheckBox("PowaRaidButton"); |
aura.raid = false; |
self:DisableCheckBox("PowaOptunitnButton"); |
aura.optunitn = false; |
self:DisableCheckBox("PowaExactButton"); |
aura.exact = false; |
self:DisableCheckBox("PowaIgnoreMajButton"); |
aura.ignoremaj = false; |
self:DisableCheckBox("PowaGCDButton"); |
aura.gcd = false; |
self:DisableCheckBox("PowaOwntexButton"); |
getglobal("PowaMineButton"):SetChecked(false); |
self:DisableCheckBox("PowaMineButton"); |
getglobal("PowaGroupAnyButton"):SetChecked(false); |
self:DisableCheckBox("PowaGroupAnyButton"); |
-- -------- |
aura.Timer.enabled = false; |
elseif (aura.bufftype == self.BuffTypes.OwnSpell) then -- One of my spells |
getglobal("PowaBarBuffName").aide = self.Text.aideBuff8; |
getglobal("PowaDropDownBuffTypeText"):SetText(self.Text.nomCheckOwnSpell); |
-- enabled |
getglobal("PowaBarBuffName"):Show(); |
getglobal("PowaBarTooltipCheck"):Show(); |
self:EnableCheckBox("PowaGCDButton"); |
self:EnableCheckBox("PowaInverseButton"); |
self:EnableCheckBox("PowaIgnoreMajButton"); |
self:EnableCheckBox("PowaExactButton"); |
self:EnableCheckBox("PowaIsInRaidButton"); |
self:EnableCheckBox("PowaRestingButton"); |
self:EnableCheckBox("PowaIsMountedButton"); |
self:EnableCheckBox("PowaOwntexButton"); |
getglobal("PowaMineButtonText"):SetText(self.Text.nomMine); |
-- disabled |
getglobal("PowaBarThresholdSlider"):Hide(); |
getglobal("PowaThresholdInvertButton"):Hide(); |
getglobal("PowaDropDownStance"):Hide(); |
getglobal("PowaBarBuffStacks"):Hide(); |
getglobal("PowaGroupAnyButton"):Hide(); |
self:DisableCheckBox("PowaTargetButton"); |
self:DisableCheckBox("PowaTargetFriendButton"); |
self:DisableCheckBox("PowaPartyButton"); |
self:DisableCheckBox("PowaFocusButton"); |
self:DisableCheckBox("PowaRaidButton"); |
self:DisableCheckBox("PowaGroupOrSelfButton"); |
self:DisableCheckBox("PowaGroupAnyButton"); |
self:DisableCheckBox("PowaOptunitnButton"); |
self:DisableCheckBox("PowaMineButton"); |
-- -------- |
getglobal("PowaTimerDurationSlider"):Show(); |
if (aura.inverse == true) then |
PowaEditorTab3:Show(); |
end |
getglobal("PowaTargetButtonText"):SetTextColor(0.3,0.3,0.3); |
getglobal("PowaTargetFriendButtonText"):SetTextColor(0.3,0.3,0.3); |
getglobal("PowaPartyButtonText"):SetTextColor(0.3,0.3,0.3); |
getglobal("PowaGroupOrSelfButtonText"):SetTextColor(0.3,0.3,0.3); |
getglobal("PowaFocusButtonText"):SetTextColor(0.3,0.3,0.3); |
getglobal("PowaRaidButtonText"):SetTextColor(0.3,0.3,0.3); |
getglobal("PowaOptunitnButtonText"):SetTextColor(0.3,0.3,0.3); |
end |
-- changement de page |
if (getglobal("PowaBarConfigFrameEditor4"):IsVisible() and not PowaEditorTab3:IsVisible() ) then |
PanelTemplates_SelectTab(PowaEditorTab2); |
PanelTemplates_DeselectTab(PowaEditorTab1); |
PanelTemplates_DeselectTab(PowaEditorTab3); |
getglobal("PowaBarConfigFrameEditor2"):Show(); |
getglobal("PowaBarConfigFrameEditor3"):Hide(); |
getglobal("PowaBarConfigFrameEditor4"):Hide(); |
end |
-- Visuels auras |
getglobal("PowaBarAuraAlphaSlider"):SetValue(aura.alpha); |
getglobal("PowaBarAuraSizeSlider"):SetValue(aura.size); |
-- ajuste slider Y |
getglobal("PowaBarAuraCoordSlider"):SetMinMaxValues(aura.y-5000,aura.y+5000); |
getglobal("PowaBarAuraCoordSliderLow"):SetText(aura.y-200); |
getglobal("PowaBarAuraCoordSliderHigh"):SetText(aura.y+200); |
getglobal("PowaBarAuraCoordSlider"):SetValue(aura.y); |
getglobal("PowaBarAuraCoordSlider"):SetMinMaxValues(aura.y-200,aura.y+200); |
getglobal("PowaBarAuraCoordYEdit"):SetText(aura.y); |
-- ajuste slider X |
getglobal("PowaBarAuraCoordXSlider"):SetMinMaxValues(aura.x-5000,aura.x+5000); |
getglobal("PowaBarAuraCoordXSliderLow"):SetText(aura.x-200); |
getglobal("PowaBarAuraCoordXSliderHigh"):SetText(aura.x+200); |
getglobal("PowaBarAuraCoordXSlider"):SetValue(aura.x); |
getglobal("PowaBarAuraCoordXSlider"):SetMinMaxValues(aura.x-200,aura.x+200); |
getglobal("PowaBarAuraCoordXEdit"):SetText(aura.x); |
getglobal("PowaBarAuraAnimSpeedSlider"):SetValue(aura.speed); |
getglobal("PowaBarAuraDurationSlider"):SetValue(aura.duration); |
getglobal("PowaBarAuraSymSlider"):SetValue(aura.symetrie); |
getglobal("PowaBarAuraDeformSlider"):SetValue(aura.torsion); |
getglobal("PowaBarBuffName"):SetText(aura.buffname); |
getglobal("PowaBarMultiID"):SetText(aura.multiids); |
getglobal("PowaBarTooltipCheck"):SetText(aura.tooltipCheck); |
getglobal("PowaBarCustomSound"):SetText(aura.customsound); |
getglobal("PowaBarUnitn"):SetText(aura.unitn); |
local numbertotext = tostring(aura.stacks); |
local stackstext = aura.stacksOperator..numbertotext; |
getglobal("PowaBarBuffStacks"):SetText(stackstext); |
if (aura.icon == "") then |
getglobal("PowaIconTexture"):SetTexture("Interface\\Icons\\Inv_Misc_QuestionMark"); |
else |
getglobal("PowaIconTexture"):SetTexture(aura.icon); |
end |
if (aura.optunitn == true) then |
self:EnableTextfield("PowaBarUnitn"); |
elseif (aura.optunitn == false) then |
self:DisableTextfield("PowaBarUnitn"); |
end |
if (aura.owntex == true) then |
CheckTexture = getglobal("AuraTexture"):SetTexture(aura.icon); |
getglobal("PowaBarAuraTextureSlider"):Hide(); |
getglobal("PowaBarCustomTexName"):Hide(); |
getglobal("PowaBarAurasText"):Hide(); |
getglobal("PowaFontsButton"):Hide(); |
elseif (aura.wowtex == true) then |
getglobal("PowaBarAuraTextureSlider"):Show(); |
getglobal("PowaBarCustomTexName"):Hide(); |
getglobal("PowaBarAurasText"):Hide(); |
getglobal("PowaFontsButton"):Hide(); |
if (#self.WowTextures > self.maxtextures) then |
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,#self.WowTextures); |
getglobal("PowaBarAuraTextureSliderHigh"):SetText(#self.WowTextures); |
getglobal("PowaBarAuraTextureSlider"):SetValue(aura.texture); |
else |
getglobal("PowaBarAuraTextureSlider"):SetValue(aura.texture); |
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,#self.WowTextures); |
getglobal("PowaBarAuraTextureSliderHigh"):SetText(#self.WowTextures); |
end |
CheckTexture = getglobal("AuraTexture"):SetTexture(self.WowTextures[aura.texture]); |
elseif (aura.customtex == true) then |
getglobal("PowaBarAuraTextureSlider"):Hide(); |
getglobal("PowaBarAurasText"):Hide(); |
getglobal("PowaFontsButton"):Hide(); |
getglobal("PowaBarCustomTexName"):Show(); |
getglobal("PowaBarCustomTexName"):SetText(aura.customname); |
CheckTexture = getglobal("AuraTexture"):SetTexture(self:CustomTexPath(aura.customname)); |
elseif (aura.textaura == true) then |
getglobal("PowaBarAuraTextureSlider"):Hide(); |
getglobal("PowaBarCustomTexName"):Hide(); |
getglobal("PowaBarAurasText"):Show(); |
getglobal("PowaFontsButton"):Show(); |
getglobal("PowaBarAurasText"):SetText(aura.aurastext); |
CheckTexture = getglobal("AuraTexture"):SetTexture("Interface\\Icons\\INV_Scroll_02"); --- Driizt: check if need to test as well |
else |
getglobal("PowaBarAuraTextureSlider"):Show(); |
getglobal("PowaBarCustomTexName"):Hide(); |
getglobal("PowaBarAurasText"):Hide(); |
getglobal("PowaFontsButton"):Hide(); |
if (#self.WowTextures < self.maxtextures) then |
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,self.maxtextures); |
getglobal("PowaBarAuraTextureSliderHigh"):SetText(self.maxtextures); |
getglobal("PowaBarAuraTextureSlider"):SetValue(aura.texture); |
else |
getglobal("PowaBarAuraTextureSlider"):SetValue(aura.texture); |
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,self.maxtextures); |
getglobal("PowaBarAuraTextureSliderHigh"):SetText(self.maxtextures); |
end |
CheckTexture = getglobal("AuraTexture"):SetTexture("Interface\\Addons\\PowerAuras\\Auras\\Aura"..aura.texture..".tga"); |
end |
if (CheckTexture ~= 1) then |
getglobal("AuraTexture"):SetTexture("Interface\\CharacterFrame\\TempPortrait.tga"); |
end |
getglobal("PowaColorNormalTexture"):SetVertexColor(aura.r,aura.g,aura.b); |
getglobal("AuraTexture"):SetVertexColor(aura.r,aura.g,aura.b); |
-- affiche la symetrie |
if (aura.symetrie == 1) then |
getglobal("AuraTexture"):SetTexCoord(1, 0, 0, 1); -- inverse X |
elseif (aura.symetrie == 2) then |
getglobal("AuraTexture"):SetTexCoord(0, 1, 1, 0); -- inverse Y |
elseif (aura.symetrie == 3) then |
getglobal("AuraTexture"):SetTexCoord(1, 0, 1, 0); -- inverse XY |
else |
getglobal("AuraTexture"):SetTexCoord(0, 1, 0, 1); |
end |
getglobal("PowaColor_SwatchBg").r = aura.r; |
getglobal("PowaColor_SwatchBg").g = aura.g; |
getglobal("PowaColor_SwatchBg").b = aura.b; |
getglobal("PowaHeader"):SetText(self.Text.nomEffectEditor); |
end |
----------------------------------------------------------------------------------------------------------------------- |
-- Sliders Changed |
----------------------------------------------------------------------------------------------------------------------- |
function PowaAuras:BarAuraTextureSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraTextureSlider"):GetValue(); |
local CheckTexture = 0; |
local auraId = self.CurrentAuraId; |
if (self.Auras[auraId].owntex == true) then |
CheckTexture = getglobal("AuraTexture"):SetTexture(self.Auras[auraId].icon); |
elseif (self.Auras[auraId].wowtex == true) then |
CheckTexture = getglobal("AuraTexture"):SetTexture(self.WowTextures[SliderValue]); |
elseif (self.Auras[auraId].customtex == true) then |
CheckTexture = getglobal("AuraTexture"):SetTexture(self:CustomTexPath(self.Auras[auraId].customname)); |
elseif (self.Auras[auraId].textaura == true) then |
CheckTexture = getglobal("AuraTexture"):SetTexture("Interface\\Icons\\INV_Scroll_02"); |
else |
CheckTexture = getglobal("AuraTexture"):SetTexture("Interface\\Addons\\PowerAuras\\Auras\\Aura"..SliderValue..".tga"); |
end |
if (CheckTexture ~= 1) then |
getglobal("AuraTexture"):SetTexture("Interface\\CharacterFrame\\TempPortrait.tga"); |
end |
getglobal("PowaBarAuraTextureSliderText"):SetText(self.Text.nomTexture.." : "..SliderValue); |
getglobal("AuraTexture"):SetVertexColor(self.Auras[auraId].r,self.Auras[auraId].g,self.Auras[auraId].b); |
self.Auras[auraId].texture = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarAuraAlphaSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraAlphaSlider"):GetValue(); |
getglobal("PowaBarAuraAlphaSliderText"):SetText(self.Text.nomAlpha.." : "..format("%.0f",SliderValue*100).."%"); |
self.Auras[self.CurrentAuraId].alpha = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarAuraSizeSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraSizeSlider"):GetValue(); |
local auraId = self.CurrentAuraId; |
getglobal("PowaBarAuraSizeSliderText"):SetText(self.Text.nomTaille.." : "..format("%.0f",SliderValue*100).."%"); |
self.Auras[auraId].size = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarAuraCoordSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraCoordSlider"):GetValue(); |
local auraId = self.CurrentAuraId; |
getglobal("PowaBarAuraCoordSliderText"):SetText(self.Text.nomPos.." Y : "..SliderValue); |
if (getglobal("PowaBarAuraCoordYEdit")) then |
getglobal("PowaBarAuraCoordYEdit"):SetText(SliderValue); |
end |
self.Auras[auraId].y = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarAuraCoordXSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraCoordXSlider"):GetValue(); |
local auraId = self.CurrentAuraId; |
getglobal("PowaBarAuraCoordXSliderText"):SetText(self.Text.nomPos.." X : "..SliderValue); |
if (getglobal("PowaBarAuraCoordXEdit")) then |
getglobal("PowaBarAuraCoordXEdit"):SetText(SliderValue); |
end |
self.Auras[auraId].x = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarAuraAnimSpeedSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraAnimSpeedSlider"):GetValue(); |
local auraId = self.CurrentAuraId; |
getglobal("PowaBarAuraAnimSpeedSliderText"):SetText(self.Text.nomSpeed.." : "..format("%.0f",SliderValue*100).."%"); |
self.Auras[auraId].speed = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarAuraAnimDurationSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraDurationSlider"):GetValue(); |
getglobal("PowaBarAuraDurationSliderText"):SetText(self.Text.nomDuration.." : "..SliderValue.." sec"); |
self.Auras[self.CurrentAuraId].duration = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarAuraSymSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraSymSlider"):GetValue(); |
if (SliderValue == 0) then |
getglobal("PowaBarAuraSymSliderText"):SetText(self.Text.nomSymetrie.." : "..self.Text.aucune); |
getglobal("AuraTexture"):SetTexCoord(0, 1, 0, 1); |
elseif (SliderValue == 1) then |
getglobal("PowaBarAuraSymSliderText"):SetText(self.Text.nomSymetrie.." : X"); |
getglobal("AuraTexture"):SetTexCoord(1, 0, 0, 1); |
elseif (SliderValue == 2) then |
getglobal("PowaBarAuraSymSliderText"):SetText(self.Text.nomSymetrie.." : Y"); |
getglobal("AuraTexture"):SetTexCoord(0, 1, 1, 0); |
elseif (SliderValue == 3) then |
getglobal("PowaBarAuraSymSliderText"):SetText(self.Text.nomSymetrie.." : XY"); |
getglobal("AuraTexture"):SetTexCoord(1, 0, 1, 0); |
end |
self.Auras[self.CurrentAuraId].symetrie = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarAuraDeformSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarAuraDeformSlider"):GetValue(); |
getglobal("PowaBarAuraDeformSliderText"):SetText(self.Text.nomDeform.." : "..format("%.2f", SliderValue)); |
self.Auras[self.CurrentAuraId].torsion = SliderValue; |
self:RedisplayAura(); |
end |
function PowaAuras:BarThresholdSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaBarThresholdSlider"):GetValue(); |
local auraId = self.CurrentAuraId; |
getglobal("PowaBarThresholdSliderText"):SetText(self.Text.nomThreshold.." : "..SliderValue.."%"); |
self.Auras[auraId].threshold = SliderValue; |
end |
------------------------------------------------------------------ |
-- Text Changed |
------------------------------------------------------------------ |
function PowaAuras:TextCoordXChanged() |
local thisText = getglobal("PowaBarAuraCoordXEdit"):GetText(); |
local thisNumber = tonumber(thisText); |
local auraId = self.CurrentAuraId; |
if (thisNumber == nil) then |
getglobal("PowaBarAuraCoordXSliderText"):SetText(self.Text.nomPos.." X : "..0); |
getglobal("PowaBarAuraCoordXSlider"):SetValue(0); |
getglobal("PowaBarAuraCoordXEdit"):SetText(0); |
self.Auras[auraId].x = 0; |
else |
if (thisNumber > 300 or thisNumber < -300) then |
getglobal("PowaBarAuraCoordXEdit"):SetText(thisNumber); |
self:DisableSlider("PowaBarAuraCoordXSlider"); |
else |
self:EnableSlider("PowaBarAuraCoordXSlider"); |
getglobal("PowaBarAuraCoordXSliderText"):SetText(self.Text.nomPos.." X : "..thisNumber); |
getglobal("PowaBarAuraCoordXSlider"):SetValue(thisNumber); |
end |
self.Auras[auraId].x = thisNumber; |
end |
self:RedisplayAura(); |
end |
function PowaAuras:TextCoordYChanged() |
local thisText = getglobal("PowaBarAuraCoordYEdit"):GetText(); |
local thisNumber = tonumber(thisText); |
local auraId = self.CurrentAuraId; |
if (thisNumber == nil) then |
getglobal("PowaBarAuraCoordSliderText"):SetText(self.Text.nomPos.." Y : "..0); |
getglobal("PowaBarAuraCoordSlider"):SetValue(0); |
getglobal("PowaBarAuraCoordYEdit"):SetText(0); |
self.Auras[auraId].y = 0; |
else |
if (thisNumber > 300 or thisNumber < -300) then |
getglobal("PowaBarAuraCoordYEdit"):SetText(thisNumber); |
self:DisableSlider("PowaBarAuraCoordSlider"); |
else |
self:EnableSlider("PowaBarAuraCoordSlider"); |
getglobal("PowaBarAuraCoordSliderText"):SetText(self.Text.nomPos.." Y : "..thisNumber); |
getglobal("PowaBarAuraCoordSlider"):SetValue(thisNumber); |
end |
self.Auras[auraId].y = thisNumber; |
end |
self:RedisplayAura(); |
end |
function PowaAuras:TextChanged() |
local oldText = getglobal("PowaBarBuffName"):GetText(); |
local auraId = self.CurrentAuraId; |
if (oldText ~= self.Auras[auraId].buffname) then |
self.Auras[auraId].buffname = getglobal("PowaBarBuffName"):GetText(); |
self.Auras[auraId].icon = ""; |
getglobal("PowaIconTexture"):SetTexture("Interface\\Icons\\Inv_Misc_QuestionMark"); |
end |
end |
function PowaAuras:MultiIDChanged() |
local oldText = getglobal("PowaBarMultiID"):GetText(); |
local auraId = self.CurrentAuraId; |
if (oldText == self.Auras[auraId].multiids) then -- no Change |
else |
self.Auras[auraId].multiids = getglobal("PowaBarMultiID"):GetText(); |
end |
end |
function PowaAuras:TooltipCheckChanged() |
local oldText = getglobal("PowaBarTooltipCheck"):GetText(); |
local auraId = self.CurrentAuraId; |
if (oldText == self.Auras[auraId].tooltipCheck) then -- no Change |
else |
self.Auras[auraId].tooltipCheck = getglobal("PowaBarTooltipCheck"):GetText(); |
end |
end |
function PowaAuras:StacksTextChanged() |
local aura = self.Auras[self.CurrentAuraId]; |
aura:SetStacks(getglobal("PowaBarBuffStacks"):GetText()); |
end |
function PowaAuras:UnitnTextChanged() |
local oldUnitnText = getglobal("PowaBarUnitn"):GetText(); |
local auraId = self.CurrentAuraId; |
if (oldUnitnText == self.Auras[auraId].unitn) then -- same text |
else |
self.Auras[auraId].unitn = getglobal("PowaBarUnitn"):GetText(); |
end |
end |
function PowaAuras:CustomTextChanged() |
local auraId = self.CurrentAuraId; |
self.Auras[auraId].customname = getglobal("PowaBarCustomTexName"):GetText(); |
self:RedisplayAura(); |
end |
function PowaAuras:AurasTextCancel() |
local auraId = self.CurrentAuraId; |
getglobal("PowaBarAurasText"):SetText(self.Auras[auraId].aurastext); |
end |
function PowaAuras:AurasTextChanged() |
local auraId = self.CurrentAuraId; |
self.Auras[auraId].aurastext = getglobal("PowaBarAurasText"):GetText(); |
--self:Message("aura text changed to ", self.Auras[auraId].aurastext); |
self:RedisplayAura(); |
end |
function PowaAuras:CustomSoundTextChanged() |
local oldCustomSound = getglobal("PowaBarCustomSound"):GetText(); |
local auraId = self.CurrentAuraId; |
if (oldCustomSound ~= self.Auras[auraId].customsound) then -- meme texte |
self.Auras[auraId].customsound = getglobal("PowaBarCustomSound"):GetText(); |
if not (self.Auras[auraId].customsound == "") then |
PlaySoundFile("Interface\\AddOns\\PowerAuras\\Sounds\\"..self.Auras[auraId].customsound); |
end |
end |
end |
--------------------------------- |
-- Checkboxes changed |
--------------------------------- |
function PowaAuras:InverseChecked() |
local aura = self.Auras[self.CurrentAuraId]; |
if (getglobal("PowaInverseButton"):GetChecked()) then |
aura.inverse = true; |
if (aura.bufftype == self.BuffTypes.OwnSpell or aura.bufftype == self.BuffTypes.ActionReady) then |
PowaEditorTab3:Show(); |
end |
else |
aura.inverse = false; |
if (aura.bufftype == self.BuffTypes.OwnSpell or aura.bufftype == self.BuffTypes.ActionReady) then |
PowaEditorTab3:Hide(); |
aura.Timer.enabled = false; |
self:DeleteTimerFrames(aura.id); |
end |
end |
end |
function PowaAuras:IgnoreMajChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaIgnoreMajButton"):GetChecked()) then |
self.Auras[auraId].ignoremaj = true; |
else |
self.Auras[auraId].ignoremaj = false; |
end |
end |
function PowaAuras:ExactChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaExactButton"):GetChecked()) then |
self.Auras[auraId].exact = true; |
else |
self.Auras[auraId].exact = false; |
end |
end |
function PowaAuras:GCDChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaGCDButton"):GetChecked()) then |
self.Auras[auraId].gcd = true; |
else |
self.Auras[auraId].gcd = false; |
end |
end |
function PowaAuras:TalentGroup1Checked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaTalentGroup1Button"):GetChecked()) then |
self.Auras[auraId].spec1 = true; |
else |
self.Auras[auraId].spec1 = false; |
end |
end |
function PowaAuras:TalentGroup2Checked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaTalentGroup2Button"):GetChecked()) then |
self.Auras[auraId].spec2 = true; |
else |
self.Auras[auraId].spec2 = false; |
end |
end |
function PowaAuras:MineChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaMineButton"):GetChecked()) then |
self.Auras[auraId].mine = true; |
else |
self.Auras[auraId].mine = false; |
end |
end |
function PowaAuras:CombatChecked(xnum) |
local auraId = self.CurrentAuraId; |
if (xnum == 1) then -- case InCombat cochee |
if (getglobal("PowaInCombatButton"):GetChecked()) then |
self.Auras[auraId].combat = 1; |
getglobal("PowaNotInCombatButton"):SetChecked(false); |
else |
self.Auras[auraId].combat = 0; |
end |
elseif (xnum == 2) then -- case NotInCombat cochee |
if (getglobal("PowaNotInCombatButton"):GetChecked()) then |
self.Auras[auraId].combat = 2; |
getglobal("PowaInCombatButton"):SetChecked(false); |
else |
self.Auras[auraId].combat = 1; |
end |
end |
end |
function PowaAuras:CheckedButtonOnClick(button, key) |
self.Auras[self.CurrentAuraId][key] = (button:GetChecked()~=nil); |
end |
function PowaAuras:RandomColorChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaRandomColorButton"):GetChecked()) then |
self.Auras[auraId].randomcolor = true; |
else |
self.Auras[auraId].randomcolor = false; |
end |
end |
function PowaAuras:TexModeChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaTexModeButton"):GetChecked()) then |
self.Auras[auraId].texmode = 1; |
else |
self.Auras[auraId].texmode = 2; |
end |
self:RedisplayAura(); |
end |
function PowaAuras:ThresholdInvertChecked(owner) |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaThresholdInvertButton"):GetChecked()) then |
self.Auras[auraId].thresholdinvert = true; |
else |
self.Auras[auraId].thresholdinvert = false; |
end |
end |
------------------------------------ |
function PowaAuras:OwntexChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaOwntexButton"):GetChecked()) then |
self.Auras[auraId].owntex = true; |
self.Auras[auraId].wowtex = false; |
self.Auras[auraId].customtex = false; |
self.Auras[auraId].textaura = false; |
getglobal("PowaWowTextureButton"):SetChecked(false); |
getglobal("PowaCustomTextureButton"):SetChecked(false); |
getglobal("PowaTextAuraButton"):SetChecked(false); |
getglobal("PowaBarAuraTextureSlider"):Show(); |
getglobal("PowaBarCustomTexName"):Hide(); |
getglobal("PowaBarAurasText"):Hide(); |
getglobal("PowaFontsButton"):Hide(); |
else |
self.Auras[auraId].owntex = false; |
end |
self:RedisplayAura(); |
end |
function PowaAuras:WowTexturesChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaWowTextureButton"):GetChecked()) then |
self.Auras[auraId].wowtex = true; |
self.Auras[auraId].owntex = false; |
self.Auras[auraId].customtex = false; |
self.Auras[auraId].textaura = false; |
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,#self.WowTextures); |
getglobal("PowaBarAuraTextureSlider"):SetValue(1); |
getglobal("PowaBarAuraTextureSliderHigh"):SetText(#self.WowTextures); |
getglobal("PowaOwntexButton"):SetChecked(false); |
getglobal("PowaCustomTextureButton"):SetChecked(false); |
getglobal("PowaTextAuraButton"):SetChecked(false); |
getglobal("PowaBarAuraTextureSlider"):Show(); |
getglobal("PowaBarCustomTexName"):Hide(); |
getglobal("PowaBarAurasText"):Hide(); |
getglobal("PowaFontsButton"):Hide(); |
else |
self.Auras[auraId].wowtex = false; |
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1,self.maxtextures); |
getglobal("PowaBarAuraTextureSlider"):SetValue(1); |
getglobal("PowaBarAuraTextureSliderHigh"):SetText(self.maxtextures); |
end |
PowaAuras:BarAuraTextureSliderChanged(); |
self:RedisplayAura(); |
end |
function PowaAuras:CustomTexturesChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaCustomTextureButton"):GetChecked()) then |
self.Auras[auraId].customtex = true; |
self.Auras[auraId].owntex = false; |
self.Auras[auraId].wowtex = false; |
self.Auras[auraId].textaura = false; |
getglobal("PowaBarAuraTextureSlider"):Hide(); |
getglobal("PowaBarCustomTexName"):Show(); |
getglobal("PowaBarCustomTexName"):SetText(self.Auras[auraId].customname); |
getglobal("PowaOwntexButton"):SetChecked(false); |
getglobal("PowaWowTextureButton"):SetChecked(false); |
getglobal("PowaTextAuraButton"):SetChecked(false); |
getglobal("PowaBarAurasText"):Hide(); |
getglobal("PowaFontsButton"):Hide(); |
else |
self.Auras[auraId].customtex = false; |
getglobal("PowaBarAuraTextureSlider"):Show(); |
getglobal("PowaBarCustomTexName"):Hide(); |
end |
PowaAuras:BarAuraTextureSliderChanged(); |
self:RedisplayAura(); |
end |
function PowaAuras:TextAuraChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaTextAuraButton"):GetChecked()) then |
self.Auras[auraId].textaura = true; |
self.Auras[auraId].owntex = false; |
self.Auras[auraId].wowtex = false; |
self.Auras[auraId].customtex = false; |
getglobal("PowaBarAuraTextureSlider"):Hide(); |
getglobal("PowaBarAurasText"):Show(); |
getglobal("PowaFontsButton"):Show(); |
getglobal("PowaBarAurasText"):SetText(self.Auras[auraId].aurastext); |
getglobal("PowaOwntexButton"):SetChecked(false); |
getglobal("PowaWowTextureButton"):SetChecked(false); |
getglobal("PowaCustomTextureButton"):SetChecked(false); |
getglobal("PowaBarCustomTexName"):Hide(); |
else |
self.Auras[auraId].textaura = false; |
getglobal("PowaBarAuraTextureSlider"):Show(); |
getglobal("PowaBarAurasText"):Hide(); |
getglobal("PowaFontsButton"):Hide(); |
end |
self:BarAuraTextureSliderChanged(); |
self:RedisplayAura(); |
end |
----------------------------------------------- |
-- Targets, Party, Raid, ... Checkboxes |
----------------------------------------------- |
function PowaAuras:TargetChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaTargetButton"):GetChecked()) then |
self.Auras[auraId].target = true; |
else |
self.Auras[auraId].target = false; |
end |
self:InitPage(); |
end |
function PowaAuras:TargetFriendChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaTargetFriendButton"):GetChecked()) then |
self.Auras[auraId].targetfriend = true; |
else |
self.Auras[auraId].targetfriend = false; |
end |
self:InitPage(); |
end |
function PowaAuras:PartyChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaPartyButton"):GetChecked()) then |
self.Auras[auraId].party = true; |
else |
self.Auras[auraId].party = false; |
end |
self:InitPage(); |
end |
function PowaAuras:GroupOrSelfChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaGroupOrSelfButton"):GetChecked()) then |
self.Auras[auraId].groupOrSelf = true; |
else |
self.Auras[auraId].groupOrSelf = false; |
end |
self:InitPage(); |
end |
function PowaAuras:FocusChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaFocusButton"):GetChecked()) then |
self.Auras[auraId].focus = true; |
else |
self.Auras[auraId].focus = false; |
end |
self:InitPage(); |
end |
function PowaAuras:RaidChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaRaidButton"):GetChecked()) then |
self.Auras[auraId].raid = true; |
else |
self.Auras[auraId].raid = false; |
end |
self:InitPage(); |
end |
function PowaAuras:GroupAnyChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaGroupAnyButton"):GetChecked()) then |
self.Auras[auraId].groupany = true; |
else |
self.Auras[auraId].groupany = false; |
end |
self:InitPage(); |
end |
function PowaAuras:OptunitnChecked() |
local auraId = self.CurrentAuraId; |
if (getglobal("PowaOptunitnButton"):GetChecked()) then |
self.Auras[auraId].optunitn = true; |
getglobal("PowaBarUnitn"):Show(); |
getglobal("PowaBarUnitn"):SetText(self.Auras[auraId].unitn); |
else |
self.Auras[auraId].optunitn = false; |
getglobal("PowaBarUnitn"):Hide(); |
end |
end |
------------------------------------------ |
-- Dropdownmenus |
------------------------------------------ |
function PowaAuras.DropDownMenu_Initialize(owner) |
local info; |
local aura = PowaAuras.Auras[PowaAuras.CurrentAuraId]; |
if (aura == nil) then |
aura = PowaAuras:AuraFactory(PowaAuras.BuffTypes.Buff, 0); |
end |
if (owner:GetName() == "PowaDropDownAnim1Button" or owner:GetName() == "PowaDropDownAnim1") then |
for i = 1, 10 do |
info = {}; |
info.text = PowaAuras.Anim[i]; |
info.func = PowaAuras.DropDownMenu_OnClickAnim1; |
UIDropDownMenu_AddButton(info); |
end |
UIDropDownMenu_SetSelectedValue(PowaDropDownAnim1, PowaAuras.Anim[aura.anim1]); |
elseif (owner:GetName() == "PowaDropDownAnim2Button" or owner:GetName() == "PowaDropDownAnim2") then |
for i = 0, 10 do |
info = {}; |
info.text = PowaAuras.Anim[i]; |
info.func = PowaAuras.DropDownMenu_OnClickAnim2; |
UIDropDownMenu_AddButton(info); |
end |
UIDropDownMenu_SetSelectedValue(PowaDropDownAnim2, PowaAuras.Anim[aura.anim2]); |
elseif (owner:GetName() == "PowaDropDownStanceButton" or owner:GetName() == "PowaDropDownStance") then |
if #(PowaAuras.PowaStance) > 0 then |
info = {func = PowaAuras.DropDownMenu_OnClickStance, owner = owner}; |
for i = 1, #(PowaAuras.PowaStance) do |
info.text = PowaAuras.PowaStance[i]; |
info.value = i; |
UIDropDownMenu_AddButton(info); |
end |
end |
UIDropDownMenu_SetSelectedValue(PowaDropDownStance, PowaAuras.PowaStance[aura.stance]); |
UIDropDownMenu_SetWidth(PowaDropDownStance, 210, 1); |
elseif (owner:GetName() == "PowaDropDownSoundButton" or owner:GetName() == "PowaDropDownSound") then |
for i = 0, 15 do |
info = {}; |
info.text = PowaAuras.Sound[i]; |
info.func = PowaAuras.DropDownMenu_OnClickSound; |
info.value = i; |
UIDropDownMenu_AddButton(info); |
end |
UIDropDownMenu_SetSelectedValue(PowaDropDownSound, PowaAuras.Sound[aura.sound]); |
UIDropDownMenu_SetWidth(PowaDropDownSound, 220, 1); |
elseif (owner:GetName() == "PowaDropDownAnimBeginButton" or owner:GetName() == "PowaDropDownAnimBegin") then |
info = {func = PowaAuras.DropDownMenu_OnClickBegin, owner = owner}; |
for i = 0, #PowaAuras.BeginAnimDisplay do |
info.text = PowaAuras.BeginAnimDisplay[i]; |
info.value = i; |
UIDropDownMenu_AddButton(info); |
end |
UIDropDownMenu_SetSelectedValue(PowaDropDownAnimBegin, PowaAuras.BeginAnimDisplay[aura.begin]); |
elseif (owner:GetName() == "PowaDropDownAnimEndButton" or owner:GetName() == "PowaDropDownAnimEnd") then |
info = {func = PowaAuras.DropDownMenu_OnClickEnd, owner = owner}; |
for i = 0, #PowaAuras.EndAnimDisplay do |
info.text = PowaAuras.EndAnimDisplay[i]; |
info.value = i; |
UIDropDownMenu_AddButton(info); |
end |
UIDropDownMenu_SetSelectedValue(PowaDropDownAnimEnd, PowaAuras.EndAnimDisplay[aura.finish]); |
elseif (owner:GetName() == "PowaDropDownBuffTypeButton" or owner:GetName() == "PowaDropDownBuffType") then |
--PowaAuras:Message("DropDownMenu_Initialize for buff type"); |
info = {func = PowaAuras.DropDownMenu_OnClickBuffType, owner = owner}; |
info.text = PowaAuras.Text.nomCheckBuff; |
info.value = PowaAuras.BuffTypes.Buff; |
UIDropDownMenu_AddButton(info); --- BUFF #1 |
info.text = PowaAuras.Text.nomCheckDebuff; |
info.value = PowaAuras.BuffTypes.Debuff; |
UIDropDownMenu_AddButton(info); --- DEBUFF #2 |
info.text = PowaAuras.Text.nomCheckDebuffType; |
info.value = PowaAuras.BuffTypes.TypeDebuff; |
UIDropDownMenu_AddButton(info); --- DEBUFF TYPE #3 |
info.text = PowaAuras.Text.nomCheckAoeDebuff; |
info.value = PowaAuras.BuffTypes.AoE; |
UIDropDownMenu_AddButton(info); --- AOE DEBUFF #4 |
info.text = PowaAuras.Text.nomCheckEnchant; |
info.value = PowaAuras.BuffTypes.Enchant; |
UIDropDownMenu_AddButton(info); --- ENCHANT #5 |
info.text = PowaAuras.Text.nomCheckCombo; |
info.value = PowaAuras.BuffTypes.Combo; |
UIDropDownMenu_AddButton(info); --- COMBO #6 |
info.text = PowaAuras.Text.nomCheckSkill; |
info.value = PowaAuras.BuffTypes.ActionReady; |
UIDropDownMenu_AddButton(info); --- ACTION USABLE #7 |
info.text = PowaAuras.Text.nomCheckHealth; |
info.value = PowaAuras.BuffTypes.Health; |
UIDropDownMenu_AddButton(info); --- HEALTH #8 |
info.text = PowaAuras.Text.nomCheckMana; |
info.value = PowaAuras.BuffTypes.Mana; |
UIDropDownMenu_AddButton(info); --- MANA #9 |
info.text = PowaAuras.Text.nomCheckRageEnergy; |
info.value = PowaAuras.BuffTypes.EnergyRagePower; |
UIDropDownMenu_AddButton(info); --- RAGE/ENERGY/RUNICPOWER #10 |
info.text = PowaAuras.Text.nomCheckAggro; |
info.value = PowaAuras.BuffTypes.Aggro; |
UIDropDownMenu_AddButton(info); --- AGGRO #11 |
info.text = PowaAuras.Text.nomCheckPvP; |
info.value = PowaAuras.BuffTypes.PvP; |
UIDropDownMenu_AddButton(info); --- PVP FLAG #12 |
info.text = PowaAuras.Text.nomCheckSpells; |
info.value = PowaAuras.BuffTypes.SpellAlert; |
UIDropDownMenu_AddButton(info); --- SPELLALERT #13 |
info.text = PowaAuras.Text.nomCheckStance; |
info.value = PowaAuras.BuffTypes.Stance; |
UIDropDownMenu_AddButton(info); --- STANCE #14 |
info.text = PowaAuras.Text.nomCheckOwnSpell; |
info.value = PowaAuras.BuffTypes.OwnSpell; |
UIDropDownMenu_AddButton(info); --- ownSpell #15 |
UIDropDownMenu_SetSelectedValue(PowaDropDownBuffType, aura.bufftype); |
end |
end |
function PowaAuras.DropDownMenu_OnClickBuffType() |
--PowaAuras:Message("DropDownMenu_OnClickBuffType bufftype ", this.value, " for aura ", PowaAuras.CurrentAuraId, " ", this.owner); |
UIDropDownMenu_SetSelectedValue(this.owner, this.value); |
aura = PowaAuras:AuraFactory(this.value, PowaAuras.CurrentAuraId, PowaAuras.Auras[PowaAuras.CurrentAuraId]); |
aura.icon= ""; |
PowaAuras.Auras[PowaAuras.CurrentAuraId] = aura |
if (PowaAuras.CurrentAuraId > 120) then |
PowaGlobalSet[PowaAuras.CurrentAuraId] = aura; |
end |
if (aura.bufftype == PowaAuras.BuffTypes.AoE or aura.bufftype == PowaAuras.BuffTypes.Combo) then |
aura.combat = 0; |
end |
if (aura.bufftype == PowaAuras.BuffTypes.TypeDebuff |
or aura.bufftype == PowaAuras.BuffTypes.AoE |
or aura.bufftype == PowaAuras.BuffTypes.Enchant |
or aura.bufftype == PowaAuras.BuffTypes.Combo |
or aura.bufftype == PowaAuras.BuffTypes.Health |
or aura.bufftype == PowaAuras.BuffTypes.Mana |
or aura.bufftype == PowaAuras.BuffTypes.EnergyRagePower |
or aura.bufftype == PowaAuras.BuffTypes.Aggro |
or aura.bufftype == PowaAuras.BuffTypes.PvP |
or aura.bufftype == PowaAuras.BuffTypes.Stance) then |
aura.owntex = false; |
end |
PowaAuras:InitPage(); |
end |
function PowaAuras.DropDownMenu_OnClickAnim1(owner) |
local optionID = owner:GetID(); |
local auraId = PowaAuras.CurrentAuraId; |
UIDropDownMenu_SetSelectedID(PowaDropDownAnim1, optionID); |
local optionName = UIDropDownMenu_GetText(PowaDropDownAnim1); |
UIDropDownMenu_SetSelectedValue(PowaDropDownAnim1, optionName); |
PowaAuras.Auras[auraId].anim1 = optionID; |
PowaAuras:RedisplayAura(); |
end |
function PowaAuras.DropDownMenu_OnClickAnim2(owner) |
local optionID = owner:GetID(); |
local auraId = PowaAuras.CurrentAuraId; |
UIDropDownMenu_SetSelectedID(PowaDropDownAnim2, optionID); |
local optionName = UIDropDownMenu_GetText(PowaDropDownAnim2); |
UIDropDownMenu_SetSelectedValue(PowaDropDownAnim2, optionName); |
PowaAuras.Auras[auraId].anim2 = optionID -1; |
PowaAuras:RedisplayAura(); |
end |
function PowaAuras.DropDownMenu_OnClickSound(owner) |
local optionID = owner:GetID(); |
local aura = PowaAuras.Auras[PowaAuras.CurrentAuraId]; |
UIDropDownMenu_SetSelectedID(PowaDropDownSound, optionID); |
local optionName = UIDropDownMenu_GetText(PowaDropDownSound); |
UIDropDownMenu_SetSelectedValue(PowaDropDownSound, optionName); |
aura.sound = optionID -1; |
if (aura.sound == 1) then |
aura.soundfile = "LEVELUP"; |
elseif (aura.sound == 2) then |
aura.soundfile = "LOOTWINDOWCOINSOUND"; |
elseif (aura.sound == 3) then |
aura.soundfile = "MapPing"; |
elseif (aura.sound == 4) then |
aura.soundfile = "UndeadExploration"; |
elseif (aura.sound == 5) then |
aura.soundfile = "QUESTADDED"; |
elseif (aura.sound == 6) then |
aura.soundfile = "QUESTCOMPLETED"; |
elseif (aura.sound == 7) then |
aura.soundfile = "WriteQuest"; |
elseif (aura.sound == 8) then |
aura.soundfile = "Fishing Reel in"; |
elseif (aura.sound == 9) then |
aura.soundfile = "igPVPUpdate"; |
elseif (aura.sound == 10) then |
aura.soundfile = "ReadyCheck"; |
elseif (aura.sound == 11) then |
aura.soundfile = "RaidWarning"; |
elseif (aura.sound == 12) then |
aura.soundfile = "AuctionWindowOpen"; |
elseif (aura.sound == 13) then |
aura.soundfile = "AuctionWindowClose"; |
elseif (aura.sound == 14) then |
aura.soundfile = "TellMessage"; |
elseif (aura.sound == 15) then |
aura.soundfile = "igBackPackOpen"; |
elseif (aura.sound == 0) then |
aura.soundfile = ""; |
end |
if not(aura.soundfile == "") or not (aura.soundfile == nil)then |
PlaySound(aura.soundfile); |
end |
end |
function PowaAuras.DropDownMenu_OnClickStance() |
UIDropDownMenu_SetSelectedValue(this.owner, this.value); |
local auraId = PowaAuras.CurrentAuraId; |
if (PowaAuras.Auras[auraId].stance ~= this.value) then |
PowaAuras.Auras[auraId].stance = this.value; |
PowaAuras.Auras[auraId].icon = ""; |
end |
PowaAuras:InitPage(); |
end |
function PowaAuras.DropDownMenu_OnClickBegin(owner) |
UIDropDownMenu_SetSelectedID(this.owner, this.value + 1); |
local optionName = UIDropDownMenu_GetText(PowaDropDownAnimBegin); |
UIDropDownMenu_SetSelectedValue(PowaDropDownAnimBegin, optionName); |
PowaAuras.Auras[PowaAuras.CurrentAuraId].begin = this.value; |
PowaAuras:RedisplayAura(); |
end |
function PowaAuras.DropDownMenu_OnClickEnd(owner) |
local optionID = owner:GetID(); |
local auraId = PowaAuras.CurrentAuraId; |
UIDropDownMenu_SetSelectedID(PowaDropDownAnimEnd, optionID); |
local optionName = UIDropDownMenu_GetText(PowaDropDownAnimEnd); |
UIDropDownMenu_SetSelectedValue(PowaDropDownAnimEnd, optionName); |
PowaAuras.Auras[auraId].finish = optionID - 1; |
PowaAuras:RedisplayAura(); |
end |
---------------------------------------------------------- |
-- OPTIONS DEPLACEMENT |
function PowaAuras:Bar_MouseDown(owner, button, frmFrame) |
if( button == "LeftButton") then |
getglobal( frmFrame ):StartMoving( ); |
end |
end |
function PowaAuras:Bar_MouseUp(owner, button, frmFrame) |
getglobal( frmFrame ):StopMovingOrSizing( ); |
end |
---------------------------------------------------------- |
-- COLOR PICKER |
function PowaAuras.SetColor() |
PowaAuras:SetAuraColor(ColorPickerFrame:GetColorRGB()); |
end |
function PowaAuras.CancelColor() |
PowaAuras:SetAuraColor(ColorPickerFrame.previousValues.r, ColorPickerFrame.previousValues.g, ColorPickerFrame.previousValues.b); |
end |
function PowaAuras:SetAuraColor(r, g, b) |
--self:Message("SetColor r=", r, " g=",g, " b=", b); |
local swatch = getglobal("PowaColorNormalTexture"); -- juste le visuel |
local frame = getglobal("PowaColor_SwatchBg"); -- enregistre la couleur |
swatch:SetVertexColor(r,g,b); |
frame.r = r; |
frame.g = g; |
frame.b = b; |
self.Auras[self.CurrentAuraId].r = r; |
self.Auras[self.CurrentAuraId].g = g; |
self.Auras[self.CurrentAuraId].b = b; |
getglobal("AuraTexture"):SetVertexColor(r,g,b); |
self:RedisplayAura(); |
end |
function PowaAuras:OpenColorPicker() |
CloseMenus(); |
if ColorPickerFrame:IsVisible() then |
PowaAuras.CancelColor(); |
ColorPickerFrame:Hide(); |
else |
button = getglobal("PowaColor_SwatchBg"); |
ColorPickerFrame.func = self.SetColor -- button.swatchFunc; |
ColorPickerFrame:SetColorRGB(button.r, button.g, button.b); |
ColorPickerFrame.previousValues = {r = button.r, g = button.g, b = button.b, opacity = button.opacity}; |
ColorPickerFrame.cancelFunc = self.CancelColor |
ColorPickerFrame:SetPoint("TOPLEFT", "PowaBarConfigFrame", "TOPRIGHT", 0, 0) |
ColorPickerFrame:Show(); |
end |
end |
---------------------------------------------------------- |
-- FONT SELECTOR |
function PowaAuras:FontSelectorOnShow(owner) |
owner:SetBackdropBorderColor(0.9, 1.0, 0.95); |
owner:SetBackdropColor(0.6, 0.6, 0.6); |
end |
function PowaAuras:OpenFontSelector(owner) |
CloseMenus(); |
if (FontSelectorFrame:IsVisible()) then |
getglobal("FontSelectorFrame"):Hide(); |
else |
FontSelectorFrame.selectedFont = self.Auras[self.CurrentAuraId].aurastextfont; |
getglobal("FontSelectorFrame"):Show(); |
end |
end |
function PowaAuras:FontSelectorOkay(owner) |
if FontSelectorFrame.selectedFont then |
self.Auras[self.CurrentAuraId].aurastextfont = FontSelectorFrame.selectedFont; |
else |
self.Auras[self.CurrentAuraId].aurastextfont = 1; |
end |
self:RedisplayAura(); |
self:FontSelectorClose(owner); |
end |
function PowaAuras:FontSelectorCancel(owner) |
self:FontSelectorClose(owner); |
end |
function PowaAuras:FontSelectorClose(owner) |
if (FontSelectorFrame:IsVisible()) then |
getglobal("FontSelectorFrame"):Hide(); |
end |
end |
function PowaAuras:FontButton_OnClick(owner) |
FontSelectorFrame.selectedFont = getglobal("FontSelectorEditorScrollButton"..owner:GetID()).font; |
self:FontScrollBar_Update(owner); |
end |
function PowaAuras.FontScrollBar_Update(owner) |
local fontOffset = FauxScrollFrame_GetOffset(FontSelectorEditorScrollFrame); |
local fontIndex; |
local fontName, namestart, nameend; |
for i=1, 10, 1 do |
fontIndex = fontOffset + i; |
fontName = PowaAuras.Fonts[fontIndex]; |
fontText = getglobal("FontSelectorEditorScrollButton"..i.."Text"); |
fontButton = getglobal("FontSelectorEditorScrollButton"..i); |
fontButton.font = fontIndex; |
namestart = string.find(fontName, "\\", 1, true); |
nameend = string.find(fontName, ".", 1, true); |
if namestart and nameend and (nameend > namestart) then |
fontName = string.sub(fontName, namestart+1, nameend-1); |
while string.find(fontName, "\\", 1, true) do |
namestart = string.find(fontName, "\\", 1, true) |
fontName = string.sub(fontName, namestart+1); |
end |
end |
fontText:SetFont(PowaAuras.Fonts[fontIndex], 14, "OUTLINE, MONOCHROME"); |
fontText:SetText(fontName); |
if FontSelectorFrame.selectedFont == fontIndex then |
fontButton:LockHighlight(); |
else |
fontButton:UnlockHighlight(); |
end |
end |
FauxScrollFrame_Update(FontSelectorEditorScrollFrame, #PowaAuras.Fonts, 10, 16 ); |
end |
---------------------------------------------------------------------- |
function PowaAuras:EditorShow() |
if (PowaBarConfigFrame:IsVisible()) then |
self:EditorClose(); |
return; |
end |
local aura = self.Auras[self.CurrentAuraId]; |
if (aura) then --- ouvre seulement si l'effet existe |
if (aura.Timer.enabled) then |
self:CreateTimerFrameIfMissing(aura.id); |
end |
self:InitPage(); |
getglobal("PowaBarConfigFrame"):Show(); |
PlaySound("TalentScreenOpen"); |
end |
end |
function PowaAuras:EditorClose() --- ferme la fenetre d'option |
if (PowaBarConfigFrame:IsVisible()) then |
if (FontSelectorFrame:IsVisible()) then |
getglobal("FontSelectorFrame"):Hide(); |
end |
if (ColorPickerFrame:IsVisible()) then |
self.CancelColor(); |
ColorPickerFrame:Hide(); |
end |
getglobal("PowaBarConfigFrame"):Hide(); |
PlaySound("TalentScreenClose"); |
end |
end |
-- <<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
-- <<<<<<<<<<<<<<<<<<< ADV. OPTIONS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
-- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
function PowaAuras:UpdateOptionsTimer(auraId) |
if (self.Initialising) then return; end |
local timerOpts = self.Auras[auraId].Timer; |
local frame1 = self.TimerFrame[auraId][1]; |
frame1:SetAlpha(timerOpts.a); |
frame1:SetWidth(20 * timerOpts.h); |
frame1:SetHeight(20 * timerOpts.h); |
frame1:SetPoint("Center", timerOpts.x, timerOpts.y); |
local frame2 = self.TimerFrame[auraId][2]; |
frame2:SetAlpha(timerOpts.a * 0.75); |
frame2:SetWidth(14 * timerOpts.h); |
frame2:SetHeight(14 * timerOpts.h); |
frame2:SetPoint("LEFT", frame1, "RIGHT", 1, -1.5); |
end |
function PowaAuras:UpdateOptionsStacks(auraId) |
if (self.Initialising) then return; end |
local stackOpts = self.Auras[auraId].Stacks; |
local frame1 = self.StacksFrame[auraId]; |
frame:SetAlpha(stackOpts.a); |
frame:SetWidth(20 * stackOpts.h); |
frame:SetHeight(20 * stackOpts.h); |
frame:SetPoint("Center", stackOpts.x, stackOpts.y); |
end |
function PowaAuras:ShowTimerChecked(control) |
if (self.Initialising) then return; end |
if (control:GetChecked()) then |
self.Auras[self.CurrentAuraId].Timer.enabled = true; |
self:CreateTimerFrameIfMissing(self.CurrentAuraId); |
else |
self.Auras[self.CurrentAuraId].Timer.enabled = false; |
self:HideTimerFrames(self.CurrentAuraId); |
self.TimerFrame[self.CurrentAuraId] = nil; |
end |
end |
function PowaAuras:TimerAlphaSliderChanged() |
local SliderValue = getglobal("PowaTimerAlphaSlider"):GetValue(); |
if (self.Initialising) then return; end -- desactived |
getglobal("PowaTimerAlphaSliderText"):SetText(self.Text.nomAlpha.." : "..format("%.2f", SliderValue) ); |
self.Auras[self.CurrentAuraId].Timer.a = SliderValue; |
self:CreateTimerFrameIfMissing(self.CurrentAuraId); |
end |
function PowaAuras:TimerSizeSliderChanged() |
local SliderValue = getglobal("PowaTimerSizeSlider"):GetValue(); |
if (self.Initialising) then return; end -- desactived |
getglobal("PowaTimerSizeSliderText"):SetText(self.Text.nomTaille.." : "..format("%.2f", SliderValue) ); |
self.Auras[self.CurrentAuraId].Timer.h = SliderValue; |
self:CreateTimerFrameIfMissing(self.CurrentAuraId); |
end |
function PowaAuras:TimerCoordSliderChanged() |
local SliderValue = getglobal("PowaTimerCoordSlider"):GetValue(); |
if (self.Initialising) then return; end -- desactived |
getglobal("PowaTimerCoordSliderText"):SetText(self.Text.nomPos.." Y : "..SliderValue); |
self.Auras[self.CurrentAuraId].Timer.y = SliderValue; |
self:CreateTimerFrameIfMissing(self.CurrentAuraId); |
end |
function PowaAuras:TimerCoordXSliderChanged() |
local SliderValue = getglobal("PowaTimerCoordXSlider"):GetValue(); |
if (self.Initialising) then return; end -- desactived |
getglobal("PowaTimerCoordXSliderText"):SetText(self.Text.nomPos.." X : "..SliderValue); |
self.Auras[self.CurrentAuraId].Timer.x = SliderValue; |
self:CreateTimerFrameIfMissing(self.CurrentAuraId); |
end |
function PowaAuras:TimerDurationSliderChanged() |
if (self.Initialising) then return; end |
local SliderValue = getglobal("PowaTimerDurationSlider"):GetValue(); |
getglobal("PowaTimerDurationSliderText"):SetText(self.Text.nomTimerDuration.." : "..SliderValue.." sec"); |
self.Auras[self.CurrentAuraId].timerduration = SliderValue; |
self:CreateTimerFrameIfMissing(self.CurrentAuraId); |
end |
function PowaAuras:TimerChecked(control, setting) |
if (self.Initialising) then return; end |
if (control:GetChecked()) then |
self.Auras[self.CurrentAuraId].Timer[setting] = true; |
else |
self.Auras[self.CurrentAuraId].Timer[setting] = false; |
end |
self:HideTimerFrames(self.CurrentAuraId); |
self.TimerFrame[self.CurrentAuraId] = nil; |
self:CreateTimerFrameIfMissing(self.CurrentAuraId); |
end |
function PowaAuras:TimerTransparentChecked(control) |
if (self.Initialising) then return; end |
if (control:GetChecked()) then |
self.Auras[self.CurrentAuraId].Timer.Transparent = true; |
else |
self.Auras[self.CurrentAuraId].Timer.Transparent = false; |
end |
self:HideTimerFrames(self.CurrentAuraId); |
self.TimerFrame[self.CurrentAuraId] = nil; |
self:CreateTimerFrameIfMissing(self.CurrentAuraId); |
end |
-- ----------------------------------------------------------- LIGNE DE COMMANDE |
function PowaAuras_CommanLine(msg) |
if (msg=="dump") then |
PowaAuras:Dump(); |
PowaAuras:Message("State dumped to"); -- OK |
PowaAuras:Message("WTF \\ Account \\ <ACCOUNT> \\ "..GetRealmName().." \\ "..UnitName("player").." \\ SavedVariables \\ PowerAuras.lua"); -- OK |
PowaAuras:Message("You must log-out to save the values to disk (at end of fight/raid is fine)"); -- OK |
else |
PowaAuras:MainOptionShow(); |
end |
end |
------------------------------------ |
-- Enable/Disable Options Functions |
------------------------------------ |
function PowaAuras:DisableSlider(slider) |
getglobal(slider):EnableMouse(false); |
getglobal(slider.."Text"):SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); |
getglobal(slider.."Low"):SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); |
getglobal(slider.."High"):SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); |
end |
function PowaAuras:EnableSlider(slider) |
getglobal(slider):EnableMouse(true); |
getglobal(slider.."Text"):SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b); |
getglobal(slider.."Low"):SetTextColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b); |
getglobal(slider.."High"):SetTextColor(HIGHLIGHT_FONT_COLOR.r, HIGHLIGHT_FONT_COLOR.g, HIGHLIGHT_FONT_COLOR.b); |
end |
function PowaAuras:DisableTextfield(textfield) |
getglobal(textfield):Hide(); |
getglobal(textfield.."Text"):SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); |
end |
function PowaAuras:EnableTextfield(textfield) |
getglobal(textfield):Show(); |
getglobal(textfield.."Text"):SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); |
end |
function PowaAuras:DisableCheckBox(checkBox) |
getglobal(checkBox):Disable(); |
getglobal(checkBox.."Text"):SetTextColor(GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b); |
end |
function PowaAuras:EnableCheckBox(checkBox, checked) |
getglobal(checkBox):Enable(); |
getglobal(checkBox.."Text"):SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b); |
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="CallbackHandler-1.0.lua"/> |
</Ui> |
--[[ $Id: CallbackHandler-1.0.lua 60697 2008-02-09 16:51:20Z nevcairiel $ ]] |
local MAJOR, MINOR = "CallbackHandler-1.0", 3 |
local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR) |
if not CallbackHandler then return end -- No upgrade needed |
local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end} |
local type = type |
local pcall = pcall |
local pairs = pairs |
local assert = assert |
local concat = table.concat |
local loadstring = loadstring |
local next = next |
local select = select |
local type = type |
local xpcall = xpcall |
local function errorhandler(err) |
return geterrorhandler()(err) |
end |
local function CreateDispatcher(argCount) |
local code = [[ |
local next, xpcall, eh = ... |
local method, ARGS |
local function call() method(ARGS) end |
local function dispatch(handlers, ...) |
local index |
index, method = next(handlers) |
if not method then return end |
local OLD_ARGS = ARGS |
ARGS = ... |
repeat |
xpcall(call, eh) |
index, method = next(handlers, index) |
until not method |
ARGS = OLD_ARGS |
end |
return dispatch |
]] |
local ARGS, OLD_ARGS = {}, {} |
for i = 1, argCount do ARGS[i], OLD_ARGS[i] = "arg"..i, "old_arg"..i end |
code = code:gsub("OLD_ARGS", concat(OLD_ARGS, ", ")):gsub("ARGS", concat(ARGS, ", ")) |
return assert(loadstring(code, "safecall Dispatcher["..argCount.."]"))(next, xpcall, errorhandler) |
end |
local Dispatchers = setmetatable({}, {__index=function(self, argCount) |
local dispatcher = CreateDispatcher(argCount) |
rawset(self, argCount, dispatcher) |
return dispatcher |
end}) |
-------------------------------------------------------------------------- |
-- CallbackHandler:New |
-- |
-- target - target object to embed public APIs in |
-- RegisterName - name of the callback registration API, default "RegisterCallback" |
-- UnregisterName - name of the callback unregistration API, default "UnregisterCallback" |
-- UnregisterAllName - name of the API to unregister all callbacks, default "UnregisterAllCallbacks". false == don't publish this API. |
function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAllName, OnUsed, OnUnused) |
-- TODO: Remove this after beta has gone out |
assert(not OnUsed and not OnUnused, "ACE-80: OnUsed/OnUnused are deprecated. Callbacks are now done to registry.OnUsed and registry.OnUnused") |
RegisterName = RegisterName or "RegisterCallback" |
UnregisterName = UnregisterName or "UnregisterCallback" |
if UnregisterAllName==nil then -- false is used to indicate "don't want this method" |
UnregisterAllName = "UnregisterAllCallbacks" |
end |
-- we declare all objects and exported APIs inside this closure to quickly gain access |
-- to e.g. function names, the "target" parameter, etc |
-- Create the registry object |
local events = setmetatable({}, meta) |
local registry = { recurse=0, events=events } |
-- registry:Fire() - fires the given event/message into the registry |
function registry:Fire(eventname, ...) |
if not rawget(events, eventname) or not next(events[eventname]) then return end |
local oldrecurse = registry.recurse |
registry.recurse = oldrecurse + 1 |
Dispatchers[select('#', ...) + 1](events[eventname], eventname, ...) |
registry.recurse = oldrecurse |
if registry.insertQueue and oldrecurse==0 then |
-- Something in one of our callbacks wanted to register more callbacks; they got queued |
for eventname,callbacks in pairs(registry.insertQueue) do |
local first = not rawget(events, eventname) or not next(events[eventname]) -- test for empty before. not test for one member after. that one member may have been overwritten. |
for self,func in pairs(callbacks) do |
events[eventname][self] = func |
-- fire OnUsed callback? |
if first and registry.OnUsed then |
registry.OnUsed(registry, target, eventname) |
first = nil |
end |
end |
end |
registry.insertQueue = nil |
end |
end |
-- Registration of a callback, handles: |
-- self["method"], leads to self["method"](self, ...) |
-- self with function ref, leads to functionref(...) |
-- "addonId" (instead of self) with function ref, leads to functionref(...) |
-- all with an optional arg, which, if present, gets passed as first argument (after self if present) |
target[RegisterName] = function(self, eventname, method, ... --[[actually just a single arg]]) |
if type(eventname) ~= "string" then |
error("Usage: "..RegisterName.."(eventname, method[, arg]): 'eventname' - string expected.", 2) |
end |
method = method or eventname |
local first = not rawget(events, eventname) or not next(events[eventname]) -- test for empty before. not test for one member after. that one member may have been overwritten. |
if type(method) ~= "string" and type(method) ~= "function" then |
error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): 'methodname' - string or function expected.", 2) |
end |
local regfunc |
if type(method) == "string" then |
-- self["method"] calling style |
if type(self) ~= "table" then |
error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): self was not a table?", 2) |
elseif self==target then |
error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): do not use Library:"..RegisterName.."(), use your own 'self'", 2) |
elseif type(self[method]) ~= "function" then |
error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): 'methodname' - method '"..tostring(method).."' not found on self.", 2) |
end |
if select("#",...)>=1 then -- this is not the same as testing for arg==nil! |
local arg=select(1,...) |
regfunc = function(...) self[method](self,arg,...) end |
else |
regfunc = function(...) self[method](self,...) end |
end |
else |
-- function ref with self=object or self="addonId" |
if type(self)~="table" and type(self)~="string" then |
error("Usage: "..RegisterName.."(self or \"addonId\", eventname, method): 'self or addonId': table or string expected.", 2) |
end |
if select("#",...)>=1 then -- this is not the same as testing for arg==nil! |
local arg=select(1,...) |
regfunc = function(...) method(arg,...) end |
else |
regfunc = method |
end |
end |
if events[eventname][self] or registry.recurse<1 then |
-- if registry.recurse<1 then |
-- we're overwriting an existing entry, or not currently recursing. just set it. |
events[eventname][self] = regfunc |
-- fire OnUsed callback? |
if registry.OnUsed and first then |
registry.OnUsed(registry, target, eventname) |
end |
else |
-- we're currently processing a callback in this registry, so delay the registration of this new entry! |
-- yes, we're a bit wasteful on garbage, but this is a fringe case, so we're picking low implementation overhead over garbage efficiency |
registry.insertQueue = registry.insertQueue or setmetatable({},meta) |
registry.insertQueue[eventname][self] = regfunc |
end |
end |
-- Unregister a callback |
target[UnregisterName] = function(self, eventname) |
if not self or self==target then |
error("Usage: "..UnregisterName.."(eventname): bad 'self'", 2) |
end |
if type(eventname) ~= "string" then |
error("Usage: "..UnregisterName.."(eventname): 'eventname' - string expected.", 2) |
end |
if rawget(events, eventname) and events[eventname][self] then |
events[eventname][self] = nil |
-- Fire OnUnused callback? |
if registry.OnUnused and not next(events[eventname]) then |
registry.OnUnused(registry, target, eventname) |
end |
end |
if registry.insertQueue and rawget(registry.insertQueue, eventname) and registry.insertQueue[eventname][self] then |
registry.insertQueue[eventname][self] = nil |
end |
end |
-- OPTIONAL: Unregister all callbacks for given selfs/addonIds |
if UnregisterAllName then |
target[UnregisterAllName] = function(...) |
if select("#",...)<1 then |
error("Usage: "..UnregisterAllName.."([whatFor]): missing 'self' or \"addonId\" to unregister events for.", 2) |
end |
if select("#",...)==1 and ...==target then |
error("Usage: "..UnregisterAllName.."([whatFor]): supply a meaningful 'self' or \"addonId\"", 2) |
end |
for i=1,select("#",...) do |
local self = select(i,...) |
if registry.insertQueue then |
for eventname, callbacks in pairs(registry.insertQueue) do |
if callbacks[self] then |
callbacks[self] = nil |
end |
end |
end |
for eventname, callbacks in pairs(events) do |
if callbacks[self] then |
callbacks[self] = nil |
-- Fire OnUnused callback? |
if registry.OnUnused and not next(callbacks) then |
registry.OnUnused(registry, target, eventname) |
end |
end |
end |
end |
end |
end |
return registry |
end |
-- CallbackHandler purposefully does NOT do explicit embedding. Nor does it |
-- try to upgrade old implicit embeds since the system is selfcontained and |
-- relies on closures to work. |
-- LibStub is a simple versioning stub meant for use in Libraries. http://www.wowace.com/wiki/LibStub for more info |
-- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke |
local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2 -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS! |
local LibStub = _G[LIBSTUB_MAJOR] |
if not LibStub or LibStub.minor < LIBSTUB_MINOR then |
LibStub = LibStub or {libs = {}, minors = {} } |
_G[LIBSTUB_MAJOR] = LibStub |
LibStub.minor = LIBSTUB_MINOR |
function LibStub:NewLibrary(major, minor) |
assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)") |
minor = assert(tonumber(strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.") |
local oldminor = self.minors[major] |
if oldminor and oldminor >= minor then return nil end |
self.minors[major], self.libs[major] = minor, self.libs[major] or {} |
return self.libs[major], oldminor |
end |
function LibStub:GetLibrary(major, silent) |
if not self.libs[major] and not silent then |
error(("Cannot find a library instance of %q."):format(tostring(major)), 2) |
end |
return self.libs[major], self.minors[major] |
end |
function LibStub:IterateLibraries() return pairs(self.libs) end |
setmetatable(LibStub, { __call = LibStub.GetLibrary }) |
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="LibStub\LibStub.lua" /> |
<Script file="LibBanzai-2.0.lua" /> |
</Ui> |
--[[ |
Name: LibBanzai-2.0 |
Revision: $Revision: 72249 $ |
Author(s): Rabbit (rabbit.magtheridon@gmail.com), maia |
Documentation: http://www.wowace.com/index.php/Banzai-2.0_API_Documentation |
SVN: http://svn.wowace.com/wowace/trunk/BanzaiLib/Banzai-2.0 |
Description: Aggro notification library. |
Dependencies: LibStub |
]] |
------------------------------------------------------------------------------- |
-- Locals |
------------------------------------------------------------------------------- |
local MAJOR_VERSION = "LibBanzai-2.0" |
local MINOR_VERSION = "$Revision: 72249 $" |
if not LibStub then error(MAJOR_VERSION .. " requires LibStub.") end |
local lib = LibStub:NewLibrary(MAJOR_VERSION, MINOR_VERSION) |
if not lib then return end |
lib.callbacks = lib.callbacks or {} |
local callbacks = lib.callbacks |
lib.frame = lib.frame or CreateFrame("Frame") |
local frame = lib.frame |
local _G = _G |
local table_insert = table.insert |
local UnitExists = _G.UnitExists |
local UnitName = _G.UnitName |
local UnitCanAttack = _G.UnitCanAttack |
local GetNumRaidMembers = _G.GetNumRaidMembers |
local GetNumPartyMembers = _G.GetNumPartyMembers |
local unpack = _G.unpack |
local type = _G.type |
local assert = _G.assert |
------------------------------------------------------------------------------- |
-- Local heap |
------------------------------------------------------------------------------- |
local new, del |
do |
local cache = setmetatable({},{__mode='k'}) |
function new() |
local t = next(cache) |
if t then |
cache[t] = nil |
return t |
else |
return {} |
end |
end |
function del(t) |
for k in pairs(t) do |
t[k] = nil |
end |
cache[t] = true |
return nil |
end |
end |
------------------------------------------------------------------------------- |
-- Roster |
------------------------------------------------------------------------------- |
local raidUnits = setmetatable({}, {__index = |
function(self, key) |
self[key] = ("raid%d"):format(key) |
return self[key] |
end |
}) |
local raidPetUnits = setmetatable({}, {__index = |
function(self, key) |
self[key] = ("raidpet%d"):format(key) |
return self[key] |
end |
}) |
local partyUnits = {"party1","party2","party3","party4"} |
local partyPetUnits = {"partypet1","partypet2","partypet3","partypet4"} |
local roster = {} |
local needsUpdate = nil |
-- If some pet has the same name as a person in the raid, they'll end up being |
-- the same unit for the purposes of banzai, but we won't care right now. |
local function addUnit(unit) |
if not UnitExists(unit) then return end |
local name = UnitName(unit) |
if not roster[name] then roster[name] = new() end |
table_insert(roster[name], unit) |
end |
local function actuallyUpdateRoster() |
for k in pairs(roster) do roster[k] = del(roster[k]) end |
addUnit("player") |
addUnit("pet") |
addUnit("focus") |
for i = 1, GetNumRaidMembers() do |
addUnit(raidUnits[i]) |
addUnit(raidPetUnits[i]) |
end |
for i = 1, GetNumPartyMembers() do |
addUnit(partyUnits[i]) |
addUnit(partyPetUnits[i]) |
end |
needsUpdate = nil |
end |
local function updateRoster() |
needsUpdate = true |
end |
------------------------------------------------------------------------------- |
-- Banzai |
------------------------------------------------------------------------------- |
local targets = setmetatable({}, {__index = |
function(self, key) |
self[key] = key .. "target" |
return self[key] |
end |
}) |
local aggro = {} |
local banzai = {} |
local total = 0 |
local function updateBanzai(_, elapsed) |
total = total + elapsed |
if total > 0.2 then |
if needsUpdate then actuallyUpdateRoster() end |
for name, units in pairs(roster) do |
local unit = units[1] |
local targetId = targets[unit] |
if UnitExists(targetId) then |
local ttId = targets[targetId] |
if unit == "focus" and UnitIsEnemy("focus", "player") then |
ttId = "focustarget" |
targetId = "focus" |
end |
if UnitExists(ttId) and UnitCanAttack(ttId, targetId) then |
for n, u in pairs(roster) do |
if UnitIsUnit(u[1], ttId) then |
banzai[n] = (banzai[n] or 0) + 10 |
break |
end |
end |
end |
end |
if banzai[name] then |
if banzai[name] >= 5 then banzai[name] = banzai[name] - 5 end |
if banzai[name] > 25 then banzai[name] = 25 end |
end |
end |
for name, units in pairs(roster) do |
if banzai[name] and banzai[name] > 15 then |
if not aggro[name] then |
aggro[name] = true |
for i, v in ipairs(callbacks) do |
v(1, name, unpack(units)) |
end |
end |
elseif aggro[name] then |
aggro[name] = nil |
for i, v in ipairs(callbacks) do |
v(0, name, unpack(units)) |
end |
end |
end |
total = 0 |
end |
end |
------------------------------------------------------------------------------- |
-- Starting and stopping |
------------------------------------------------------------------------------- |
local running = nil |
local function start() |
if running then return end |
updateRoster() |
frame:SetScript("OnUpdate", updateBanzai) |
frame:SetScript("OnEvent", updateRoster) |
frame:RegisterEvent("RAID_ROSTER_UPDATE") |
frame:RegisterEvent("PARTY_MEMBERS_CHANGED") |
frame:RegisterEvent("UNIT_PET") |
frame:RegisterEvent("PLAYER_FOCUS_CHANGED") |
running = true |
end |
local function stop() |
if not running then return end |
frame:SetScript("OnUpdate", nil) |
frame:SetScript("OnEvent", nil) |
frame:UnregisterAllEvents() |
running = nil |
end |
------------------------------------------------------------------------------- |
-- API |
------------------------------------------------------------------------------- |
function lib:IsRunning() return running end |
function lib:GetUnitAggroByUnitName(name) return aggro[name] end |
function lib:GetUnitAggroByUnitId(unit) |
if not UnitExists(unit) then return end |
return aggro[UnitName(unit)] |
end |
function lib:RegisterCallback(func) |
if type(func) ~= "function" then |
error(("Bad argument to :RegisterCallback, function expected, got %q."):format(type(func)), 2) |
end |
table_insert(callbacks, func) |
start() |
end |
function lib:UnregisterCallback(func) |
if type(func) ~= "function" then |
error(("Bad argument to :UnregisterCallback, function expected, got %q."):format(type(func)), 2) |
end |
local found = nil |
for i, v in ipairs(callbacks) do |
if v == func then |
table.remove(callbacks, i) |
found = true |
break |
end |
end |
if #callbacks == 0 then stop() end |
if not found then |
error("Bad argument to :UnregisterCallback, the provided function was not registered.", 2) |
end |
end |
------------------------------------------------------------------------------- |
-- Initialization |
------------------------------------------------------------------------------- |
frame:SetScript("OnUpdate", nil) |
frame:SetScript("OnEvent", nil) |
frame:UnregisterAllEvents() |
if #callbacks > 0 then start() end |
## Interface: 30200 |
## LoadOnDemand: 1 |
## Title: Lib: Banzai-2.0 |
## Notes: Aggro notification library. |
## Author: Rabbit |
## X-Website: http://www.wowace.com/wiki/BanzaiLib |
## X-Email: rabbit.magtheridon@gmail.com |
## X-Category: Library |
## X-Credits: maia |
## Version: 2.0 |
## X-AceLibrary-Banzai-2.0: true |
lib.xml |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
<html> |
<head> |
<meta http-equiv="content-type" content="text/html; charset=windows-1250"> |
<meta name="generator" content="PSPad editor, www.pspad.com"> |
<title>English Manual</title> |
</head> |
<body> |
Manual:<br> |
<br> |
Copy the addon in your "yourWoWInstallFolder/Interface/AddOns/" Directory. <br> |
Now it looks like this: "yourWoWInstallFolder/Interface/AddOns/PowerAuras". |
<br> |
Type "/powa" ingame to open the options window.<br> |
<br> |
<table border=1> |
<tr> |
<td> |
<img src="Manual_Pics/Config1.jpg" /> |
</td> |
<td> |
1 = Turn the AddOn on or off.<br> |
<br> |
2 = Auras only for this char.<br> |
<br> |
3 = Auras for all your chars.<br> |
<br> |
4 = Auras on this page.<br> |
<br> |
5 = Create a new aura.<br> |
<br> |
6 = Move an aura to other page<br> |
<br> |
7 = Copy an aura to a page of your choice. Can be the same page.<br> |
<br> |
8 = Deletes the marked aura. This only works when you press the CTRL-Key and click on the button.<br> |
<br> |
9 = Opens the Effect Editor for the marked aura. |
</td> |
</tr> |
<tr> |
<td colspan="2"> |
Ok, let's create a new aura. Click on the "New" Button.<br> |
The Effect Editor opens. |
</td> |
</tr> |
<tr> |
<td> |
<img src="Manual_Pics/Editor1.jpg"/> |
</td> |
<td> |
1 = Display of the texture you choosed.<br> |
<br> |
2 = Color options<br> |
<br> |
3 = The texture selector. "Glow" dark sections of the texture will become more transparent. <br> |
When you want an aura with dark color deactivate "Glow". <br> |
With "WoW Textures" u can choose from a selection of game graphics.<br> |
With "Custom Auras" u can enter a filename for your own textures.<br> |
These must be in "/AddOns/PowerAuras/Custom/" BEFORE u start the game. Example: "Flamme.tga"<br> |
<br> |
4 = The display options for the selected texture.<br> |
<br> |
5 = Position for the texture.<br> |
You can enter exact positions in the textfield right.<br> |
<br> |
6 = The selection of the ingame event, that u want to trigger your aura.<br> |
<br> |
7 = The icon of the buff/debuff/action. This is saved when the aura has worked once.<br> |
<br> |
8 = The name of the buff/debuff/action. You can enter only a single word of the name or enter more names. See picture.<br> |
<br> |
9 = The "object", which u want to check for the event. When u check nothing, the player is the "object".<br> |
<br> |
10 = Displayoptions for the aura activation. |
</td> |
</tr> |
<tr> |
<td colspan="2"> |
Ok, you created a new aura. Have choosed a texture, color, display und position.<br> |
Now u can selected an event that u want to check everytime. <br> |
For Example we take the HoT(HealthoverTime) "Renew" from a priest that heals you.<br> |
A HoT is a buff. We select "Buff" from the DropDown menu.<br> |
Now type in the textfield below "Renew".<br> |
Ok below that you have to check the "objects" that u want to ckeck for the event. <br> |
We check nothing, because we have the buff not anybody else.<br> |
And you can check that the aura is displayed then the event is on or off.<br> |
Or only when you are infight or outfight.<br> |
<br> |
Now click on the "Animation" Tab. You see this: |
</td> |
<tr> |
<td> |
<img src="Manual_Pics/Editor3.jpg" /> |
</td> |
<td> |
<br> |
1 = Beginning animation<br> |
<br> |
2 = End animation<br> |
<br> |
3 = Main animation<br> |
<br> |
4 = Second animation. This stack with the main animation.<br> |
<br> |
5 = Animation speed. You want a disco? Or some psychadelic lights?^^<br> |
<br> |
6 = Animation duration. Is it "None", the aura is shown all the time that the event is on.<br> |
</td> |
</tr> |
<tr> |
<td colspan="2"> |
So enough of these. Go, get some auras on! :). |
</td> |
</tr> |
</table> |
</body> |
</html> |
cPowaAnimationBase = PowaClass(function(animation, aura, frame, base) |
animation.State = 0; |
animation.Aura = aura; |
animation.Frame = frame; |
animation.TargetWidth = frame.baseL; |
animation.TargetHeight = frame.baseH; |
animation.TargetAlpha = aura.alpha; |
animation.Width = animation.TargetWidth; |
animation.Height = animation.TargetHeight; |
animation.Alpha = animation.TargetAlpha; |
if (base) then |
for k, v in pairs (base) do |
local varType = type(v); |
if (varType == "string" or varType == "boolean" or varType == "number") then |
animation[k] = base[k]; |
end |
end |
end |
end); |
function cPowaAnimationBase:InitialiseBase() |
--PowaAuras:Message("Base:InitialiseBase aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self.StartWidth = self.TargetWidth; |
self.StartHeight = self.TargetHeight; |
self.StartAlpha = self.TargetAlpha; |
self:Reset(); |
end |
function cPowaAnimationBase:Initialise() |
--PowaAuras:Message("Base:Initialise aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self:InitialiseBase(); |
end |
function cPowaAnimationBase:ResetBase() |
--PowaAuras:Message("Base:ResetBase aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self.State = 0; |
self.Width = self.StartWidth; |
self.Height = self.StartHeight; |
self.Alpha = self.StartAlpha; |
self:UpdateFrame(); |
end |
function cPowaAnimationBase:Reset() |
--PowaAuras:Message("Base:Reset aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self:ResetBase(); |
end |
function cPowaAnimationBase:UpdateFrameBase() |
--PowaAuras:Message("Base:UpdateFrameBase aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self.Frame:SetWidth(self.Width); |
self.Frame:SetHeight(self.Height); |
self.Frame:SetAlpha(self.Alpha); |
end |
function cPowaAnimationBase:UpdateFrame() |
--PowaAuras:Message("Base:UpdateFrame aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self:UpdateFrameBase(); |
end |
function cPowaAnimationBase:Update(elapsed) |
PowaAuras:UnitTestInfo("Base Update ", elapsed); |
return true; |
end |
cPowaAnimationBaseTranslate = PowaClass(cPowaAnimationBase); |
function cPowaAnimationBaseTranslate:UpdateFrame() |
--PowaAuras:Message("BaseTranslate:UpdateFrame aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self.Frame:SetPoint("Center", self.X, self.Y); |
self:UpdateFrameBase(); |
end |
function cPowaAnimationBaseTranslate:InitialiseBase() |
--PowaAuras:Message("BaseTranslate:Initialise aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self.StartWidth = self.TargetWidth; |
self.StartHeight = self.TargetHeight; |
self.TargetX = self.Aura.x; |
self.TargetY = self.Aura.y; |
self.X = self.TargetX + self.OffsetX; |
self.Y = self.TargetY + self.OffsetY; |
self.StartAlpha = 0.0; |
--PowaAuras:Message("BaseTranslate:Initialise X="..tostring(self.X).." Y="..tostring(self.Y)); |
self:ResetBase(); |
end |
function cPowaAnimationBaseTranslate:Initialise() |
self:InitialiseBase(); |
end |
--- Begin Animations --- |
cPowaAnimationBeginZoomIn = PowaClass(cPowaAnimationBase); |
function cPowaAnimationBeginZoomIn:Initialise() |
self.StartWidth = self.TargetWidth * 1.5; |
self.StartHeight = self.TargetHeight * 1.5; |
self.StartAlpha = 0.0; |
self:ResetBase(); |
end |
function cPowaAnimationBeginZoomIn:Update(elapsed) |
PowaAuras:UnitTestInfo("BeginZoomIn Update ", elapsed); |
local step = elapsed * 150 * self.Aura.speed; |
self.Width = self.Width - (step * self.Aura.torsion); |
self.Height = self.Height - (step * (2-self.Aura.torsion)); |
self.Alpha = self.TargetAlpha * (self.StartWidth - self.Width) / (self.StartWidth - self.TargetWidth); |
local result = false; |
if (self.Width <= self.TargetWidth) then |
self.Width = self.TargetWidth; |
self.Height = self.TargetHeight; |
self.Alpha = self.TargetAlpha; |
result = true; |
end |
self:UpdateFrame(); |
return result; |
end |
cPowaAnimationBeginZoomOut = PowaClass(cPowaAnimationBase); |
function cPowaAnimationBeginZoomOut:Initialise() |
--PowaAuras:Message("BeginZoomOut:Reset aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self.StartWidth = self.TargetWidth * 0.5; |
self.StartHeight = self.TargetHeight * 0.5; |
self.StartAlpha = 0.0; |
self:Reset(); |
end |
function cPowaAnimationBeginZoomOut:Update(elapsed) |
PowaAuras:UnitTestInfo("cPowaAnimationBeginZoomOut Update ", elapsed); |
local step = elapsed * 150 * self.Aura.speed; |
self.Width = self.Width + (step * self.Aura.torsion); |
self.Height = self.Height + (step * (2-self.Aura.torsion)); |
self.Alpha = self.TargetAlpha * (self.StartWidth - self.Width) / (self.StartWidth - self.TargetWidth); |
local result = false; |
if (self.Width >= self.TargetWidth) then |
self.Width = self.TargetWidth; |
self.Height = self.TargetHeight; |
self.Alpha = self.TargetAlpha; |
result = true; |
end |
self:UpdateFrame(); |
return result; |
end |
cPowaAnimationBeginFadeIn = PowaClass(cPowaAnimationBase); |
function cPowaAnimationBeginFadeIn:Initialise() |
--PowaAuras:Message("BeginFadeIn:Initialise aura="..tostring(self.Aura).." frame="..tostring(self.Frame)); |
self.StartWidth = self.TargetWidth; |
self.StartHeight = self.TargetHeight; |
self.StartAlpha = 0.0; |
self:Reset(); |
end |
function cPowaAnimationBeginFadeIn:Update(elapsed) |
--PowaAuras:Message("BeginFadeIn Update ", elapsed); |
self.Alpha = self.Alpha + elapsed * 2 * self.Aura.speed * self.TargetAlpha; |
local result = false; |
if (self.Alpha >= self.TargetAlpha) then |
self.Alpha = self.TargetAlpha; |
result = true; |
end |
self:UpdateFrame(); |
return result; |
end |
cPowaAnimationBeginTranslate = PowaClass(cPowaAnimationBaseTranslate); |
function cPowaAnimationBeginTranslate:Update(elapsed) |
--PowaAuras:Message("BeginTranslate Update ", elapsed); |
self.Alpha = math.max(self.TargetAlpha + elapsed * self.TranslationSpeed * self.Aura.speed * self.TargetAlpha, self.TargetAlpha); |
local step = elapsed * self.TranslationSpeed * 100 * self.Aura.speed; |
--PowaAuras:Message("step ", step); |
--PowaAuras:Message("X=", self.X, " Y=", self.Y); |
self.X = self.X + self.DirectionX * step; |
self.Y = self.Y + self.DirectionY * step; |
--PowaAuras:Message("X=", self.X, " Y=", self.Y); |
--PowaAuras:Message("TargetX=", self.TargetX, " TargetY=", self.TargetY); |
--PowaAuras:Message("dX=", self.DirectionX * (self.X - self.TargetX), " dY=", self.DirectionY * (self.Y - self.TargetY)); |
local result = false; |
if (((self.DirectionX * (self.X - self.TargetX)) >= 0) and (self.DirectionY * (self.Y - self.TargetY) >= 0)) then |
--PowaAuras:Message("Finished"); |
self.X = self.TargetX; |
self.Y = self.TargetY; |
self.Alpha = self.TargetAlpha; |
result = true; |
end |
self:UpdateFrame(); |
return result; |
end |
cPowaAnimationBeginTranslateLeft = PowaClass(cPowaAnimationBeginTranslate, {OffsetX=-100, OffsetY=0, DirectionX=1, DirectionY=0, TranslationSpeed = 2.0}); |
cPowaAnimationBeginTranslateTopLeft = PowaClass(cPowaAnimationBeginTranslate, {OffsetX=-75 , OffsetY=75, DirectionX=1, DirectionY=-1, TranslationSpeed = 1.5}); |
cPowaAnimationBeginTranslateTop = PowaClass(cPowaAnimationBeginTranslate, {OffsetX=0, OffsetY=100, DirectionX=0, DirectionY=-1, TranslationSpeed = 2.0}); |
cPowaAnimationBeginTranslateTopRight = PowaClass(cPowaAnimationBeginTranslate, {OffsetX=75, OffsetY=75, DirectionX=-1, DirectionY=-1, TranslationSpeed = 1.5}); |
cPowaAnimationBeginTranslateRight = PowaClass(cPowaAnimationBeginTranslate, {OffsetX=100, OffsetY=0, DirectionX=-1, DirectionY=0, TranslationSpeed = 2.0}); |
cPowaAnimationBeginTranslateBottomRight = PowaClass(cPowaAnimationBeginTranslate, {OffsetX=75, OffsetY=-75, DirectionX=-1, DirectionY=1, TranslationSpeed = 1.5}); |
cPowaAnimationBeginTranslateBottom = PowaClass(cPowaAnimationBeginTranslate, {OffsetX=0, OffsetY=-100, DirectionX=0, DirectionY=1, TranslationSpeed = 2.0}); |
cPowaAnimationBeginTranslateBottomLeft = PowaClass(cPowaAnimationBeginTranslate, {OffsetX=-75, OffsetY=-75, DirectionX=1, DirectionY=1, TranslationSpeed = 1.5}); |
cPowaAnimationBeginBounce = PowaClass(cPowaAnimationBaseTranslate, {OffsetX=0, OffsetY=100, MinVelocity=100, Acceleration=1000}); |
function cPowaAnimationBeginBounce:Initialise() |
self.Velocity = 0; |
self.Acceleration = self.Acceleration * self.Aura.speed; |
self:InitialiseBase(); |
end |
function cPowaAnimationBeginBounce:Update(elapsed) |
PowaAuras:UnitTestInfo("BeginBounce Update ", elapsed); |
self.Alpha = math.max(self.TargetAlpha + elapsed * 2 * self.Aura.speed * self.TargetAlpha , self.TargetAlpha); |
self.Velocity = self.Velocity + self.Acceleration * elapsed; |
self.Y = self.Y - elapsed * (self.Velocity + self.Acceleration * elapsed / 2); |
local result = false; |
if (self.Y <= self.TargetY and self.Velocity>0) then |
self.Y = self.TargetY; |
self.Alpha = self.TargetAlpha; |
if (self.Velocity <= self.MinVelocity) then |
result = true; |
else |
self.Velocity = -self.Velocity * 0.9; |
end |
end |
self:UpdateFrame(); |
return result; |
end |
--- End Animations --- |
cPowaAnimationEnd = PowaClass(cPowaAnimationBase); |
function cPowaAnimationEnd:Initialise() |
self.StartWidth = self.Frame:GetWidth(); |
self.StartHeight = self.Frame:GetHeight(); |
self.StartAlpha = self.Frame:GetAlpha(); |
self:Reset(); |
end |
cPowaAnimationEndResizeAndFade = PowaClass(cPowaAnimationEnd); |
function cPowaAnimationEndResizeAndFade:Update(elapsed) |
self.Alpha = self.Alpha - (elapsed * 2); |
if (self.Alpha <= 0) then |
return true; |
end |
local sizeStep = self.Direction * elapsed * 200; |
self.Width = math.max(0, self.Width + sizeStep); |
self.Height = math.max(0, self.Height + sizeStep); |
self:UpdateFrame(); |
return false; |
end |
cPowaAnimationEndGrowAndFade = PowaClass(cPowaAnimationEndResizeAndFade, {Direction = -1}); |
cPowaAnimationEndShrinkAndFade = PowaClass(cPowaAnimationEndResizeAndFade, {Direction = 1}); |
cPowaAnimationEndFade = PowaClass(cPowaAnimationEnd); |
function cPowaAnimationEndFade:Update(elapsed) |
self.Alpha = self.Alpha - (elapsed * 2); |
if (self.Alpha <= 0) then |
return true; |
end |
self:UpdateFrame(); |
return false; |
end |
--- Main Animations --- |
cPowaAnimationFlashing = PowaClass(cPowaAnimationBase); |
function cPowaAnimationFlashing:Initialise() |
self.Direction = -1; |
self.MinAlpha = self.TargetAlpha * 0.5 * self.Aura.speed; |
self.Alpha = self.Frame:GetAlpha(); |
end |
function cPowaAnimationFlashing:Update(elapsed) |
PowaAuras:UnitTestInfo("cPowaAnimationFlashing Update ", elapsed); |
self.Alpha = self.Alpha + self.Direction * elapsed / 2; |
if (self.Alpha<=self.MinAlpha) then |
self.Alpha = self.MinAlpha; |
self.Direction = 1; |
elseif (self.Alpha>=self.TargetAlpha) then |
self.Alpha = self.TargetAlpha; |
self.Direction = -1; |
end |
self:UpdateFrame(); |
end |
cPowaAnimationGrowing = PowaClass(cPowaAnimationBase); |
function cPowaAnimationGrowing:Initialise() |
self.MinWidth = self.TargetWidth * 0.9; |
self.MinHeight = self.TargetHeight * 0.9; |
self.MaxWidth = self.TargetWidth * 1.2; |
self.MaxHeight = self.TargetHeight * 1.2; |
self.Width = self.Frame:GetWidth(); |
self.Height = self.Frame:GetHeight(); |
self.Alpha = self.Frame:GetAlpha(); |
end |
function cPowaAnimationGrowing:Update(elapsed) |
PowaAuras:UnitTestInfo("cPowaAnimationGrowing Update ", elapsed); |
local step = elapsed * 25 * self.Aura.speed * self.Aura.size; |
self.Width = self.Width + step; |
self.Height = self.Height + step; |
if (self.Width >= self.MaxWidth) then |
self.Width = self.MinWidth; |
self.Height = self.MinHeight; |
end |
self.Alpha = self.TargetAlpha * (self.MaxWidth - self.Width) / (self.MaxWidth - self.MinWidth); |
self:UpdateFrame(); |
end |
cPowaAnimationPulse = PowaClass(cPowaAnimationBase); |
function cPowaAnimationPulse:Initialise() |
self.Direction = 1; |
self.MinWidth = self.TargetWidth * 0.95; |
self.MinHeight = self.TargetHeight * 0.95; |
self.MaxWidth = self.TargetWidth * 1.05; |
self.MaxHeight = self.TargetHeight * 1.05; |
self.Width = self.Frame:GetWidth(); |
self.Height = self.Frame:GetHeight(); |
end |
function cPowaAnimationPulse:Update(elapsed) |
PowaAuras:UnitTestInfo("cPowaAnimationPulse Update ", elapsed); |
local step = self.Direction * elapsed * 50 * self.Aura.speed * self.Aura.size; |
self.Width = self.Width + step * self.Aura.torsion; |
self.Height = self.Height + step * (2-self.Aura.torsion); |
if (self.Width >= self.MaxWidth) then |
self.Width = self.MaxWidth; |
self.Height = self.MaxHeight; |
self.Direction = -1; |
elseif (self.Width <= self.MinWidth) then |
self.Width = self.MinWidth; |
self.Height = self.MinHeight; |
self.Direction = 1; |
end |
self:UpdateFrame(); |
end |
cPowaAnimationBubble = PowaClass(cPowaAnimationBase); |
function cPowaAnimationBubble:Initialise() |
self.Direction = 1; |
self.MinWidth = self.TargetWidth * 0.95; |
self.MinHeight = self.TargetHeight * 0.95; |
self.MaxWidth = self.TargetWidth * 1.05; |
self.MaxHeight = self.TargetHeight * 1.05; |
self.Width = self.Frame:GetWidth(); |
self.Height = self.Frame:GetHeight(); |
end |
function cPowaAnimationBubble:Update(elapsed) |
PowaAuras:UnitTestInfo("cPowaAnimationBubble Update ", elapsed); |
local step = self.Direction * elapsed * 50 * self.Aura.speed * self.Aura.size; |
self.Width = self.Width + step * self.Aura.torsion; |
self.Height = self.Height - step * (2-self.Aura.torsion); |
if (self.Width >= self.MaxWidth) then |
self.Width = self.MaxWidth; |
self.Height = self.MinHeight; |
self.Direction = -1; |
elseif (self.Width <= self.MinWidth) then |
self.Width = self.MinWidth; |
self.Height = self.MaxHeight; |
self.Direction = 1; |
end |
self:UpdateFrame(); |
end |
--[[ |
cPowaAnimationWaterDrop = PowaClass(cPowaAnimationBase); |
function cPowaAnimationWaterDrop:Initialise() |
self.Width = self.Frame:GetWidth(); |
self.Height = self.Frame:GetHeight(); |
self.Alpha = self.Frame:GetAlpha(); |
end |
function cPowaAnimationWaterDrop:Update(elapsed) |
PowaAuras:UnitTestInfo("cPowaAnimationWaterDrop Update ", elapsed); |
if (self.Alpha>0) then |
self.Alpha = math.max(self.Alpha - self.TargetAlpha * elapsed * 0.5 * self.Aura.speed, 0); |
local newWidth = self.Width + self.Aura.size * elapsed * 100 * self.Aura.speed; |
if (newWidth * 1.5 > self.Width) then |
self.Width = newWidth; |
self.Height = self.Height + self.Aura.size * elapsed * 100 * self.Aura.speed; |
end |
else |
self.Alpha = self.TargetAlpha; |
self.Width = self.TargetWidth * 0.85; |
self.Height = self.TargetHeight * 0.85; |
local deltaX = (random(0,20) - 10) * self.Aura.speed;; |
local deltaY = (random(0,20) - 10) * self.Aura.speed;; |
frame:SetPoint("Center",self.Aura.x + deltaX, self.Aura.y + deltaY); |
end |
self:UpdateFrame(); |
if (frame:GetAlpha() > 0) then |
self.curScale.a = frame:GetAlpha() - (elapsed * aura.alpha * 0.5 * aura.speed); |
if (self.curScale.a < 0) then frame:SetAlpha(0.0); |
else frame:SetAlpha(self.curScale.a); end |
self.maxScale.w = frame:GetWidth() + (elapsed * 100 * aura.speed * aura.size); |
self.maxScale.h = frame:GetHeight() + (elapsed * 100 * aura.speed * aura.size); |
if ( (self.maxScale.w * 1.5) > frame:GetWidth()) then --- evite les lags |
frame:SetWidth(self.maxScale.w) |
frame:SetHeight(self.maxScale.h) |
end |
else |
self.maxScale.w = (random(0,20) - 10) * aura.speed; |
self.maxScale.h = (random(0,20) - 10) * aura.speed; |
frame:SetAlpha(aura.alpha); |
frame:SetWidth(self.curScale.w * 0.85); |
frame:SetHeight(self.curScale.h * 0.85); |
frame:SetPoint("Center",aura.x + self.maxScale.w, aura.y + self.maxScale.h); |
end |
]] |
cPowaAnimationElectric = PowaClass(cPowaAnimationBaseTranslate, {OffsetX=0, OffsetY=0}); |
function cPowaAnimationElectric:Initialise() |
self.Alpha = self.Frame:GetAlpha(); |
self.Width = self.Frame:GetWidth(); |
self.Height = self.Frame:GetHeight(); |
self.X = self.TargetX; |
self.Y = self.TargetY; |
end |
function cPowaAnimationElectric:Update(elapsed) |
PowaAuras:UnitTestInfo("cPowaAnimationElectric Update ", elapsed); |
if (self.Status ~=1) then |
if (random( 210-(self.Aura.speed*100) ) == 1) then |
self.X = self.TargetX + random(0,10) - 5; |
self.Y = self.TargetY + random(0,10) - 5; |
self.Alpha = self.TargetAlpha; |
self.Status = 1; |
else |
self.Alpha = self.TargetAlpha / 2; |
end |
else |
self.X = self.TargetX; |
self.Y = self.TargetY; |
self.Status = 0; |
end |
self:UpdateFrame(); |
end |
-- Concrete Animation Classes |
PowaAuras.AnimationMainClasses = { |
[PowaAuras.AnimationTypes.Static] = cPowaAnimationBase, |
[PowaAuras.AnimationTypes.Flashing] = cPowaAnimationFlashing, |
[PowaAuras.AnimationTypes.Growing] = cPowaAnimationGrowing, |
[PowaAuras.AnimationTypes.Pulse] = cPowaAnimationPulse, |
[PowaAuras.AnimationTypes.Bubble] = cPowaAnimationBubble, |
[PowaAuras.AnimationTypes.WaterDrop] = cPowaAnimationWaterDrop, |
[PowaAuras.AnimationTypes.Electric] = cPowaAnimationElectric, |
[PowaAuras.AnimationTypes.Shrinking] = cPowaAnimationShrinking, |
[PowaAuras.AnimationTypes.Flame] = cPowaAnimationFlame, |
[PowaAuras.AnimationTypes.Orbit] = cPowaAnimationOrbit, |
} |
-- Concrete Animation Begin Classes |
PowaAuras.AnimationBeginClasses = { |
[PowaAuras.AnimationBeginTypes.None] = cPowaAnimationBase, |
[PowaAuras.AnimationBeginTypes.ZoomIn] = cPowaAnimationBeginZoomIn, |
[PowaAuras.AnimationBeginTypes.ZoomOut] = cPowaAnimationBeginZoomOut, |
[PowaAuras.AnimationBeginTypes.FadeIn] = cPowaAnimationBeginFadeIn, |
[PowaAuras.AnimationBeginTypes.TranslateLeft] = cPowaAnimationBeginTranslateLeft, |
[PowaAuras.AnimationBeginTypes.TranslateTopLeft] = cPowaAnimationBeginTranslateTopLeft, |
[PowaAuras.AnimationBeginTypes.TranslateTop] = cPowaAnimationBeginTranslateTop, |
[PowaAuras.AnimationBeginTypes.TranslateTopRight] = cPowaAnimationBeginTranslateTopRight, |
[PowaAuras.AnimationBeginTypes.TranslateRight] = cPowaAnimationBeginTranslateRight, |
[PowaAuras.AnimationBeginTypes.TranslateBottomRight] = cPowaAnimationBeginTranslateBottomRight, |
[PowaAuras.AnimationBeginTypes.TranslateBottom] = cPowaAnimationBeginTranslateBottom, |
[PowaAuras.AnimationBeginTypes.TranslateBottomLeft] = cPowaAnimationBeginTranslateBottomLeft, |
[PowaAuras.AnimationBeginTypes.Bounce] = cPowaAnimationBeginBounce, |
} |
function PowaAuras:AnimationBeginFactory(animationType, aura, frame, base) |
--self:Message("AnimationBeginFactory "..tostring(animationType).." aura.id="..tostring(aura.id).." frame="..tostring(frame)); |
if (not base) then |
base = {}; |
end |
base.IsBegin = true; |
return self:AnimationFactory(animationType, self.AnimationBeginClasses, aura, frame, base) |
end |
-- Concrete Animation End Classes |
PowaAuras.AnimationEndClasses = { |
[PowaAuras.AnimationEndTypes.None]=cPowaAnimationEnd, |
[PowaAuras.AnimationEndTypes.GrowAndFade]=cPowaAnimationEndGrowAndFade, |
[PowaAuras.AnimationEndTypes.ShrinkAndFade]=cPowaAnimationEndShrinkAndFade, |
[PowaAuras.AnimationEndTypes.Fade]=cPowaAnimationEndFade, |
} |
function PowaAuras:AnimationEndFactory(animationType, aura, frame, base) |
--self:Message("AnimationEndFactory type="..tostring(animationType).." aura.id="..tostring(aura.id).." frame="..tostring(frame)); |
if (aura.isSecondary) then |
return nil; |
end |
if (not base) then |
base = {}; |
end |
base.IsEnd = true; |
return self:AnimationFactory(animationType, self.AnimationEndClasses, aura, frame, base) |
end |
function PowaAuras:AnimationMainFactory(animationType, aura, frame, base) |
--self:Message("AnimationMainFactory type="..tostring(animationType).." aura.id="..tostring(aura.id).." frame="..tostring(frame)); |
if (animationType==PowaAuras.AnimationTypes.Invisible) then |
return nil; |
end |
return self:AnimationFactory(animationType, self.AnimationMainClasses, aura, frame, base) |
end |
-- Instance concrete class based on type |
function PowaAuras:AnimationFactory(animationType, classList, aura, frame, base) |
if (not frame) then |
return nil; |
end |
local class = classList[animationType]; |
if (class==nil) then |
--class = cPowaAnimationBase; |
end |
if (class) then |
--self:Message("AnimationFactory type="..tostring(animationType).." aura.id="..tostring(aura.id).." class="..tostring(class).." frame="..tostring(frame)); |
if (base == nil) then |
base = {}; |
end |
base.AnimationType = animationType; |
local animation = class(aura, frame, base); |
if (animation) then |
animation:Initialise(); |
end |
return animation; |
end |
--self:Message("AnimationFactory Unknown "..tostring(animationType).." auraId="..tostring(aura.id)); --OK |
return nil; |
end |
PowaAuras = { |
Version = "v2.6.2Q"; |
CurrentAuraId = 1; |
MaxAuras = 360; |
ChecksTimer = 0; |
NextCheck = 0.2; |
Tstep = 0.09765625; |
DebugTimer = 0; |
NextDebugCheck = 0; |
Initialising = true; |
ModTest = false; --- on test les effets |
minScale = {a=0, w=0, h=0}; |
maxScale = {a=0, w=0, h=0}; |
curScale = {a=0, w=0, h=0}; |
DoResetAoe = false; |
ResetTargetTimers = false; |
ActiveTalentGroup = GetActiveTalentGroup(); |
WeAreInCombat = false; |
WeAreInRaid = false; |
WeAreMounted = false; |
WeAreInVehicle = false; |
WeAreAlive = true; |
AoeAuraAdded = ""; |
AoeAuraFaded = ""; |
UsablePending = {}; --- Driizt workaround for 'silent' cooldown end (no event fired) |
PowaStance = {[0] = "Humanoid"}; |
allowedOperators = { |
["="] = true, |
[">"] = true, |
["<"] = true, |
["!"] = true, |
[">="] = true, |
["<="] = true, |
["-"] = true, |
}; |
DefaultOperator = ">="; |
MainOptionPage = 1; |
CurrentAuraPage = 1; |
maxtextures = 50; |
MoveEffect = 0; -- 1 = copie / 2 = move |
Auras = {}; |
SecondaryAuras = {}; |
Frames = {}; |
SecondaryFrames = {}; |
Textures = {}; |
SecondaryTextures = {}; |
TimerFrame = {}; |
StacksFrame = {}; |
Sound = {}; |
BeginAnimDisplay = {}; |
EndAnimDisplay = {}; |
Text = {}; |
Anim = {}; |
DebuffCatSpells = {}; |
--- These will be saved out to SavedVariables |
Misc = |
{ |
disabled = false, |
debug = false, |
}; |
playerclass = "unknown", |
Events = |
{ |
"PLAYER_ENTERING_WORLD", |
"PLAYER_TARGET_CHANGED", |
"PLAYER_FOCUS_CHANGED", |
"PLAYER_REGEN_DISABLED", |
"PLAYER_REGEN_ENABLED", |
"PLAYER_DEAD", |
"PLAYER_ALIVE", |
"PLAYER_UNGHOST", |
"PLAYER_UPDATE_RESTING", |
"UNIT_HEALTH", |
"UNIT_MAXHEALTH", |
"UNIT_MANA", |
"UNIT_MAXMANA", |
"UNIT_RAGE", |
"UNIT_ENERGY", |
"UNIT_MAXENERGY", |
"UNIT_COMBO_POINTS", |
"UNIT_RUNIC_POWER", |
"UNIT_MAXRUNIC_POWER", |
"UNIT_AURA", |
"UNIT_AURASTATE", |
"UNIT_FACTION", |
"UNIT_ENTERED_VEHICLE", |
"UNIT_EXITED_VEHICLE", |
"UNIT_SPELLCAST_START", |
"UNIT_SPELLCAST_STOP", |
"UNIT_SPELLCAST_FAILED", |
"UNIT_SPELLCAST_INTERRUPTED", |
"UNIT_SPELLCAST_DELAYED", |
"UNIT_SPELLCAST_CHANNEL_START", |
"UNIT_SPELLCAST_CHANNEL_UPDATE", |
"UNIT_SPELLCAST_CHANNEL_STOP", |
"UNIT_SPELLCAST_SUCCEEDED", |
"PARTY_MEMBERS_CHANGED", |
"RAID_ROSTER_UPDATE", |
"COMBAT_LOG_EVENT_UNFILTERED", |
"UPDATE_SHAPESHIFT_FORM", |
"ACTIONBAR_UPDATE_USABLE", |
"ACTIONBAR_UPDATE_COOLDOWN", |
"ACTIONBAR_SLOT_CHANGED", |
"UPDATE_SHAPESHIFT_FORMS"; |
"VARIABLES_LOADED", |
"PLAYER_TALENT_UPDATE", |
"PLAYER_UPDATE_RESTING", |
"SPELL_UPDATE_COOLDOWN", |
"SPELL_UPDATE_USABLE", |
}; |
DoCheck = |
{ |
Buffs = false, |
TargetBuffs = false, |
PartyBuffs = false, |
RaidBuffs = false, |
GroupOrSelfBuffs = false, |
UnitBuffs = false, |
FocusBuffs = false, |
Health = false, |
TargetHealth = false, |
PartyHealth = false, |
RaidHealth = false, |
FocusHealth = false, |
NamedUnitHealth = false, |
Mana = false, |
TargetMana = false, |
PartyMana = false, |
RaidMana = false, |
FocusMana = false, |
NamedUnitMana = false, |
RageEnergy = false, |
TargetRageEnergy = false, |
PartyRageEnergy = false, |
RaidRageEnergy = false, |
FocusRageEnergy = false, |
UnitRageEnergy = false, |
Others = false, |
Combo = false, |
Aoe = false, |
Stance = false, |
Actions = false, |
Enchants = false, |
All = false, |
PvP = false, |
PartyPvP = false, |
RaidPvP = false, |
TargetPvP = false, |
Aggro = false, |
PartyAggro = false, |
RaidAggro = false, |
Spells = false, |
TargetSpells = false, |
FocusSpells = false, |
OwnSpell = false, |
}; |
BuffTypes = |
{ |
Buff=1, |
Debuff=2, |
TypeDebuff=3, |
AoE=4, |
Enchant=5, |
Combo=6, |
ActionReady=7, |
Health=8, |
Mana=9, |
EnergyRagePower=10, |
Aggro=11, |
PvP=12, |
SpellAlert=13, |
Stance=14, |
OwnSpell=15, |
}; |
AnimationBeginTypes = |
{ |
None=0, |
ZoomIn=1, |
ZoomOut=2, |
FadeIn=3, |
TranslateLeft=4, |
TranslateTopLeft=5, |
TranslateTop=6, |
TranslateTopRight=7, |
TranslateRight=8, |
TranslateBottomRight=9, |
TranslateBottom=10, |
TranslateBottomLeft=11, |
Bounce=12, |
}; |
AnimationEndTypes = |
{ |
None=0, |
GrowAndFade=1, |
ShrinkAndFade=2, |
Fade=3, |
}; |
AnimationTypes = |
{ |
Invisible=0, |
Static=1, |
Flashing=2, |
Growing=3, |
Pulse=4, |
Bubble=5, |
WaterDrop=6, |
Electric=7, |
Shrinking=8, |
Flame=9, |
Orbit=10, |
}; |
AurasByType = |
{ |
Buffs = {}, |
TargetBuffs = {}, |
PartyBuffs = {}, |
RaidBuffs = {}, |
GroupOrSelfBuffs = {}, |
UnitBuffs = {}, |
FocusBuffs = {}, |
Health = {}, |
TargetHealth = {}, |
FocusHealth = {}, |
PartyHealth = {}, |
RaidHealth = {}, |
NamedUnitHealth = {}, |
Mana = {}, |
TargetMana = {}, |
FocusMana = {}, |
PartyMana = {}, |
RaidMana = {}, |
NamedUnitMana = {}, |
RageEnergy = {}, |
TargetRageEnergy = {}, |
PartyRageEnergy = {}, |
RaidRageEnergy = {}, |
FocusRageEnergy = {}, |
UnitRageEnergy = {}, |
Combo = {}, |
Aoe = {}, |
Stance = {}, |
Actions = {}, |
Enchants = {}, |
PvP = {}, |
PartyPvP = {}, |
RaidPvP = {}, |
TargetPvP = {}, |
Aggro = {}, |
PartyAggro = {}, |
RaidAggro = {}, |
Spells = {}, |
TargetSpells = {}, |
FocusSpells = {}, |
OwnSpell = {}, |
}; |
DebuffCatType = |
{ |
CC = 1, |
Silence = 2, |
Snare = 3, |
Root = 4, |
Disarm = 5, |
Stun = 6, |
PvE = 10, |
}, |
WowTextures = { |
-- auras types |
[1] = "Spells\\AuraRune_B", |
[2] = "Spells\\AuraRune256b", |
[3] = "Spells\\Circle", |
[4] = "Spells\\GENERICGLOW2B", |
[5] = "Spells\\GenericGlow2b1", |
[6] = "Spells\\ShockRingCrescent256", |
[7] = "SPELLS\\AuraRune1", |
[8] = "SPELLS\\AuraRune5Green", |
[9] = "SPELLS\\AuraRune7", |
[10] = "SPELLS\\AuraRune8", |
[11] = "SPELLS\\AuraRune9", |
[12] = "SPELLS\\AuraRune11", |
[13] = "SPELLS\\AuraRune_A", |
[14] = "SPELLS\\AuraRune_C", |
[15] = "SPELLS\\AuraRune_D", |
[16] = "SPELLS\\Holy_Rune1", |
[17] = "SPELLS\\Rune1d_GLOWless", |
[18] = "SPELLS\\Rune4blue", |
[19] = "SPELLS\\RuneBC1", |
[20] = "SPELLS\\RuneBC2", |
[21] = "SPELLS\\RUNEFROST", |
[22] = "Spells\\Holy_Rune_128", |
[23] = "Spells\\Nature_Rune_128", |
[24] = "SPELLS\\Death_Rune", |
[25] = "SPELLS\\DemonRune6", |
[26] = "SPELLS\\DemonRune7", |
[27] = "Spells\\DemonRune5backup", |
-- icones types |
[28] = "Particles\\Intellect128_outline", |
[29] = "Spells\\Intellect_128", |
[30] = "SPELLS\\GHOST1", |
[31] = "Spells\\Aspect_Beast", |
[32] = "Spells\\Aspect_Hawk", |
[33] = "Spells\\Aspect_Wolf", |
[34] = "Spells\\Aspect_Snake", |
[35] = "Spells\\Aspect_Cheetah", |
[36] = "Spells\\Aspect_Monkey", |
[37] = "Spells\\Blobs", |
[38] = "Spells\\Blobs2", |
[39] = "Spells\\GradientCrescent2", |
[40] = "Spells\\InnerFire_Rune_128", |
[41] = "Spells\\RapidFire_Rune_128", |
[42] = "Spells\\Protect_128", |
[43] = "Spells\\Reticle_128", |
[44] = "Spells\\Star2A", |
[45] = "Spells\\Star4", |
[46] = "Spells\\Strength_128", |
[47] = "Particles\\STUNWHIRL", |
[48] = "SPELLS\\BloodSplash1", |
[49] = "SPELLS\\DarkSummon", |
[50] = "SPELLS\\EndlessRage", |
[51] = "SPELLS\\Rampage", |
[52] = "SPELLS\\Eye", |
[53] = "SPELLS\\Eyes", |
[54] = "SPELLS\\Zap1b", |
}; |
Fonts = { |
--- wow fonts |
[1] = STANDARD_TEXT_FONT, --- "Fonts\\FRIZQT__.TTF" |
[2] = "Fonts\\ARIALN.TTF", |
[3] = "Fonts\\skurri.ttf", |
[4] = "Fonts\\MORPHEUS.ttf", |
--- external fonts (free use or gpl'd, author in font file) |
[5] = "Interface\\Addons\\PowerAuras\\Fonts\\All_Star_Resort.ttf", |
[6] = "Interface\\Addons\\PowerAuras\\Fonts\\Army.ttf", |
[7] = "Interface\\Addons\\PowerAuras\\Fonts\\Army_Condensed.ttf", |
[8] = "Interface\\Addons\\PowerAuras\\Fonts\\Army_Expanded.ttf", |
[9] = "Interface\\Addons\\PowerAuras\\Fonts\\Blazed.ttf", |
[10] = "Interface\\Addons\\PowerAuras\\Fonts\\Blox2.ttf", |
[11] = "Interface\\Addons\\PowerAuras\\Fonts\\CloisterBlack.ttf", |
[12] = "Interface\\Addons\\PowerAuras\\Fonts\\Moonstar.ttf", |
[13] = "Interface\\Addons\\PowerAuras\\Fonts\\Neon.ttf", |
[14] = "Interface\\Addons\\PowerAuras\\Fonts\\Pulse_virgin.ttf", |
[15] = "Interface\\Addons\\PowerAuras\\Fonts\\Punk_s_not_dead.ttf", |
[16] = "Interface\\Addons\\PowerAuras\\Fonts\\whoa!.ttf", |
[17] = "Interface\\Addons\\PowerAuras\\Fonts\\Hexagon.ttf", |
[18] = "Interface\\Addons\\PowerAuras\\Fonts\\Starcraft_Normal.ttf", |
}; |
-- Colors used in messages |
-------------------------- |
Colors = { |
["Blue"] = "|cff6666ff", |
["Grey"] = "|cff999999", |
["Green"] = "|cff66cc33", |
["Red"] = "|cffff2020", |
["Yellow"] = "|cffffff40", |
["BGrey"] = "|c00D0D0D0", |
["White"] = "|c00FFFFFF", |
["Orange"] = "|cffff9930", |
}; |
} |
PowaAuras.DebuffTypeSpellIds={ |
-- Death Knight |
[47481] = PowaAuras.DebuffCatType.Stun, -- Gnaw (Ghoul) |
[51209] = PowaAuras.DebuffCatType.CC, -- Hungering Cold |
[47476] = PowaAuras.DebuffCatType.Silence, -- Strangulate |
[45524] = PowaAuras.DebuffCatType.Snare, -- Chains of Ice |
[55666] = PowaAuras.DebuffCatType.Snare, -- Desecration (no duration, lasts as long as you stand in it) |
[58617] = PowaAuras.DebuffCatType.Snare, -- Glyph of Heart Strike |
[50436] = PowaAuras.DebuffCatType.Snare, -- Icy Clutch (Chilblains) |
-- Druid |
[5211] = PowaAuras.DebuffCatType.Stun, -- Bash (also Shaman Spirit Wolf ability) |
[33786] = PowaAuras.DebuffCatType.CC, -- Cyclone |
[2637] = PowaAuras.DebuffCatType.CC, -- Hibernate (works against Druids in most forms and Shamans using Ghost Wolf) |
[22570] = PowaAuras.DebuffCatType.Stun, -- Maim |
[9005] = PowaAuras.DebuffCatType.Stun, -- Pounce |
[339] = PowaAuras.DebuffCatType.Root, -- Entangling Roots |
[19675] = PowaAuras.DebuffCatType.Root, -- Feral Charge Effect (immobilize with interrupt [spell lockout, not silence]) |
[58179] = PowaAuras.DebuffCatType.Snare, -- Infected Wounds |
[61391] = PowaAuras.DebuffCatType.Snare, -- Typhoon |
-- Hunter |
[3355] = PowaAuras.DebuffCatType.CC, -- Freezing Trap Effect |
[24394] = PowaAuras.DebuffCatType.Stun, -- Intimidation |
[1513] = PowaAuras.DebuffCatType.CC, -- Scare Beast (works against Druids in most forms and Shamans using Ghost Wolf) |
[19503] = PowaAuras.DebuffCatType.CC, -- Scatter Shot |
[19386] = PowaAuras.DebuffCatType.CC, -- Wyvern Sting |
[34490] = PowaAuras.DebuffCatType.Silence, -- Silencing Shot |
[53359] = PowaAuras.DebuffCatType.Disarm, -- Chimera Shot - Scorpid |
[19306] = PowaAuras.DebuffCatType.Root, -- Counterattack |
[19185] = PowaAuras.DebuffCatType.Root, -- Entrapment |
[35101] = PowaAuras.DebuffCatType.Snare, -- Concussive Barrage |
[5116] = PowaAuras.DebuffCatType.Snare, -- Concussive Shot |
[13810] = PowaAuras.DebuffCatType.Snare, -- Frost Trap Aura (no duration, lasts as long as you stand in it) |
[61394] = PowaAuras.DebuffCatType.Snare, -- Glyph of Freezing Trap |
[2974] = PowaAuras.DebuffCatType.Snare, -- Wing Clip |
-- Hunter Pets |
[50519] = PowaAuras.DebuffCatType.Stun, -- Sonic Blast (Bat) |
[50541] = PowaAuras.DebuffCatType.Disarm, -- Snatch (Bird of Prey) |
[54644] = PowaAuras.DebuffCatType.Snare, -- Froststorm Breath (Chimera) |
[50245] = PowaAuras.DebuffCatType.Root, -- Pin (Crab) |
[50271] = PowaAuras.DebuffCatType.Snare, -- Tendon Rip (Hyena) |
[50518] = PowaAuras.DebuffCatType.Stun, -- Ravage (Ravager) |
[54706] = PowaAuras.DebuffCatType.Root, -- Venom Web Spray (Silithid) |
[4167] = PowaAuras.DebuffCatType.Root, -- Web (Spider) |
-- Mage |
[44572] = PowaAuras.DebuffCatType.Stun, -- Deep Freeze |
[31661] = PowaAuras.DebuffCatType.CC, -- Dragon's Breath |
[12355] = PowaAuras.DebuffCatType.Stun, -- Impact |
[118] = PowaAuras.DebuffCatType.CC, -- Polymorph |
[18469] = PowaAuras.DebuffCatType.Silence, -- Silenced - Improved Counterspell |
[64346] = PowaAuras.DebuffCatType.Disarm, -- Fiery Payback |
[33395] = PowaAuras.DebuffCatType.Root, -- Freeze (Water Elemental) |
[122] = PowaAuras.DebuffCatType.Root, -- Frost Nova |
[11071] = PowaAuras.DebuffCatType.Root, -- Frostbite |
[55080] = PowaAuras.DebuffCatType.Root, -- Shattered Barrier |
[11113] = PowaAuras.DebuffCatType.Snare, -- Blast Wave |
[6136] = PowaAuras.DebuffCatType.Snare, -- Chilled (generic effect, used by lots of spells [looks weird on Improved Blizzard, might want to comment out]) |
[120] = PowaAuras.DebuffCatType.Snare, -- Cone of Cold |
[116] = PowaAuras.DebuffCatType.Snare, -- Frostbolt |
[47610] = PowaAuras.DebuffCatType.Snare, -- Frostfire Bolt |
[31589] = PowaAuras.DebuffCatType.Snare, -- Slow |
-- Paladin |
[853] = PowaAuras.DebuffCatType.Stun, -- Hammer of Justice |
[2812] = PowaAuras.DebuffCatType.Stun, -- Holy Wrath (works against Warlocks using Metamorphasis and Death Knights using Lichborne) |
[20066] = PowaAuras.DebuffCatType.CC, -- Repentance |
[20170] = PowaAuras.DebuffCatType.Stun, -- Stun (Seal of Justice proc) |
[10326] = PowaAuras.DebuffCatType.CC, -- Turn Evil (works against Warlocks using Metamorphasis and Death Knights using Lichborne) |
[63529] = PowaAuras.DebuffCatType.Silence, -- Shield of the Templar |
[20184] = PowaAuras.DebuffCatType.Snare, -- Judgement of Justice (not really a snare, druids might want this though) |
-- Priest |
[605] = PowaAuras.DebuffCatType.CC, -- Mind Control |
[64044] = PowaAuras.DebuffCatType.CC, -- Psychic Horror |
[8122] = PowaAuras.DebuffCatType.CC, -- Psychic Scream |
[9484] = PowaAuras.DebuffCatType.CC, -- Shackle Undead (works against Death Knights using Lichborne) |
[15487] = PowaAuras.DebuffCatType.Silence, -- Silence |
--[64058] = Disarm, -- Psychic Horror (duplicate debuff names not allowed atm, need to figure out how to support this later) |
[15407] = PowaAuras.DebuffCatType.Snare, -- Mind Flay |
-- Rogue |
[2094] = PowaAuras.DebuffCatType.CC, -- Blind |
[1833] = PowaAuras.DebuffCatType.Stun, -- Cheap Shot |
[1776] = PowaAuras.DebuffCatType.CC, -- Gouge |
[408] = PowaAuras.DebuffCatType.Stun, -- Kidney Shot |
[6770] = PowaAuras.DebuffCatType.CC, -- Sap |
[1330] = PowaAuras.DebuffCatType.Silence, -- Garrote - Silence |
[18425] = PowaAuras.DebuffCatType.Silence, -- Silenced - Improved Kick |
[51722] = PowaAuras.DebuffCatType.Disarm, -- Dismantle |
[31125] = PowaAuras.DebuffCatType.Snare, -- Blade Twisting |
[3409] = PowaAuras.DebuffCatType.Snare, -- Crippling Poison |
[26679] = PowaAuras.DebuffCatType.Snare, -- Deadly Throw |
-- Shaman |
[51880] = PowaAuras.DebuffCatType.Stun, -- Improved Fire Nova Totem |
[39796] = PowaAuras.DebuffCatType.Stun, -- Stoneclaw Stun |
[51514] = PowaAuras.DebuffCatType.CC, -- Hex (although effectively a silence+disarm effect, it is conventionally thought of as a CC, plus you can trinket out of it) |
[64695] = PowaAuras.DebuffCatType.Root, -- Earthgrab (Storm, Earth and Fire) |
[63685] = PowaAuras.DebuffCatType.Root, -- Freeze (Frozen Power) |
[3600] = PowaAuras.DebuffCatType.Snare, -- Earthbind (5 second duration per pulse, but will keep re-applying the debuff as long as you stand within the pulse radius) |
[8056] = PowaAuras.DebuffCatType.Snare, -- Frost Shock |
[8034] = PowaAuras.DebuffCatType.Snare, -- Frostbrand Attack |
-- Warlock |
[710] = PowaAuras.DebuffCatType.CC, -- Banish (works against Warlocks using Metamorphasis and Druids using Tree Form) |
[6789] = PowaAuras.DebuffCatType.CC, -- Death Coil |
[5782] = PowaAuras.DebuffCatType.CC, -- Fear |
[5484] = PowaAuras.DebuffCatType.CC, -- Howl of Terror |
[6358] = PowaAuras.DebuffCatType.CC, -- Seduction (Succubus) |
[30283] = PowaAuras.DebuffCatType.Stun, -- Shadowfury |
[24259] = PowaAuras.DebuffCatType.Silence, -- Spell Lock (Felhunter) |
[18118] = PowaAuras.DebuffCatType.Snare, -- Aftermath |
[18223] = PowaAuras.DebuffCatType.Snare, -- Curse of Exhaustion |
-- Warrior |
[7922] = PowaAuras.DebuffCatType.Stun, -- Charge Stun |
[12809] = PowaAuras.DebuffCatType.Stun, -- Concussion Blow |
[20253] = PowaAuras.DebuffCatType.Stun, -- Intercept (also Warlock Felguard ability) |
[5246] = PowaAuras.DebuffCatType.CC, -- Intimidating Shout |
[12798] = PowaAuras.DebuffCatType.Stun, -- Revenge Stun |
[46968] = PowaAuras.DebuffCatType.Stun, -- Shockwave |
[18498] = PowaAuras.DebuffCatType.Silence, -- Silenced - Gag Order |
[676] = PowaAuras.DebuffCatType.Disarm, -- Disarm |
[58373] = PowaAuras.DebuffCatType.Root, -- Glyph of Hamstring |
[23694] = PowaAuras.DebuffCatType.Root, -- Improved Hamstring |
[1715] = PowaAuras.DebuffCatType.Snare, -- Hamstring |
[12323] = PowaAuras.DebuffCatType.Snare, -- Piercing Howl |
-- Other |
[30217] = PowaAuras.DebuffCatType.Stun, -- Adamantite Grenade |
[30216] = PowaAuras.DebuffCatType.Stun, -- Fel Iron Bomb |
[20549] = PowaAuras.DebuffCatType.Stun, -- War Stomp |
[25046] = PowaAuras.DebuffCatType.Silence, -- Arcane Torrent |
[39965] = PowaAuras.DebuffCatType.Root, -- Frost Grenade |
[55536] = PowaAuras.DebuffCatType.Root, -- Frostweave Net |
[13099] = PowaAuras.DebuffCatType.Root, -- Net-o-Matic |
[29703] = PowaAuras.DebuffCatType.Snare, -- Dazed |
-- PvE |
[28169] = PowaAuras.DebuffCatType.PvE, -- Mutating Injection (Grobbulus) |
[28059] = PowaAuras.DebuffCatType.PvE, -- Positive Charge (Thaddius) |
[28084] = PowaAuras.DebuffCatType.PvE, -- Negative Charge (Thaddius) |
[27819] = PowaAuras.DebuffCatType.PvE, -- Detonate Mana (Kel'Thuzad) |
[63024] = PowaAuras.DebuffCatType.PvE, -- Gravity Bomb (XT-002 Deconstructor) |
[63018] = PowaAuras.DebuffCatType.PvE, -- Light Bomb (XT-002 Deconstructor) |
[62589] = PowaAuras.DebuffCatType.PvE, -- Nature's Fury (Freya, via Ancient Conservator) |
[63276] = PowaAuras.DebuffCatType.PvE, -- Mark of the Faceless (General Vezax) |
} |
function PowaAuras:UnitTestDebug(...) |
end |
function PowaAuras:UnitTestInfo(...) |
end |
function PowaAuras:Debug(...) |
if (self.Misc.debug == true) then |
self:Message(...) --OK |
end |
self:UnitTestDebug(...); |
end |
function PowaAuras:Message(...) |
args={...}; |
if (args==nil or #args==0) then |
return; |
end |
local Message = ""; |
for i=1, #args do |
Message = Message..tostring(args[i]); |
end |
DEFAULT_CHAT_FRAME:AddMessage(Message); |
end |
-- Use this for temp debug messages |
function PowaAuras:ShowText(...) |
self:Message(...); -- OK |
end |
-- Use this for real messages instead of ShowText |
function PowaAuras:DisplayText(...) |
self:ShowText(...); |
end |
---------------------------------------------------------------------------------------- |
-- This function will print a Message to the GUI screen (not the chat window) then fade. |
---------------------------------------------------------------------------------------- |
function PowaAuras:Error( msg, holdtime ) |
if (holdtime==nil) then |
holdtime = UIERRORS_HOLD_TIME; |
end |
UIErrorsFrame:AddMessage(msg, 0.75, 0.75, 1.0, 1.0, holdtime); |
end |
function PowaAuras:ReverseTable(t) |
if (type(t)~="table") then return nil; end |
local newTable = {}; |
for k,v in pairs(t) do |
newTable[v] = k; |
end |
return newTable; |
end |
function PowaAuras:CopyTable(t, lookup_table, original) |
if (type(t)=="table") then |
local copy; |
if (original==nil) then |
copy = {}; |
else |
copy = original; |
end |
for i,v in pairs(t) do |
if (type(v)~="function") then |
if (type(v)~="table") then |
copy[i] = v; |
else |
lookup_table = lookup_table or {}; |
lookup_table[t] = copy; |
if lookup_table[v] then |
copy[i] = lookup_table[v]; -- we already copied this table. reuse the copy. |
else |
copy[i] = self:CopyTable(v, lookup_table); -- not yet copied. copy it. |
end |
end |
end |
end |
return copy |
else |
return t; |
end |
end |
- Pet health/mana trigger |
- Action Usable with pet actions |
- Action Usable with reactive buttons (ex. overpower) |
- Action Usable with macro buttons |
PowerAuras-2.5.9a\PowerAuras.lua:4177: Usage: UnitBuff("unit", [index] or ["name", "rank"][, "filter"]) |
PowerAuras-2.5.9a\PowerAuras.lua:4177: in function `Powa_UpdateTimer' |
PowerAuras-2.5.9a\PowerAuras.lua:3589: in function `Powa_OnUpdate' |
<string>:"*:OnUpdate":1: in function <[string "*:OnUpdate"]:1> |
-------- --------------------------------------------------------------------------------------------------------------------------------------- |
FRANCAIS |
-------- |
Cet AddOn a été créé afin d'avoir une meilleure visibilité lorsque l'on acquière des buffs, debuffs, points de combos, enchantement d'arme... Très util principalement pour les buffs ou debuffs court, il permet d'avoir au centre de l'écran, ou autour de son personnages, des effets visuels extrèmement paramétrables, plutôt que tout le temps avoir à regarder si on a l'icone du buff ou debuff sur les bords de l'écran. |
Initialement créé pour avoir un aperçu des buffs d'amélioration courts comme "idées claires" ou un quelconque bijou qui boosterait notre attaque, il fonctionne désormais aussi bien avec des débuffs (quel que soient leur nom), les type de débuffs (magie, malédiction, etc), les points de combos, les effets de zone ainsi que les enchantements d'armes |
Utilisation : |
Tapez /powa |
pour avoir accès au menu d'édition des effets, il ne vous reste plus qu'à choisir la texture à appliquer à l'effet, la position, taille, symétrie, etc... |
Entrez ensuite le nom ou une partie du nom du buff/debuff (ex: si vous cherchez à activer l'effet visuel sur "Idées claires", vous pouvez n'entrer que "claires" dans le nom du buff). |
L'addon se chargera donc d'afficher l'effet là où vous le désirez et à le faire disparaitre une fois le buff fini. |
Vous pouvez aussi facilement ajouter de nouvelles textures en les mettant dans le dossier "custom" de l'addon. |
-= Mises à jour : =- |
Version 2.34 : |
-------------- |
+ Ajout d'une activation d'effet suivant les actions utilisable de vos barres d'actions |
- Finalement, correction d'un bug qui empechait certaines personne d'utiliser les effets d'enchantements d'arme |
Version 2.32 : |
-------------- |
+ Compatibilité avec la version 2.0.3 de WoW |
+ Désormais Power Auras est livré avec 50 textures (plus besoin de télécharger les packs 1 et 2) |
+ Ajout de 3 timers supplémentaires |
+ Ajout d'un décompte de durée des buffs / debuffs sur la cible |
+ Ajout de la possibilité de créer ses propres textures et de les inclure facilement (dans le dossier "Custom") |
+ Ajout des tests sur les cibles amies ou ennemies |
+ Possibilité de déplacer les effets ou timers sur l'écran plus facilement |
+ Possibilité d'afficher les textures avec une transparence normale |
- Les effets de zones ne devraient plus persister à la mort ou au changement de zone |
- Corrections de quelques bugs mineurs |
Version 2.17 : |
-------------- |
+ Compatibilité avec la version 2.0.0 de WoW |
Version 2.16 : |
-------------- |
- Correction d'un problème d'allocation de mémoire trop important |
- Correction d'un message d'erreur qui parfois pouvait survenir |
+ Ajout de 2 paramètres : "Afficher si en combat" et "Afficher si hors combat" |
Version 2.15 : |
-------------- |
+ Ajout d'une nouvelle interface pour facilement naviguer entre les effets. Elle dispose de 120 effets par personnage et de 240 effets communs à tous les personnages. |
+ Tous les effets pourront être copiés ou déplacés entre les diverses pages disponibles, et les pages pourront être renommées pour une meilleur visibilité |
+ Ajout d'une fonction pour activer ou désactiver les effets |
+ Ajout de l'activation des effets par debuff de zone (marche avec les pluies de feu, blizzard, etc...) |
+ Ajout de l'activation des effets par enchantement des armes (droite, gauche ou les deux) |
+ Ajout de l'activation des effets par points de combo, pour les druides-chat et voleurs |
+ Ajout du paramètre "Sur la cible" pour activer les effets suivant les buffs/debuffs qu'aura la cible |
+ Ajout du paramètre "Couleurs aléatoire", afin que la couleur d'un effet change à chaque activation |
+ Ajout du paramètre "Texture WoW", permettant d'utiliser 25 textures internes du jeu à la place des textures de l'Addon |
+ Les modifications de taille des textures seront désormais plus précises |
- Suppression de la fonction "Liste" qui n'est plus utilisée pour sauvegarder des effets, tous vos effets sauvegardés seront placés dans les pages d'effets communs à tous les personnages et mis sur "OFF". |
- Corrections de quelques bugs mineurs |
Version 2.10 : |
-------------- |
+ Ajout d'un bouton "+" permettant d'ajouter facilement un effet supplémentaire |
+ Ajout d'un bouton "-" qui efface toutes les pages d'effets inutilisées et trie les autres par type |
+ Désormais vous pouvez déplacer les effets plus précisément sur l'écran, et n'importe où |
+ Ajout d'une commande qui définie si les Majuscules/minuscules des noms des buffs/débuff doivent être prises en compte (corrige certains soucis avec les versions non latines du jeu) |
+ Ajout de deux options d'animation supplémentaires : "animation de départ" et "animation de fin", permettant des combinaisons d'effets plus sympas |
+ Changement des numéros d'animation par des noms |
+ Finallement, ajout de la 10ème animation |
+ Ajout d'un paramètre qui remplace les centièmes de secondes du compteur de durée par la durée du second buff/débuff le plus court |
+ Amélioration visuelle de l'interface d'option |
- Suppression du paramètre de "disparition rapide" qui est devenu obsolète |
- Suppression des lignes de commandes avancées qui ne sont plus utiles |
- Enfin, correction du bug qui faisait que certains effets apparaissaient ou disparaissaient aléatoirement |
- Corrections mineures de certains bugs d'animation |
Version 2.01 : |
-------------- |
+ Ajout du timer pour les débuffs et type de débuffs (et d'autres fonctions) |
+ Ajout du paramètre "vitesse d'animation" pour tous les effets |
+ Ajout du paramètre "durée de l'animation", si vous voulez que l'effet soit masqué après un certain temps |
+ Ajout d'un paramètre permettant d'afficher les effets si les buffs/débuff ne sont pas actifs |
+ Ajout d'une option qui vous permet de choisir plus facilement le nombre maximum de textures disponible pour l'AddOn |
- Correction d'un bug qui empêchait les types de débuff de fonctionner correctement sur les versions non anglaises du jeu |
- Correction d'un bug qui empêchait la sauvegarde du nombre max de textures |
Version 1.12b : |
--------------- |
- Ajout de 5 textures et de 3 animations (penser à ne pas écraser vos textures si vous en avez modifiées ou créés de nouvelles) |
- Ajout d'un timer déplaçable pour les buffs (gestion des debuffs dans une future version). Le timer affichera toujours le temps restant du buff le plus court actif. |
- Vous pouvez augmenter le nombre d'effet maximum jusqu'à 100 (via la commande /powa maxeffect) |
- Vous pouvez entrer plusieurs noms de buffs/débuffs dans une seule page d'effet, si vous les séparez par un "/" (ex : Robustesse/Don du fauve) |
- Vous pouvez activer un type de debuff qui n'est pas une magie, maladie, etc... via le nom "aucun" (l'effet s'activera si un débuff n'a aucun type particulier). De plus, vous pouvez entrer plusieurs type de débuffs dans la partie "nom du débuff" (pour pister les poisons en même temps que les maladies par exemple). |
Version 1.12a : |
--------------- |
- Correction d'un problème d'allocation de mémoire, tout devrait fonctionner normalement désormais |
Version 1.12 : |
-------------- |
- Ajout de la possibilité de sauvegarder ses effets dans une liste commune à tous les personnages, cliquez sur le bouton "Liste" |
- Ajout de fonctions avancées, disponibles en tapant : /powa help |
------- ---------------------------------------------------------------------------------------------------------------------------------------- |
ENGLISH |
------- |
This Mod was created to have a better visibility when you gain buffs, debuffs and many more. Very util for shorts buffs or debuffs, it allows you to have in the center of the screen, or around your character, very customizable visual effects, rather than all the time have to look on the other side of the screen to see if you have a buff or a debuff on you. |
Initially created to have an better visibility on the short buffs like "clear cast" or some boost trinket you activate, it works now with debuffs (whatever their name), debuff types like Magic or Curse, combo points, Aoe debuffs and weapon enchants. |
How to use : |
Type /powa |
to open the effect editor, then you can choose the texture to apply to the effect, the position, the size, the symmetry, etc... |
Then, enter the name or a part of the name of the buff / debuff (ex: if you try to activate the visual effect on "Clear cast", you can enter only "Clear" in the name of the buff). |
The Mod will take care to show the effect where you wish and to remove it when the buff is finished. |
You can so easily change the 20 available textures or add new ones. |
- = Updates: =- |
Version 2.34 : |
-------------- |
+ Added an effect activation when a specific action is ready or not in your action bars. |
- Finally, corrected the bug that cause some weapon enchant effect don't appear normally. |
Version 2.32 : |
-------------- |
+ Compatibility with version 2.0.3 of Wow |
+ Power Auras come now with 50 textures (you don't need anymore to download the 2 texture packs) |
+ Added 3 timers |
+ Added a timer duration for buffs/debuffs on the target |
+ You can now add easily your own textures (in the "Custom" Directory) |
+ Added tests on friendly or ennemy target |
+ Added a easy way to move the effects or timer anywhere on the screen |
+ You can now display the textures with the normal transparency mode |
- The Aoe debuffs should no longer persist after death or zone change |
- Corrections of some minor bugs |
Version 2.17 : |
-------------- |
+ Compatibility to version 2.0.0 of Wow |
Version 2.16 : |
-------------- |
- Fixed the problem of high memory usage |
- Fixed some error message that sometimes can be displayed |
+ Added 2 options : "Only if in combat" and "Only if not in combat" for every effects |
Version 2.15 : |
-------------- |
+ Added a new interface to easily navigate through all the effects. You can now create/edit 120 effects per character and 240 effects shared by all your characters. |
+ All the effects can be copied and moved in the differents pages available, and the pages can be renamed for better visibility |
+ Added a function to put the effects ON or OFF |
+ Added the effect activation by AOE debuffs (like rain of fire, blizzard, etc...) |
+ Added the effect activation by weapon enchants (main hand, off hand or both hands) |
+ Added the effect activation by combo points, for cats-druids and rogues |
+ Added the option "On target" to display effects when the target has a buff/debuff |
+ Added the option "Random color" to randomly change the color of an effect after each activation |
+ Added the option "WoW Textures", which can be used to browse through 25 internal textures of the game instead of the mod's textures |
+ Texture size modifications will now be more precise. |
- Removed the panel "List" which is not any more used to save effects, all your saved effects will be placed in the global effects' pages and put on "OFF". |
- Corrections of some minor bugs |
Version 2.10 : |
-------------- |
+ Added a button "+" to easily add more effects |
+ Added a button "-" to clear all unused effects and sort the other by type |
+ You can now move the effects with more precision and anywhere one the screen (or outside ;) |
+ Added a way to ignore or not the upper/lowercase of buffs/debuffs names (fixing some bugs in non-latin versions of the game) |
+ Added two new animation's options : "Begin animation" and "End animation", allowing more cool effects combinations |
+ Changed numbers of animations by names |
+ Finally, added the 10th animation |
+ Added a option to show the 2 shortest timers for both buffs and debuffs |
+ Visual upgrade of the option interface |
- Useless option "Quick Hide" as been removed |
- Advanced command line parameters removed (no more used) |
- Finally, fixed the bug which cause some effects beeing randomly activated or deactivated |
- Some minor animation bugs fixes |
Version 2.01 : |
-------------- |
+ Added a timer for debuffs and debuff types (and more functions) |
+ Added the option "animation speed" for all effects |
+ Added the option "animation duration", if you want an effect to be hidden after some time |
+ Added the option to show the effects only when buff/debuff are not active |
+ Added an option to easily change the number of textures available to the Mod |
- Fixed a bug causing incorrect display of debuff types on non-english versions of the game |
- Fixed a bug not allowing to save the maximum number of texture correctly |
Version 1.12b : |
--------------- |
- Added 5 textures and 3 animations (don't overwrite your textures if you modified or created new ones) |
- Added a movable timer for buffs (debuffs in a future version). This timer will always show the remaining time of the shortest buff. |
- You can now increase the maximum number of effects to 100 (with the command /powa maxeffect) |
- You can enter several names of buffs/debuffs on a single page of effect, if you separate them by "/" (ex: Fortitude/Mark of the wild) |
- You can activate a type of debuff which isn't a Magic, Disease... with the word "None" (the effect will show if the debuff has no particular type). Furthermore, you can enter multiple type of debuffs to the "Name of the debuff" (to track Poison and Disease for example). |
Version 1.12a : |
--------------- |
- Fixed a problem with memory usage, it should work great now |
Version 1.12: |
------------- |
- Added the possibility to save yours effects in a list common to all the characters, juste click the button "List" |
- Added advanced options, available by typing : / powa help |
<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"> |
<Button name="PowaIconeTemplate" virtual="true"> |
<Size> |
<AbsDimension x="38" y="38"/> |
</Size> |
<Scripts> |
<OnLoad> |
self:RegisterForClicks("LeftButtonUp", "RightButtonDown"); |
</OnLoad> |
<OnClick> |
PowaAuras:IconeClick(self, button) |
</OnClick> |
<OnEnter> |
PowaAuras:IconeEntered(self) |
</OnEnter> |
<OnLeave> |
GameTooltip:Hide(); |
</OnLeave> |
</Scripts> |
<NormalFont style="GameFontHighlight"/> |
<NormalTexture file="Interface\PaperDoll\UI-Backpack-EmptySlot"/> |
<HighlightTexture alphaMode="ADD" file="Interface\Buttons\ButtonHilight-Square"/> |
</Button> |
<Button name="PowaListTemplate" inherits="OptionsButtonTemplate" virtual="true"> |
<Size> |
<AbsDimension x="90" y="25"/> |
</Size> |
<Scripts> |
<OnClick> |
PowaAuras:MainListClick(self); |
</OnClick> |
<OnEnter> |
PowaAuras:MainListEntered(self); |
</OnEnter> |
<OnLeave> |
GameTooltip:Hide(); |
</OnLeave> |
</Scripts> |
<ButtonText name="$parentText"/> |
<NormalFont style="GameFontNormalSmall"/> |
<HighlightFont style="GameFontHighlightSmall"/> |
<NormalTexture file=""/> |
<PushedTexture file=""/> |
<Layers> |
<Layer> |
<Texture name="$parentGlow" file="Interface\PaperDollInfoFrame\UI-Character-Tab-Highlight" alphaMode="ADD" hidden="true"> |
<Size> |
<AbsDimension x="90" y="25" /> |
</Size> |
<Anchors> |
<Anchor point="CENTER"> |
<Offset> |
<AbsDimension x="0" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Texture> |
</Layer> |
</Layers> |
</Button> |
-- ------------------------------------------------------------------------------------------------ |
<Frame name="PowaOptionsFrame" toplevel="true" movable="true" parent="UIParent" frameStrata="MEDIUM" hidden="true" enableMouse="true" enableKeyboard="true"> |
<Size> |
<AbsDimension x="328" y="470" /> |
</Size> |
<Anchors> |
<Anchor point="CENTER" relativeTo="UIParent"> |
<Offset> |
<AbsDimension x="0" y="50" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_LAVAROCK01" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true"> |
<BackgroundInsets> |
<AbsInset left="11" right="12" top="12" bottom="11" /> |
</BackgroundInsets> |
<TileSize> |
<AbsValue val="200" /> |
</TileSize> |
<EdgeSize> |
<AbsValue val="32" /> |
</EdgeSize> |
</Backdrop> |
<Scripts> |
<OnLoad> |
self:SetBackdropBorderColor(0.9, 1.0, 0.9); |
self:SetBackdropColor(0.6, 0.6, 0.6); |
tinsert(UISpecialFrames, self:GetName()); |
</OnLoad> |
<OnShow> |
PlaySound("TalentScreenOpen"); |
</OnShow> |
<OnHide> |
PowaAuras:MainOptionClose(); |
</OnHide> |
<OnMouseDown> |
PowaAuras:Bar_MouseDown( self, button, "PowaOptionsFrame" ); |
</OnMouseDown> |
<OnMouseUp> |
PowaAuras:Bar_MouseUp( self, button, "PowaOptionsFrame" ); |
</OnMouseUp> |
</Scripts> |
-- BLOCK DE TITRE |
<Layers> |
<Layer> |
<Texture file="Interface\DialogFrame\UI-DialogBox-Header"> |
<Size> |
<AbsDimension x="180" y="32" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" y="8" /> |
</Offset> |
</Anchor> |
</Anchors> |
<TexCoords left="0.2" right="0.8" top="0" bottom="0.6" /> |
</Texture> |
-- TITRE |
<FontString name="PowaOptionsHeader" inherits="GameFontNormalSmall" text="POWER AURAS"> |
<Size> |
<AbsDimension x="140" y="0" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" y="-4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<FontHeight> |
<AbsValue val="14" /> |
</FontHeight> |
</FontString> |
<FontString name="PowaAuthorText" inherits="GameFontDisable" text="Created by -Sinsthar- [Ziya / Tiven, on Kirin Tor (FR)]"> |
<Size> |
<AbsDimension x="180" y="30" /> |
</Size> |
<Anchors> |
<Anchor point="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="120" /> |
</Offset> |
</Anchor> |
</Anchors> |
<FontHeight> |
<AbsValue val="15" /> |
</FontHeight> |
</FontString> |
</Layer> |
</Layers> |
-- ----------------------------------------------------------------------------------- boutons |
<Frames> |
-- bouton fermer |
<Button name="$parentCloseButton" inherits="UIPanelCloseButton"> |
<Anchors> |
<Anchor point="TOPRIGHT"> |
<Offset> |
<AbsDimension x="-5" y="-5"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
-- case desactiver |
<CheckButton name="PowaEnableButton" inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" y="25"/> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="PowaOptionsFrame" relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="20" y="-20"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideEnable; |
getglobal("PowaEnableButtonText"):SetText(PowaAuras.Text.nomEnable); |
</OnLoad> |
<OnClick> |
PowaAuras:EnableChecked(); |
</OnClick> |
</Scripts> |
</CheckButton> |
<CheckButton name="PowaDebugButton" inherits="PowaCheckTemplate"> |
<Size> |
<AbsDimension x="25" y="25"/> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="PowaOptionsFrame" relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="20" y="-45"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
self.tooltipText = PowaAuras.Text.aideDebug; |
getglobal("PowaDebugButtonText"):SetText(PowaAuras.Text.nomDebug); |
</OnLoad> |
<OnClick> |
PowaAuras:DebugChecked(); |
</OnClick> |
</Scripts> |
</CheckButton> |
-- bouton Editer |
<Button name="PowaEditButton" inherits="OptionsButtonTemplate" text="Editer"> |
<Anchors> |
<Anchor point="BOTTOMRIGHT" relativeTo="PowaOptionsFrame" relativePoint="BOTTOMRIGHT"> |
<Offset> |
<AbsDimension x="-20" y="17"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaEditButtonText"):SetText(PowaAuras.Text.nomEdit); |
</OnLoad> |
<OnClick> |
PowaAuras:EditorShow(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
</Scripts> |
</Button> |
-- bouton tester |
<Button name="PowaMainTestButton" inherits="OptionsButtonTemplate" text="Tester"> |
<Anchors> |
<Anchor point="BOTTOMLEFT" relativeTo="PowaOptionsFrame" relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="20" y="17"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaMainTestButtonText"):SetText(PowaAuras.Text.nomTest); |
</OnLoad> |
<OnClick> |
PowaAuras:OptionTest(); |
PowaAuras:UpdateMainOption(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
</Scripts> |
</Button> |
-- bouton tout masquer |
<Button name="PowaMainHideAllButton" inherits="OptionsButtonTemplate" text="Tout Cacher"> |
<Anchors> |
<Anchor point="BOTTOM" relativeTo="PowaOptionsFrame" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="17"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaMainHideAllButtonText"):SetText(PowaAuras.Text.nomHide); |
</OnLoad> |
<OnClick> |
PowaAuras:OptionHideAll(); |
PowaAuras:UpdateMainOption(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
</Scripts> |
</Button> |
-- --------------------------------------------------------------------- Fenetre icones effets |
<Frame name="PowaOptionsSelectorFrame"> |
<Size> |
<AbsDimension x="194" y="355"/> |
</Size> |
<Anchors> |
<Anchor point="TOPRIGHT"> |
<Offset> |
<AbsDimension x="-20" y="-70"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true"> |
<EdgeSize> |
<AbsValue val="12"/> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" right="2" top="2" bottom="2"/> |
</BackgroundInsets> |
</Backdrop> |
<Scripts> |
<OnLoad> |
self:SetBackdropBorderColor(0.0, 0.0, 0.0); |
self:SetBackdropColor(0.1, 0.1, 0.1); |
</OnLoad> |
</Scripts> |
<Frames> |
<Button name="PowaIcone1" inherits="PowaIconeTemplate" id="1"> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="PowaOptionsSelectorFrame" relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="8" y="-8" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone2" inherits="PowaIconeTemplate" id="2"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone1" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone3" inherits="PowaIconeTemplate" id="3"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone2" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone4" inherits="PowaIconeTemplate" id="4"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone3" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone5" inherits="PowaIconeTemplate" id="5"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaIcone1" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="-8" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone6" inherits="PowaIconeTemplate" id="6"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone5" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone7" inherits="PowaIconeTemplate" id="7"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone6" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone8" inherits="PowaIconeTemplate" id="8"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone7" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone9" inherits="PowaIconeTemplate" id="9"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaIcone5" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="-8" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone10" inherits="PowaIconeTemplate" id="10"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone9" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone11" inherits="PowaIconeTemplate" id="11"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone10" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone12" inherits="PowaIconeTemplate" id="12"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone11" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone13" inherits="PowaIconeTemplate" id="13"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaIcone9" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="-8" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone14" inherits="PowaIconeTemplate" id="14"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone13" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone15" inherits="PowaIconeTemplate" id="15"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone14" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone16" inherits="PowaIconeTemplate" id="16"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone15" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone17" inherits="PowaIconeTemplate" id="17"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaIcone13" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="-8" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone18" inherits="PowaIconeTemplate" id="18"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone17" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone19" inherits="PowaIconeTemplate" id="19"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone18" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone20" inherits="PowaIconeTemplate" id="20"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone19" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone21" inherits="PowaIconeTemplate" id="21"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaIcone17" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="-8" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone22" inherits="PowaIconeTemplate" id="22"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone21" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone23" inherits="PowaIconeTemplate" id="23"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone22" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaIcone24" inherits="PowaIconeTemplate" id="24"> |
<Anchors> |
<Anchor point="LEFT" relativeTo="PowaIcone23" relativePoint="RIGHT"> |
<Offset> |
<AbsDimension x="8" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
-- Texture selected |
<Frame name="PowaSelected" frameStrata="HIGH"> |
<Size> |
<AbsDimension x="38" y="38" /> |
</Size> |
<Anchors> |
<Anchor point="CENTER"> |
<Offset> |
<AbsDimension x="0" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer> |
<Texture file="Interface\Buttons\CheckButtonHilight" alphaMode="ADD"> |
<Size> |
<AbsDimension x="38" y="38" /> |
</Size> |
<Anchors> |
<Anchor point="CENTER"> |
<Offset> |
<AbsDimension x="0" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
</Texture> |
</Layer> |
</Layers> |
</Frame> |
-- bouton Nouveau |
<Button name="PowaOptionsSelectorNew" inherits="OptionsButtonTemplate" text="Nouveau"> |
<Size> |
<AbsDimension x="90" y="22"/> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" relativeTo="PowaOptionsSelectorFrame" relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="5" y="55"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaOptionsSelectorNewText"):SetText(PowaAuras.Text.nomNew); |
</OnLoad> |
<OnClick> |
PowaAuras:OptionNewEffect(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
</Scripts> |
</Button> |
-- bouton Delete |
<Button name="PowaOptionsSelectorDelete" inherits="OptionsButtonTemplate" text="Suppr."> |
<Size> |
<AbsDimension x="90" y="22"/> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMRIGHT" relativeTo="PowaOptionsSelectorFrame" relativePoint="BOTTOMRIGHT"> |
<Offset> |
<AbsDimension x="-5" y="55"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaOptionsSelectorDeleteText"):SetText(PowaAuras.Text.nomDel); |
</OnLoad> |
<OnClick> |
PowaAuras:OptionDeleteEffect(PowaAuras.CurrentAuraId); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
<OnEnter> |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetText(PowaAuras.Text.aideDel, nil, nil, nil, nil, 1); |
</OnEnter> |
<OnLeave> |
GameTooltip:Hide(); |
</OnLeave> |
</Scripts> |
</Button> |
-- bouton Import |
<Button name="PowaOptionsSelectorImport" inherits="OptionsButtonTemplate" text="Import"> |
<Size> |
<AbsDimension x="90" y="22"/> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" relativeTo="PowaOptionsSelectorFrame" relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="5" y="5"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaOptionsSelectorImportText"):SetText(PowaAuras.Text.nomImport); |
</OnLoad> |
<OnClick> |
PowaAuras:OptionImportEffect(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
</Scripts> |
</Button> |
-- bouton Export |
<Button name="PowaOptionsSelectorExport" inherits="OptionsButtonTemplate" text="Export"> |
<Size> |
<AbsDimension x="90" y="22"/> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMRIGHT" relativeTo="PowaOptionsSelectorFrame" relativePoint="BOTTOMRIGHT"> |
<Offset> |
<AbsDimension x="-5" y="5"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaOptionsSelectorExportText"):SetText(PowaAuras.Text.nomExport); |
</OnLoad> |
<OnClick> |
PowaAuras:OptionExportEffect(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
</Scripts> |
</Button> |
-- bouton Deplacer |
<Button name="PowaOptionsMove" inherits="OptionsButtonTemplate" text="Deplacer"> |
<Size> |
<AbsDimension x="90" y="22"/> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMLEFT" relativeTo="PowaOptionsSelectorFrame" relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="5" y="30"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaOptionsMoveText"):SetText(PowaAuras.Text.nomMove); |
</OnLoad> |
<OnClick> |
PowaAuras:OptionMoveEffect(true); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
</Scripts> |
</Button> |
-- bouton Copier |
<Button name="PowaOptionsCopy" inherits="OptionsButtonTemplate" text="Copier"> |
<Size> |
<AbsDimension x="90" y="22"/> |
</Size> |
<Anchors> |
<Anchor point="BOTTOMRIGHT" relativeTo="PowaOptionsSelectorFrame" relativePoint="BOTTOMRIGHT"> |
<Offset> |
<AbsDimension x="-5" y="30"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnLoad> |
getglobal("PowaOptionsCopyText"):SetText(PowaAuras.Text.nomCopy); |
</OnLoad> |
<OnClick> |
PowaAuras:OptionMoveEffect(false); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
</Scripts> |
</Button> |
</Frames> |
</Frame> |
-- --------------------------------------------------------------------- Fenetre player liste |
<Frame name="PowaOptionsPlayerListFrame"> |
<Size> |
<AbsDimension x="90" y="110"/> |
</Size> |
<Anchors> |
<Anchor point="TOPRIGHT" relativeTo="PowaOptionsSelectorFrame" relativePoint="TOPLEFT"> |
<Offset> |
<AbsDimension x="-3" y="0"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true"> |
<EdgeSize> |
<AbsValue val="12"/> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" right="2" top="2" bottom="2"/> |
</BackgroundInsets> |
</Backdrop> |
<Layers> |
<Layer> |
<FontString name="PowaOptionsPlayerTitre" inherits="GameFontHighlight" text="Character Effects"> |
<Size> |
<AbsDimension x="90" y="30" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsPlayerListFrame" relativePoint="TOP"> |
<Offset> |
<AbsDimension x="0" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<FontHeight> |
<AbsValue val="13" /> |
</FontHeight> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
self:SetBackdropBorderColor(0.0, 0.0, 0.0); |
self:SetBackdropColor(0.1, 0.1, 0.1); |
getglobal("PowaOptionsPlayerTitre"):SetText(PowaAuras.Text.nomPlayerEffects); |
</OnLoad> |
</Scripts> |
<Frames> |
-- listes |
<Button name="PowaOptionsList1" inherits="PowaListTemplate" text="Page 1" id="1"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsPlayerTitre" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="5"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList2" inherits="PowaListTemplate" text="Page 2" id="2"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList1" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList3" inherits="PowaListTemplate" text="Page 3" id="3"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList2" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList4" inherits="PowaListTemplate" text="Page 4" id="4"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList3" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList5" inherits="PowaListTemplate" text="Page 5" id="5"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList4" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
</Frames> |
</Frame> |
-- --------------------------------------------------------------------- Fenetre global liste |
<Frame name="PowaOptionsGlobalListFrame"> |
<Size> |
<AbsDimension x="90" y="187"/> |
</Size> |
<Anchors> |
<Anchor point="TOPLEFT" relativeTo="PowaOptionsPlayerListFrame" relativePoint="BOTTOMLEFT"> |
<Offset> |
<AbsDimension x="0" y="-7"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Dungeons\Textures\rock\BM_BRSPIRE_CUBEROCK01" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true"> |
<EdgeSize> |
<AbsValue val="12"/> |
</EdgeSize> |
<TileSize> |
<AbsValue val="128" /> |
</TileSize> |
<BackgroundInsets> |
<AbsInset left="2" right="2" top="2" bottom="2"/> |
</BackgroundInsets> |
</Backdrop> |
<Layers> |
<Layer> |
<FontString name="PowaOptionsGlobalTitre" inherits="GameFontHighlight" text="Global Effects"> |
<Size> |
<AbsDimension x="90" y="30" /> |
</Size> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsGlobalListFrame" relativePoint="TOP"> |
<Offset> |
<AbsDimension x="0" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<FontHeight> |
<AbsValue val="13" /> |
</FontHeight> |
</FontString> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
self:SetBackdropBorderColor(0.0, 0.0, 0.0); |
self:SetBackdropColor(0.1, 0.1, 0.1); |
getglobal("PowaOptionsGlobalTitre"):SetText(PowaAuras.Text.nomGlobalEffects); |
</OnLoad> |
</Scripts> |
<Frames> |
-- listes |
<Button name="PowaOptionsList6" inherits="PowaListTemplate" text="Page 1" id="6"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsGlobalTitre" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="5"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList7" inherits="PowaListTemplate" text="Page 2" id="7"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList6" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList8" inherits="PowaListTemplate" text="Page 3" id="8"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList7" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList9" inherits="PowaListTemplate" text="Page 4" id="9"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList8" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList10" inherits="PowaListTemplate" text="Page 5" id="10"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList9" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList11" inherits="PowaListTemplate" text="Page 6" id="11"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList10" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList12" inherits="PowaListTemplate" text="Page 7" id="12"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList11" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList13" inherits="PowaListTemplate" text="Page 8" id="13"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList12" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList14" inherits="PowaListTemplate" text="Page 9" id="14"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList13" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
<Button name="PowaOptionsList15" inherits="PowaListTemplate" text="Page 10" id="15"> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsList14" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="10"/> |
</Offset> |
</Anchor> |
</Anchors> |
</Button> |
-- bouton Renommer |
<Button name="PowaOptionsRename" inherits="OptionsButtonTemplate" text="Renommer"> |
<Size> |
<AbsDimension x="90" y="22"/> |
</Size> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsGlobalListFrame" relativePoint="BOTTOM"> |
<Offset> |
<AbsDimension x="0" y="0"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Scripts> |
<OnClick> |
PowaAuras:OptionRename(); |
PlaySound("igCharacterInfoTab"); |
</OnClick> |
<OnEnter> |
GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); |
GameTooltip:SetText(PowaAuras.Text.aideRename, nil, nil, nil, nil, 1); |
</OnEnter> |
<OnLeave> |
GameTooltip:Hide(); |
</OnLeave> |
</Scripts> |
</Button> |
<EditBox name="PowaOptionsRenameEditBox" autoFocus="true" inherits="InputBoxTemplate" hidden="true"> |
<Size> |
<AbsDimension x="85" y="22"/> |
</Size> |
<Anchors> |
<Anchor point="TOP" relativeTo="PowaOptionsRename" relativePoint="TOP"> |
<Offset> |
<AbsDimension x="3" y="0"/> |
</Offset> |
</Anchor> |
</Anchors> |
<Layers> |
<Layer level="OVERLAY"> |
<FontString inherits="GameFontNormalSmall" bytes="15"/> |
</Layer> |
</Layers> |
<Scripts> |
<OnLoad> |
self:SetMaxLetters(15) |
</OnLoad> |
<OnEnterPressed> |
PowaAuras:OptionRenameEdited(); |
self:ClearFocus(); |
</OnEnterPressed> |
</Scripts> |
</EditBox> |
</Frames> |
</Frame> |
</Frames> |
</Frame> |
</Ui> |
<Ui xmlns="http://www.blizzard.com/wow/ui" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
<!--Autogenerated by wowuides, Version=1.0.300.0, Culture=neutral, PublicKeyToken=null--> |
<Frame name="PowerAurasForm"> |
<!--<FrameSkin skinid="dcb143e1-a4ab-4e7c-b934-1efa40101d21" frameid="2d508883-59c2-4f83-ae10-27aaad48391b" />--> |
<Size> |
<AbsDimension x="400" y="400" /> |
</Size> |
<Anchors> |
<Anchor point="CENTER" relativeTo="UIParent"> |
<Offset> |
<AbsDimension x="0" y="0" /> |
</Offset> |
</Anchor> |
</Anchors> |
<Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true"> |
<BackgroundInsets> |
<AbsInset left="11" right="12" top="12" bottom="11" /> |
</BackgroundInsets> |
<TileSize> |
<AbsValue val="32" /> |
</TileSize> |
<EdgeSize> |
<AbsValue val="32" /> |
</EdgeSize> |
</Backdrop> |
<Layers> |
<Layer> |
<Texture name="$parentTitleBorder" hidden="true" file="Interface\DialogFrame\UI-DialogBox-Header"> |
<Size> |
<AbsDimension x="160" y="32" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" y="5" /> |
</Offset> |
</Anchor> |
</Anchors> |
<TexCoords left="0.2" right="0.8" top="0" bottom="0.6" /> |
</Texture> |
<FontString name="$parentTitleString" hidden="true" font="Fonts\FRIZQT__.TTF"> |
<Size> |
<AbsDimension x="140" y="0" /> |
</Size> |
<Anchors> |
<Anchor point="TOP"> |
<Offset> |
<AbsDimension x="0" y="-4" /> |
</Offset> |
</Anchor> |
</Anchors> |
<FontHeight> |
<AbsValue val="12" /> |
</FontHeight> |
<Color r="1" g="0.8196079" b="0" /> |
<Shadow> |
<Color r="0" g="0" b="0" /> |
<Offset> |
<AbsDimension x="1" y="-1" /> |
</Offset> |
</Shadow> |
</FontString> |
</Layer> |
</Layers> |
</Frame> |
</Ui> |
if (GetLocale() == "zhTW") then |
PowaAuras.Anim[0] = "[ç¡]"; |
PowaAuras.Anim[1] = "éæ¢"; |
PowaAuras.Anim[2] = "éå ææ"; |
PowaAuras.Anim[3] = "çé·ææ"; |
PowaAuras.Anim[4] = "èæ²ææ"; |
PowaAuras.Anim[5] = "氣泡ææ"; |
PowaAuras.Anim[6] = "æ°´æ»´ææ"; |
PowaAuras.Anim[7] = "æ¼é»ææ"; |
PowaAuras.Anim[8] = "æ¶ç¸®ææ"; |
PowaAuras.Anim[9] = "ç«ç°ææ"; |
PowaAuras.Anim[10] = "ç¤æææ"; |
PowaAuras.BeginAnimDisplay[0] = "[ç¡]"; |
PowaAuras.BeginAnimDisplay[1] = "æ¾å¤§é²å ¥"; |
PowaAuras.BeginAnimDisplay[2] = "縮å°é²å ¥"; |
PowaAuras.BeginAnimDisplay[3] = "æ¹è®éæ度"; |
PowaAuras.BeginAnimDisplay[4] = "å·¦éé²å ¥"; |
PowaAuras.BeginAnimDisplay[5] = "å·¦ä¸é²å ¥"; |
PowaAuras.BeginAnimDisplay[6] = "ä¸é¨é²å ¥"; |
PowaAuras.BeginAnimDisplay[7] = "å³ä¸é²å ¥"; |
PowaAuras.BeginAnimDisplay[8] = "å³éé²å ¥"; |
PowaAuras.BeginAnimDisplay[9] = "å³ä¸é²å ¥"; |
PowaAuras.BeginAnimDisplay[10] = "ä¸é¨é²å ¥"; |
PowaAuras.BeginAnimDisplay[11] = "å·¦ä¸é²å ¥"; |
PowaAuras.BeginAnimDisplay[12] = "Bounce"; |
PowaAuras.EndAnimDisplay[0] = "[ç¡]"; |
PowaAuras.EndAnimDisplay[1] = "æ¾å¤§é²å ¥"; |
PowaAuras.EndAnimDisplay[2] = "縮å°é²å ¥"; |
PowaAuras.EndAnimDisplay[3] = "æ¹è®éæ度"; |
PowaAuras.Sound[0] = "[ç¡]"; |
PowaAuras.Sound[1] = "åç´é³æ"; |
PowaAuras.Sound[2] = "æ¡åéå¹£"; |
PowaAuras.Sound[3] = "é£é"; |
PowaAuras.Sound[4] = "æ¢ç´¢æ°å°å"; |
PowaAuras.Sound[5] = "æ¥å°ä»»å"; |
PowaAuras.Sound[6] = "ä»»åå®æ"; |
PowaAuras.Sound[7] = "寫任å"; |
PowaAuras.Sound[8] = "é£é"; |
PowaAuras.Sound[9] = "PVPäºä»¶"; |
PowaAuras.Sound[10] = "åé檢æ¥"; |
PowaAuras.Sound[11] = "åéè¦å"; |
PowaAuras.Sound[12] = "æéæè³£è¡"; |
PowaAuras.Sound[13] = "ééæè³£è¡"; |
PowaAuras.Sound[14] = "æ¶æ¶è©±"; |
PowaAuras.Sound[15] = "æéèå "; |
PowaAuras.Text = { |
nomDebug = "åç¨Debug模å¼", |
aideDebug = "é¸é æ¤é å¾,æ件å¦æéå°é¯èª¤å°é¡¯ç¤ºæ示信æ¯", |
nomStance = "姿æ ", |
aideStance = "é¸æç¨æ¼è§¸ç¼ç¹æç姿æ ", |
nomCheckOwnSpell = "Spell from my Spellbook", |
nomCheckStance = "姿æ ", |
nomCheckSpells = "Spell Alert", --- untranslated |
nomCustomSound = "èªå®ç¾©è²é³æ件:", |
nomTabSound = "è²é³", |
nomTabTimer = "è¨æå¨", |
nomExact = "精確å¹é å稱", |
aideExact = "é¸ä¸æ¤é å°ç²¾ç¢ºå¹é buff/debffå稱", |
nomMine = "Cast by me", --- untranslated |
nomDispellable = "I can dispell", |
aideMine = "Check this to test only buffs/debuffs cast by the player", --- untranslated |
nomGCD = "å ¬å ±å·å»", |
aideGCD = "é¸ä¸æ¤é å¾'åä½å·å»'åè½å°æª¢æ¸¬å ¬å ±å·å».éè¦è¨»æçæ¯,å¦æä¸åæè½åªæå ¬å ±å·å»åæå¼èµ·å ç°ç¹æéç", |
nomSound = "ææ¾è²é³", |
aideSound = "ç¹æ觸ç¼æææ¾è²é³", |
aideCustomSound = "è¼¸å ¥è²é³æ件å稱,å¦cookie.mp3 註æ:ä½ éè¦å¨éæ²åååæè²é³æ件æ¾å ¥Soundsæ件夾ä¸,ç®åå æ¯æmp3åwavæ ¼å¼.", |
nomThreshold = "觸ç¼æ¥µé", |
aideThreshInv = "Check this to invert the threshold logic. Health/Mana: default = Low Warning / checked = High Warning. Energy/Rage/Power: default = High Warning / checked = Low Warning", --- untranslated |
nomThreshInv = "</>", |
nomSound = "ææ¾è²é³", |
aideSound = "ç¹æ觸ç¼æææ¾è²é³", |
aideCustomSound = "è¼¸å ¥è²é³æ件å稱,å¦cookie.mp3 註æ:ä½ éè¦å¨éæ²åååæè²é³æ件æ¾å ¥Soundsæ件夾ä¸,ç®åå æ¯æmp3åwavæ ¼å¼.", |
nomCheckHealth = "çå½å¼", |
nomCheckMana = "éæ³å¼", |
nomCheckRageEnergy = "Rage/Energy/Runic", -- untranslated |
welcome = "è¼¸å ¥ /powa æéç¹æ編輯å¨.", |
aucune = "ç¡", |
aucun = "ç¡", |
largeur = "寬度", |
hauteur = "é«åº¦", |
mainHand = "主æ", |
offHand = "å¯æ", |
bothHands = "éæ", |
DebuffType = |
{ |
Magic = "éæ³", |
Disease = "ç¾ç ", |
Curse = "è©å", |
Poison = "ä¸æ¯", |
}, |
DebuffCatType = |
{ |
[PowaAuras.DebuffCatType.CC] = "CC", |
[PowaAuras.DebuffCatType.Silence] = "Silence", |
[PowaAuras.DebuffCatType.Snare] = "Snare", |
[PowaAuras.DebuffCatType.Stun] = "Stun", |
[PowaAuras.DebuffCatType.Root] = "Root", |
[PowaAuras.DebuffCatType.Disarm] = "Disarm", |
[PowaAuras.DebuffCatType.PvE] = "PvE", |
}, |
-- main |
nomEnable = "åç¨", |
aideEnable = "åç¨ææPowerAurasç¹æ", |
ListePlayer = "åé¡", |
ListeGlobal = "å ¨å±", |
aideMove = "移åç¹æ", |
aideCopy = "è¤å¶ç¹æ", |
nomRename = "éå½å", |
aideRename = "éå½åæçç¹æåé¡å", |
nomTest = "測試", |
nomHide = "å ¨é¨é±è", |
nomEdit = "編輯", |
nomNew = "æ°å»º", |
nomDel = "åªé¤", |
nomImport = "Import", --- untranslated |
nomExport = "Export", --- untranslated |
aideImport = "Paste the Aura String to the editbox and press \'Accept\'", --- untranslated |
aideExport = "Copy the Aura String from the editbox to share with others.", --- untranslated |
aideDel = "åªé¤æé¸ç¹æ(å¿ é æä½Ctrléµæè½ä½¿ç¨æ¤åè½)", |
nomMove = "移å", |
nomCopy = "è¤å¶", |
nomPlayerEffects = "æçç¹æ", |
nomGlobalEffects = "éç¨ç¹æ", |
aideEffectTooltip = "æä½Shiftéµé»æåæ¨ä»¥åç¨/ç¦ç¨è©²ç¹æ", |
-- editor |
nomTexture = "ç¶åæ質", |
aideTexture = "顯示ç¹æ使ç¨çæ質.ä½ å¯ä»¥ä¿®æ¹ç¸ææä»¶å¤¾å §ç.tga æ件ä¾å¢å ç¹æ", |
nomAnim1 = "åç«ææ", |
nomAnim2 = "è¼å©ææ", |
aideAnim1 = "æ¯å¦ç²æé¸æ質使ç¨åç«ææ", |
aideAnim2 = "æ¤åç«ææ以è¼ä½ä¸éæ度顯示,ç²äºä¸éå¤å ç¨å±å¹åä¸æéé»é¡¯ç¤ºä¸åè¼å©ææ", |
nomDeform = "è®å½¢", |
aideDeform = "å¨é«åº¦æ寬度æ¹åæ伸æ質", |
aideColor = "é»ææ¤èä¿®æ¹æ質é¡è²", |
aideFont = "Click here to pick Font. Press OK to apply the selection.", --- untranslated |
aideMultiID = "Enter here other Aura IDs to combine checks. Multiple IDs must be separated with '/'. Aura ID can be found as [#] on first line of Aura tooltip.", --- untranslated |
aideTooltipCheck = "Also check the tooltip starts with this text", --- untranslated |
aideBuff = "æ¤èè¼¸å ¥ç¨äºæ¿æ´»ç¹æçbuffçåå,æååä¸çå¹¾åé£çºæå.å¦æ使ç¨åé符,ä¹å¯ä»¥è¼¸å ¥å¤åbuffçåå.ä¾å¦è¼¸å ¥: è½éç注/奧è¡è½é", |
aideBuff2 = "æ¤èè¼¸å ¥ç¨äºæ¿æ´»ç¹æçdebuffçåå,æååä¸çå¹¾åé£çºæå.å¦æ使ç¨åé符,ä¹å¯ä»¥è¼¸å ¥å¤ådebuffçåå.ä¾å¦è¼¸å ¥: 墮è½æ²»ç/ççåºæ¿", |
aideBuff3 = "æ¤èè¼¸å ¥ç¨äºæ¿æ´»ç¹æçdebuffçé¡åå稱,æå稱ä¸çå¹¾åé£çºæå.å¦æ使ç¨åé符,ä¹å¯ä»¥è¼¸å ¥å¤ådebuffé¡åçå稱.ä¾å¦è¼¸å ¥: éæ³/è©å/ä¸æ¯/ç¾ç ", |
aideBuff4 = "æ¤èè¼¸å ¥ç¨äºæ¿æ´»ç¹æçAOEæ³è¡çåå,AOEæ³è¡ååå¯ä»¥å¨æ°é¬¥è¨éä¸æ¾å°.ä¾å¦è¼¸å ¥:éªæ¡å ç°/ç«ç°ä¹é¨/æ´é¢¨éª", |
aideBuff5 = "Enter here the temporary enchant which must activate this effect : optionally prepend it with 'main/' or 'off/ to designate mainhand or offhand slot. (ex: main/crippling)", --- untranslated |
aideBuff6 = "æ¤èè¼¸å ¥ç¨äºæ¿æ´»ç¹æçé£æé»æ¸.ä¾å¦è¼¸å ¥: 1æè 1/2/3æè 0/4/5ççèªç±çµå", |
aideBuff7 = "æ¤èè¼¸å ¥æ¿æ´»ç¹æçåä½æ¢ä¸çåä½å,æååä¸çå¹¾åé£çºæå,ç¶æ¤åä½å®å ¨å·å»ææ¤ææ觸ç¼.ä¾å¦è¼¸å ¥:è´éæè±éè·ç¬¦/æ³åä¹æ½®å騰/å¿éå°æ³¨", |
aideSpells = "Enter here the Spell Name that will trigger a spell alert Aura.", --- untranslated |
aideStacks = "Enter here the operator and the amount of stacks, which must activate/deactivate the effect. It works only with an operator! ex: '<5' '>3' '=11' '!5' '>=0' '<=6' '2-8'", -- untranslated |
aideUnitn = "æ¤èè¼¸å ¥ç¨äºæ¿æ´»ç¹æçç¹å®æå¡å稱,å¿ é èäºåä¸åé", |
aideUnitn2 = "å ç¨äºåé/éä¼æ¨¡å¼", |
aideMaxTex = "å®ç¾©ç¹æ編輯å¨ä½¿ç¨çæ質æ¸é,å¦æä½ å¢å äºèªå®ç¾©æ質è«ä¿®æ¹æ¤å¼.", |
aideAddEffect = "æ°å¢å ä¸åç¹æ", |
aideWowTextures = "使ç¨éæ²å §ç½®æ質", |
aideRealaura = "æ¸ æ°å ç°", |
aideTextAura = "Check this to type text instead of texture.", --- untranslated |
aideCustomTextures = "使ç¨customæ件夾ä¸çèªå®ç¾©æ質,ä¾å¦: Flamme.tga",--- untraslated (needs update to match enGB string) |
aideRandomColor = "æ¯æ¬¡æ¿æ´»æ使ç¨é¨æ©é¡è²", |
aideTexMode = "æ質éæ度åå顯示", |
nomActivationBy = "æ¿æ´»æ¢ä»¶", |
nomOwnTex = "Use own Texture", -- untranslated |
aideOwnTex = "Use the De/Buff or Ability Texture instead.", -- untranslated |
nomStacks = "Stacks", -- untranslated |
nomSpeed = "éåé度", |
nomBegin = "é²å ´ææ", |
nomEnd = "çµæææ", |
nomSymetrie = "å°ç¨±æ§", |
nomAlpha = "ä¸éæ度", |
nomPos = "ä½ç½®", |
nomTaille = "大å°", |
nomCheckBuff = "Buff", |
nomCheckDebuff = "Debuff", |
nomCheckAoeDebuff = "AOEæ³è¡", |
nomCheckDebuffType = "Debuffé¡å", |
nomCheckEnchant = "æ¦å¨å¼·å", |
nomCheckCombo = "é£æé»æ¸", |
nomCheckSkill = "åä½å·å»", |
nomCheckAggro = "Aggro", -- untranslated |
nomCheckPvP = "PvP", -- untranslated |
nomCheckTarget = "æµæ¹ç®æ¨", |
nomCheckFriend = "åæ¹ç®æ¨", |
nomCheckParty = "åéç®æ¨", |
nomCheckFocus = "ç¦é»ç®æ¨", |
nomCheckRaid = "åéæå¡", |
nomCheckGroupOrSelf = "Raid/Party or self", |
nomCheckGroupAny = "Any", --- untranslated |
nomCheckOptunitn = "ç¹å®æå¡", |
aideTarget = "æ¤buff/debuffå åå¨äºæµæ¹ç®æ¨ä¸", |
aideTargetFriend = "æ¤buff/debuffå åå¨äºåæ¹ç®æ¨ä¸", |
aideParty = "æ¤buff/debuffå åå¨äºå°éä¸", |
aideGroupOrSelf = "Check this to test a party or raid member or self.", |
aideFocus = "æ¤buff/debuffå åå¨ç¦é»ç®æ¨ä¸", |
aideRaid = "æ¤buff/debuffå åå¨äºåéä¸", |
aideGroupAny = "Check to test if any party/raid member is buffed. Default (unchecked), all must be buffed.", --- untranslated |
aideOptunitn = "æ¤buff/debuffå åå¨äºåé/å°éä¸çç¹å®æå¡èº«ä¸", |
nomCheckShowTimer = "顯示", |
nomTimerDuration = "延é²æ¶å¤±", |
aideTimerDuration = "ç®æ¨ä¸çbuff/debuffè¨æå¨å»¶é²å°æ¤æéçµæå¾åæ¶å¤±(0ç²ç¦ç¨)", |
aideShowTimer = "ç²æ¤ææ顯示è¨æå¨", |
aideSelectTimer = "é¸æ使ç¨ä½ç¨®è¨æå¨ä¾é¡¯ç¤ºæçºæé", |
aideSelectTimerBuff = "é¸æ使ç¨ä½ç¨®è¨æå¨ä¾é¡¯ç¤ºæçºæé(å ç¨äºç©å®¶buff)", |
aideSelectTimerDebuff = "é¸æ使ç¨ä½ç¨®è¨æå¨ä¾é¡¯ç¤ºæçºæé(å ç¨äºç©å®¶debuff)", |
nomCheckInverse = "ä¸åå¨ææ¿æ´»", |
aideInverse = "é¸ä¸æ¤é å¾,å ç¶buff/debuffä¸åå¨æ顯示æ¤ç¹æ", |
nomCheckIgnoreMaj = "忽ç¥å¤§å°å¯«", |
aideIgnoreMaj = "é¸ä¸æ¤é å°å¿½ç¥buff/debuffååç大å°å¯«åæ¯(ä¾è±æç©å®¶ä½¿ç¨,ä¸åç©å®¶ä¸éè¦ä¿®æ¹æ¤é )", |
nomDuration = "延é²æ¶å¤±", |
aideDuration = "ç¹æ延é²å°æ¤æéçµæå¾åæ¶å¤±(0ç²ç¦ç¨)", |
nomCentiemes = "顯示ç¾åä½", |
nomDual = "é¡¯ç¤ºå ©åè¨æå¨", |
nomHideLeadingZeros = "Hide Leading Zeros", |
nomTransparent = "Use transparent textures", |
nomClose = "éé", |
nomEffectEditor = "ç¹æ編輯å¨", |
nomAdvOptions = "é¸é ", |
nomMaxTex = "æ大å¯ç¨æ質", |
nomTabAnim = "åç«ææ", |
nomTabActiv = "æ¿æ´»æ¢ä»¶", |
nomWowTextures = "使ç¨å §ç½®æ質", |
nomCustomTextures = "使ç¨èªå®ç¾©æ質", |
nomRealaura = "æ¸ æ°å ç°", |
nomTextAura = "Text Aura", --- untranslated |
nomRandomColor = "é¨æ©é¡è²", |
nomTexMode = "å æææ", |
nomInCombat = "æ°é¬¥çæ ", |
aideInCombat = "å ç¶ä½ èäºæ°é¬¥çæ æææ¿æ´»æ¤ç¹æ", |
nomTalentGroup1 = "Spec 1", |
aideTalentGroup1 = "Show this effect only when you are in your primary talent spec.", |
nomTalentGroup2 = "Spec 2", |
aideTalentGroup2 = "Show this effect only when you are in your secondary talent spec.", |
nomNotInCombat = "éæ°é¬¥çæ ", |
aideNotInCombat = "å å¨éæ°é¬¥çæ æææ¿æ´»æ¤ç¹æ", |
nomIsMounted = "Only if Mounted", -- untranslated |
aideIsMounted = "Checked: Only when on mount. Uncheked: Only when dismounted.", -- untranslated |
nomInVehicle = "Only if in Vehicle", -- untranslated |
aideInVehicle = "Checked: Only when in vehicle. Uncheked: Only when not in vehicle.", -- untranslated |
nomIsInRaid = "Only if in raid", -- untranslated |
aideIsInRaid = "Show this effect only when you are in a raid.", -- untranslated |
nomResting = "Only if Resting", |
aideResting = "Checked: Only when Resting. Uncheked: Only when not Resting.", |
}; |
end |
if (GetLocale() == "ruRU") then |
PowaAuras.Anim[0] = "[CкÑÑÑÑй]"; |
PowaAuras.Anim[1] = "СÑаÑиÑеÑкий"; |
PowaAuras.Anim[2] = "Ðигание"; |
PowaAuras.Anim[3] = "УвелиÑение"; |
PowaAuras.Anim[4] = "ÐÑлÑÑаÑиÑ"; |
PowaAuras.Anim[5] = "ÐÑзÑÑиÑÑÑÑ"; |
PowaAuras.Anim[6] = "ÐапанÑе водÑ"; |
PowaAuras.Anim[7] = "ÐлекÑÑиÑеÑкий"; |
PowaAuras.Anim[8] = "СÑÑгивание"; |
PowaAuras.Anim[9] = "ÐгонÑ"; |
PowaAuras.Anim[10] = "ÐÑаÑаÑÑÑÑ"; |
PowaAuras.BeginAnimDisplay[0] = "[ÐеÑÑ]"; |
PowaAuras.BeginAnimDisplay[1] = "УвелиÑиÑÑ Ð¼Ð°ÑÑÑаб"; |
PowaAuras.BeginAnimDisplay[2] = "УменÑÑиÑÑ Ð¼Ð°ÑÑÑаб"; |
PowaAuras.BeginAnimDisplay[3] = "ТолÑко маÑовоÑÑÑ"; |
PowaAuras.BeginAnimDisplay[4] = "Слева"; |
PowaAuras.BeginAnimDisplay[5] = "ÐвеÑÑ Ñ-Ñлева"; |
PowaAuras.BeginAnimDisplay[6] = "ÐвеÑÑ Ñ"; |
PowaAuras.BeginAnimDisplay[7] = "ÐвеÑÑ Ñ-ÑпÑава"; |
PowaAuras.BeginAnimDisplay[8] = "СпÑава"; |
PowaAuras.BeginAnimDisplay[9] = "ÐнизÑ-ÑпÑава"; |
PowaAuras.BeginAnimDisplay[10] = "ÐнизÑ"; |
PowaAuras.BeginAnimDisplay[11] = "ÐнизÑ-Ñлева"; |
PowaAuras.BeginAnimDisplay[12] = "Bounce"; |
PowaAuras.EndAnimDisplay[0] = "[ÐеÑÑ]"; |
PowaAuras.EndAnimDisplay[1] = "УвелиÑиÑÑ Ð¼Ð°ÑÑÑаб"; |
PowaAuras.EndAnimDisplay[2] = "УменÑÑиÑÑ Ð¼Ð°ÑÑÑаб"; |
PowaAuras.EndAnimDisplay[3] = "ТолÑко маÑовоÑÑÑ"; |
PowaAuras.Sound[0] = "ÐеÑÑ"; |
PowaAuras.Sound[1] = "LEVELUP"; |
PowaAuras.Sound[2] = "LOOTWINDOWCOINSOUND"; |
PowaAuras.Sound[3] = "MapPing"; |
PowaAuras.Sound[4] = "Exploration"; |
PowaAuras.Sound[5] = "QUESTADDED"; |
PowaAuras.Sound[6] = "QUESTCOMPLETED"; |
PowaAuras.Sound[7] = "WriteQuest"; |
PowaAuras.Sound[8] = "Fishing Reel in"; |
PowaAuras.Sound[9] = "igPVPUpdate"; |
PowaAuras.Sound[10] = "ReadyCheck"; |
PowaAuras.Sound[11] = "RaidWarning"; |
PowaAuras.Sound[12] = "AuctionWindowOpen"; |
PowaAuras.Sound[13] = "AuctionWindowClose"; |
PowaAuras.Sound[14] = "TellMessage"; |
PowaAuras.Sound[15] = "igBackPackOpen"; |
PowaAuras.Text = { |
welcome = "ÐÐ»Ñ Ð¿ÑоÑмоÑÑа наÑÑÑоек введиÑе /powa.", |
aucune = "ÐеÑÑ", |
aucun = "ÐеÑÑ", |
largeur = "ШиÑина", |
hauteur = "ÐÑÑоÑа", |
mainHand = "пÑаваÑ", |
offHand = "леваÑ", |
bothHands = "Ðбе", |
DebuffType = |
{ |
Magic = "ÐагиÑ", |
Disease = "ÐолезнÑ", |
Curse = "ÐÑоклÑÑие", |
Poison = "Яд", |
}, |
DebuffCatType = |
{ |
[PowaAuras.DebuffCatType.CC] = "ÐонÑÑолÑ", |
[PowaAuras.DebuffCatType.Silence] = "ÐолÑание", |
[PowaAuras.DebuffCatType.Snare] = "ÐовÑÑка", |
[PowaAuras.DebuffCatType.Stun] = "ÐглÑÑение", |
[PowaAuras.DebuffCatType.Root] = "ÐоÑни", |
[PowaAuras.DebuffCatType.Disarm] = "РазоÑÑжение", |
[PowaAuras.DebuffCatType.PvE] = "PvE", |
}, |
-- main |
nomEnable = "ÐкÑивиÑоваÑÑ Power Auras", |
aideEnable = "ÐклÑÑиÑÑ Ð²Ñе ÑÑÑекÑÑ Power Auras", |
nomDebug = "ÐкÑивиÑоваÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ñладки", |
aideDebug = "ÐклÑÑиÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ñладки", |
ListePlayer = "СÑÑаниÑа", |
ListeGlobal = "ÐлобалÑное", |
aideMove = "ÐеÑемеÑÑиÑÑ ÑÑÑÐµÐºÑ ÑÑда.", |
aideCopy = "ÐопиÑоваÑÑ ÑÑÑÐµÐºÑ ÑÑда.", |
nomRename = "ÐеÑеименоваÑÑ", |
aideRename = "ÐеÑеименоваÑÑ Ð²ÑбÑаннÑÑ ÑÑÑаниÑÑ ÑÑÑекÑов.", |
nomTest = "ТеÑÑ", |
nomHide = "СкÑÑÑÑ Ð²Ñе", |
nomEdit = "ÐÑавиÑÑ", |
nomNew = "Ðовое", |
nomDel = "УдалиÑÑ", |
nomImport = "ÐмпоÑÑ", |
nomExport = "ÐкÑпоÑÑ", |
aideImport = "ÐажмиÑе Ctrl-V ÑÑÐ¾Ð±Ñ Ð²ÑÑавиÑÑ ÑÑÑокÑ-аÑÑÑ Ð¸ нажмиÑе \'ÐÑинÑÑÑ\'", |
aideExport = "ÐажмиÑе Ctrl-C ÑÑÐ¾Ð±Ñ ÑкопиÑоваÑÑ ÑÑÑокÑ-аÑÑÑ.", |
aideDel = "УдалиÑÑ Ð²ÑбÑаннÑй ÑÑÑÐµÐºÑ (ЧÑÐ¾Ð±Ñ ÐºÐ½Ð¾Ð¿ÐºÐ° заÑабоÑала, ÑдеÑживайÑе CTRL)", |
nomMove = "ÐеÑемеÑÑиÑÑ", |
nomCopy = "ÐопиÑоваÑÑ", |
nomPlayerEffects = "ÐÑÑекÑÑ Ð¿ÐµÑÑонажа", |
nomGlobalEffects = "ÐлобалÑнÑе\nÑÑÑекÑÑ", |
aideEffectTooltip = "([Shift-клик] - вкл/вÑкл ÑÑÑекÑ)", |
-- editor |
nomSound = "ÐÑоигÑÑваемÑй звÑк", |
aideSound = "ÐÑоигÑаÑÑ Ð·Ð²Ñк пÑи наÑале.", |
nomCustomSound = "или звÑковой Ñайл:", |
aideCustomSound = "ÐведиÑе название звÑкового Ñайла, коÑоÑÑй помеÑÑили в Ð¿Ð°Ð¿ÐºÑ Sounds, ÐÐ ÐÐÐÐ Ñем запÑÑÑили игÑÑ. ÐоддеÑживаÑÑÑÑ mp3 и WAV. ÐапÑимеÑ: 'cookie.mp3' ;)", |
nomTexture = "ТекÑÑÑÑа", |
aideTexture = "ÐÑÐ±Ð¾Ñ Ð¾ÑобÑажаемой ÑекÑÑÑÑÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе легко замениÑÑ ÑекÑÑÑÑÑ Ð¿ÑÑем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñайлов Aura#.tga в диÑекÑоÑии модиÑикаÑии.", |
nomAnim1 = "ÐÐ»Ð°Ð²Ð½Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°ÑиÑ", |
nomAnim2 = "ÐÑоÑиÑÐ½Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°ÑиÑ", |
aideAnim1 = "ÐживиÑÑ ÑекÑÑÑÑÑ Ð¸Ð»Ð¸ неÑ, Ñ ÑазлиÑнÑми ÑÑÑекÑами.", |
aideAnim2 = "ÐÑа анимаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð° Ñ Ð¼ÐµÐ½ÑÑей пÑозÑаÑноÑÑÑÑ, Ñем оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°ÑиÑ. Ðнимание, ÑÑÐ¾Ð±Ñ Ð½Ðµ пеÑегÑÑжаÑÑ ÑкÑан, в одно и Ñо же вÑÐµÐ¼Ñ Ð±ÑÐ´ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð° ÑолÑко одна вÑоÑиÑÐ½Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°ÑиÑ.", |
nomDeform = "ÐеÑоÑмаÑиÑ", |
aideDeform = "ÐÑÑÑгивание ÑекÑÑÑÑÑ Ð¿Ð¾ ÑиÑине или по вÑÑоÑе.", |
aideColor = "ÐликниÑе ÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÑÐ²ÐµÑ ÑекÑÑÑÑÑ.", |
aideFont = "ÐажмиÑе ÑÑда, ÑÑÐ¾Ð±Ñ Ð²ÑбÑаÑÑ ÑÑиÑÑ. ÐажмиÑе OK, ÑÑÐ¾Ð±Ñ Ð¿ÑимениÑÑ Ð²ÑбÑанное.", |
aideMultiID = "ÐдеÑÑ Ð²Ð²ÐµÐ´Ð¸Ñе иденÑиÑикаÑоÑÑ (ID) дÑÑÐ³Ð¸Ñ Ð°ÑÑ Ð´Ð»Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿ÑовеÑки. ÐеÑколÑко ID Ð´Ð¾Ð»Ð¶Ð½Ñ ÑазделÑÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ '/'. ID аÑÑа можно найÑи в виде [#], в пеÑвой ÑÑÑоке подÑказки аÑÑÑ. РлÑÑÑе на http://ru.wowhead.com", |
aideTooltipCheck = "Also check the tooltip starts with this text", |
aideBuff = "ÐдеÑÑ Ð²Ð²ÐµÐ´Ð¸Ñе название баÑÑа, или ÑаÑÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ, коÑоÑÑй должен акÑивиÑоваÑÑ/дезакÑивиÑоваÑÑ ÑÑÑекÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ввеÑÑи неÑколÑко названий, еÑли они поÑÑдоÑно ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ñ (РпÑимеÑÑ: СÑÐ¿ÐµÑ Ð±Ð°ÑÑ/Сила)", |
aideBuff2 = "ÐдеÑÑ Ð²Ð²ÐµÐ´Ð¸Ñе название дебаÑÑа, или ÑаÑÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ, коÑоÑÑй должен акÑивиÑоваÑÑ/дезакÑивиÑоваÑÑ ÑÑÑекÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ввеÑÑи неÑколÑко названий, еÑли они поÑÑдоÑно ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ñ (РпÑимеÑÑ: ТÑÐ¼Ð½Ð°Ñ Ð±Ð¾Ð»ÐµÐ·Ð½Ñ/ЧÑма)", |
aideBuff3 = "ÐдеÑÑ Ð²Ð²ÐµÐ´Ð¸Ñе Ñип дебаÑÑа, коÑоÑÑй должен акÑивиÑоваÑÑ/дезакÑивиÑоваÑÑ ÑÑÑÐµÐºÑ (Яд, ÐолезнÑ, ÐÑоклÑÑие, ÐÐ°Ð³Ð¸Ñ Ð¸Ð»Ð¸ оÑÑÑÑÑÑвÑеÑ). ÐÑ Ñакже можеÑе ввеÑÑи неÑколÑко Ñипов дебаÑÑов.", |
aideBuff4 = "Enter here the name of area of effect that must trigger this effect (like a rain of fire for example, the name of this AOE can be found in the combat log)", |
aideBuff5 = "Enter here the temporary enchant which must activate this effect : optionally prepend it with 'main/' or 'off/ to designate mainhand or offhand slot. (ex: main/crippling)", |
aideBuff6 = "ÐÑ Ð¼Ð¾Ð¶ÐµÑе ввеÑÑи колиÑеÑÑво пÑиÑмов в ÑеÑии, коÑоÑое акÑивиÑÑÐµÑ Ð´Ð°Ð½Ð½Ñй ÑÑÑÐµÐºÑ (пÑÐ¸Ð¼ÐµÑ : 1 или 1/2/3 или 0/4/5 и Ñ.д...) ", |
aideBuff7 = "ÐдеÑÑ Ð²Ð²ÐµÐ´Ð¸Ñе название или ÑаÑÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ, какого-либо дейÑÑÐ²Ð¸Ñ Ñ Ð²Ð°ÑÐ¸Ñ Ð¿Ð¾Ð½ÐµÐ»ÐµÐ¹ команд. ÐÑÑÐµÐºÑ Ð°ÐºÑивиÑÑеÑÑÑ Ð¿Ñи иÑполÑзовании ÑÑого дейÑÑвиÑ.", |
aideSpells = "ÐдеÑÑ Ð²Ð²ÐµÐ´Ð¸Ñе название ÑпоÑобноÑÑи, коÑоÑое вÑÐ·Ð¾Ð²ÐµÑ Ð¾Ð¿Ð¾Ð²ÐµÑение.", |
aideStacks = "ÐдеÑÑ Ð²Ð²ÐµÐ´Ð¸Ñе опеÑаÑÐ¾Ñ Ð¸ знаÑение ÑÑопки, коÑоÑÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð°ÐºÑивиÑоваÑÑ/дезакÑивиÑоваÑÑ ÑÑÑекÑ. ÐÑо ÑабоÑÐ°ÐµÑ ÑолÑко Ñ Ð¾Ð¿ÐµÑаÑоÑом! РпÑимеÑÑ: '<5' '>3' '=11' '!5' '>=0' '<=6' '2-8'", |
aideUnitn = "ÐдеÑÑ Ð²Ð²ÐµÐ´Ð¸Ñе название ÑÑÑеÑÑва/игÑока, коÑоÑÑй должен акÑивиÑоваÑÑ/дезакÑивиÑоваÑÑ ÑÑÑекÑ. Ðожно ввеÑÑи ÑолÑко имена, еÑли они Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² ваÑей гÑÑппе или Ñейде.", |
aideUnitn2 = "ТолÑко в гÑÑппе/Ñейде.", |
aideMaxTex = "Define the maximum number of textures available on the Effect Editor. If you add textures on the Mod directory (with the names AURA1.tga to AURA50.tga), you must indicate the correct number here.", |
aideAddEffect = "Add an effect for edition.", |
aideWowTextures = "Check this to use the texture of WoW instead of textures in the Power Auras directory for this effect.", |
aideCustomTextures = "Check this to use textures in the 'Custom' subdirectory. Put the name of the texture below (ex: myTexture.tga). You can also use a Spell Name (ex: Feign Death) or SpellID (ex: 5384).", |
aideTextAura = "ÐÑмеÑив ÑÑÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ввеÑÑи иÑполÑзÑемÑй ÑекÑÑ Ð²Ð¼ÐµÑÑо ÑекÑÑÑÑÑ.", |
aideRealaura = "РеалÑÐ½Ð°Ñ Ð°ÑÑа", |
aideRandomColor = "ÐÑмеÑив ÑÑо, Ð²Ñ ÑÑÑанавливаеÑе иÑполÑзование ÑлÑÑайного ÑвеÑа каждÑй Ñаз пÑи акÑиваÑии ÑÑÑекÑа.", |
aideTexMode = "Uncheck this to use the texture opacity. By default, the darkest colors will be more transparent.", |
nomActivationBy = "ÐкÑиваÑÐ¸Ñ :", |
nomOwnTex = "Ð¡Ð²Ð¾Ñ ÑекÑÑÑÑÑ", |
aideOwnTex = "ÐÑполÑзÑйÑе Ðе/ÐаÑÑ Ð¸Ð»Ð¸ ÑпоÑобноÑÑÑ Ð²Ð¼ÐµÑÑо ÑекÑÑÑÑ.", |
nomStacks = "СÑмма", |
nomSpeed = "СкоÑоÑÑÑ Ð°Ð½Ð¸Ð¼Ð°Ñии", |
nomBegin = "ÐаÑало анимаÑии", |
nomEnd = "ÐÐ¾Ð½ÐµÑ Ð°Ð½Ð¸Ð¼Ð°Ñии", |
nomSymetrie = "СиммеÑÑиÑ", |
nomAlpha = "ÐÑозÑаÑноÑÑÑ", |
nomPos = "ÐозиÑиÑ", |
nomTaille = "РазмеÑ", |
nomExact = "ТоÑное название", |
nomGCD = "Ðлоб. ÐоÑÑÑанов.", |
nomThreshold = "ÐоÑог", |
nomStance = "СÑойка", |
aideThreshInv = "ÐнвеÑÑÐ¸Ñ Ð»Ð¾Ð³Ð¸ÐºÐ¸ поÑога знаÑений. ÐдоÑовÑе/Ðана: по ÑмолÑÐ°Ð½Ð¸Ñ = ÑообÑаÑÑ Ð¿Ñи малом колиÑеÑÑве / оÑмеÑено = ÑообÑаÑÑ Ð¿Ñи болÑÑем колиÑеÑÑве. ÐнеÑгиÑ/ЯÑоÑÑÑ/Сила: по ÑмолÑÐ°Ð½Ð¸Ñ = ÑообÑаÑÑ Ð¿Ñи болÑÑем колиÑеÑÑве / оÑмеÑено = ÑообÑаÑÑ Ð¿Ñи малом колиÑеÑÑве", |
nomThreshInv = "</>", |
nomMine = "ÐÑименÑемое мноÑ", |
nomDispellable = "ÐÐ¾Ð³Ñ ÑаÑÑеÑÑÑ", |
nomCheckBuff = "ÐаÑÑ", |
nomCheckDebuff = "ÐебаÑÑ", |
nomCheckAoeDebuff = "ÐаÑÑ Ð´ÐµÐ±Ð°ÑÑ", |
nomCheckDebuffType = "Тип дебаÑÑов", |
nomCheckEnchant = "УÑиление оÑÑжиÑ", |
nomCheckCombo = "ÐÑиÑÐ¼Ñ Ð² ÑеÑии", |
nomCheckSkill = "ÐÑименимое дейÑÑвие", |
nomCheckHealth = "ÐдоÑовÑе", |
nomCheckMana = "Ðана", |
nomCheckRageEnergy = "ЯÑоÑÑÑ/ÐнеÑгиÑ/Ð ÑнÑ", |
nomCheckAggro = "УгÑоза", |
nomCheckPvP = "PvP", |
nomCheckStance = "СÑойка", |
nomCheckSpells = "ÐповеÑение о заклинаниÑÑ ", |
nomCheckOwnSpell = "Spell from my Spellbook", |
nomCheckTarget = "ÐÑÐ°Ð¶Ð´ÐµÐ±Ð½Ð°Ñ ÑелÑ", |
nomCheckFriend = "ÐÑÑжелÑÐ±Ð½Ð°Ñ ÑелÑ", |
nomCheckParty = "УÑаÑÑник гÑÑппÑ", |
nomCheckFocus = "ФокÑÑ", |
nomCheckRaid = "УÑаÑÑник Ñейда", |
nomCheckGroupOrSelf = "Рейд/ÐÑÑÐ¿Ð¿Ñ Ð¸Ð»Ð¸ ÑебÑ", |
nomCheckGroupAny = "ÐÑбой", |
nomCheckOptunitn = "Ðазвание ÑниÑа", |
aideTarget = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка ÑолÑко вÑаждебной Ñели.", |
aideTargetFriend = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка ÑолÑко дÑÑжеÑкой Ñели.", |
aideParty = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка ÑолÑко ÑÑаÑÑников гÑÑппÑ.", |
aideGroupOrSelf = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка гÑÑÐ¿Ð¿Ñ Ð¸Ð»Ð¸ Ñейда или ваÑ.", |
aideFocus = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка ÑолÑко ÑокÑÑа.", |
aideRaid = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка ÑолÑко ÑÑаÑÑника Ñейда.", |
aideGroupAny = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка баÑÑов Ñ 'лÑбого' ÑÑаÑÑника гÑÑппÑ/Ñейда. Ðез оÑмеÑки: ÐÑÐ´ÐµÑ Ð¿Ð¾Ð´ÑазÑмеваÑÑÑÑ ÑÑо 'ÐÑе' об баÑÑанÑ.", |
aideOptunitn = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка ÑолÑко опÑеделÑнного пеÑÑонажа Ñ Ð³ÑÑппе/Ñейде.", |
aideExact = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка ÑоÑного Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð±Ð°ÑÑа/дебаÑÑа/дейÑÑвиÑ.", |
aideGCD = "Check this and the Global Cooldown triggers with aura. May cause blinking the aura, when an action only has a Global Cooldown.", |
aideStance = "ÐÑбеÑиÑе в ÐºÐ°ÐºÐ°Ñ ÑÑойка, ÑоÑма или аÑÑа вÑÐ·Ð¾Ð²ÐµÑ ÑобÑÑие.", |
aideMine = "ÐÑмеÑив ÑÑо, бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ Ð¿ÑовеÑка ÑолÑко баÑÑов/дебаÑÑав пÑименÑемÑÑ Ð¸Ð³Ñоком.", |
nomCheckShowTimer = "ÐоказаÑÑ", |
nomTimerDuration = "ÐлиÑелÑноÑÑÑ", |
aideTimerDuration = "ÐÑобÑажаÑÑ ÑÐ°Ð¹Ð¼ÐµÑ ÑимÑлиÑÑÑÑий длиÑелÑноÑÑÑ Ð±Ð°ÑÑа/дебаÑÑа на Ñели (0 - дезакÑивиÑоваÑÑ)", |
aideShowTimer = "ÐÑобÑажение ÑаймеÑа Ð´Ð»Ñ ÑÑого ÑÑÑекÑа.", |
aideSelectTimer = "Select which timer will show the duration", |
aideSelectTimerBuff = "Select which timer will show the duration (this one is reserved for player's buffs)", |
aideSelectTimerDebuff = "Select which timer will show the duration (this one is reserved for player's debuffs)", |
nomCheckInverse = "ÐоказаÑÑ ÐºÐ¾Ð³Ð´Ð° неакÑивен", |
aideInverse = "ÐÑобÑажение ÑÑого ÑÑÑекÑа ÑолÑко когда баÑÑ/дебаÑÑ Ð½ÐµÐ°ÐºÑивен.", |
nomCheckIgnoreMaj = "ÐÐ³Ð½Ð¾Ñ ÑегиÑÑÑа ÑÑÑоÑнÑÑ Ð±Ñкв", |
aideIgnoreMaj = "ÐÑли оÑмеÑиÑе ÑÑо, бÑÐ´ÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑÑÑ Ð²ÐµÑÑ Ð½Ð¸Ð¹/нижний ÑегиÑÑÑ ÑÑÑоÑнÑÑ Ð±Ñкв в названиÑÑ Ð±Ð°ÑÑов/дебаÑÑов.", |
nomDuration = "Ðлина анимаÑии:", |
aideDuration = "ÐоÑле иÑÑеÑÐµÐ½Ð¸Ñ ÑÑого вÑемени, даннÑй ÑÑÑÐµÐºÑ Ð¸ÑÑÐµÐ·Ð½ÐµÑ (0 - дезакÑивиÑоваÑÑ)", |
nomCentiemes = "Ðоказ ÑоÑÑÑ ÑаÑÑÑ", |
nomDual = "Ðоказ 2 ÑаймеÑа", |
nomHideLeadingZeros = "Hide Leading Zeros", |
nomTransparent = "Use transparent textures", |
nomClose = "ÐакÑÑÑÑ", |
nomEffectEditor = "РедакÑÐ¾Ñ ÑÑÑекÑов", |
nomAdvOptions = "ÐпÑии", |
nomMaxTex = "ÐоÑÑÑпно макÑимÑм ÑекÑÑÑÑ", |
nomTabAnim = "ÐнимаÑиÑ", |
nomTabActiv = "ÐкÑиваÑиÑ", |
nomTabSound = "ÐвÑк", |
nomTabTimer = "ТаймеÑ", |
nomWowTextures = "ТекÑÑÑÑÑ WoW", |
nomCustomTextures = "Свои ÑекÑÑÑÑÑ", |
nomTextAura = "ТекÑÑ Ð°ÑÑÑ", |
nomRealaura = "РеалÑнÑе аÑÑÑ", |
nomRandomColor = "СлÑÑайнÑе ÑвеÑа", |
nomTexMode = "СиÑние", |
nomInCombat = "ТолÑко в боÑ", |
aideInCombat = "ÐÑобÑажаÑÑ Ð´Ð°Ð½Ð½Ñй ÑÑÑÐµÐºÑ ÑолÑко когда Ð²Ñ Ð² боÑ.", |
nomTalentGroup1 = "Спек 1", |
aideTalentGroup1 = "ÐÑобÑажаÑÑ Ð´Ð°Ð½Ð½Ñй ÑÑÑÐµÐºÑ ÑолÑко когда Ñ Ð²Ð°Ñ Ð°ÐºÑивиÑован оÑновной Ð½Ð°Ð±Ð¾Ñ ÑаланÑов.", |
nomTalentGroup2 = "Спек 2", |
aideTalentGroup2 = "ÐÑобÑажаÑÑ Ð´Ð°Ð½Ð½Ñй ÑÑÑÐµÐºÑ ÑолÑко когда Ñ Ð²Ð°Ñ Ð°ÐºÑивиÑован вÑоÑоÑÑепеннÑй Ð½Ð°Ð±Ð¾Ñ ÑаланÑов.", |
nomTalentGroup1 = "Спек 1", |
aideTalentGroup1 = "ÐÑобÑажаÑÑ Ð´Ð°Ð½Ð½Ñй ÑÑÑÐµÐºÑ ÑолÑко когда Ñ Ð²Ð°Ñ Ð°ÐºÑивиÑован оÑновной Ð½Ð°Ð±Ð¾Ñ ÑаланÑов.", |
nomTalentGroup2 = "Спек 2", |
aideTalentGroup2 = "ÐÑобÑажаÑÑ Ð´Ð°Ð½Ð½Ñй ÑÑÑÐµÐºÑ ÑолÑко когда Ñ Ð²Ð°Ñ Ð°ÐºÑивиÑован вÑоÑоÑÑепеннÑй Ð½Ð°Ð±Ð¾Ñ ÑаланÑов.", |
nomNotInCombat = "ТолÑко вне боÑ", |
aideNotInCombat = "ÐÑобÑажаÑÑ Ð´Ð°Ð½Ð½Ñй ÑÑÑÐµÐºÑ ÑолÑко когда Ð²Ñ ÐРв боÑ.", |
nomIsMounted = "ТÑанÑпоÑÑ", |
aideIsMounted = "ÐÑмеÑено: ТолÑко когда на ездовом ÑÑанÑпоÑÑе. Ðе оÑмеÑено: ТолÑко когда ÐРна ездавом ÑÑанÑпоÑÑе.", |
nomInVehicle = "ТолÑко в ÑÑанÑпоÑÑе", |
aideInVehicle = "ÐÑмеÑено: ТолÑко когда в/на ÑÑанÑпоÑÑе.\nÐе оÑмеÑено: ТолÑко когда ÐРв/на ÑÑанÑпоÑÑе.", |
nomIsInRaid = "ТолÑко в Ñейде", |
aideIsInRaid = "ÐÑобÑажаÑÑ Ð´Ð°Ð½Ð½Ñй ÑÑÑÐµÐºÑ ÑолÑко когда Ð²Ñ Ð² Ñейде.", |
nomResting = "ТолÑко оÑдÑÑ Ð°Ñ", |
aideResting = "ÐÑмеÑено: ТолÑко когда Ð²Ñ Ð¾ÑдÑÑ Ð°ÐµÑе. Ðе оÑмеÑено: ТолÑко когда Ð²Ñ ÐРоÑдÑÑ Ð°ÐµÑе.", |
}; |
end |
if (GetLocale() == "deDE") then |
PowaAuras.Anim[0] = "[Nichts]"; |
PowaAuras.Anim[1] = "Statisch"; |
PowaAuras.Anim[2] = "Blitzend"; |
PowaAuras.Anim[3] = "Wachsend"; |
PowaAuras.Anim[4] = "Pulsierend"; |
PowaAuras.Anim[5] = "Blase"; |
PowaAuras.Anim[6] = "Wassertropfen"; |
PowaAuras.Anim[7] = "Electrisch"; |
PowaAuras.Anim[8] = "Schrumpfend"; |
PowaAuras.Anim[9] = "Flamme"; |
PowaAuras.Anim[10] = "Orbit"; |
PowaAuras.BeginAnimDisplay[0] = "[None]"; |
PowaAuras.BeginAnimDisplay[1] = "Reinzoomend"; |
PowaAuras.BeginAnimDisplay[2] = "Rauszoomend"; |
PowaAuras.BeginAnimDisplay[3] = "Nur Alpha"; |
PowaAuras.BeginAnimDisplay[4] = "Links"; |
PowaAuras.BeginAnimDisplay[5] = "Obenlinks"; |
PowaAuras.BeginAnimDisplay[6] = "Oben"; |
PowaAuras.BeginAnimDisplay[7] = "Obenrechts"; |
PowaAuras.BeginAnimDisplay[8] = "Rechts"; |
PowaAuras.BeginAnimDisplay[9] = "Untenrechts"; |
PowaAuras.BeginAnimDisplay[10] = "Unten"; |
PowaAuras.BeginAnimDisplay[11] = "Untenlinks"; |
PowaAuras.BeginAnimDisplay[12] = "Bounce"; |
PowaAuras.EndAnimDisplay[0] = "[None]"; |
PowaAuras.EndAnimDisplay[1] = "Reinzoomend"; |
PowaAuras.EndAnimDisplay[2] = "Rauszoomend"; |
PowaAuras.EndAnimDisplay[3] = "Nur Alpha"; |
PowaAuras.Sound[0] = "Kein"; |
PowaAuras.Sound[1] = "LEVELUP"; |
PowaAuras.Sound[2] = "LOOTWINDOWCOINSOUND"; |
PowaAuras.Sound[3] = "MapPing"; |
PowaAuras.Sound[4] = "Exploration"; |
PowaAuras.Sound[5] = "QUESTADDED"; |
PowaAuras.Sound[6] = "QUESTCOMPLETED"; |
PowaAuras.Sound[7] = "WriteQuest"; |
PowaAuras.Sound[8] = "Fishing Reel in"; |
PowaAuras.Sound[9] = "igPVPUpdate"; |
PowaAuras.Sound[10] = "ReadyCheck"; |
PowaAuras.Sound[11] = "RaidWarning"; |
PowaAuras.Sound[12] = "AuctionWindowOpen"; |
PowaAuras.Sound[13] = "AuctionWindowClose"; |
PowaAuras.Sound[14] = "TellMessage"; |
PowaAuras.Sound[15] = "igBackPackOpen"; |
PowaAuras.Text = { |
welcome = "Gib /powa ein, um die Optionen zu öffnen.", |
aucune = "Nichts", |
aucun = "Nichts", |
largeur = "Breite", |
hauteur = "Höhe", |
mainHand = "Waffenhand", |
offHand = "Schildhand", |
bothHands = "beide", |
DebuffType = |
{ |
Magic = "Magie", |
Disease = "Disease", |
Curse = "Fluch", |
Poison = "Gift", |
}, |
DebuffCatType = |
{ |
[PowaAuras.DebuffCatType.CC] = "CC", |
[PowaAuras.DebuffCatType.Silence] = "Silence", |
[PowaAuras.DebuffCatType.Snare] = "Snare", |
[PowaAuras.DebuffCatType.Stun] = "Stun", |
[PowaAuras.DebuffCatType.Root] = "Root", |
[PowaAuras.DebuffCatType.Disarm] = "Disarm", |
[PowaAuras.DebuffCatType.PvE] = "PvE", |
}, |
-- main |
nomEnable = "Aktiviere Power Auras", |
aideEnable = "Alle Power Auras Effekte einschalten", |
nomDebug = "Aktiviere Debug Meldungen", |
aideDebug = "Zeigt Debug Meldungen im Chatfenster", |
ListePlayer = "Char", |
ListeGlobal = "Global", |
aideMove = "Effekt hierher verschieben.", |
aideCopy = "Effekt hierher kopieren.", |
nomRename = "Umbenennen", |
aideRename = "Seitentitel umbenennen.", |
nomTest = "Test", |
nomHide = "Alle ausblenden", |
nomEdit = "Editieren", |
nomNew = "Neu", |
nomDel = "Löschen", |
nomImport = "Import", --- untranslated |
nomExport = "Export", --- untranslated |
aideImport = "Paste the Aura String to the editbox and press \'Accept\'", --- untranslated |
aideExport = "Copy the Aura String from the editbox to share with others.", --- untranslated |
aideDel = "Löscht den ausgewählten Effekt.(Halte CTRL gedrückt, um zu löschen)", |
nomMove = "Verschieben", |
nomCopy = "Kopieren", |
nomPlayerEffects = "Charakter Effekte", |
nomGlobalEffects = "Globale\nEffekte", |
aideEffectTooltip = "(Shift-Klick um Effekt ein oder auszuschalten.)", |
-- editor |
nomSound = "Sound abspielen:", |
aideSound = "Spielt einen Sound am Anfang ab.", |
nomCustomSound = "ODER Sounddatei:", |
aideCustomSound = "Dateiname eingeben der Sounddatei, die VOR dem WoW Starten im Sounds Verzeichniss war. mp3 und wav werden unterstützt. Bsp.: 'cookie.mp3' ;)", |
nomTexture = "Grafik", |
aideTexture = "Die Aura die angezeigt werden soll.", |
nomAnim1 = "Hauptanimation", |
nomAnim2 = "Zweitanimation", |
aideAnim1 = "Animiere die Aura oder nicht.", |
aideAnim2 = "Diese Animation wird mit weniger Staerke angezeigt als die Hauptanimation. Wegen möglicher Ãberladung der Grafik.", |
nomDeform = "Deformation", |
aideDeform = "Strecke die Animation in Höhe und Breite.", |
aideColor = "Klicken, um die Farbe zu ändern.", |
aideFont = "Click here to pick Font. Press OK to apply the selection.", --- untranslated |
aideMultiID = "Enter here other Aura IDs to combine checks. Multiple IDs must be separated with '/'. Aura ID can be found as [#] on first line of Aura tooltip.", --- untranslated |
aideTooltipCheck = "Also check the tooltip starts with this text", --- untranslated |
aideBuff = "Gib hier den Namen oder einen Teil vom Namen des Buff ein, der die Aura ein und ausschalten soll. Mit einem Slash können mehrere Namen getrennt werden. (Bsp.: Super Buff/Power)", |
aideBuff2 = "Gib hier den Namen oder einen Teil vom Namen des Debuff ein, der die Aura ein und ausschalten soll. Mit einem Slash können mehrere Namen getrennt werden. (Bsp: Dark Disease/Plague)", |
aideBuff3 = "Gib hier den Typ(Gift, Disease, Fluch, Magie or Nichts) des Debuff ein, der die Aura ein und ausschalten soll. Mit einem Slash können mehrere Typen getrennt werden.", |
aideBuff4 = "Gib hier den Namen der Area of Effect(AoE) ein, der die Aura ein oder ausschalten soll. Der Name einer AoE steht im Kampflog.", |
aideBuff5 = "Enter here the temporary enchant which must activate this effect : optionally prepend it with 'main/' or 'off/ to designate mainhand or offhand slot. (ex: main/crippling)", --- untranslated |
aideBuff6 = "Gib hier die Anzahl Kombopunkte ein, um die Aura ein oder auszuschalten (Bsp.: 1 oder 1/2/3 oder 0/4/5 usw...) ", |
aideBuff7 = "Gib hier einen Namen oder einen Teil davon einer Aktion auf deiner Aktionsleiste ein, um diese auf Benutzbarkeit zu überprüfen. (Bsp.: Hinrichten, Fass, Rache, Ãberwältigen,...", |
aideSpells = "Enter here the Spell Name that will trigger a spell alert Aura.", --- untranslated |
aideStacks = "Gib hier den Vergleicher und die Anzahl Stapel ein des De/Buffs. Oder einfach freilassen, wenn nicht stapelbar. Es geht nur MIT einem Vergleicher! Bsp: '<5' '>3' '=11' '!5' '>=0' '<=6' '2-8'", |
aideUnitn = "Gib hier den Namen des Spielers ein, welcher überwacht werden soll. Funktioniert nur mit Spieler innerhalb des Raids oder der Gruppe.", |
aideUnitn2 = "Only for raid/group.", |
aideMaxTex = "Definiert die Texturanzahl die im Editor zur Verfügung stehen. Wenn Texturen im PowerAuras Verzeichniss hinzugefügt wurden (mit den Namen AURA1.tga bis AURA50.tga), muss hier die letzte Zahl eingetragen werden.", |
aideAddEffect = "Fügt ein Effekt zum bearbeiten hinzu.", |
aideWowTextures = "Aktivieren um die WoW-Grafiken anstatt die Grafiken im PowerAuras Verzeichniss zu verwenden.", |
aideRealaura = "Reale Aura", |
aideTextAura = "Check this to type text instead of texture.", -- untranslated |
aideCustomTextures = "Aktivieren um die Grafiken im 'Custom' Verzeichniss zu verwenden. Du musst den Dateinamen der Grafik eintragen (Bsp.: myTexture.tga)",--- untraslated (needs update to match enGB string) |
aideRandomColor = "Aktivieren um jedesmal wenn die Aura aktiviert wird eine zufällige Farbe zu erhalten.", |
aideTexMode = "Uncheck this to use the texture opacity. By default, the darkest colors will be more transparent.", |
nomActivationBy = "Aktiv wenn:", |
nomStacks = "Stacks", |
nomSpeed = "Animations Tempo", |
nomBegin = "Animations Start", |
nomEnd = "Animations Ende", |
nomSymetrie = "Symetrie", |
nomAlpha = "Alpha", |
nomPos = "Position", |
nomTaille = "Grösse", |
nomExact = "Exakter Name", |
nomThreshold = "Schwellwert", |
nomGCD = "Global Cooldown", |
aideThreshInv = "Check this to invert the threshold logic. Health/Mana: default = Low Warning / checked = High Warning. Energy/Rage/Power: default = High Warning / checked = Low Warning", --- untranslated |
nomThreshInv = "</>", |
nomMine = "Cast by me", --- untranslated |
nomDispellable = "I can dispell", |
nomStance = "Haltung", |
aideStance = "Kampfhaltung auswählen, die die Aura aktiviert.", |
nomOwnTex = "Use own Texture", -- untranslated |
aideOwnTex = "Use the De/Buff or Ability Texture instead.", -- untranslated |
nomCheckBuff = "Buff", |
nomCheckDebuff = "Debuff", |
nomCheckAoeDebuff = "AOE Debuff", |
nomCheckDebuffType = "Debuff Typ", |
nomCheckEnchant = "Waffenbuffs", |
nomCheckCombo = "Kombo Punkte", |
nomCheckSkill = "Aktion benutzbar", |
nomCheckHealth = "Leben", |
nomCheckMana = "Mana", |
nomCheckRageEnergy = "Rage/Energy/Runic", -- untranslated |
nomCheckAggro = "Aggro", -- untranslated |
nomCheckPvP = "PvP", -- untranslated |
nomCheckStance = "Haltung", |
nomCheckSpells = "Spell Alert", --- untranslated |
nomCheckOwnSpell = "Spell from my Spellbook", |
nomCheckTarget = "Feindliches Ziel", |
nomCheckFriend = "Freundliches Ziel", |
nomCheckParty = "Gruppenmitglied", |
nomCheckFocus = "Focus", |
nomCheckRaid = "Raidmitglied", |
nomCheckGroupOrSelf = "Raid/Party or self", |
nomCheckGroupAny = "Any", --- untranslated |
nomCheckOptunitn = "Charname", |
aideTarget = "Aktivieren um feindliches Ziel zu überwachen.", |
aideTargetFriend = "Aktivieren um freundliches Ziel zu überwachen.", |
aideParty = "Aktivieren um Gruppenmitglieder zu überwachen.", |
aideGroupOrSelf = "Check this to test a party or raid member or self.", |
aideFocus = "Aktivieren um das Focusziel zu überwachen.", |
aideRaid = "Aktivieren um Raidmitglieder zu überwachen.", |
aideGroupAny = "Checked: Test if 'Any' party/raid member is buffed. Default (unchecked): 'All' must be buffed.", --- untranslated |
aideExact = "Aktivieren um den EXAKTEN Namen des Buffes zu überwachen.", |
aideOptunitn = "Aktivieren um einen bestimmten Char in der Raid/Gruppe zu überwachen.", |
aideGCD = "Aktivieren um den Globalen Cooldown mit einzubeziehen, wenn 'Aktion benutzbar' gewählt ist. Kann zu einem blinken der Aura führen, wenn die Aktion nur einen Globalen Cooldown hat.", |
aideMine = "Check this to test only buffs/debuffs cast by the player", --- untranslated |
nomCheckShowTimer = "Zeigen", |
nomTimerDuration = "Dauer", |
aideTimerDuration = "Zeigt eine Buff/Debuff Dauer. (0 um zu daktivieren)", |
aideShowTimer = "Aktivieren um den Timer zu zeigen.", |
aideSelectTimer = "Auswählen welcher Timer die Dauer anzeigen soll.", |
aideSelectTimerBuff = "Auswählen welcher Timer die Dauer anzeigen soll (this one is reserved for player's buffs)", |
aideSelectTimerDebuff = "Auswählen welcher Timer die Dauer anzeigen soll (this one is reserved for player's debuffs)", |
nomCheckInverse = "Zeige wenn NICHT aktiv", |
aideInverse = "Aktivieren um die Aura nur zu zeigen wenn der Buff/Debuff NICHT aktiv ist.", |
nomCheckIgnoreMaj = "Ignoriere Gross/Kleinschreibung", |
aideIgnoreMaj = "Aktivieren um die Gross/Kleinschreibung bei Buff/Debuff-Namen zu ignorieren.", |
nomDuration = "Animationsdauer", |
aideDuration = "Nach dieser Zeit wird die Aura verschwinden (0 um zu daktivieren)", |
nomCentiemes = "Zeige hundertstel", |
nomDual = "Zeige 2 Timer", |
nomHideLeadingZeros = "Hide Leading Zeros", |
nomTransparent = "Use transparent textures", |
nomClose = "Schliessen", |
nomEffectEditor = "Effekt Editor", |
nomAdvOptions = "Optionen", |
nomMaxTex = "Maximum Texturen verfügbar", |
nomTabAnim = "Animation", |
nomTabActiv = "Aktivierung", |
nomTabSound = "Sound", |
nomTabTimer = "Timer", |
nomWowTextures = "WoW Texturen", |
nomCustomTextures = "Custom Texturen", |
nomTextAura = "Text Aura", --- untranslated |
nomRealaura = "Reale Aura", |
nomRandomColor = "Zufällige Farben", |
nomTexMode = "Glühen", |
nomInCombat = "Nur wenn im Kampf.", |
aideInCombat = "Zeigt diese Aura nur im Kampf.", |
nomTalentGroup1 = "Spec 1", |
aideTalentGroup1 = "Show this effect only when you are in your primary talent spec.", |
nomTalentGroup2 = "Spec 2", |
aideTalentGroup2 = "Show this effect only when you are in your secondary talent spec.", |
nomNotInCombat = "Nur wenn nicht im Kampf", |
aideNotInCombat = "Zeigt diese Aura nur wenn nicht im Kampf.", |
nomIsMounted = "Nur wenn auf Reittier.", |
aideIsMounted = "Zeigt diese Aura nur wenn man auf einem Reittier sitzt.", |
nomInVehicle = "Only if in Vehicle", -- untranslated |
aideInVehicle = "Checked: Only when in vehicle. Uncheked: Only when not in vehicle.", -- untranslated |
nomIsInRaid = "Nur wenn im Raid.", |
aideIsInRaid = "Zeigt diese Aura nur wenn im Raid.", |
nomResting = "Only if Resting", |
aideResting = "Checked: Only when Resting. Uncheked: Only when not Resting.", |
}; |
end |
if (GetLocale() == "zhCN") then |
PowaAuras.Anim[0] = "[æ ]"; |
PowaAuras.Anim[1] = "éæ¢"; |
PowaAuras.Anim[2] = "éªå ææ"; |
PowaAuras.Anim[3] = "çé¿ææ"; |
PowaAuras.Anim[4] = "èå²ææ"; |
PowaAuras.Anim[5] = "æ°æ³¡ææ"; |
PowaAuras.Anim[6] = "æ°´æ»´ææ"; |
PowaAuras.Anim[7] = "æ¼çµææ"; |
PowaAuras.Anim[8] = "æ¶ç¼©ææ"; |
PowaAuras.Anim[9] = "ç«ç°ææ"; |
PowaAuras.Anim[10] = "çæææ"; |
PowaAuras.BeginAnimDisplay[0] = "[æ ]"; |
PowaAuras.BeginAnimDisplay[1] = "æ¾å¤§è¿å ¥"; |
PowaAuras.BeginAnimDisplay[2] = "缩å°è¿å ¥"; |
PowaAuras.BeginAnimDisplay[3] = "æ¹åéæ度"; |
PowaAuras.BeginAnimDisplay[4] = "左边è¿å ¥"; |
PowaAuras.BeginAnimDisplay[5] = "å·¦ä¸è¿å ¥"; |
PowaAuras.BeginAnimDisplay[6] = "ä¸é¨è¿å ¥"; |
PowaAuras.BeginAnimDisplay[7] = "å³ä¸è¿å ¥"; |
PowaAuras.BeginAnimDisplay[8] = "å³è¾¹è¿å ¥"; |
PowaAuras.BeginAnimDisplay[9] = "å³ä¸è¿å ¥"; |
PowaAuras.BeginAnimDisplay[10] = "ä¸é¨è¿å ¥"; |
PowaAuras.BeginAnimDisplay[11] = "å·¦ä¸è¿å ¥"; |
PowaAuras.BeginAnimDisplay[12] = "Bounce"; |
PowaAuras.EndAnimDisplay[0] = "[æ ]"; |
PowaAuras.EndAnimDisplay[1] = "æ¾å¤§è¿å ¥"; |
PowaAuras.EndAnimDisplay[2] = "缩å°è¿å ¥"; |
PowaAuras.EndAnimDisplay[3] = "æ¹åéæ度"; |
PowaAuras.Sound[0] = "[æ ]"; |
PowaAuras.Sound[1] = "å级é³æ"; |
PowaAuras.Sound[2] = "æ¬åéå¸"; |
PowaAuras.Sound[3] = "é£è¿"; |
PowaAuras.Sound[4] = "æ¢ç´¢æ°å°å¾"; |
PowaAuras.Sound[5] = "æ¥å°ä»»å¡"; |
PowaAuras.Sound[6] = "ä»»å¡å®æ"; |
PowaAuras.Sound[7] = "åä»»å¡"; |
PowaAuras.Sound[8] = "éé±¼"; |
PowaAuras.Sound[9] = "PVPäºä»¶"; |
PowaAuras.Sound[10] = "å¢éæ£æ¥"; |
PowaAuras.Sound[11] = "å¢éè¦å"; |
PowaAuras.Sound[12] = "æå¼æåè¡"; |
PowaAuras.Sound[13] = "å ³éæåè¡"; |
PowaAuras.Sound[14] = "æ¶æ¶è¯"; |
PowaAuras.Sound[15] = "æå¼èå "; |
PowaAuras.Text = { |
nomDebug = "è°è¯æ¨¡å¼", |
aideDebug = "æå¼è°è¯æ¨¡å¼å,å°å¨è天çªå£æ¾ç¤ºç¹æç触åæ¡ä»¶çä¿¡æ¯", |
nomStance = "姿æ", |
aideStance = "éæ©ç¨äºè§¦åç¹æç姿æ", |
nomCustomSound = "èªå®ä¹å£°é³æ件:", |
nomTabSound = "声é³", |
nomTabTimer = "计æ¶å¨", |
welcome = "è¾å ¥ /powa æå¼ç¹æç¼è¾å¨.", |
aucune = "æ ", |
aucun = "æ ", |
largeur = "宽度", |
hauteur = "é«åº¦", |
mainHand = "主æ", |
offHand = "å¯æ", |
bothHands = "åæ", |
DebuffType = |
{ |
Magic = "éæ³", |
Disease = "ç¾ç ", |
Curse = "è¯ å", |
Poison = "ä¸æ¯", |
}, |
DebuffCatType = |
{ |
[PowaAuras.DebuffCatType.CC] = "CC", |
[PowaAuras.DebuffCatType.Silence] = "Silence", |
[PowaAuras.DebuffCatType.Snare] = "Snare", |
[PowaAuras.DebuffCatType.Stun] = "Stun", |
[PowaAuras.DebuffCatType.Root] = "Root", |
[PowaAuras.DebuffCatType.Disarm] = "Disarm", |
[PowaAuras.DebuffCatType.PvE] = "PvE", |
}, |
-- main |
nomEnable = "å¯ç¨", |
aideEnable = "å¯ç¨/ç¦ç¨ææPowerAurasç¹æ", |
ListePlayer = "åç±»", |
ListeGlobal = "å ¨å±", |
aideMove = "移å¨ç¹æ", |
aideCopy = "å¤å¶ç¹æ", |
nomRename = "éå½å", |
aideRename = "éå½åæçç¹æåç±»å", |
nomTest = "æµè¯", |
nomHide = "å ¨é¨éè", |
nomEdit = "ç¼è¾", |
nomNew = "æ°å»º", |
nomDel = "å é¤", |
nomImport = "Import", --- untranslated |
nomExport = "Export", --- untranslated |
aideImport = "Paste the Aura String to the editbox and press \'Accept\'", --- untranslated |
aideExport = "Copy the Aura String from the editbox to share with others.", --- untranslated |
aideDel = "å é¤æéç¹æ(å¿ é¡»æä½Ctrlé®æè½ä½¿ç¨æ¤åè½)", |
nomMove = "移å¨", |
nomCopy = "å¤å¶", |
nomPlayerEffects = "æçç¹æ", |
nomGlobalEffects = "éç¨ç¹æ", |
aideEffectTooltip = "æä½Shifté®ç¹å»å¾æ 以å¯ç¨/ç¦ç¨è¯¥ç¹æ", |
-- editor |
nomTexture = "å½åæè´¨", |
aideTexture = "æ¾ç¤ºç¹æ使ç¨çæè´¨.ä½ å¯ä»¥ä¿®æ¹ç¸åºæ件夹å ç.tga æ件æ¥å¢å ç¹æ", |
nomAnim1 = "å¨ç»ææ", |
nomAnim2 = "è¾ å©ææ", |
aideAnim1 = "æ¯å¦ä¸ºæéæ质使ç¨å¨ç»ææ", |
aideAnim2 = "æ¤å¨ç»ææ以è¾ä½ä¸éæ度æ¾ç¤º,为äºä¸è¿å¤å ç¨å±å¹åä¸æ¶é´åªæ¾ç¤ºä¸ä¸ªè¾ å©ææ", |
nomDeform = "åå½¢", |
aideDeform = "å¨é«åº¦æ宽度æ¹åæ伸æè´¨", |
aideColor = "ç¹å»æ¤å¤ä¿®æ¹æè´¨é¢è²", |
aideFont = "Click here to pick Font. Press OK to apply the selection.", --- untranslated |
aideMultiID = "Enter here other Aura IDs to combine checks. Multiple IDs must be separated with '/'. Aura ID can be found as [#] on first line of Aura tooltip.", --- untranslated |
aideTooltipCheck = "Also check the tooltip starts with this text", --- untranslated |
aideBuff = "æ¤å¤è¾å ¥ç¨äºæ¿æ´»ç¹æçbuffçåå,æååä¸çå 个è¿ç»æå.å¦æ使ç¨åé符,ä¹å¯ä»¥è¾å ¥å¤ä¸ªbuffçåå.ä¾å¦è¾å ¥: è½éç注/奥æ¯è½é", |
aideBuff2 = "æ¤å¤è¾å ¥ç¨äºæ¿æ´»ç¹æçdebuffçåå,æååä¸çå 个è¿ç»æå.å¦æ使ç¨åé符,ä¹å¯ä»¥è¾å ¥å¤ä¸ªdebuffçåå.ä¾å¦è¾å ¥: å è½æ²»ç/çç§åºæ¿", |
aideBuff3 = "æ¤å¤è¾å ¥ç¨äºæ¿æ´»ç¹æçdebuffçç±»åå称,æå称ä¸çå 个è¿ç»æå.å¦æ使ç¨åé符,ä¹å¯ä»¥è¾å ¥å¤ä¸ªdebuffç±»åçå称.ä¾å¦è¾å ¥: éæ³/è¯ å/ä¸æ¯/ç¾ç ", |
aideBuff4 = "æ¤å¤è¾å ¥ç¨äºæ¿æ´»ç¹æçAOEæ³æ¯çåå,AOEæ³æ¯ååå¯ä»¥å¨ææè®°å½ä¸æ¾å°.ä¾å¦è¾å ¥:éªæ¶å ç¯/ç«ç°ä¹é¨/æ´é£éª", |
aideBuff5 = "Enter here the temporary enchant which must activate this effect : optionally prepend it with 'main/' or 'off/ to designate mainhand or offhand slot. (ex: main/crippling)", --- untranslated |
aideBuff6 = "æ¤å¤è¾å ¥ç¨äºæ¿æ´»ç¹æçè¿å»ç¹æ°.ä¾å¦è¾å ¥: 1æè 1/2/3æè 0/4/5ççèªç±ç»å", |
aideBuff7 = "æ¤å¤è¾å ¥æ¿æ´»ç¹æçå¨ä½æ¡ä¸çå¨ä½å,æååä¸çå 个è¿ç»æå,å½æ¤å¨ä½å®å ¨å·å´æ¶æ¤ææ触å.ä¾å¦è¾å ¥:èµè¾¾æè±éæ¤ç¬¦/æ³åä¹æ½®å¾è ¾/å¿çµä¸æ³¨", |
aideSpells = "Enter here the Spell Name that will trigger a spell alert Aura.", --- untranslated |
aideStacks = "è¾å ¥ç¨äºæ¿æ´»ç¹æçæä½ç¬¦åå å æ°éï¼åªè½è¾å ¥ä¸ä¸ªæä½ç¬¦ï¼ä¾å¦ï¼'<5' '>3' '=11' '!5' '>=0' '<=6' '2-8'", |
aideUnitn = "æ¤å¤è¾å ¥ç¨äºæ¿æ´»ç¹æçç¹å®æåå称,å¿ é¡»å¤äºåä¸å¢é", |
aideUnitn2 = "ä» ç¨äºå¢é/éä¼æ¨¡å¼", |
aideMaxTex = "å®ä¹ç¹æç¼è¾å¨ä½¿ç¨çæè´¨æ°é,å¦æä½ å¢å äºèªå®ä¹æ质请修æ¹æ¤å¼.", |
aideAddEffect = "æ°å¢å ä¸ä¸ªç¹æ", |
aideWowTextures = "使ç¨æ¸¸æå ç½®æè´¨", |
aideTextAura = "Check this to type text instead of texture.", --- untranslated |
aideRealaura = "æ¸ æ°å ç¯", |
aideCustomTextures = "使ç¨customæ件夹ä¸çèªå®ä¹æè´¨,ä¾å¦: Flamme.tga",--- untraslated (needs update to match enGB string) |
aideRandomColor = "æ¯æ¬¡æ¿æ´»æ¶ä½¿ç¨éæºé¢è²", |
aideTexMode = "æè´¨éæ度ååæ¾ç¤º", |
nomActivationBy = "æ¿æ´»æ¡ä»¶", |
nomOwnTex = "使ç¨æè½å¾æ ", |
aideOwnTex = "使ç¨buff/debuffææè½çé»è®¤å¾æ å为æè´¨", |
nomStacks = "å å ", |
nomSpeed = "è¿å¨é度", |
nomBegin = "è¿åºææ", |
nomEnd = "ç»æææ", |
nomSymetrie = "对称æ§", |
nomAlpha = "ä¸éæ度", |
nomPos = "ä½ç½®", |
nomTaille = "大å°", |
nomExact = "精确å¹é å称", |
nomThreshold = "触åæé", |
aideThreshInv = "Check this to invert the threshold logic. Health/Mana: default = Low Warning / checked = High Warning. Energy/Rage/Power: default = High Warning / checked = Low Warning", --- untranslated |
nomThreshInv = "</>", |
nomGCD = "å ¬å ±å·å´", |
aideGCD = "éä¸æ¤é¡¹å'å¨ä½å·å´'åè½å°æ£æµå ¬å ±å·å´.éè¦æ³¨æçæ¯,å¦æä¸ä¸ªæè½åªæå ¬å ±å·å´åä¼å¼èµ·å ç¯ç¹æéªç", |
nomMine = "Cast by me", --- untranslated |
nomDispellable = "I can dispell", |
nomSound = "ææ¾å£°é³", |
aideSound = "ç¹æ触åæ¶ææ¾å£°é³", |
aideCustomSound = "è¾å ¥å£°é³æ件å称,å¦cookie.mp3 注æ:ä½ éè¦å¨æ¸¸æå¯å¨åæ声é³æ件æ¾å ¥Soundsæ件夹ä¸,ç®åä» æ¯æmp3åwavæ ¼å¼.", |
nomCheckBuff = "Buff", |
nomCheckDebuff = "Debuff", |
nomCheckAoeDebuff = "AOEæ³æ¯", |
nomCheckDebuffType = "Debuffç±»å", |
nomCheckEnchant = "æ¦å¨å¼ºå", |
nomCheckCombo = "è¿å»ç¹æ°", |
nomCheckSkill = "å¨ä½å·å´", |
nomCheckHealth = "çå½å¼", |
nomCheckMana = "éæ³å¼", |
nomCheckRageEnergy = "Rage/Energy/Runic", -- untranslated |
nomCheckAggro = "è·å¾ä»æ¨", |
nomCheckPvP = "PvPæ å¿", |
nomCheckStance = "姿æ", |
nomCheckSpells = "Spell Alert", --- untranslated |
nomCheckOwnSpell = "Spell from my Spellbook", |
nomCheckTarget = "ææ¹ç®æ ", |
nomCheckFriend = "åæ¹ç®æ ", |
nomCheckParty = "å¢éç®æ ", |
nomCheckFocus = "ç¦ç¹ç®æ ", |
nomCheckRaid = "å¢éæå", |
nomCheckGroupOrSelf = "Raid/Party or self", |
nomCheckGroupAny = "Any", --- untranslated |
nomCheckOptunitn = "ç¹å®æå", |
aideTarget = "æ¤buff/debuffä» åå¨äºææ¹ç®æ ä¸", |
aideTargetFriend = "æ¤buff/debuffä» åå¨äºåæ¹ç®æ ä¸", |
aideParty = "æ¤buff/debuffä» åå¨äºå°éä¸", |
aideGroupOrSelf = "Check this to test a party or raid member or self.", |
aideFocus = "æ¤buff/debuffä» åå¨ç¦ç¹ç®æ ä¸", |
aideRaid = "æ¤buff/debuffä» åå¨äºå¢éä¸", |
aideGroupAny = "Check to test if any party/raid member is buffed. Default (unchecked), all must be buffed.", --- untranslated |
aideOptunitn = "æ¤buff/debuffä» åå¨äºå¢é/å°éä¸çç¹å®æå身ä¸", |
aideExact = "éä¸æ¤é¡¹å°ç²¾ç¡®å¹é buff/debffå称", |
aideMine = "Check this to test only buffs/debuffs cast by the player", --- untranslated |
nomCheckShowTimer = "æ¾ç¤º", |
nomTimerDuration = "延è¿æ¶å¤±", |
aideTimerDuration = "ç®æ ä¸çbuff/debuff计æ¶å¨å»¶è¿å°æ¤æ¶é´ç»æååæ¶å¤±(0为ç¦ç¨)", |
aideShowTimer = "为æ¤æææ¾ç¤ºè®¡æ¶å¨", |
aideSelectTimer = "éæ©ä½¿ç¨ä½ç§è®¡æ¶å¨æ¥æ¾ç¤ºæç»æ¶é´", |
aideSelectTimerBuff = "éæ©ä½¿ç¨ä½ç§è®¡æ¶å¨æ¥æ¾ç¤ºæç»æ¶é´(ä» ç¨äºç©å®¶buff)", |
aideSelectTimerDebuff = "éæ©ä½¿ç¨ä½ç§è®¡æ¶å¨æ¥æ¾ç¤ºæç»æ¶é´(ä» ç¨äºç©å®¶debuff)", |
nomCheckInverse = "ä¸åå¨æ¶æ¿æ´»", |
aideInverse = "éä¸æ¤é¡¹å,ä» å½buff/debuffä¸åå¨æ¶æ¾ç¤ºæ¤ç¹æ", |
nomCheckIgnoreMaj = "忽ç¥å¤§å°å", |
aideIgnoreMaj = "éä¸æ¤é¡¹å°å¿½ç¥buff/debuffååç大å°ååæ¯(ä¾è±æç©å®¶ä½¿ç¨,ä¸å½ç©å®¶ä¸éè¦ä¿®æ¹æ¤é¡¹)", |
nomDuration = "延è¿æ¶å¤±", |
aideDuration = "ç¹æ延è¿å°æ¤æ¶é´ç»æååæ¶å¤±(0为ç¦ç¨)", |
nomCentiemes = "æ¾ç¤ºç¾åä½", |
nomDual = "æ¾ç¤ºä¸¤ä¸ªè®¡æ¶å¨", |
nomHideLeadingZeros = "Hide Leading Zeros", |
nomTransparent = "Use transparent textures", |
nomClose = "å ³é", |
nomEffectEditor = "ç¹æç¼è¾å¨", |
nomAdvOptions = "é项", |
nomMaxTex = "æ大å¯ç¨æè´¨", |
nomTabAnim = "å¨ç»", |
nomTabActiv = "æ¡ä»¶", |
nomWowTextures = "使ç¨å ç½®æè´¨", |
nomCustomTextures = "使ç¨èªå®ä¹æè´¨", |
nomRealaura = "æ¸ æ°å ç¯", |
nomTextAura = "Text Aura", --- untranslated |
nomRandomColor = "éæºé¢è²", |
nomTexMode = "å æææ", |
nomInCombat = "ææç¶æ", |
aideInCombat = "ä» å½ä½ å¤äºææç¶ææ¶ææ¿æ´»æ¤ç¹æ", |
nomTalentGroup1 = "Spec 1", |
aideTalentGroup1 = "Show this effect only when you are in your primary talent spec.", |
nomTalentGroup2 = "Spec 2", |
aideTalentGroup2 = "Show this effect only when you are in your secondary talent spec.", |
nomNotInCombat = "éææç¶æ", |
aideNotInCombat = "ä» å¨éææç¶ææ¶ææ¿æ´»æ¤ç¹æ", |
nomIsMounted = "éªä¹ç¶æ", |
aideIsMounted = "ä» å¨ç©å®¶å¤äºéªä¹ç¶ææ¶æ¿æ´»ç¹æ.", |
nomInVehicle = "Only if in Vehicle", -- untranslated |
aideInVehicle = "Checked: Only when in vehicle. Uncheked: Only when not in vehicle.", -- untranslated |
nomIsInRaid = "å¢é模å¼", |
aideIsInRaid = "ä» å¨å¢é模å¼éææ¿æ´»æ¤ç¹æ.", |
nomResting = "Only if Resting", |
aideResting = "Checked: Only when Resting. Uncheked: Only when not Resting.", |
}; |
end |
-- PowaAura Classes |
-- class.lua |
-- Compatible with Lua 5.1 (not 5.0). |
function PowaClass(base,ctor) |
local c = {} -- a new class instance |
if not ctor and type(base) == 'function' then |
ctor = base; |
base = nil; |
elseif type(base) == 'table' then |
-- our new class is a shallow copy of the base class! |
for i,v in pairs(base) do |
c[i] = v; |
end |
if (type(ctor)=="table") then |
for i,v in pairs(ctor) do |
c[i] = v; |
end |
ctor = nil; |
end |
c._base = base; |
end |
-- the class will be the metatable for all its objects, |
-- and they will look up their methods in it. |
c.__index = c |
-- expose a ctor which can be called by <classname>(<args>) |
local mt = {} |
mt.__call = function(class_tbl,...) |
local obj = {} |
setmetatable(obj,c) |
if ctor then |
--PowaAuras:Message("Call constructor "..tostring(ctor)); |
ctor(obj,...) |
end |
return obj |
end |
if ctor then |
c.init = ctor; |
else |
if base and base.init then |
c.init = base.init; |
ctor = base.init; |
end |
end |
c.is_a = function(self,klass) |
local m = getmetatable(self) |
while m do |
if m == klass then return true end |
m = m._base |
end |
return false |
end |
setmetatable(c,mt) |
return c |
end |
cPowaStacks = PowaClass(function(stacker, id, base) |
stacker.enabled = false; |
stacker.x = 0; |
stacker.y = 0; |
stacker.a = 1.0; |
stacker.h = 1.0; |
stacker.Transparent = false; |
stacker.HideLeadingZeros = false; |
--PowaAuras:Message("cPowaTimer"); |
if (base) then |
for k, v in pairs (stacker) do |
--PowaAuras:Message(" base."..tostring(k).."="..tostring(base[k])); |
local varType = type(v); |
if (varType == "string" or varType == "boolean" or varType == "number") then |
if (base[k] ~= nil) then |
stacker[k] = base[k]; |
end |
end |
end |
end |
stacker.id = id; |
end); |
cPowaTimer = PowaClass(function(timer, id, base) |
timer.enabled = false; |
timer.x = 0; |
timer.y = 0; |
timer.a = 1.0; |
timer.h = 1.0; |
timer.cents = true; |
timer.dual = false; |
timer.Transparent = false; |
timer.HideLeadingZeros = false; |
--PowaAuras:Message("cPowaTimer"); |
if (base) then |
for k, v in pairs (timer) do |
--PowaAuras:Message(" base."..tostring(k).."="..tostring(base[k])); |
local varType = type(v); |
if (varType == "string" or varType == "boolean" or varType == "number") then |
if (base[k] ~= nil) then |
timer[k] = base[k]; |
end |
end |
end |
end |
timer.id = id; |
--for k,v in pairs (timer) do |
-- PowaAuras:Message(" "..tostring(k).."="..tostring(v)); |
--end |
end); |
--- ------------------------------------------------------------------------------------------------- TIMERS |
function cPowaTimer:Update(elapsed) |
PowaAuras:UnitTestInfo("Timer.Update ",self.id); |
local aura = PowaAuras.Auras[self.id]; |
if (aura == nil) then --- cet effet n'affiche pas de timer |
PowaAuras:UnitTestInfo("Timer aura missing"); |
return; |
end |
if (self.enabled==false) then --- cet effet n'affiche pas de timer |
PowaAuras:UnitTestInfo("Timer disabled"); |
return; |
end |
local debugCycle; |
if (PowaAuras.NextDebugCheck>0 and PowaAuras.DebugTimer > PowaAuras.NextDebugCheck) then |
PowaAuras.DebugTimer = 0; |
PowaAuras:Message("Update Timer #",self.id); --OK |
debugCycle = true; |
end |
local newvalue; |
--- Determine the value to display in the timer |
if (PowaAuras.ModTest) then |
newvalue = random(0,99) + (random(0, 99) / 100); |
elseif (aura.timerduration > 0) then--- if a user defined timer is active for the aura override the rest |
if (aura.target or aura.targetfriend) and (PowaAuras.ResetTargetTimers == true) then |
self.CustomDuration = aura.timerduration; |
else |
self.CustomDuration = math.max(self.CustomDuration - elapsed, 0); |
end |
newvalue = self.CustomDuration; |
else |
newvalue = aura:GetDuration(self.DurationInfo); |
end |
if (debugCycle) then |
PowaAuras:Message("newvalue=",newvalue); --OK |
end |
PowaAuras:UnitTestInfo("Timer newvalue", newvalue); |
if (newvalue and newvalue > 0) then --- Time has value to display |
PowaAuras:CreateTimerFrameIfMissing(self.id); |
local large = newvalue; |
if (newvalue > 60.00) then |
large = newvalue / 60; |
end |
large = math.min (99.00, large); |
if (debugCycle) then |
PowaAuras:Message("large=",large); --OK |
end |
self:ShowValue(aura, 1, large); |
if (debugCycle) then |
PowaAuras:Message("cents=",self.cents); --OK |
end |
if (self.cents) then |
local small; |
if (newvalue > 60.00) then |
small = math.fmod(newvalue,60); |
else |
small = (newvalue - math.floor(newvalue)) * 100; |
end |
if (debugCycle) then |
PowaAuras:Message("small=",small); --OK |
end |
self:ShowValue(aura, 2, small); |
end |
else |
if (debugCycle) then |
PowaAuras:Message("HideTimerFrames"); --OK |
end |
PowaAuras:HideTimerFrames(self.id); |
PowaAuras:TestThisEffect(self.id); |
end |
end |
function cPowaTimer:ShowValue(aura, frameIndex, newvalue) |
local timerFrame = PowaAuras.TimerFrame[self.id][frameIndex]; |
if (aura.texmode == 1) then |
timerFrame.texture:SetBlendMode("ADD"); |
else |
timerFrame.texture:SetBlendMode("DISABLE"); |
end |
local auraTexture = PowaAuras.Textures[self.id]; |
if auraTexture:GetObjectType() == "Texture" then |
timerFrame.texture:SetVertexColor(auraTexture:GetVertexColor()); |
elseif auraTexture:GetObjectType() == "FontString" then |
timerFrame.texture:SetVertexColor(auraTexture:GetTextColor()); |
end |
--PowaAuras:Message("newvalue=", newvalue); |
local deci = math.floor(newvalue / 10); |
local uni = math.floor(newvalue - (deci*10)); |
--PowaAuras:Message("Show timer: ",deci, " ", uni, " ", PowaAuras.Auras[k].Timer.HideLeadingZeros); |
local tStep = PowaAuras.Tstep; |
if (deci==0 and self.HideLeadingZeros) then |
timerFrame.texture:SetTexCoord(tStep , tStep * 1.5, tStep * uni, tStep * (uni+1)); |
else |
timerFrame.texture:SetTexCoord(tStep * uni, tStep * (uni+1), tStep * deci, tStep * (deci+1)); |
end |
if (not timerFrame:IsVisible()) then |
timerFrame:Show(); -- Timer Frame |
end |
--PowaAuras:Message("Show #3 ", k, " ", i, " ", j, " ", seconds); |
--PowaAuras:Message("deci=", deci, " uni=", uni); |
end |
------------cPowaAura---------------- |
-- cPowaAura is the base class and is not instanced directly, the other classes inherit properties and methods from it |
--=========================== |
cPowaAura = PowaClass(function(aura, id, base) |
--PowaAuras:Message("cPowaAura constructor " .. tostring(id)); |
aura.off = false; |
aura.bufftype = PowaAuras.BuffTypes.Buff; |
aura.buffname = ""; |
aura.texmode = 1; |
aura.wowtex = false; |
aura.customtex = false; |
aura.textaura = false; |
aura.owntex = false; |
aura.realaura = 1; |
aura.texture = 1; |
aura.customname = ""; |
aura.aurastext = ""; |
aura.aurastextfont = 1; |
aura.icon = ""; |
aura.timerduration = 0; |
-- Sound Settings |
aura.sound = 0; |
aura.soundfile = ""; |
aura.customsound = ""; |
-- Animation Settings |
aura.begin = 0; |
aura.anim1 = 1; |
aura.anim2 = 0; |
aura.speed = 1.00; |
aura.finish = 1; |
aura.duration = 0; |
aura.isSecondary = false; |
-- Appearance Settings |
aura.alpha = 0.75; |
aura.size = 0.75; |
aura.torsion = 1; |
aura.symetrie = 0; |
aura.x = 0; |
aura.y = -30; |
aura.randomcolor = false; |
aura.r = 1.0; |
aura.g = 1.0; |
aura.b = 1.0; |
aura.inverse = false; |
aura.ignoremaj = true; |
aura.exact = false; |
aura.stacks = 0; |
aura.stacksLower = 0; |
aura.stacksOperator = PowaAuras.DefaultOperator; |
aura.threshold = 50; |
aura.thresholdinvert = false; |
aura.mine = false; |
aura.focus = false; |
aura.target = false; |
aura.targetfriend = false; |
aura.raid = false; |
aura.groupOrSelf = false; |
aura.party = false; |
aura.groupany = true; |
aura.optunitn = false; |
aura.unitn = ""; |
aura.isinraid = false; |
aura.ismounted = false; |
aura.ignoreResting = true; |
aura.inVehicle = false; |
aura.combat = 0; |
aura.spec1 = true; |
aura.spec2 = true; |
aura.gcd = false; |
aura.stance = 10; |
aura.multiids = ""; |
aura.tooltipCheck = ""; |
if (base) then |
for k, v in pairs (aura) do |
local varType = type(v); |
if (varType == "string" or varType == "boolean" or varType == "number") then |
if (base[k] ~= nil) then |
aura[k] = base[k]; |
end |
end |
end |
if (base.Timer) then |
aura.Timer = cPowaTimer(id, base.Timer); |
end |
if (base.Stacks) then |
aura.Stacks = cPowaStacks(id, base.Stacks); |
end |
end |
if (not aura.Timer) then |
aura.Timer = cPowaTimer(id); |
end |
if (not aura.Stacks) then |
aura.Stacks = cPowaStacks(id); |
end |
aura.Showing = false; |
aura.HideRequest = false; |
aura.id = id; |
end); |
function cPowaAura:GetDuration(durationInfo) |
if (durationInfo and durationInfo > 0) then |
return math.max(durationInfo - GetTime(), 0); |
end |
return 0; |
end |
function cPowaAura:CreateFrames() |
local frame = self:GetFrame(); |
if (frame==nil) then |
PowaAuras:UnitTestInfo("New Frames", self.id); |
PowaAuras:UnitTestDebug("Creating frame for aura ", self.id); |
--- Frame --- |
frame = CreateFrame("Frame","Frame"..self.id, UIParent); |
self:SetFrame(frame); |
frame:SetFrameStrata("LOW"); |
frame:Hide(); |
frame.baseL = 256; |
frame.baseH = 256; |
end |
local texture = self:GetTexture(); |
if (texture==nil) then |
PowaAuras:UnitTestInfo("New Texture", self.id); |
if self.textaura then |
PowaAuras:UnitTestDebug("Creating new textstring texture for aura ", self.id); |
texture = frame:CreateFontString(nil, "OVERLAY"); |
texture:ClearAllPoints(); |
texture:SetPoint("CENTER",frame); |
texture:SetFont(STANDARD_TEXT_FONT, 20); |
texture:SetTextColor(self.r,self.g,self.b); |
texture:SetJustifyH("CENTER"); |
else |
texture = frame:CreateTexture(nil,"BACKGROUND"); |
texture:SetBlendMode("ADD"); |
texture:SetAllPoints(frame); --- attache la texture a la frame |
frame.texture = texture; |
end |
self:SetTexture(texture); |
else |
if self.textaura then |
PowaAuras:UnitTestDebug("textaura ", texture:GetObjectType()); |
if texture:GetObjectType() == "Texture" then |
PowaAuras:UnitTestInfo("Converting to textstring texture for aura ", self.id); |
PowaAuras:UnitTestDebug("Converting to textstring texture for aura ", self.id); |
texture:SetTexture(nil); |
texture = frame:CreateFontString(nil, "OVERLAY"); |
texture:ClearAllPoints(); |
texture:SetPoint("CENTER",frame); |
texture:SetFont(STANDARD_TEXT_FONT, 20); |
texture:SetTextColor(self.r,self.g,self.b); |
texture:SetJustifyH("CENTER"); |
self:SetTexture(texture); |
end |
else |
if texture:GetObjectType() == "FontString" then |
PowaAuras:UnitTestInfo("Converting from textstring texture for aura ", self.id); |
texture:SetText(""); |
texture = frame:CreateTexture(nil,"BACKGROUND"); |
texture:SetBlendMode("ADD"); |
texture:SetAllPoints(frame); --- attache la texture a la frame |
frame.texture = texture; |
self:SetTexture(texture); |
end |
end |
end |
return frame, texture; |
end |
function cPowaAura:Hide() |
PowaAuras:UnitTestInfo("Aura.Hide ", self.id); |
local frame = self:GetFrame(); |
if (frame) then |
frame:Hide(); |
end |
if (not self.isSecondary) then |
PowaAuras:HideTimerFrames(self.id); |
local frame = PowaAuras.Frames[self.id]; |
if (frame) then |
frame:Hide(); |
end |
local secondaryAura = PowaAuras.SecondaryAuras[self.id]; |
if (secondaryAura) then |
secondaryAura:Hide(); |
end |
end |
self.Showing = false; |
end |
function cPowaAura:AddEffect(i) |
table.insert(PowaAuras.AurasByType[self.AuraType], i); |
end |
function cPowaAura:IsPlayerAura() |
return (not self.target) |
and (not self.targetfriend) |
and (not self.party) |
and (not self.raid) |
and (not (self.groupOrSelf and (GetNumPartyMembers()>0 or GetNumRaidMembers()>0))) |
and (not self.focus) |
and (not self.optunitn); |
end |
function cPowaAura:CheckState(giveReason) |
--- player aura but player is dead |
if (self:IsPlayerAura() and self.WeAreAlive == false) then |
if (not giveReason) then return false; end |
return false, "Player is DEAD"; |
end |
--- n'affiche pas si la cible est inexistante ou morte |
if ((self.target or self.targetfriend) and (UnitName("target") == nil or UnitIsDead("target") or UnitName("target") == UnitName("player")) ) then |
if (not giveReason) then return false; end |
if (UnitName("target") == nil) then |
return false, "no Target"; |
end |
if (UnitName("target") == UnitName("player")) then |
return false, "Target is you"; |
end |
return false, "Target DEAD"; |
end |
--- regarde si la cible est ennemie |
if (self.target and self.targetfriend == false and UnitIsFriend("player","target")) then --- cible amie alors que faut pas |
if (not giveReason) then return false; end |
return false, "Target is fiendly"; |
end |
--- party |
if (self.party and not ((GetNumPartyMembers() > 0) or (GetNumRaidMembers() > 0))) then --- partycheck yes, but not in party |
if (not giveReason) then return false; end |
return false, "Not in Party"; |
end |
--- focus |
if (self.focus and (UnitName("focus") == nil or UnitIsDead("focus") or UnitName("focus") == UnitName("player"))) then --- focuscheck |
if (not giveReason) then return false; end |
return false, "No focus"; |
end |
--- unit |
if (self.optunitn and not ((GetNumPartyMembers() > 0) or (GetNumRaidMembers() > 0) or UnitExists("pet"))) then --- Unitn yes, but not in party/raid or with pet |
if (not giveReason) then return false; end |
return false, "Can't find custom unit not in party, raid or with pet unit="..tostring(self.unitn); |
end |
--- raid |
if (self.raid and numrm == 0) then --- raidcheck yes, but not in raid |
if (not giveReason) then return false; end |
return false, "Not in raid"; |
end |
--- regarde si la cible est amie |
if (self.target == false and self.targetfriend and not UnitIsFriend("player","target")) then --- cible ennemie |
if (not giveReason) then return false; end |
return false, "Target not friend"; |
end |
--- dual spec check |
if ((not self.spec2 and PowaAuras.ActiveTalentGroup == 2) or (not self.spec1 and PowaAuras.ActiveTalentGroup == 1)) then |
if (not giveReason) then return false; end |
return false, "Aura not active for this talent spec"; |
end |
--- mode combat, cache si besoin |
if ((PowaAuras.WeAreInCombat == true and self.combat == 2) or (PowaAuras.WeAreInCombat == false and self.combat == 1)) then |
if (not giveReason) then return false; end |
return false, "Not in combat"; |
end |
if (PowaAuras.WeAreInRaid == false and self.isinraid == true) then |
if (not giveReason) then return false; end |
return false, "Not in raid"; |
end |
if (PowaAuras.WeAreMounted ~= self.ismounted) then |
if (not giveReason) then return false; end |
if (PowaAuras.WeAreMounted) then |
return false, "Mounted"; |
else |
return false, "Not Mounted"; |
end |
end |
if (PowaAuras.WeAreInVehicle ~= self.inVehicle) then |
if (not giveReason) then return false; end |
return false, "Not In Vehicle"; |
end |
-- It's not dead it's restin' |
if (self.ignoreResting and (IsResting()==1) and (not PowaAuras.WeAreInCombat)) then |
if (not giveReason) then return false; end |
return false, "Resting"; |
end |
if (not giveReason) then return true; end |
return true, "State OK"; |
end |
function cPowaAura:ShouldShow(giveReason, reverse) |
PowaAuras:UnitTestInfo("ShouldShow", self.id); |
local result, reason = self:CheckState(giveReason); |
if (result) then |
result, reason = self:CheckIfShouldShow(giveReason); |
if (result~=nil and (self.inverse or reverse) and not (self.inverse and reverse)) then |
result = not result; |
if (giveReason) then |
reason = reason .." (inverted)"; |
end |
end |
end |
if (result) then |
PowaAuras:Debug("Aura Should Show ", self.id, " because ", reason); |
else |
PowaAuras:Debug("Aura won't Show ", self.id, " because ", reason); |
end |
return result, reason; |
end |
function cPowaAura:Display() |
PowaAuras:Message("Aura Display id=", self.id); --OK |
for k,v in pairs (self) do |
PowaAuras:Message(" "..tostring(k).." = "..tostring(v)); --OK |
end |
end |
function cPowaAura:GetFrame() |
if (self.isSecondary) then |
return PowaAuras.SecondaryFrames[self.id]; |
end |
return PowaAuras.Frames[self.id]; |
end |
function cPowaAura:GetTexture() |
if (self.isSecondary) then |
return PowaAuras.SecondaryTextures[self.id]; |
end |
return PowaAuras.Textures[self.id]; |
end |
function cPowaAura:SetFrame(frame) |
if (self.isSecondary) then |
PowaAuras.SecondaryFrames[self.id] = frame; |
return; |
end |
PowaAuras.Frames[self.id] = frame; |
end |
function cPowaAura:SetTexture(texture) |
if (self.isSecondary) then |
PowaAuras.SecondaryTextures[self.id] = texture; |
return; |
end |
PowaAuras.Textures[self.id] = texture; |
end |
function cPowaAura:GetSpellNameFromMatch(spellMatch) |
local _, _,spellId = string.find(spellMatch, "%[(%d+)%]") |
if (spellId) then |
local spellName, rank, spellIcon = GetSpellInfo(tonumber(spellId)); |
return spellName, spellIcon; |
end |
return spellMatch; |
end |
function cPowaAura:SetStacks(text) |
local _, _,curStacksLower, curOperator, curStacks = string.find(text, "(%d*)(%D+)(%d*)") |
if (curStacks == nil or curStacks == "") then curStacks = "0"; end |
local stacks = tonumber(curStacks); |
PowaAuras:Debug(stacks); |
if (stacks ~= self.stacks) then |
if (stacks > 100) or (stacks < 0) then stacks = 0; end |
self.stacks = stacks or 0; |
end |
if (curStacksLower == nil or curStacksLower == "") then curStacksLower = "0"; end |
local stacksLower = tonumber(curStacksLower); |
PowaAuras:Debug(stacksLower); |
if (stacksLower ~= self.stacksLower) then |
if (stacksLower > 100) or (stacksLower < 0) or (stacksLower > stacks) then stacksLower = 0; end |
self.stacksLower = stacksLower or 0; |
end |
if (curOperator ~= self.stacksOperator) then |
if (not PowaAuras.allowedOperators[curOperator]) then |
curOperator = PowaAuras.DefaultOperator; |
end |
self.stacksOperator = curOperator; |
end |
end |
function cPowaAura:Trim(s) |
return (string.gsub(s, "^%s*(.-)%s*$", "%1")); |
end |
function cPowaAura:MatchSpell(spellName, spellTexture, textToFind) |
if (spellName==nil or textToFind==nil) then |
return false; |
end |
if (textToFind=="*") then |
return true; |
end |
PowaAuras:Debug(" MatchSpell spellName =",spellName); |
PowaAuras:Debug(" spellTexture=",spellTexture); |
PowaAuras:Debug(" textToFind =",textToFind); |
for pword in string.gmatch(textToFind, "[^/]+") do |
pword = self:Trim(pword); |
if (string.len(pword)>0) then |
local textToSearch; |
if string.find(pword, "_") then |
_, _,textToSearch = string.find(spellTexture, "([%w_]*)$") |
else |
textToSearch = spellName; |
pword = self:GetSpellNameFromMatch(pword); |
end |
if (textToSearch) then |
if (self.ignoremaj) then |
textToSearch = string.upper(textToSearch) |
pword = string.upper(pword); |
end |
PowaAuras:Debug("pword=", pword); |
PowaAuras:Debug("search=", textToSearch); |
if (self.exact) then |
PowaAuras:Debug("exact=", (textToSearch == pword)); |
if (textToSearch == pword) then |
return true; |
end |
else |
PowaAuras:Debug("find=", string.find(textToSearch, pword, 1, true)); |
if (string.find(textToSearch, pword, 1, true)) then |
return true; |
end |
end |
end |
end |
end |
return nil; |
end |
function cPowaAura:MatchText(textToSearch, textToFind) |
if (textToSearch==nil or textToFind==nil) then |
return false; |
end |
if (textToFind=="*") then |
return true; |
end |
PowaAuras:Debug("MatchText textToSearch=",textToSearch," textToFind=",textToFind); |
if (self.ignoremaj) then |
textToFind = string.upper(textToFind); |
textToSearch = string.upper(textToSearch); |
end |
PowaAuras:Debug("MatchText textToSearch=",textToSearch," textToFind=",textToFind, " ignoremaj=", self.ignoremaj, " exact=", self.exact); |
if (self.exact) then |
return (textToSearch == textToFind); |
end |
for pword in string.gmatch(textToFind, "[^/]+") do |
PowaAuras:Debug("pword=", pword," find=",string.find(textToSearch, pword, 1, true)); |
if (string.find(textToSearch, pword, 1, true)) then |
return true; |
end |
end |
return nil; |
end |
function cPowaAura:CreateAuraString() |
local tempstr, varpref= "", ""; |
for k, v in pairs (self) do |
--- multi condition checks not supported for export. |
if k == "multiids" then |
v = ""; |
end |
varType = type(v); |
if (varType == "string" or varType == "boolean" or varType == "number") then |
tempstr = tempstr..k..":"..string.sub(varType,1,2)..tostring(v).."; "; |
end |
end |
if (self.Timer) then |
for k, v in pairs (self.Timer) do |
varType = type(v); |
if (varType == "string" or varType == "boolean" or varType == "number") then |
tempstr = tempstr.."timer."..k..":"..string.sub(varType,1,2)..tostring(v).."; "; |
end |
end |
end |
if tempstr and tempstr ~= "" then |
tempstr = strtrim(tempstr); |
tempstr = string.sub(tempstr, 1, string.len(tempstr)-1); |
end |
PowaAuras:Debug("Aura-string length: "..tostring(string.len(tempstr))); |
return tempstr; |
end |
function cPowaAura:GetUnit() |
if (self.target or self.targetfriend) then |
return "target"; |
elseif (self.focus) then |
return "focus"; |
elseif (self.party) then |
return "party"; |
elseif (self.raid) then |
return "raid"; |
elseif (self.groupOrSelf) then |
return "groupOrSelf"; |
elseif (self.optunitn) then |
return self.unitn; |
else |
return "player"; |
end |
return nil; |
end |
function cPowaAura:CheckAllUnits(giveReason) |
local unit = self:GetUnit(); |
PowaAuras:Debug("on unit "..unit); |
local numpm = GetNumPartyMembers(); |
local numrm = GetNumRaidMembers(); |
if unit == "party" then |
for pm = 1, numpm do |
unit = "party"..pm; |
if self:CheckUnit(unit) then |
if (not giveReason) then return true; end |
return true, unit.." "..self.MatchReason; |
end |
end |
elseif unit == "raid" then |
for rm = 1, numrm do |
unit = "raid"..rm; |
if self:CheckUnit(unit) then |
if (not giveReason) then return true; end |
return true, unit.." "..self.MatchReason; |
end |
end |
elseif unit == "groupOrSelf" then |
if (numrm>0) then |
for rm = 1, numrm do |
unit = "raid"..rm; |
if self:CheckUnit(unit) then |
if (not giveReason) then return true; end |
return true, unit.." "..self.MatchReason; |
end |
end |
elseif (numpm>0) then |
for pm = 1, numpm do |
unit = "party"..pm; |
if self:CheckUnit(unit) then |
if (not giveReason) then return true; end |
return true, unit.." "..self.MatchReason; |
end |
end |
if self:CheckUnit("player") then |
if (not giveReason) then return true; end |
return true, unit.." "..self.MatchReason; |
end |
end |
else |
if self:CheckUnit(unit) then |
if (not giveReason) then return true; end |
return true, unit.." "..self.MatchReason; |
end |
end |
if (not giveReason) then return false; end |
return false,self.NoMatchReason; |
end |
function cPowaAura:CheckStacks(count) |
local operator = self.stacksOperator or PowaAuras.DefaultOperator; |
local stacks = self.stacks or 0; |
local stacksLower = self.stacksLower or 0; |
PowaAuras:Debug("Stack op=",operator," stacks=",stacks,"Stack Count=",count); |
return ((operator == "=" and stacks == 0) |
or (operator == ">=" and count >= stacks) |
or (operator == "<=" and count <= stacks) |
or (operator == ">" and count > stacks) |
or (operator == "<" and count < stacks) |
or (operator == "=" and count == stacks) |
or (operator == "-" and count >= stacksLower and count <= stacks) |
or (operator == "!" and count ~= stacks)); |
end |
cPowaBuffBase = PowaClass(cPowaAura); |
function cPowaBuffBase:AddEffect(i) |
if not self.target |
and not self.targetfriend |
and not self.party |
and not self.raid |
and not self.groupOrSelf |
and not self.focus |
and not self.optunitn then --- self-buff |
table.insert(PowaAuras.AurasByType.Buffs, i); |
end |
if self.party then --- partybuff cible |
table.insert(PowaAuras.AurasByType.PartyBuffs, i); |
end |
if self.focus then --- focus buffs |
table.insert(PowaAuras.AurasByType.FocusBuffs, i); |
end |
if self.raid then --- raid buffs |
table.insert(PowaAuras.AurasByType.RaidBuffs, i); |
end |
if self.groupOrSelf then --- groupOrSelf buffs |
table.insert(PowaAuras.AurasByType.GroupOrSelfBuffs, i); |
end |
if self.optunitn then --- unit buffs |
table.insert(PowaAuras.AurasByType.UnitBuffs, i); |
end |
if (self.target or self.targetfriend) then --- target buff |
table.insert(PowaAuras.AurasByType.TargetBuffs, i); |
end |
end |
function cPowaBuffBase:IsPresent(unittarget, s) |
PowaAuras:Debug("IsPresent on ",unittarget," buffid ",s," type", self.buffAuraType); |
local auraName, _, auraTexture, count, _, _, expirationTime, caster = UnitAura(unittarget, s, self.buffAuraType); |
if (auraName == nil) then return nil; end |
PowaAuras:Debug("Aura=",auraName," count=",count," expirationTime=", expirationTime," caster=",caster); |
if (not self:CompareAura(unittarget, s, auraName, auraTexture)) then |
--PowaAuras:Debug("CompareAura not found"); |
return false; |
end |
local isMine = (caster~=nil) and UnitExists(caster) and UnitIsUnit("player", caster); |
local bemine = self.mine; |
--PowaAuras:Message("Bemine=",bemine," isMine=",isMine); |
if (bemine and isMine) or (not bemine) then |
if (self:CheckStacks(count)) then |
--PowaAuras:Message("Present!"); |
if (self.Timer) then |
self.Timer.DurationInfo = expirationTime; |
end |
return true; |
end |
end |
return false; |
end |
function cPowaBuffBase:CheckTooltip(text, target, index) |
if (text==nil or string.len(text) == 0) then |
return true; |
end |
PowaAuras:Debug("Search in tooltip for ",text); |
PowaAuras_Tooltip:SetOwner(UIParent, "ANCHOR_NONE"); |
PowaAuras_Tooltip:SetUnitAura(target, index, self.buffAuraType); |
for z = 1, PowaAuras_Tooltip:NumLines() do |
PowaAuras:UnitTestDebug("Check tooltip line ",z); |
local textlinel = getglobal("PowaAuras_TooltipTextLeft"..z); |
local textl = textlinel:GetText(); |
local tooltipText = ""; |
if textl then |
tooltipText = tooltipText..textl; |
end |
local textliner = getglobal("PowaAuras_TooltipTextRight"..z); |
local textr = textliner:GetText(); |
if textr then |
tooltipText = tooltipText..textr; |
end |
if (tooltipText ~= "") then |
PowaAuras:UnitTestDebug("| "..text.." |"); |
if (string.find(tooltipText, text, 1, true)) then |
PowaAuras_Tooltip:Hide(); |
return true; |
end |
end |
end |
PowaAuras_Tooltip:Hide(); |
return false; |
end |
function cPowaBuffBase:CompareAura(target, z, auraName, auraTexture, giveReason) |
--PowaAuras:Debug("CompareAura",z," ",auraName, auraTexture); |
if self:MatchSpell(auraName, auraTexture, self.buffname) then |
PowaAuras:UnitTestDebug("Aura match found! ", self.id); |
if (not self:CheckTooltip(self.tooltipCheck, target, z)) then |
PowaAuras:UnitTestDebug("Tooltip no match found!"); |
if (not giveReason) then return false; end |
return false, target.." has "..self.auraType.." "..auraName.." but tooltip does not match"; |
end |
local tempicon; |
if (self.owntex == true) then |
getglobal("PowaIconTexture"):SetTexture(auraTexture); |
tempicon = getglobal("PowaIconTexture"):GetTexture(); |
if (self.icon ~= tempicon) then |
self.icon = tempicon; |
end |
end |
if (self.icon == "") then |
getglobal("PowaIconTexture"):SetTexture(auraTexture); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
if (not giveReason) then return true; end |
return true, target.." has "..self.auraType.." "..auraName; |
end |
if (not giveReason) then return false; end |
return false, target.." does not have "..self.auraType.." "..self.buffname; |
end |
function cPowaBuffBase:CheckAllAuraSlots(target, giveReason) |
PowaAuras:UnitTestDebug("-------------"); |
PowaAuras:UnitTestDebug("CheckAllAuraSlots for ", target); |
for i = 1, 40 do |
local present = self:IsPresent(target, i); |
if (present==nil) then |
if (not giveReason) then return false; end |
return false, target.." doesn't have "..self.auraType.." "..self.buffname; |
end |
if (present) then |
PowaAuras:UnitTestDebug("CheckAllAuraSlots Present!"); |
if (not giveReason) then return true; end |
return true, target .." has "..self.auraType.." "..self.buffname; |
end |
end |
if (not giveReason) then return false; end |
return false, target.." doesn't have "..self.auraType.." "..self.buffname; |
end |
function cPowaBuffBase:CheckGroup(group, count, giveReason) |
for groupId = 1, count do |
local present = self:CheckAllAuraSlots(group..groupId, false); |
if (present) then |
if (self.groupany == true) then |
PowaAuras:UnitTestDebug("CheckGroup("..group..") Present!"); |
if (not giveReason) then return true; end |
return true, group..groupId .." has "..self.auraType.." "..self.buffname; |
end |
elseif (self.groupany==false) then |
if (not giveReason) then return false; end |
return false, "Not all in "..group.." has "..self.auraType.." "..self.buffname; |
end |
end |
if (self.groupany==false) then |
PowaAuras:UnitTestDebug("CheckGroup("..group..") All Present!"); |
if (not giveReason) then return true; end |
return true, "All in "..group.." has "..self.auraType.." "..self.buffname; |
end |
if (not giveReason) then return false; end |
return false, "No one in "..group.." has "..self.auraType.." "..self.buffname; |
end |
function cPowaBuffBase:CheckIfShouldShow(giveReason) |
PowaAuras:UnitTestInfo("CheckIfShouldShow ",self.buffAuraType," aura"); |
PowaAuras:Debug("Check " .. self.buffAuraType .. " aura"); |
local numpm = GetNumPartyMembers(); |
local numrm = GetNumRaidMembers(); |
--- targets |
if (self.target or self.targetfriend) then |
PowaAuras:UnitTestDebug("on target or friendlytarget"); |
return self:CheckAllAuraSlots("target", giveReason); |
end |
--- focus buff |
if self.focus then |
PowaAuras:UnitTestDebug("on focus"); |
return self:CheckAllAuraSlots("focus", giveReason); |
end |
--- unit buff |
if self.optunitn then |
PowaAuras:UnitTestDebug("on unit "..self.unitn); |
return self:CheckAllAuraSlots(self.unitn, giveReason); |
end |
--- raid buff |
if self.raid then |
PowaAuras:UnitTestDebug("on raid size=", numrm); |
return self:CheckGroup("raid", numrm, giveReason); |
end |
--- partybuff |
if self.party then |
PowaAuras:UnitTestDebug("on party size=", numpm); |
return self:CheckGroup("party", numpm, giveReason); |
end |
if (self.groupOrSelf) then --- Group or Self Buff |
PowaAuras:UnitTestDebug("on Group or Self"); |
if (numrm>0) then |
PowaAuras:UnitTestDebug("GoS on raidunit"); |
return self:CheckGroup("raid", numrm, giveReason); -- includes player |
end |
if (numpm>0) then |
PowaAuras:UnitTestDebug("GoS on partyunit or self"); |
local presentOnSelf, reason = self:CheckAllAuraSlots("player", giveReason); |
if (presentOnSelf and self.groupany) then |
if (not giveReason) then return true; end |
return true, reason; |
end |
if (not presentOnSelf and not self.groupany) then |
if (not giveReason) then return false; end |
return false, reason; |
end |
return self:CheckGroup("party", numpm, giveReason); |
end |
PowaAuras:UnitTestDebug("GoS on player"); |
return self:CheckAllAuraSlots("player", giveReason); |
end |
--- player buff |
PowaAuras:Debug("on player"); |
return self:CheckAllAuraSlots("player", giveReason); |
end |
cPowaBuff = PowaClass(cPowaBuffBase, {buffAuraType = "HELPFUL", auraType="buff"}); |
cPowaDebuff = PowaClass(cPowaBuffBase, {buffAuraType = "HARMFUL", auraType="debuff"}); |
cPowaTypeDebuff = PowaClass(cPowaBuffBase, {buffAuraType = "HARMFUL", auraType="debuff type"}); |
function cPowaTypeDebuff:IsPresent(target, z) |
local removeable; |
if (self.mine) then |
removeable = 1; |
end |
local name, _, texture, _, typeDebuff, _, expirationTime = UnitDebuff(target, z, removeable); |
if (not name) then |
return false; |
end |
PowaAuras:Debug("TypeDebuff IsPresent on ",target," buffid ",z," removeable ",removeable); |
if (self.mine and typeDebuff==nil) then |
return false; |
end |
PowaAuras:UnitTestDebug("Debuff ",name," type ",typeDebuff); |
local typeDebuffName; |
if (typeDebuff ~= nil) then |
typeDebuffName = PowaAuras.Text.DebuffType[typeDebuff]; |
end |
local typeDebuffCatName = PowaAuras.Text.DebuffCatType[PowaAuras.DebuffCatSpells[name]]; |
if (typeDebuffName == nil and typeDebuffCatName==nil) then |
typeDebuffName = PowaAuras.Text.aucun; |
end |
PowaAuras:UnitTestDebug("typeDebuffName ",typeDebuffName); |
PowaAuras:UnitTestDebug("typeDebuffCatName ",typeDebuffCatName); |
PowaAuras:UnitTestDebug("self.buffname ",self.buffname); |
if self:MatchText(typeDebuffName, self.buffname) |
or self:MatchText(typeDebuffCatName, self.buffname) then |
if (self.Timer) then |
self.Timer.DurationInfo = expirationTime; |
end |
if (self.icon == "") then |
getglobal("PowaIconTexture"):SetTexture(texture); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
return true; |
end |
return false; |
end |
-- This is not really AoE it is periodic damage, could be a DoT or a ground effect damage |
cPowaAoE = PowaClass(cPowaAura, {AuraType = "Aoe"}); |
function cPowaAoE:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check AoE"); |
if (PowaAuras.DoResetAoe == true) then --- probablement mort, on reset l'effet |
if (not giveReason) then return false; end |
return false, "AoE reset"; |
elseif (PowaAuras.AoeAuraAdded ~= "") then --- debuff ajoute |
if self:MatchSpell(PowaAuras.AoeAuraAdded, PowaAuras.AoeAuraTexture, self.buffname) then |
if (self.icon == "") then |
getglobal("PowaIconTexture"):SetTexture("Interface\\icons\\Spell_fire_meteorstorm"); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
if (not giveReason) then return true; end |
return true, "AoE Added "..self.buffname; |
end |
elseif (PowaAuras.AoeAuraFaded ~= "") then |
if self:MatchSpell(PowaAuras.AoeAuraFaded, PowaAuras.AoeAuraTexture, self.buffname) then |
if (self.icon == "") then |
getglobal("PowaIconTexture"):SetTexture("Interface\\icons\\Spell_fire_meteorstorm"); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
if (not giveReason) then return true; end |
return true, "AoE Faded "..self.buffname; |
end |
end |
if (not self.Showing or self.HideRequest) then |
if (not giveReason) then return false; end |
return false, "AoE expired"; |
else |
if (not giveReason) then return true; end |
return true, "AoE active"; |
end |
end |
cPowaEnchant = PowaClass(cPowaAura, {AuraType = "Enchants"}); |
function cPowaEnchant:CheckforEnchant(slot, enchantText) |
PowaAuras:Debug("Check enchant ("..enchantText..") active in slot",slot); |
PowaAuras_Tooltip:SetOwner(UIParent, "ANCHOR_NONE"); |
PowaAuras_Tooltip:SetInventoryItem("player", slot); |
PowaAuras:UnitTestDebug("search in tooltip for ", self.buffname); |
for z = 1, PowaAuras_Tooltip:NumLines() do |
PowaAuras:UnitTestDebug("Check tooltip line ",z); |
local textlinel = getglobal("PowaAuras_TooltipTextLeft"..z); |
local textl = textlinel:GetText(); |
local text = ""; |
if textl then |
text = text..textl; |
end |
local textliner = getglobal("PowaAuras_TooltipTextRight"..z); |
local textr = textliner:GetText(); |
if textr then |
text = text..textr; |
end |
if (text ~= "") then |
PowaAuras:UnitTestDebug("| "..text.." |"); |
if (self:MatchText(text, self.buffname)) then |
PowaAuras_Tooltip:Hide(); |
return true; |
end |
end |
end |
PowaAuras_Tooltip:Hide(); |
return false; |
end |
function cPowaEnchant:SetForEnchant(loc, slot, charges, index) |
PowaAuras:Debug(loc,":found ",self.buffname," in the tooltip!"); |
if (self:CheckStacks(charges)) then |
if (self.icon == "") then |
getglobal("PowaIconTexture"):SetTexture( GetInventoryItemTexture("player", slot) ); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
return true; |
end |
return false; |
end |
function cPowaEnchant:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check weapon enchant"); |
local hasMainHandEnchant, mainHandExpiration, mainHandCharges, hasOffHandEnchant, offHandExpiration, offHandCharges = GetWeaponEnchantInfo(); |
if (hasMainHandEnchant) then |
if (self:CheckforEnchant(16, PowaAuras.Text.mainHand)) then |
if (self:SetForEnchant("MH", 16, mainHandCharges, 1)) then |
if (self.Timer) then |
self.Timer.DurationInfo = mainHandExpiration; |
end |
if (not giveReason) then return true; end |
return true, "Main Hand "..self.buffname.." enchant found"; |
end |
end |
end |
if (hasOffHandEnchant) then |
if (self:CheckforEnchant(17, PowaAuras.Text.offHand)) then |
if (self:SetForEnchant("OH", 17, offHandCharges, 2)) then |
if (self.Timer) then |
self.Timer.DurationInfo = offHandExpiration; |
end |
if (not giveReason) then return true; end |
return true, "Off Hand "..self.buffname.." enchant found"; |
end |
end |
end |
if (not giveReason) then return false; end |
return false, "No enchant found on weapons"; |
end |
cPowaCombo = PowaClass(cPowaAura, {AuraType = "Combo"}); |
function cPowaCombo:CheckIfShouldShow(giveReason) |
if (not(PowaAuras.playerclass == "ROGUE" or (PowaAuras.playerclass=="DRUID" and GetShapeshiftForm()==3))) then |
return nil, "You do not use combo points"; |
end |
PowaAuras:Debug("Check Combos"); |
local nCombo = tostring(GetComboPoints("player")); |
PowaAuras:UnitTestDebug("nCombo=", nCombo, " self.buffname=", self.buffname); |
if self:MatchText(nCombo, self.buffname) then |
if (self.icon == "") then |
getglobal("PowaIconTexture"):SetTexture("Interface\\icons\\inv_sword_48"); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
if (not giveReason) then return true; end |
return true, "Combo points "..nCombo.." match "..self.buffname; |
end |
if (not giveReason) then return false; end |
return false, "Combo points "..nCombo.." no match with "..self.buffname; |
end |
cPowaActionReady = PowaClass(cPowaAura, {AuraType = "Actions"}); |
function cPowaActionReady:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check Action / Button:", self.slot); |
if (not self.slot or self.slot == 0) then |
if (not giveReason) then return false; end |
return false, "Action not set"; |
end |
local isUsable = IsUsableAction(self.slot); |
local cdstart, cdduration, enable = GetActionCooldown(self.slot); |
PowaAuras:UnitTestDebug("cdstart= ",cdstart," duration= ",cdduration); |
if (cdduration > 0.2 and cdduration < 1.7 and self.gcd == false) then |
if (isUsable == 1) then --- utilisable, pas de cooldown |
if (not giveReason) then return true; end |
return true, "Action Ready"; |
end |
else |
if (isUsable == 1 and cdstart == 0) then |
if (not giveReason) then return true; end |
return true, "Action Ready"; |
end |
end |
if (self.Timer) then |
if (enable>0) then |
self.Timer.DurationInfo = cdstart + cdduration; |
else |
self.Timer.DurationInfo = 0; |
end |
end |
if (not giveReason) then return false; end |
return false, "Action Not Ready, on cooldown"; |
end |
cPowaOwnSpell = PowaClass(cPowaAura, {AuraType = "OwnSpell"}); |
function cPowaOwnSpell:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check Spell:", self.buffname); |
for pword in string.gmatch(self.buffname, "[^/]+") do |
local spellName, spellIcon = self:GetSpellNameFromMatch(pword); |
if (self.icon == "") then |
if (not spellIcon) then |
_, _, spellIcon = GetSpellInfo(spellName); |
end |
if (spellIcon) then |
getglobal("PowaIconTexture"):SetTexture(spellIcon); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
end |
local show = false; |
local cdstart, cdduration, enabled = GetSpellCooldown(spellName); |
PowaAuras:UnitTestDebug("cdstart= ",cdstart," duration= ",cdduration," enabled= ",enabled); |
if (enabled) then |
local isUsable = IsUsableSpell(spellName); |
if (cdduration > 0.2 and cdduration < 1.7 and self.gcd == false) then |
show = (isUsable == 1); |
else |
show = (isUsable == 1 and cdstart == 0); |
end |
if (show) then |
if (self.Timer) then |
self.Timer.DurationInfo = spellName; |
end |
if (not giveReason) then return true; end |
return true, "Spell "..spellName.." usable"; |
end |
end |
end |
if (not giveReason) then return false; end |
return false, "Spell "..self.buffname.." not found"; |
end |
cPowaAuraStats = PowaClass(cPowaAura); |
function cPowaAuraStats:AddEffect(i) |
if not self.target |
and not self.targetfriend |
and not self.party |
and not self.raid |
and not self.focus |
and not self.optunitn then |
table.insert(PowaAuras.AurasByType[self.ValueName], i); |
end |
if self.optunitn then |
table.insert(PowaAuras.AurasByType["NamedUnit"..self.ValueName], i); |
end |
if self.focus then |
table.insert(PowaAuras.AurasByType["Focus"..self.ValueName], i); |
end |
if (self.target or self.targetfriend) then --- TargetHealth |
table.insert(PowaAuras.AurasByType["Target"..self.ValueName], i); |
end |
if self.party then |
table.insert(PowaAuras.AurasByType["Party"..self.ValueName], i); |
end |
if self.raid then |
table.insert(PowaAuras.AurasByType["Raid"..self.ValueName], i); |
end |
end |
function cPowaAuraStats:CheckUnit(unit) |
PowaAuras:Debug("CheckUnit " .. unit); |
if (not self:IsCorrectPowerType(unit)) then |
PowaAuras:UnitTestDebug("Correct powertype " ,self:IsCorrectPowerType(unit)); |
return nil; |
end |
if (UnitIsDeadOrGhost(unit)) then |
PowaAuras:UnitTestDebug("Correct powertype dead ", UnitIsDeadOrGhost(unit)); |
return false; |
end |
local curValue = self:UnitValue(unit); |
local maxValue = self:UnitValueMax(unit); |
PowaAuras:UnitTestDebug("curValue=", curValue, " maxValue=", maxValue); |
if (curValue==nil or maxValue==nil) then return false; end |
local curpercenthp = (curValue / maxValue) * 100; |
if self.thresholdinvert then |
thresholdvalidate = (curpercenthp > self.threshold); |
else |
thresholdvalidate = (curpercenthp < self.threshold) |
end |
if (thresholdvalidate) then |
if (self.icon == "") then |
getglobal("PowaIconTexture"):SetTexture("Interface\\icons\\Spell_fire_meteorstorm"); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
return true; |
end |
return false; |
end |
function cPowaAuraStats:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check Stat "..self.ValueName); |
return self:CheckAllUnits(giveReason); |
end |
cPowaHealth = PowaClass(cPowaAuraStats, {ValueName = "Health", MatchReason="Health low", NoMatchReason="Health not low enough"}); |
function cPowaHealth:IsCorrectPowerType(unit) |
return true; |
end |
function cPowaHealth:UnitValue(unit) |
return UnitHealth(unit); |
end |
function cPowaHealth:UnitValueMax(unit) |
return UnitHealthMax(unit); |
end |
cPowaMana = PowaClass(cPowaAuraStats, {ValueName = "Mana", MatchReason="Mana low", NoMatchReason="Mana not low enough"}); |
function cPowaMana:IsCorrectPowerType(unit) |
local powerType = UnitPowerType(unit); |
return (powerType and powerType == 0); |
end |
function cPowaMana:UnitValue(unit) |
PowaAuras:Debug("Mana UnitValue for ", unit); |
return UnitPower(unit); |
end |
function cPowaMana:UnitValueMax(unit) |
PowaAuras:Debug("Mana UnitValueMax for ", unit); |
return UnitPowerMax(unit); |
end |
cPowaEnergyRagePower = PowaClass(cPowaMana, {ValueName = "RageEnergy", MatchReason="EnergyRagePower low", NoMatchReason="EnergyRagePower not low enough"}); |
function cPowaEnergyRagePower:IsCorrectPowerType(unit) |
local powerType = UnitPowerType(unit); |
return (powerType and powerType > 0); |
end |
cPowaAggro = PowaClass(cPowaAura, {ValueName = "Aggro", MatchReason="has aggro", NoMatchReason="does not have aggro"}); |
function cPowaAggro:AddEffect(i) |
if not self.target |
and not self.targetfriend |
and not self.party |
and not self.raid |
and not self.focus |
and not self.optunitn then --- self Aggro |
table.insert(PowaAuras.AurasByType.Aggro, i); |
end |
if self.party then --- party Aggro |
table.insert(PowaAuras.AurasByType.PartyAggro, i); |
end |
if self.raid then --- raid Aggro |
table.insert(PowaAuras.AurasByType.RaidAggro, i); |
end |
end |
function cPowaAggro:CheckUnit(unit) |
return (UnitThreatSituation(unit) or -1)> 0; |
end |
function cPowaAggro:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check Aggro status"); |
return self:CheckAllUnits(giveReason); |
end |
cPowaPvP = PowaClass(cPowaAura, {MatchReason="PvP flag set", NoMatchReason="PvP flag not set"}); |
function cPowaPvP:AddEffect(i) |
if not self.target |
and not self.targetfriend |
and not self.party |
and not self.raid |
and not self.focus |
and not self.optunitn then --- self pvp flag |
table.insert(PowaAuras.AurasByType.PvP, i); |
end |
if (self.target or self.targetfriend) then --- target flag |
table.insert(PowaAuras.AurasByType.TargetPvP, i); |
end |
if self.party then --- party pvp flagged |
table.insert(PowaAuras.AurasByType.PartyPvP, i); |
end |
if self.raid then --- raid pvp flagged |
table.insert(PowaAuras.AurasByType.RaidPvP, i); |
end |
end |
function cPowaPvP:CheckUnit(unit) |
return UnitIsPVP(unit); |
end |
function cPowaPvP:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check PvP Flag"); |
return self:CheckAllUnits(giveReason); |
end |
cPowaSpellAlert = PowaClass(cPowaAura); |
function cPowaSpellAlert:AddEffect(i) |
if not self.target and not self.focus then --- any enemy casts |
table.insert(PowaAuras.AurasByType.Spells, i); |
end |
if self.target then --- target casts |
table.insert(PowaAuras.AurasByType.TargetSpells, i); |
end |
if self.focus then --- focus casts |
table.insert(PowaAuras.AurasByType.FocusSpells, i); |
end |
end |
function cPowaSpellAlert:CreateSpellFrame(endtime, spellicon) |
local tempicon; |
if (self.owntex == true) then |
getglobal("PowaIconTexture"):SetTexture(spellicon); |
tempicon = getglobal("PowaIconTexture"):GetTexture(); |
if (self.icon ~= tempicon) then |
self.icon = tempicon; |
end |
end |
if (self.icon == "") then |
getglobal("PowaIconTexture"):SetTexture(spellicon); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
end |
function cPowaSpellAlert:GetDuration(durationInfo) |
if (durationInfo and durationInfo > 0) then |
return durationInfo / 1000; |
end |
return 0; |
end |
function cPowaSpellAlert:CheckUnit(unit) |
if not UnitExists(unit) or UnitIsDead(unit) or not UnitCanAttack(unit, "player") then |
PowaAuras:UnitTestDebug(unit, " exists=", UnitExists(unit), " dead=", UnitIsDeadOrGhost(unit), " hostile=", UnitCanAttack(unit, "player")); |
return false; |
end |
local spellname, _, _, spellicon, _, endtime = UnitCastingInfo(unit); |
if not spellname then |
spellname, _, _, spellicon, _, endtime = UnitChannelInfo(unit); |
end |
if not spellname then -- not casting |
PowaAuras:UnitTestDebug(unit, " is not casting"); |
return false; |
end |
if self:MatchSpell(spellname, spellicon, self.buffname, true) then |
if (self.Timer) then |
self.Timer.DurationInfo = endtime; |
end |
self:CreateSpellFrame(endtime, spellicon); |
return true; |
end |
PowaAuras:UnitTestDebug(unit, " is casting ", spellname, " no match"); |
return false; |
end |
function cPowaSpellAlert:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check if target/focus is casting ", self.buffname); |
-- Check self target/focus first |
if (self:CheckUnit("target")) then |
if (not giveReason) then return true; end |
return true, "Target casting "..self.buffname; |
end |
if (self:CheckUnit("focus")) then |
if (not giveReason) then return true; end |
return true, "Focus casting "..self.buffname; |
end |
--- Scan raid targets |
local numrm = GetNumRaidMembers(); |
if numrm > 0 then |
for i=1, numrm do |
if (self:CheckUnit("raid"..i.."target")) then |
if (not giveReason) then return true; end |
return true, "Raid"..i.."Target casting "..self.buffname; |
end |
end |
else |
-- Scan party targets |
local numpm = GetNumPartyMembers(); |
if numpm > 0 then |
for i=1, numpm do |
if (self:CheckUnit("party"..i.."target")) then |
if (not giveReason) then return true; end |
return true, "Party"..i.."Target casting "..self.buffname; |
end |
end |
end |
end |
if (not giveReason) then return false; end |
return false, "Nobody's target casting "..self.buffname; |
end |
cPowaStance = PowaClass(cPowaAura, {AuraType = "Stance"}); |
function cPowaStance:CheckIfShouldShow(giveReason) |
PowaAuras:Debug("Check Stance"); |
local nStance = GetShapeshiftForm(false); |
PowaAuras:UnitTestDebug("nStance = "..tostring(nStance).." / self.stance = "..tostring(self.stance)); |
if (nStance == self.stance and self.icon == "") then |
local icon = GetShapeshiftFormInfo(nStance); |
getglobal("PowaIconTexture"):SetTexture(icon); |
self.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
if (nStance == self.stance)then |
if (not giveReason) then return true; end |
return true, "Stances match"; |
end |
if (not giveReason) then return false; end |
return false, "Stances don't match"; |
end |
-- Concrete Classes |
PowaAuras.AuraClasses = { |
[PowaAuras.BuffTypes.Buff]=cPowaBuff, |
[PowaAuras.BuffTypes.Debuff]=cPowaDebuff, |
[PowaAuras.BuffTypes.TypeDebuff]=cPowaTypeDebuff, |
[PowaAuras.BuffTypes.AoE]=cPowaAoE, |
[PowaAuras.BuffTypes.Enchant]=cPowaEnchant, |
[PowaAuras.BuffTypes.Combo]=cPowaCombo, |
[PowaAuras.BuffTypes.ActionReady]=cPowaActionReady, |
[PowaAuras.BuffTypes.Health]=cPowaHealth, |
[PowaAuras.BuffTypes.Mana]=cPowaMana, |
[PowaAuras.BuffTypes.EnergyRagePower]=cPowaEnergyRagePower, |
[PowaAuras.BuffTypes.Aggro]=cPowaAggro, |
[PowaAuras.BuffTypes.PvP]=cPowaPvP, |
[PowaAuras.BuffTypes.SpellAlert]=cPowaSpellAlert, |
[PowaAuras.BuffTypes.Stance]=cPowaStance, |
[PowaAuras.BuffTypes.OwnSpell]=cPowaOwnSpell, |
} |
-- Instance concrete class based on type |
function PowaAuras:AuraFactory(auraType, id, base) |
local class = self.AuraClasses[auraType]; |
if (class) then |
--self:Message("AuraFactory "..tostring(auraType).." id="..tostring(id).." class="..tostring(class)); |
if (base == nil) then |
base = {}; |
end |
base.bufftype = auraType; |
return class(id, base); |
end |
self:Message("AuraFactory unknown "..tostring(auraType).." id="..tostring(id)); --OK |
return nil; |
end |
--[[ |
powa_dump.lua |
Power Auras debug dump function |
--]] |
---------------------------------------------- |
-- Dump eveything we can think of into PowaState |
---------------------------------------------- |
function PowaAuras:Dump() |
--self:Dump_Safe(); |
local Status, Err = pcall(PowaAuras.Dump_Safe, self); |
if (not Status) then |
self:Message(Err); -- OK |
self:DisplayText(self.Colors.Red, "Error in dump protected call: ", Err); |
else |
self:DisplayText(self.Colors.Green, "Dump OK"); |
end |
end |
function PowaAuras:Dump_Safe() |
PowaState = {}; |
-- Build |
if (GetBuildInfo~=nil) then |
local version, buildnum, builddate = GetBuildInfo(); |
PowaState["BuildInfo"] = {Version=version, BuildNum=buildnum, BuildDate=builddate}; |
end |
-- Time |
PowaState["Time"] = GetTime(); |
-- Locale |
PowaState["Locale"] = GetLocale(); |
-- Zone |
PowaState["Zone"] = GetRealZoneText(); |
-- Realm |
PowaState["Realm"] = GetRealmName(); |
-- CurrentMapZone |
PowaState["CurrentMapZone"] = GetCurrentMapZone(); |
-- CurrentMapContinent |
PowaState["CurrentMapContinent"] = GetCurrentMapContinent(); |
--ActiveTalentGroup |
PowaState["ActiveTalentGroup"] = GetActiveTalentGroup() |
-- IsInInstance |
PowaState["IsInInstance"] = IsInInstance(); |
-- IsMounted |
PowaState["IsMounted"] = IsMounted(); |
-- IsFlying |
PowaState["IsFlying"] = IsFlying(); |
-- IsResting |
PowaState["IsResting"] = IsResting(); |
-- Player |
PowaState["player"] = self:GetUnitInfo("player"); |
-- PlayerPet |
PowaState["playerpet"] = self:GetUnitInfo("playerpet"); |
-- Target |
PowaState["target"] = self:GetUnitInfo("target"); |
-- TargetPet |
PowaState["targetpet"] = self:GetUnitInfo("targetpet"); |
-- TargetTarget |
PowaState["targettarget"] = self:GetUnitInfo("targettarget"); |
--ComboPoints |
PowaState["ComboPoints"] = {player=GetComboPoints("player"), vehicle=GetComboPoints("vehicle")}; |
-- Weapon Enchant |
local hasMainHandEnchant, mainHandExpiration, mainHandCharges, hasOffHandEnchant, offHandExpiration, offHandCharges = GetWeaponEnchantInfo(); |
PowaState.WeaponEnchant = {hasMainHandEnchant=hasMainHandEnchant, mainHandExpiration=mainHandExpiration, mainHandCharges=mainHandCharges, hasOffHandEnchant=hasOffHandEnchant, offHandExpiration=offHandExpiration, offHandCharges=offHandCharges}; |
-- Stances |
local numforms = GetNumShapeshiftForms(); |
PowaState["NumShapeshiftForms"] = numforms; |
if (numforms>0) then |
PowaState["ShapeshiftFormInfo"] = {}; |
for iForm=1, numforms do |
local icon, name, active, castable = GetShapeshiftFormInfo(iForm); |
PowaState["ShapeshiftFormInfo"][iForm] = {Icon=icon, Name=name, Active=active, Castable=castable}; |
end |
end |
PowaState["ShapeshiftForm"] = GetShapeshiftForm(false); |
-- CTRA MainTanks |
if (CT_RA_MainTanks~=nil) then |
PowaState.CT_RA_MainTanks = {}; |
for Index, MTName in pairs(CT_RA_MainTanks) do |
PowaState.CT_RA_MainTanks[Index] = MTName; |
end |
end |
-- RDX MainTanks |
if (RDX~=nil and RDXM.Assists~=nil and RDXM.Assists.cfg~=nil and RDXM.Assists.cfg.mtarray~=nil) then |
PowaState.RDX_MainTanks = {}; |
for Index, MTName in pairs(RDXM.Assists.cfg.mtarray) do |
PowaState.RDX_MainTanks[Index] = MTName; |
end |
end |
-- oRA MainTanks |
if (oRA_MainTank~=nil and oRA_MainTank.MainTankTable~=nil) then |
PowaState.oRA_MainTanks = {}; |
for Index, MTName in pairs(oRA_MainTank.MainTankTable) do |
PowaState.oRA_MainTanks[Index] = MTName; |
end |
end |
-- Slots |
PowaState["Inventory"] = {}; |
PowaState.Inventory["Slot"] = {}; |
PowaState.Inventory["ItemLink"] = {}; |
PowaState.Inventory["ItemCooldown"] = {}; |
self:GetSlotInfo("HeadSlot"); |
self:GetSlotInfo("NeckSlot"); |
self:GetSlotInfo("ShoulderSlot"); |
self:GetSlotInfo("BackSlot"); |
self:GetSlotInfo("ChestSlot"); |
self:GetSlotInfo("ShirtSlot"); |
self:GetSlotInfo("TabardSlot"); |
self:GetSlotInfo("WristSlot"); |
self:GetSlotInfo("HandsSlot"); |
self:GetSlotInfo("WaistSlot"); |
self:GetSlotInfo("LegsSlot"); |
self:GetSlotInfo("FeetSlot"); |
self:GetSlotInfo("Finger0Slot"); |
self:GetSlotInfo("Finger1Slot"); |
self:GetSlotInfo("Trinket0Slot"); |
self:GetSlotInfo("Trinket1Slot"); |
self:GetSlotInfo("MainHandSlot"); |
self:GetSlotInfo("SecondaryHandSlot"); |
self:GetSlotInfo("RangedSlot"); |
self:GetSlotInfo("AmmoSlot"); |
self:GetSlotInfo("Bag0Slot"); |
self:GetSlotInfo("Bag1Slot"); |
self:GetSlotInfo("Bag2Slot"); |
self:GetSlotInfo("Bag3Slot"); |
-- SpellTabs |
PowaState.SpellTabs = {}; |
for i = 1, MAX_SKILLLINE_TABS do |
local Name, Texture, Offset, Count = GetSpellTabInfo(i); |
PowaState.SpellTabs[i] = {Name=Name, Texture=Texture, Offset=Offset, Count=Count}; |
end |
-- Spells |
PowaState.SpellBook = {}; |
local i = 1; |
while (true) do |
local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL); |
local Texture = GetSpellTexture(i, BOOKTYPE_SPELL); |
if (spellName==nil or Texture==nil) then |
do break end |
end |
PowaState.SpellBook[i] = {Name=spellName, Rank=spellRank, Texture=Texture}; |
local StartTime, Duration, Enabled = GetSpellCooldown(i, BOOKTYPE_SPELL); |
PowaState.SpellBook[i]["Cooldown"] = {StartTime=StartTime, Duration=Duration, Enabled=Enabled}; |
PowaState.SpellBook[i]["UsableSpell"] = IsUsableSpell(spellName); |
self:ResetTooltip(); |
PowaAuras_Tooltip:SetSpell(i, BOOKTYPE_SPELL); |
self:CaptureTooltip(PowaState.SpellBook[i]); |
PowaState.SpellBook[spellName] = PowaState.SpellBook[i]; |
i = i + 1; |
end |
-- Debuff Spells |
PowaState.SpellInfo = {} |
for k in pairs(PowaAuras.DebuffTypeSpellIds) do |
local name, rank, icon, cost, isFunnel, powerType, castTime, minRange, maxRange = GetSpellInfo(k); |
if spellName then |
PowaState.SpellInfo[k] = {Name=name, Rank=rank, Icon=icon, Cost=cost, IsFunnel=isFunnel, PowerType=powerType, CastTime=castTime, MinRange=minRange, MaxRange=maxRange}; |
end |
end |
-- SpellIds used in auras |
for _, aura in pairs(PowaAuras.Auras) do |
for pword in string.gmatch(aura.buffname, "[^/]+") do |
local _, _,spellId = string.find(aura.buffname, "%[(%d+)%]") |
if (spellId) then |
local name, rank, icon, cost, isFunnel, powerType, castTime, minRange, maxRange = GetSpellInfo(tonumber(spellId)); |
if spellName then |
PowaState.SpellInfo[k] = {Name=name, Rank=rank, Icon=icon, Cost=cost, IsFunnel=isFunnel, PowerType=powerType, CastTime=castTime, MinRange=minRange, MaxRange=maxRange}; |
end |
end |
end |
end |
-- BonusScan |
if (BonusScanner~=nil and |
BonusScanner.active==1 and |
BonusScanner.bonuses~=nil and |
BonusScanner.bonuses.HEAL~=nil) then |
PowaState.BonusScanner = {Active=BonusScanner.active, Heal=BonusScanner.bonuses.HEAL}; |
end |
-- ActionSlots |
PowaState.ActionSlots = {}; |
for Id = 1, 120 do |
local Text = GetActionText(Id); |
local cdStart, cdDuration, cdEnabled = GetActionCooldown(Id); |
PowaState.ActionSlots[Id] = {HasAction=HasAction(Id), |
ActionText=Text, |
InRange=IsActionInRange(Id), |
HasRange=ActionHasRange(Id), |
CurrentAction=IsCurrentAction(Id), |
AutoRepeatAction=IsAutoRepeatAction(Id), |
UsableAction=IsUsableAction(Id), |
AttackAction=IsAttackAction(Id), |
Texture=GetActionTexture(Id), |
Count=GetActionCount(Id), |
Cooldown={Start=cdStart, Duration=cdDuration, Enabled=cdEnabled}, |
}; |
if (Text==nil and HasAction(Id)) then |
self:ResetTooltip(); |
PowaAuras_Tooltip:SetAction(Id); |
self:CaptureTooltip(PowaState.ActionSlots[Id]); |
end |
end |
--Bags |
PowaState.Bags = {}; |
for bag = 0, NUM_BAG_FRAMES do |
PowaState.Bags[bag] = {Slots=GetContainerNumSlots(bag)}; |
for slot = 1, GetContainerNumSlots(bag) do |
local itemName = GetContainerItemLink(bag, slot); |
if itemName then |
local texture, count = GetContainerItemInfo(bag, slot); |
PowaState.Bags[bag][slot] = {Name=itemName, Texture=texture, Count=count}; |
end |
end |
end |
--Macros |
PowaState.Macros = {}; |
for Id = 1, 36 do |
local Name, IconTexture, Body = GetMacroInfo(Id); |
PowaState.Macros[Id] = {Name=Name, Texture=IconTexture, Body=self:Escape(Body)}; |
end |
--Groups |
PowaState["RaidLeader"] = IsRaidLeader(); |
PowaState["PartyLeader"] = IsPartyLeader(); |
PowaState["PartyLeaderIndex"] = GetPartyLeaderIndex(); |
local numpm = GetNumPartyMembers(); |
local numrm = GetNumRaidMembers(); |
--Raid |
if (numrm>0) then |
PowaState.Raid = {Count=numrm}; |
PowaState.Raid.Roster = {}; |
for Id = 1, 40 do |
local unit = "raid"..Id; |
if (UnitExists(unit)) then |
PowaState.Raid[unit] = self:GetUnitInfo(unit); |
PowaState.Raid["raidpet"..Id] = self:GetUnitInfo("raidpet"..Id); |
PowaState.Raid[unit.."Target"] = self:GetUnitInfo(unit.."Target"); |
PowaState.Raid[unit.."TargetTarget"] = self:GetUnitInfo(unit.."TargetTarget"); |
end |
local name, rank, subgroup, level, classloc, class, zone, online, isDead = GetRaidRosterInfo(Id); |
PowaState.Raid.Roster[Id] = {Name=name, Rank=rank, Subgroup=subgroup, Level=level, ClassLoc=classloc, Class=class, Zone=zone, Online=online, IsDead=isDead}; |
end |
end |
--Party |
if (numpm>0) then |
PowaState.Party = {Count=numpm}; |
for Id = 1, 4 do |
local unit = "party"..Id; |
if (UnitExists(unit)) then |
PowaState.Party[unit] = self:GetUnitInfo(unit); |
PowaState.Party["partypet"..Id] = self:GetUnitInfo("partypet"..Id); |
PowaState.Party[unit.."Target"] = self:GetUnitInfo(unit.."Target"); |
PowaState.Party[unit.."TargetTarget"] = self:GetUnitInfo(unit.."TargetTarget"); |
end |
end |
end |
--Battlefields |
PowaState.Battlefields = {}; |
for Id=1, MAX_BATTLEFIELD_QUEUES do |
local bgstatus, BGName, instanceID = GetBattlefieldStatus(Id); |
PowaState.Battlefields[Id] = {Status=bgstatus, Name=BGName, Id=instanceID}; |
end |
-- Powa |
PowaState.Powa = self:CopyTable(PowaAuras); |
PowaState.PowaGlobalListe = self:CopyTable(PowaGlobalListe); |
PowaState.PowaPlayerListe = self:CopyTable(PowaPlayerListe); |
end |
-- Extract details for specified unit |
function PowaAuras:GetUnitInfo(unit) |
if (not UnitExists(unit)) then |
return nil; |
end |
--self:Message("GetUnitInfo for " .. tostring(unit)); |
local UnitInfo = {Unit=unit} |
local Name, Realm = UnitName(unit) |
UnitInfo["Name"] = Name; |
UnitInfo["Realm"] = Realm; |
UnitInfo["Level"] = UnitLevel(unit); |
local LocClass, Class= UnitClass(unit); |
UnitInfo["LocClass"] = LocClass; |
UnitInfo["Class"] = Class; |
UnitInfo["Sex"] = UnitSex(unit); |
UnitInfo["Connected"] = UnitIsConnected(unit); |
UnitInfo["Dead"] = UnitIsDead(unit); |
UnitInfo["Ghost"] = UnitIsGhost(unit); |
UnitInfo["DeadOrGhost"] = UnitIsDeadOrGhost(unit); |
UnitInfo["Corpse"] = UnitIsCorpse(unit); |
UnitInfo["Player"] = UnitIsUnit(unit, "player"); |
UnitInfo["Visible"] = UnitIsVisible(unit); |
UnitInfo["Enemy"] = UnitIsEnemy(unit, "player"); |
UnitInfo["Friend"] = UnitIsFriend(unit, "player"); |
UnitInfo["PVP"] = UnitIsPVP(unit); |
UnitInfo["ThreatSituation"] = UnitThreatSituation(unit); |
UnitInfo["CanAttack"] = UnitCanAttack(unit, "player"); |
UnitInfo["CanBeAttacked"] = UnitCanAttack("player", unit); |
UnitInfo["CanCooperate"] = UnitCanCooperate("player", unit); |
local X, Y = GetPlayerMapPosition(unit); |
UnitInfo["Pos"]= {X=X, Y=Y}; |
UnitInfo["InteractDistance"] = {[1]=CheckInteractDistance(unit, 1); |
[2]=CheckInteractDistance(unit, 2), |
[3]=CheckInteractDistance(unit, 3), |
[4]=CheckInteractDistance(unit, 4)}; |
UnitInfo["InParty"] = UnitInParty(unit); |
UnitInfo["UnitInRaid"] = UnitInRaid(unit); |
UnitInfo["PlayerOrPetInParty"] = UnitPlayerOrPetInParty(unit); |
UnitInfo["PlayerOrPetInRaid"] = UnitPlayerOrPetInRaid(unit); |
self:ResetTooltip(); |
PowaAuras_Tooltip:SetUnit(unit); |
self:CaptureTooltip(UnitInfo) |
UnitInfo["InCombat"] = UnitAffectingCombat(unit); |
UnitInfo["TargetInCombat"] = UnitAffectingCombat(unit, "target"); |
UnitInfo.Buffs = {}; |
local Index = 1; |
local Name, Rank, Icon, Applications, Type, Duration, Expires, Source, Stealable = UnitBuff(unit, Index); |
while (Name~=nil) do |
UnitInfo.Buffs[Index] = {Name=Name, Applications=Applications, Type=Type, Rank=Rank, Icon=Icon, Duration=Duration, Expires=Expires, Source=Source, Stealable=Stealable}; |
self:ResetTooltip(); |
PowaAuras_Tooltip:SetUnitBuff(unit, Index); |
self:CaptureTooltip(UnitInfo["Buffs"][Index]) |
Index = Index + 1; |
Name, Rank, Icon, Applications, Type, Duration, Expires, Source, Stealable = UnitBuff(unit, Index); |
end |
UnitInfo.Debuffs = {}; |
Index = 1; |
Name, Rank, Icon, Applications, Type, Duration, Expires, Source, Stealable = UnitDebuff(unit, Index); |
while (Name~=nil) do |
UnitInfo.Debuffs[Index] = {Name=Name, Applications=Applications, Type=Type, Rank=Rank, Icon=Icon, Duration=Duration, Expires=Expires, Source=Source, Stealable=Stealable}; |
self:ResetTooltip(); |
PowaAuras_Tooltip:SetUnitDebuff(unit, Index); |
self:CaptureTooltip(UnitInfo["Debuffs"][Index]); |
Index = Index + 1; |
Name, Rank, Icon, Applications, Type, Duration, Expires, Source, Stealable = UnitDebuff(unit, Index); |
end |
UnitInfo.RemoveableDebuffs = {}; |
Index = 1; |
Name, Rank, Icon, Applications, Type, Duration, Expires, Source, Stealable = UnitDebuff(unit, Index, 1); |
while (Name~=nil) do |
UnitInfo.RemoveableDebuffs[Index] = {Name=Name, Applications=Applications, Type=Type, Rank=Rank, Icon=Icon, Duration=Duration, Expires=Expires, Source=Source, Stealable=Stealable}; |
self:ResetTooltip(); |
PowaAuras_Tooltip:SetUnitDebuff(unit, Index); |
self:CaptureTooltip(UnitInfo["RemoveableDebuffs"][Index]); |
Index = Index + 1; |
Name, Rank, Icon, Applications, Type, Duration, Expires, Source, Stealable = UnitDebuff(unit, Index, 1); |
end |
local StatIndex = {[1]="Strength", [2]="Agility", [3]="Stamina", [4]="Intellect", [5]="Spirit"}; |
UnitInfo["Stats"] = {}; |
for Index = 1, 5 do |
local base, stat, posBuff, negBuff = UnitStat(unit, Index); |
UnitInfo.Stats[Index] = {Type=StatIndex[Index], Base=base, Stat=stat, PosBuff=posBuff, NegBuff=negBuff}; |
end |
local ResIndex = {[0]="Physical", [1]="Holy", [2]="Fire", [3]="Nature", [4]="Frost", [5]="Shadow", [6]="Arcane"}; |
UnitInfo.Resistances = {}; |
for Index = 0, 6 do |
local base, total, bonus, malus = UnitResistance(unit, Index) |
UnitInfo["Resistances"][Index] = {Type=ResIndex[Index], Base=base, Total=total, Bonus=bonus, Malus=malus}; |
end |
UnitInfo["Armor"] = UnitArmor(unit); |
UnitInfo["AttackBothHands"] = UnitAttackBothHands(unit); |
UnitInfo["AttackPower"] = UnitAttackPower(unit); |
UnitInfo["AttackSpeed"] = UnitAttackSpeed(unit); |
UnitInfo["Classification"] = UnitClassification(unit); |
UnitInfo["CreatureFamily"] = UnitCreatureFamily(unit); |
UnitInfo["CreatureType"] = UnitCreatureType(unit) ; |
UnitInfo["Damage"] = UnitDamage(unit); |
UnitInfo["Defense"] = UnitDefense(unit); |
UnitInfo["FactionGroup"] = UnitFactionGroup(unit); |
UnitInfo["Health"] = UnitHealth(unit); |
UnitInfo["HealthMax"] = UnitHealthMax(unit) ; |
UnitInfo["IsCharmed"] = UnitIsCharmed(unit); |
--UnitInfo["IsCivilian"] = UnitIsCivilian(unit); |
UnitInfo["IsPartyLeader"] = UnitIsPartyLeader(unit); |
UnitInfo["IsPlayer"] = UnitIsPlayer(unit); |
-- UnitInfo["IsPlusMob"] = UnitIsPlusMob(unit); |
UnitInfo["IsTapped"] = UnitIsTapped(unit); |
UnitInfo["IsTappedByPlayer"] = UnitIsTappedByPlayer(unit); |
UnitInfo["IsTrivial"] = UnitIsTrivial(unit); |
UnitInfo["InVehicle"] = UnitInVehicle(unit); |
UnitInfo["Mana"] = UnitMana(unit); |
UnitInfo["ManaMax"] = UnitManaMax(unit); |
UnitInfo["Power"] = {}; |
UnitInfo["PowerMax"] = {}; |
UnitInfo.Power.Default = UnitPower(unit); |
UnitInfo.PowerMax.Default = UnitPowerMax(unit); |
for powerType=0,6 do |
UnitInfo.Power[powerType] = UnitPower(unit, powerType); |
UnitInfo.PowerMax[powerType] = UnitPowerMax(unit, powerType); |
end |
local powerType, powerTypeString = UnitPowerType(unit); |
UnitInfo["PowerType"] = powerType; |
UnitInfo["PowerTypeString"] = powerTypeString; |
UnitInfo.RuneCooldown = {}; |
UnitInfo.RuneType = {}; |
for runeId=1,6 do |
local runeStart, runeDuration, runeReady = GetRuneCooldown(runeId) |
UnitInfo.RuneCooldown[runeId] = {Start=runeStart, Duration=runeDuration, RuneReady=runeReady}; |
UnitInfo.RuneType[runeId] = GetRuneType(runeId); |
end |
UnitInfo["OnTaxi"] = UnitOnTaxi(unit); |
UnitInfo["PVPName"] = UnitPVPName(unit) ; |
UnitInfo["PVPRank"] = UnitPVPRank(unit); |
UnitInfo["Race"] = UnitRace(unit); |
UnitInfo["RangedAttack"] = UnitRangedAttack(unit); |
UnitInfo["RangedAttackPower"] = UnitRangedAttackPower(unit); |
UnitInfo["RangedDamage"] = UnitRangedDamage(unit); |
Name, Realm = UnitName(unit.."Target") |
UnitInfo["Target"] = Name; |
UnitInfo["TargetRealm"] = Realm; |
Name, Realm = UnitName(unit.."TargetTarget") |
UnitInfo["TargetTarget"] = Name; |
UnitInfo["TargetTargetRealm"] = Realm; |
UnitInfo["XP"] = UnitXP(unit); |
UnitInfo["XPMax"] = UnitXPMax(unit); |
UnitInfo["UnitHasVehicleUI"] = UnitHasVehicleUI(unit); |
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(unit); |
UnitInfo["CastingInfo"] = {Spell=spell, Rank=rank, DisplayName=displayName, Icon=icon, StartTime=startTime, EndTime=endTime, IsTradeSkill=isTradeSkill}; |
spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitChannelInfo(unit); |
UnitInfo["ChannelInfo"] = {Spell=spell, Rank=rank, DisplayName=displayName, Icon=icon, StartTime=startTime, EndTime=endTime, IsTradeSkill=isTradeSkill}; |
return UnitInfo; |
end |
-- Extract details for specified slot |
function PowaAuras:GetSlotInfo(slot) |
local Id, Texture = GetInventorySlotInfo(slot); |
if (Id~=nil) then |
PowaState.Inventory.Slot[slot] = {Id=Id, Texture=Texture, Slot=slot}; |
PowaState.Inventory.ItemLink[Id] = GetInventoryItemLink("player", Id); |
PowaState.Inventory.ItemCooldown[Id] = GetInventoryItemCooldown("player", Id); |
PowaState.Inventory.Slot[Id] = PowaState.Inventory.Slot[slot] |
self:ResetTooltip(); |
PowaAuras_Tooltip:SetInventoryItem("player", Id); |
self:CaptureTooltip(PowaState.Inventory.Slot[Id]); |
end |
end |
function PowaAuras:Escape(text) |
if (text==nil) then |
return nil; |
end |
return string.gsub(string.gsub(text, "\n", "<LF>"), "\r", "<CR>"); |
end |
function PowaAuras:ResetTooltip() |
for z = 1, 9 do |
local line = getglobal("PowaAuras_TooltipTextLeft"..z); |
if (line~=nil) then line:SetText(nil); end |
line = getglobal("PowaAuras_TooltipTextRight"..z); |
if (line~=nil) then line:SetText(nil); end |
end |
PowaAuras_Tooltip:ClearLines(); |
PowaAuras_Tooltip:SetOwner(UIParent, "ANCHOR_NONE"); |
end |
function PowaAuras:CaptureTooltip(store) |
store["Tooltip"] = {}; |
store.Tooltip.NumLines = PowaAuras_Tooltip:NumLines(); |
for z = 1, PowaAuras_Tooltip:NumLines() do |
local line = getglobal("PowaAuras_TooltipTextLeft"..z); |
store.Tooltip["Left"..z] = self:Escape(line:GetText()); |
line = getglobal("PowaAuras_TooltipTextRight"..z); |
store.Tooltip["Right"..z] = self:Escape(line:GetText()); |
end |
end |
PowaAuras.Anim[0] = "[Invisible]"; |
PowaAuras.Anim[1] = "Static"; |
PowaAuras.Anim[2] = "Flashing"; |
PowaAuras.Anim[3] = "Growing"; |
PowaAuras.Anim[4] = "Pulse"; |
PowaAuras.Anim[5] = "Bubble"; |
PowaAuras.Anim[6] = "Water drop"; |
PowaAuras.Anim[7] = "Electric"; |
PowaAuras.Anim[8] = "Shrinking"; |
PowaAuras.Anim[9] = "Flame"; |
PowaAuras.Anim[10] = "Orbit"; |
PowaAuras.BeginAnimDisplay[0] = "[None]"; |
PowaAuras.BeginAnimDisplay[1] = "Zoom In"; |
PowaAuras.BeginAnimDisplay[2] = "Zoom Out"; |
PowaAuras.BeginAnimDisplay[3] = "Opacity only"; |
PowaAuras.BeginAnimDisplay[4] = "Left"; |
PowaAuras.BeginAnimDisplay[5] = "Top-Left"; |
PowaAuras.BeginAnimDisplay[6] = "Top"; |
PowaAuras.BeginAnimDisplay[7] = "Top-Right"; |
PowaAuras.BeginAnimDisplay[8] = "Right"; |
PowaAuras.BeginAnimDisplay[9] = "Bottom-Right"; |
PowaAuras.BeginAnimDisplay[10] = "Bottom"; |
PowaAuras.BeginAnimDisplay[11] = "Bottom-Left"; |
PowaAuras.BeginAnimDisplay[12] = "Bounce"; |
PowaAuras.EndAnimDisplay[0] = "[None]"; |
PowaAuras.EndAnimDisplay[1] = "Zoom In"; |
PowaAuras.EndAnimDisplay[2] = "Zoom Out"; |
PowaAuras.EndAnimDisplay[3] = "Opacity only"; |
PowaAuras.Sound[0] = NONE; |
PowaAuras.Sound[1] = "LEVELUP"; |
PowaAuras.Sound[2] = "LOOTWINDOWCOINSOUND"; |
PowaAuras.Sound[3] = "MapPing"; |
PowaAuras.Sound[4] = "Exploration"; |
PowaAuras.Sound[5] = "QUESTADDED"; |
PowaAuras.Sound[6] = "QUESTCOMPLETED"; |
PowaAuras.Sound[7] = "WriteQuest"; |
PowaAuras.Sound[8] = "Fishing Reel in"; |
PowaAuras.Sound[9] = "igPVPUpdate"; |
PowaAuras.Sound[10] = "ReadyCheck"; |
PowaAuras.Sound[11] = "RaidWarning"; |
PowaAuras.Sound[12] = "AuctionWindowOpen"; |
PowaAuras.Sound[13] = "AuctionWindowClose"; |
PowaAuras.Sound[14] = "TellMessage"; |
PowaAuras.Sound[15] = "igBackPackOpen"; |
PowaAuras.Text = { |
welcome = "Type /powa to view the options.", |
aucune = "None", |
aucun = "None", |
largeur = "Width", |
hauteur = "Height", |
mainHand = "main", |
offHand = "off", |
bothHands = "both", |
DebuffType = |
{ |
Magic = "Magic", |
Disease = "Disease", |
Curse = "Curse", |
Poison = "Poison", |
}, |
DebuffCatType = |
{ |
[PowaAuras.DebuffCatType.CC] = "CC", |
[PowaAuras.DebuffCatType.Silence] = "Silence", |
[PowaAuras.DebuffCatType.Snare] = "Snare", |
[PowaAuras.DebuffCatType.Stun] = "Stun", |
[PowaAuras.DebuffCatType.Root] = "Root", |
[PowaAuras.DebuffCatType.Disarm] = "Disarm", |
[PowaAuras.DebuffCatType.PvE] = "PvE", |
}, |
-- main |
nomEnable = "Activate Power Auras", |
aideEnable = "Enable all Power Auras effects", |
nomDebug = "Activate Debug Messages", |
aideDebug = "Enable Debug Messages", |
ListePlayer = "Page", |
ListeGlobal = "Global", |
aideMove = "Move the effect here.", |
aideCopy = "Copy the effect here.", |
nomRename = "Rename", |
aideRename = "Rename the selected effect's page.", |
nomTest = "Test", |
nomHide = "Hide all", |
nomEdit = "Edit", |
nomNew = "New", |
nomDel = "Delete", |
nomImport = "Import", |
nomExport = "Export", |
aideImport = "Press Ctrl-V to paste the Aura-string and press \'Accept\'", |
aideExport = "Press Ctrl-C to copy the Aura-string for sharing.", |
aideDel = "Remove the selected effect (Hold CTRL to allow this button to work)", |
nomMove = "Move", |
nomCopy = "Copy", |
nomPlayerEffects = "Character effects", |
nomGlobalEffects = "Global\neffects", |
aideEffectTooltip = "(Shift-click to toggle effect ON or OFF)", |
-- editor |
nomSound = "Sound to play", |
aideSound = "Plays a sound at the beginning.", |
nomCustomSound = "OR soundfile:", |
aideCustomSound = "Enter a soundfile that is in the Sounds folder, BEFORE you started the game. mp3 and wav are supported. example: 'cookie.mp3' ;)", |
nomTexture = "Texture", |
aideTexture = "The texture to be shown. You can easily replace textures by changing the files Aura#.tga in the Addon's directory.", |
nomAnim1 = "Main Animation", |
nomAnim2 = "Secondary Animation", |
aideAnim1 = "Animate the texture or not, with various effects.", |
aideAnim2 = "This animation will be shown with less opacity than the main animaton. Attention, to not overload the screen.", |
nomDeform = "Deformation", |
aideDeform = "Stretch the texture in height or in width.", |
aideColor = "Click here to change the color of the texture.", |
aideFont = "Click here to pick Font. Press OK to apply the selection.", |
aideMultiID = "Enter here other Aura IDs to combine checks. Multiple IDs must be separated with '/'. Aura ID can be found as [#] on first line of Aura tooltip.", |
aideTooltipCheck = "Also check the tooltip contains this text", |
aideBuff = "Enter here the name of the buff, or a part of the name, which must activate/deactivate the effect. You can enter several names (ex: Super Buff/Power)", |
aideBuff2 = "Enter here the name of the debuff, or a part of the name, which must activate/deactivate the effect. You can enter several names (ex: Dark Disease/Plague)", |
aideBuff3 = "Enter here the type of the debuff which must activate or deactivate the effect (Poison, Disease, Curse, Magic, CC, Silence, Stun, Snare, Root or None). You can enter several types (ex: Disease/Poison)", |
aideBuff4 = "Enter here the name of area of effect that must trigger this effect (like a rain of fire for example, the name of this AOE can be found in the combat log)", |
aideBuff5 = "Enter here the temporary enchant which must activate this effect : optionally prepend it with 'main/' or 'off/ to designate mainhand or offhand slot. (ex: main/crippling)", |
aideBuff6 = "Enter here the number of combo points that must activate this effect (ex : 1 or 1/2/3 or 0/4/5 etc...) ", |
aideBuff7 = "Enter here the name, or a part of the name, of an action in your action bars. The effect will be active when this action is usable.", |
aideBuff8 = "Enter here the name, or a part of the name, of a spell from your spellbook. You can enter a spell id [12345].", |
aideSpells = "Enter here the Spell Name that will trigger a spell alert Aura.", |
aideStacks = "Enter here the operator and the amount of stacks, required activate/deactivate the effect. Operator is required ex: '<5' '>3' '=11' '!5' '>=0' '<=6' '2-8'", |
aideUnitn = "Enter here the name of the unit, which must activate/deactivate the effect. You can enter only names, if they are in your raid or group.", |
aideUnitn2 = "Only for raid/group.", |
aideMaxTex = "Define the maximum number of textures available on the Effect Editor. If you add textures on the Mod directory (with the names AURA1.tga to AURA50.tga), you must indicate the correct number here.", |
aideAddEffect = "Add an effect for edition.", |
aideWowTextures = "Check this to use the texture of WoW instead of textures in the Power Auras directory for this effect.", |
aideCustomTextures = "Check this to use textures in the 'Custom' subdirectory. Put the name of the texture below (ex: myTexture.tga). You can also use a Spell Name (ex: Feign Death) or SpellID (ex: 5384).", |
aideTextAura = "Check this to type text instead of texture.", |
aideRealaura = "Real Aura", |
aideRandomColor = "Check this to tell this effect to use random color each time it will be activated.", |
aideTexMode = "Uncheck this to use the texture opacity. By default, the darkest colors will be more transparent.", |
nomActivationBy = "Activation by :", |
nomOwnTex = "Use own Texture", |
aideOwnTex = "Use the De/Buff or Ability Texture instead.", |
nomStacks = "Stacks", |
nomSpeed = "Animation speed", |
nomBegin = "Begin Animation", |
nomEnd = "End Animation", |
nomSymetrie = "Symmetry", |
nomAlpha = "Opacity", |
nomPos = "Position", |
nomTaille = "Size", |
nomExact = "Exact Name", |
nomGCD = "Global Cooldown", |
nomThreshold = "Threshold", |
nomStance = "Stance", |
aideThreshInv = "Check this to invert the threshold logic. Health/Mana: default = Low Warning / checked = High Warning. Energy/Rage/Power: default = High Warning / checked = Low Warning", |
nomThreshInv = "</>", |
nomMine = "Cast by me", |
nomDispellable = "I can dispell", |
nomCheckBuff = "Buff", |
nomCheckDebuff = "Debuff", |
nomCheckAoeDebuff = "AOE Debuff", |
nomCheckDebuffType = "Debuff's type", |
nomCheckEnchant = "Weapon Enchant", |
nomCheckCombo = "Combo Points", |
nomCheckSkill = "Action Usable", |
nomCheckHealth = "Health", |
nomCheckMana = "Mana", |
nomCheckRageEnergy = "Rage/Energy/Runic", |
nomCheckAggro = "Aggro", |
nomCheckPvP = "PvP", |
nomCheckStance = "Stance", |
nomCheckSpells = "Spell Alert", |
nomCheckOwnSpell = "My Spell", |
nomCheckTarget = "Enemy Target", |
nomCheckFriend = "Friendly Target", |
nomCheckParty = "Partymember", |
nomCheckFocus = "Focus", |
nomCheckRaid = "Raidmember", |
nomCheckGroupOrSelf = "Raid/Party or self", |
nomCheckGroupAny = "Any", |
nomCheckOptunitn = "Unitname", |
aideTarget = "Check this to test an enemy target only.", |
aideTargetFriend = "Check this to test a friendly target only.", |
aideParty = "Check this to test a party member only.", |
aideGroupOrSelf = "Check this to test a party or raid member or self.", |
aideFocus = "Check this to test the focus only.", |
aideRaid = "Check this to test a raid member only.", |
aideGroupAny = "Check this to test buff on 'Any' party/raid member. Unchecked: Test that 'All' are buffed.", |
aideOptunitn = "Check this to test a spezial char in raid/group only.", |
aideExact = "Check this to test the exact name of the buff/debuff/action.", |
aideGCD = "Check this and the Global Cooldown triggers with aura. May cause blinking the aura, when an action only has a Global Cooldown.", |
aideStance = "Select which Stance,Aura or Form trigger the event.", |
aideMine = "Check this to test only buffs/debuffs cast by the player", |
nomCheckShowTimer = "Show", |
nomTimerDuration = "Duration", |
aideTimerDuration = "Show a timer to simulate buff/debuff duration on the target (0 to deactivate)", |
aideShowTimer = "Check this to show the timer of this effect.", |
aideSelectTimer = "Select which timer will show the duration", |
aideSelectTimerBuff = "Select which timer will show the duration (this one is reserved for player's buffs)", |
aideSelectTimerDebuff = "Select which timer will show the duration (this one is reserved for player's debuffs)", |
nomCheckInverse = "Invert", |
aideInverse = "Invert the logic to show this effect only when buff/debuff is not active.", |
nomCheckIgnoreMaj = "Ignore uppercase", |
aideIgnoreMaj = "Check this to ignore upper/lowercase of buff/debuff names.", |
nomDuration = "Anim. duration", |
aideDuration = "After this time, this effect will disapear (0 to deactivate)", |
nomCentiemes = "Show hundredth", |
nomDual = "Show two timers", |
nomHideLeadingZeros = "Hide Leading Zeros", |
nomTransparent = "Use transparent textures", |
nomClose = "Close", |
nomEffectEditor = "Effect Editor", |
nomAdvOptions = "Options", |
nomMaxTex = "Maximum of textures available", |
nomTabAnim = "Animation", |
nomTabActiv = "Activation", |
nomTabSound = "Sound", |
nomTabTimer = "Timer", |
nomWowTextures = "WoW Textures", |
nomCustomTextures = "Custom Textures", |
nomTextAura = "Text Aura", |
nomRealaura = "Real Aura", |
nomRandomColor = "Random Colors", |
nomTexMode = "Glow", |
nomInCombat = "Only if in Combat", |
aideInCombat = "Show this effect only when you are in combat.", |
nomTalentGroup1 = "Spec 1", |
aideTalentGroup1 = "Show this effect only when you are in your primary talent spec.", |
nomTalentGroup2 = "Spec 2", |
aideTalentGroup2 = "Show this effect only when you are in your secondary talent spec.", |
nomTalentGroup1 = "Spec 1", |
aideTalentGroup1 = "Show this effect only when you are in your primary talent spec.", |
nomTalentGroup2 = "Spec 2", |
aideTalentGroup2 = "Show this effect only when you are in your secondary talent spec.", |
nomNotInCombat = "Only if not in Combat", |
aideNotInCombat = "Show this effect only when you are NOT in combat.", |
nomIsMounted = "Only if Mounted", |
aideIsMounted = "Checked: Only when on mount. Uncheked: Only when dismounted.", |
nomInVehicle = "Only if in Vehicle", |
aideInVehicle = "Checked: Only when in vehicle. Uncheked: Only when not in vehicle.", |
nomIsInRaid = "Only if in Raid", |
aideIsInRaid = "Show this effect only when you are in a raid.", |
nomResting = "Hide if Resting", |
aideResting = "Checked: Will hide when Resting unless in combat. Uncheked: Normal.", |
}; |
- =============== æ´æ°æ¥å¿: ===============- |
Version 2.5.2 |
- æ§è½: å¢å 30å¤ç§å ç½®æè´¨ä¾ç©å®¶éæ©ä½¿ç¨ |
- æ§è½: å¢å PvPæ å¿æ£æµé项 |
- æ§è½: å¢å ä»æ¨è¦æ¥æ£æµé项 |
- æ§è½: å¢å äºä½¿ç¨æè½ææ³æ¯é»è®¤å¾æ å为ç¹ææè´¨çé项 |
- ä¿®æ£äºè®¸å¤å°bug(å¦æ ç¾é¢è²,æ示丢失çé®é¢) |
Version 2.5.1a |
- æ§è½: ç°å¨å½ä½ æalt+zæªå±æ¶,å ç¯å¯ä»¥èªå¨éèäº |
Version 2.5.1 |
- æ§è½: é对2.4 çæ¬éæ°ç¼åé¨å代ç |
- æ§è½: ç°å¨å¯ä»¥æ¹ä¾¿çä»ä¸æèåä¸éæ©æ°å¢æè´¨ |
æ°æè´¨å½å为AuraXX.tga (XX代表两ä½æ°å),ä¿åå¨æ¬æ件æ件夹ä¸,éè¦éæ°å¯å¨æ¸¸æ. |
- ä¿®æ£: 姿æ/æå æ£æµ |
- ä¿®æ£: buff/debebuffæ£æµ |
- ä¿®æ£: éªä¹æ£æµ(å¢å æ£æµé£è¡ç¶æ) |
- ä¿®æ£: æè½å¯ç¨æ£æµç°å¨å¯ä»¥æ£ç¡®å·¥ä½äº(å¡«è¡¥äºæè½å·å´ç»æäºä»¶å¤ç触å代ç ) |
ç°å¨å¯¹ææå¨ä½æé®ææ |
å¦æä½ è¦æ£æµé¥°åæå ¶å®èå ä¸ç©åçå·å´,ä½ å¿ é¡»æä»ä»¬æå°ä¸ä¸ªå¨ä½æ¡ä¸(é便ä½ç½®,åªè¦å¯è§) |
v.2.421 |
-- ä¿®æ£äºä¸ä¸ªå ç¯å¨å°éæå¢éä¸äº§ççbug |
v.2.42 |
-- 为'å¨ä½å·å´'å¢å äºä¸ä¸ªtimer(计æ¶å¨) |
v.2.411 |
-- å¢å äºå¾·è¯ä½¿ç¨æå,请æ¥çæ件German_Manual.html |
v.2.41 |
-- 为æ¿æ´»æ¡ä»¶'å¨ä½å·å´'å¢å æ£æµå ¬å ±å·å´çé项 |
-- éæ°æåºäºæ¿æ´»æ¡ä»¶ä¸å±é项 |
-- çå¾ ç¸åºæ³æåä¸æè¯è¨æ件 |
v.2.40 |
-- å¢å æ°çç¹ææ¿æ´»æ¡ä»¶:å½çå½å¼/æ³åå¼è¾¾å°æä¸æéæ¶è§¦å |
-- æ·»å 精确å¹é é项,æ¤åè½è¿å¨æµè¯é¶æ®µ |
-- TOCçæ¬æ´æ°å°2.3 |
v.2.39 |
-- å¢å äºç®ä½ä¸æ(ä¿®æ£)åç¹ä½ä¸æè¯è¨æ¯æ |
v.2.38c |
-- ä¿®å¤äºäºä»¶å½æ°"function Powa_OnEvent()" |
v.2.38b |
-- ä¿®æ£äºæ£æµå°ç»ææ¶å ç¯ä¸æ¹åçbug |
-- å½ä½ å ³éç¹æç¼è¾å¨çªå£æ¶(éè¦æ¶å¯ä»¥ç¨ESCé® :P ),å¨ä½å·å´æ£æµç°å¨å¯ä»¥ä½¿ç¨äº |
v.2.38a |
-- å¢å äºä¸æè¯è¨æ¯æ,æè°¢doomiris! |
v.2.38 |
-- "å¨ä½å·å´"åè½å¨å¨ä½å¯ç¨ä¸åªæä¸æ¬¡å ¬å ±å·å´æ¶è¢«æ¿æ´» |
v.2.37a |
-- ä¿®æ£äºæ©æææä¸è½ç¼è¾çbug |
-- ç°å¨å¯ä»¥éè¿æEscé®æ¥å ³éç¹æç¼è¾çªå£äº |
* v.2.37 |
-- å¢å äºä¸ä¸ªæ¿æ´»æ¡ä»¶,å½å¢éæåè·å¾æ个debuffæ¶è§¦å |
-- å¢å äºä¸ä¸ªæ¿æ´»æ¡ä»¶,å½å¢éæåå ¨é¨è·å¾æ个buffæ¶è§¦å |
-- å¢å äºç¦ç¹è¿½è¸ª |
-- å¢å äºå¢é追踪,æ¤åè½è¿å¨æµè¯ä¸ |
-- å¢å äºå°é追踪(ä½ å¯ä»¥è¾å ¥ä¸ä¸ªå°éåæ¥æ£æµä»ä»¬çbuff/debuff,åªè½æ£æµèªå·±å¢éä¸çå°é) |
-- å¢å äºå¾·è¯æ¯æ |
v.2.36b |
-- ä¿®æ£äºbuff/debuff被å·æ°æ¶,ç¹ææ¶é´ä¸æ¹åçé误 |
v.2.36a |
-- åæ¶äºè天çªå£ä¸çdebugæéä¿¡æ¯ |
-- å¢å äºä¸ä¸ªå欧åä½çèªå®ä¹æè´¨,è§customæ件夹 |
-- å¢ébuffç°å¨åªå¨å¢é模å¼ä¸ææ |
v.2.35 |
-- å¢å äºä¸ä¸ªæ£æ¥å¢éæåbuff/debuffçé项 |
Version 2.34 : |
-------------- |
+ å¢å äºä¸ä¸ªæ¿æ´»æ¡ä»¶ï¼æå®å¨ä½æ¯å¦å·å´ï¼ææå®å¨ä½æ¯å¦å¨å¨ä½æ¡ä¸ï¼ |
- æç»ï¼ä¿®æ£äºæäºæ¦å¨ééä¸è½æ£ç¡®æ¾ç¤ºçbugã |
Version 2.32 : |
-------------- |
+ 为2.03çæ¬åäºå ¼å®¹æ§è°æ´ |
+ PowerAuraså®è£ å éç°å¨å æ¬50ç§æè´¨(ä½ ä¸éè¦å¨é¢å¤ä¸è½½å¦å¤ä¸¤ä¸ªæè´¨å äº) |
+ å¢å äº3个计æ¶å¨ |
+ å¢å äºä¸ä¸ªè®¡æ¶å¨ä»¥æ¾ç¤ºç®æ 身ä¸buff/debuffçæç»æ¶é´ |
+ ç°å¨èªå®ä¹æè´¨åå¾å®¹æäº,ä½ åªéæå好çæè´¨æ¾å¨Customæä»¶å¤¹ä¸ |
+ å¢å äºä¸ä¸ªå¨å好/æ对ç®æ ä¸è¿è¡æµè¯çåè½ |
+ å¢å äºä¸ä¸ªæ¹æ³ä½¿ç©å®¶æ´æ¹ä¾¿ç移å¨ç¹æå计æ¶å¨å¨å±å¹ä¸çä½ç½® |
+ ç°å¨å¯ä»¥è®©æè´¨æ¾ç¤ºä¸ºæ£å¸¸éæ模å¼äº |
- AOEæ³æ¯ç¹æå¨ä½ æ»äº¡æåæ¢åºåæ¶è½æ£ç¡®æ¶å¤±äº |
- ä¿®æ£äºä¸äºå ¶å®è¾å°çbug |
Version 2.17 : |
-------------- |
+ 为2.0.0çæ¬åäºå ¼å®¹æ§è°æ´ |
[11/07]Version 2.16 : |
-------------- |
- ä¿®æ£äºå¯¼è´å åå ç¨è¿é«çé®é¢; |
- ä¿®æ£äºæäºæ åµä¼å¼¹åºé误æ示çé®é¢ |
+ 为æ¯ç§ç¹æå¢å äºä¸¤ä¸ªé项:"ä» ç¨äºææç¶æ"å"ä» ç¨äºéææç¶æ" |
[11/03]Version 2.15 : |
-------------- |
+ å¢å äºä¸ä¸ªæ°çé¢æ¹ä¾¿ç®¡çææç¹æ.ç°å¨æ¯ä¸ªè§è²å¯ä»¥å建/ç¼è¾å ±120个ç¹æ,è¿å¯ä»¥ä¿å240个ææè§è²å¯ç¨çå ±ç¨ç¹æ. |
+ ææçç¹æé½å¯ä»¥å¨å¯ç¨çåç±»ä¸å¤å¶æè 移å¨,è¿äºåç±»ä½ å¯ä»¥éå½å,以便æ´å¥½ç管çå使ç¨è¿äºç¹æ. |
+ å¢å äºä¸ä¸ªå¯ä»¥åç¬å¯ç¨/ç¦ç¨æ个ç¹æçåè½ |
+ å¢å äºä¸ä¸ªéè¿åå°AOEç±»æ³æ¯å½±åèæ¿æ´»ç¹æçæ¿æ´»æ¹å¼(æ¯å¦ ç«ç°ä¹é¨, æ´é£éª, çç...) |
+ å¢å äºä¸ä¸ªéè¿æ¦å¨ééæ¿èæ¿æ´»ç¹æçæ¿æ´»æ¹å¼ (主æ, å¯æ æåæ¦å¨) |
+ å¢å äºä¸ä¸ªéè¿è·å¾è¿å»ç¹æ°èæ¿æ´»ç¹æçæ¿æ´»æ¹å¼,çè´¼åç«å½¢æçå¾·é²ä¼å¯ç¨. |
+ å¢å äºä¸ä¸ªé项"å¨ç®æ 身ä¸",ä½ç¨æ¯å½ç®æ 身ä¸ææç§BUFFæè DEBUFFæ¶,ä½ å¯ä»¥çè§å®ä¹å¥½çç¹æ. |
+ å¢å äºä¸ä¸ªé项"éæºé¢è²",ä½ç¨æ¯å½ç¹ææ¯æ¬¡æ¿æ´»æ¶é½éæ©ä¸ç§éæºçé¢è² |
+ å¢å äºä¸ä¸ªé项"WOWå ç½®æè´¨",ä½ç¨æ¯å¯ç¨æµè§å使ç¨æ¸¸æå ç½®ç25ç§æè´¨èä¸ä½¿ç¨æ件èªå¸¦çæè´¨. |
+ æ质尺寸修æ¹åè½å°ä¼æ´ç²¾ç¡®. |
- å»é¤äº[å表]é¢æ¿,以åå°ä¸å使ç¨[å表]åè½æ¥ä¿åç¹æ,ææç¹æå°è¢«ä¿åå¨[å ¬ç¨ç¹æåç±»]ä¸,并被设置为"ç¦ç¨" |
- ä¿®æ£äºä¸äºå°bug |
--- ------------------------------------------------ |
--- << Power Auras >> |
--- Par -Sinsthar- |
--- [Ziya/Tiven - serveur Fr - Kirin Tor] |
--- |
--- Effets visuels autour du personnage |
--- en cas de buff, debuff et autres... |
--- ------------------------------------------------ |
--- Author: Smacker(v2.6.2),Gameldar (v2.6.1), Driizt (v2.5+), Garstiger (Powa Continued), Sinsthar (original author/concept) |
--- Thanks: Kouri for debuff type detection code |
--- Thanks: StingerSoft for Russian translations |
--- Changes: |
--- Version 2.6.2 (WotLK Raid or Self or Party) |
--- Feature: Option to match buff/debuff on group (raid or party or self) |
--- Feature: Option to match on buff/debuff tool-tip text |
--- Feature: In Vehicle flag added |
--- Feature: Resting flag added (except when in combat) |
--- Feature: Stun/Silence/Root/CC/Snare detection added to DebuffType |
--- Feature: Can flag to trigger only dispellable DebuffTypes |
--- Feature: Added >= and <= stack comparisons |
--- Feature: Copy/Import/Export now includes timer settings |
--- Feature: Ability to look-up buffs/debuffs/spellalerts by icon name (ensure at least one underscore is in the buff name) |
--- Feature: Ability to look-up spells by spellIds (use [12345]) |
--- Feature: Russian localisation added (thanks to StingerSoft) |
--- Feature: Option to hide leading zeros on timers |
--- Feature: Option to use transparent timer textures |
--- Change: Use Blizzard threat values instead of Banzi |
--- Bugfix: PvP Trigger now works |
--- Bugfix: Timers on buffs/debuff on other players now show |
--- Version 2.6.1a (WotLK Dual-Specs) |
--- Bugfix: corrected typo in the index value for the dual spec conditional (j != k) |
--- Version 2.6.1 (WotLK Dual-Specs) |
--- Feature: WoW 3.1 verison match (no longer out of date) |
--- Feature: Basic integration of dual specs support |
--- Version 2.6.0 (WotLK) |
--- Feature: WoW 3.1 compatibility update. |
--- Feature: Deathknight Presences added to Stance Auras. |
--- Feature: Whitespace added to export strings to facilitate forum posting. |
--- Feature: Better granularity for Mana/Health/Rage/Energy/Power threshold (step 5 -> 2). |
--- Feature: Mounted option changed to toggle (checked: only when mounted, unchecked: only when dismounted) |
--- Feature: Texture glow option affects timer. |
--- Bugfix: Mana/Rage/Energy/RunicPower Party & Raid triggers. |
--- Bugfix: Mana/Rage/Energy/RunicPower Unit triggers. |
--- Bugfix: PvP Trigger. |
--- Bugfix: "Casted" -> "Cast" typo. |
--- Version 2.5.9a (WotLK) |
--- Bugfix: 'hundredth', 'dual' timers checkbox errors. |
--- Version 2.5.9 (WotLK) |
--- Feature: Option to monitor "my" buffs/debuffs. |
--- Feature: Unlimited timers. (1 per aura instead of 5 total) |
--- Feature: Dynamic Aura update when multiple matches and 'own texture' checked. |
--- Feature: Import and export Auras as strings. |
--- Feature: Any/All toggle for party, raid buff checks. (default = all) |
--- Bugfix: Action Usable aura when action linked to stance. |
--- Bugfix: Make "Activate Power Auras" checkbox actually do something and shutdown processing when unchecked. :P |
--- Version 2.5.8b (WotLK) |
--- Bugfix: gui bug threshold invert option. |
--- Version 2.5.8a (WotLK) |
--- Bugfix: combination triggers with "show when not active" checked. |
--- Various internal logic optimizations. |
--- Version 2.5.8 (WotLK) |
--- Bugfix: Various label fonts (template breakage by Blizzard in builds 8982->9014) |
--- Bugfix: Font Select button not visible on first editor open. |
--- Feature: Text shadow option for textauras. |
--- Feature: Ability to setup auras with combination of triggers. |
--- Feature: Spell Casting activation trigger added (target and focus). |
--- Version 2.5.7b (WotLK) |
--- Bugfix: Begin animation "replaying" on aura refresh. |
--- Version 2.5.7a (WotLK) |
--- Bugfix: Offhand temporary enchant detection/stacks |
--- Feature: Weapon buff auras can be defined separately per temporary enchant |
--- and optionally filtered by slot (main or offhand) |
--- Version 2.5.7 (WotLK) |
--- Feature: Text Aura Option added (thanks to Garstiger for initial code) |
--- Feature: Option to invert default threshold behavior added. |
--- Feature: Pet health/mana activation enabled (enter "pet" in UnitName editbox) |
--- Bugfix: Manual.html pictures (submitted by Garstiger) |
--- Bugfix: Aura Type checkboxes |
--- Bugfix: UnitName nil error |
--- Bugfix: Threshold when Rage/Energy/Power is zero. |
--- Version 2.5.6c (WotLK) |
--- Bugfix: Not in Combat initial state. |
--- Version 2.5.6b (WotLK) |
--- Bugfix: .TimerFrame checkboxes nil error |
--- Bugfix: Target buff/debuff timers |
--- Version 2.5.6a (WotLK) |
--- Bugfix: GetComboPoints() API change. |
--- Version 2.5.6 (WotLK) |
--- Feature: Runic Power threshold added. |
--- Bugfix: GetPlayerBuff/UnitBuff/Debuff API changes. |
--- Bugfix: UIDropMenu, PanelTemplates_TabResize, Font Widget, this->self changes. |
--- Version 2.5.5b |
--- Bugfix: Health/Mana threshold for party/raid units (line 1297 error) |
--- Version 2.5.5a |
--- Bugfix: Custom duration timer for target buffs/debuffs (wasn't reseting on target change) |
--- Bugfix: Hide player auras when dead/ghost. |
--- Version 2.5.5 |
--- Feature: Stance options for Druid and Rogue(stealth) added |
--- Bugfix: Stance detection is now dynamic so lower levels that don't have all forms/stances yet are supported. |
--- Feature: Custom timer enabled for action usable. It overrides the calculated timers if used. |
--- Feature: Rage/Energy trigger implemented with upper thresholds. |
--- Version 2.5.4a |
--- Bugfix: Buff and Debuff timers for non-player units. |
--- Version 2.5.4 |
--- Bugfix: Buff and Debuff timers. |
--- Feature: Custom textures editbox now accepts spellname or spellid in addition to filename.tga |
--- Version 2.5.3 |
--- Bugfix: Buff and Debuff stacks. |
--- Bugfix: Mana-threshold auras when shifting to bear/cat. |
--- Feature: New custom sounds. |
--- Feature: Updated zh-CN localization by <Doomiris>. |
--- Version 2.5.2 |
--- Feature: 30 more wow textures added to available choices |
--- Feature: PvP flag added to triggers |
--- Feature: Aggro status added to triggers |
--- Feature: Option to use ability/spell texture instead of predetermined choice where available. |
--- Version 2.5.1a |
--- Feature: Hide Auras when hiding the interface (Alt+z) |
--- Version 2.5.1 |
--- Feature: WoW 2.4 compatibility re-code (various changes related to the new combatlog) |
--- Feature: New textures can now be added to defaults as long as they're named Auraxx.tga |
--- The selection slider will accommodate automatically next time you start the game. |
--- Bugfix: Stance detection |
--- Bugfix: Mounted detection (flying included) |
--- Bugfix: Aura change |
--- Bugfix: Action Usable (workaround for the absense of cooldown complete events) |
--- If you want to get notification when a trinket or bag item is usable you have |
--- drag it to an actionbar (doesn't have to be a visible one) |
-- Exposed for Saving |
PowaMisc = {}; |
PowaSet = {}; |
PowaTimer = {}; |
PowaGlobalSet = {}; |
PowaGlobalListe = {}; |
PowaPlayerListe = {}; |
--Default page names |
for i = 1, 5 do |
PowaPlayerListe[i] = PowaAuras.Text.ListePlayer.." "..i; |
end |
for i = 1, 10 do |
PowaGlobalListe[i] = PowaAuras.Text.ListeGlobal.." "..i; |
end |
--- --------------------------------------------------------------------------------------------------------- |
function PowaAuras:Toggle(enabled) |
if enabled then |
if PowaAuras_Frame and not PowaAuras_Frame:IsShown() then |
PowaAuras_Frame:Show(); -- Show Main Options Frame |
self:RegisterEvents(PowaAuras_Frame); |
end |
self.Misc.disabled = false; |
else |
if PowaAuras_Frame and PowaAuras_Frame:IsShown() then |
PowaAuras_Frame:UnregisterAllEvents(); |
PowaAuras_Frame:Hide(); |
end |
self:OptionHideAll(true); |
self.Misc.disabled = true; |
end |
end |
function PowaAuras:OnLoad(frame) |
--- Setting up the Import/Export static popups |
self:SetupStaticPopups(); |
if (not self.Misc.disabled) then |
self:RegisterEvents(frame); |
end |
--- options init |
SlashCmdList["POWA"] = PowaAuras_CommanLine; |
SLASH_POWA1 = "/powa" |
end |
function PowaAuras:RegisterEvents(frame) |
--- TODO: conditionally Register/unregister events according to options for improved performance |
for _, event in ipairs(self.Events) do |
if (self[event]) then |
frame:RegisterEvent(event); |
else |
self:Message("Event has no method ", event); --OK |
end |
end |
end |
function PowaAuras:LoadAuras() |
--self:Message("Saved varaible convertion: PowaSet"); |
self.Auras = {}; |
for k, v in pairs(PowaGlobalSet) do |
self:UnitTestDebug("PowaGlobalSet",k,v.buffname); |
if (v.is_a == nil or not v:is_a(cPowaAura)) then |
--self:UnitTestDebug(k,v.buffname); |
self.Auras[k] = self:AuraFactory(v.bufftype, k, v); |
end |
end |
for k, v in pairs(PowaSet) do |
--self:UnitTestDebug("PowaSet",k,v.buffname, self.Auras[k]); |
if (not self.Auras[k]) then |
--self:UnitTestDebug("is_a=",v.is_a); |
if (v.is_a == nil or not v:is_a(cPowaAura)) then |
self.Auras[k] = self:AuraFactory(v.bufftype, k, v); |
--self:UnitTestDebug("Out=",self.Auras[k].buffname); |
end |
end |
end |
--self:Message("Default Aura"); |
self.Auras[0] = cPowaAura(0, {off=true}); |
-- Update for backwards combatiblity |
for i = 1, 360 do |
-- gere les rajouts |
local aura = self.Auras[i]; |
local oldaura = PowaSet[i]; |
if (oldaura==nil) then |
oldaura = PowaGlobalSet[i]; |
end |
if (aura) then |
if (aura.buffname == "") then |
--self:Message("Delete aura "..i); |
self.Auras[i] = nil; |
elseif (aura.bufftype == nil and oldaura~=nil) then |
--self:Message("Repair bufftype for #"..i); |
if (oldaura.isdebuff) then |
aura.bufftype = self.BuffTypes.Debuff; |
elseif (oldaura.isdebufftype) then |
aura.bufftype = self.BuffTypes.TypeDebuff; |
elseif (oldaura.isenchant) then |
aura.bufftype = self.BuffTypes.Enchant; |
else |
aura.bufftype = self.BuffTypes.Buff; |
end |
-- Update old combo style 1235 => 1/2/3/5 |
elseif (aura.bufftype==self.BuffTypes.Combo) then |
self:UnitTestDebug("Combo upgrade check ", aura.buffname, " for ", aura.id); |
if (string.len(aura.buffname)>1 and string.find(aura.buffname, "/", 1, true)==nil) then |
local newBuffName=string.sub(aura.buffname, 1, 1); |
for i=2, string.len(aura.buffname) do |
newBuffName = newBuffName.."/"..string.sub(aura.buffname, i, i); |
end |
aura.buffname = newBuffName |
end |
end |
end |
end |
--self:Message("Saved varaible convertion: PowaTimer #", #PowaTimer); |
-- Copy old timer info (should be once only) |
for k, v in pairs(PowaTimer) do |
local aura = self.Auras[k]; |
if (aura) then |
aura.Timer = cPowaTimer(k, v); |
if (PowaSet[k]~=nil and PowaSet[k].timer~=nil) then |
aura.Timer.enabled = PowaSet[k].timer; |
end |
if (PowaGlobalSet[k]~=nil and PowaGlobalSet[k].timer~=nil) then |
aura.Timer.enabled = PowaGlobalSet[k].timer; |
end |
end |
end |
-- Copy to Saved Sets |
PowaSet = self.Auras; |
for i = 121, 360 do |
PowaGlobalSet[i] = self.Auras[i]; |
end |
PowaTimer = {}; |
end |
------------------------------------------------------------------------------------------------------- EVENTS |
function PowaAuras:VARIABLES_LOADED(...) |
DEFAULT_CHAT_FRAME:AddMessage("|cffB0A0ff<Power Auras Classic>|r |cffffff00"..self.Version.."|r - "..self.Text.welcome); |
if (TestPA==nil) then |
PowaState = {}; |
end |
self.Misc = PowaMisc; |
_, self.playerclass = UnitClass("player"); |
self:LoadAuras(); |
for i = 1, 5 do |
getglobal("PowaOptionsList"..i):SetText(PowaPlayerListe[i]); |
end |
for i = 1, 10 do |
getglobal("PowaOptionsList"..i+5):SetText(PowaGlobalListe[i]); |
end |
self.maxtextures = 1; |
local texi = 1; |
while ( getglobal("AuraTexture"):SetTexture("Interface\\Addons\\PowerAuras\\Auras\\Aura"..texi..".tga") == 1 ) do |
self.maxtextures = texi; |
texi = texi+1; |
end |
getglobal("PowaBarAuraTextureSlider"):SetMinMaxValues(1, self.maxtextures); |
getglobal("PowaBarAuraTextureSliderHigh"):SetText(self.maxtextures); |
self.Initialising = false; |
self:CreateEffectLists(); |
end |
function PowaAuras:PLAYER_ENTERING_WORLD(...) |
if (self.Misc.disabled == true) then |
self:Toggle(false); |
return; |
end |
PowaAuras_Tooltip:SetOwner(UIParent, "ANCHOR_NONE"); |
-- Look-up spells by spellId for debuff types |
self.DebuffCatSpells = {} |
for k, v in pairs(self.DebuffTypeSpellIds) do |
local spellName = GetSpellInfo(k); |
if spellName then |
self.DebuffCatSpells[spellName] = v |
else |
self:Debug("Unknown spellId: ", k) |
end |
end |
for key in pairs(self.DoCheck) do |
self.DoCheck[key] = true; |
end |
if UnitIsDeadOrGhost("player") then |
self.WeAreAlive = false; |
end |
if (GetNumRaidMembers() > 0) then |
self.WeAreInRaid = true; |
else |
self.WeAreInRaid = false; |
end |
self.WeAreMounted = (IsMounted()~=nil); |
self.WeAreInVehicle = (UnitInVehicle("player")~=nil); |
self.ActiveTalentGroup = GetActiveTalentGroup(); |
self:GetStances(); |
self:MemorizeActions(); |
end |
function PowaAuras:GetStances() |
for iForm=1, GetNumShapeshiftForms() do |
self.PowaStance[iForm] = select(2,GetShapeshiftFormInfo(iForm)); |
end |
end |
function PowaAuras:PLAYER_TALENT_UPDATE(...) |
self.ActiveTalentGroup = GetActiveTalentGroup(); |
end |
function PowaAuras:PLAYER_UPDATE_RESTING(...) |
if (self.ModTest == false) then |
self.DoCheck.All = true; |
end |
end |
function PowaAuras:PARTY_MEMBERS_CHANGED(...) |
if (self.ModTest == false) then |
self.DoCheck.PartyBuffs = true; |
self.DoCheck.GroupOrSelfBuffs = true; |
self.DoCheck.PartyHealth = true; |
self.DoCheck.PartyMana = true; |
end |
end |
function PowaAuras:RAID_ROSTER_UPDATE(...) |
if (self.ModTest == false) then |
self.DoCheck.RaidBuffs = true; |
self.DoCheck.GroupOrSelfBuffs = true; |
self.DoCheck.RaidHealth = true; |
self.DoCheck.RaidMana = true; |
end |
if GetNumRaidMembers() > 0 then |
self.WeAreInRaid = true; |
else |
self.WeAreInRaid = false; |
end |
end |
function PowaAuras:UNIT_HEALTH(...) |
local unit = ...; |
self:SetCheckResource("Health", unit); |
end |
function PowaAuras:UNIT_MAXHEALTH(...) |
local unit = ...; |
self:SetCheckResource("Health", unit); |
end |
function PowaAuras:UNIT_MANA(...) |
local unit = ...; |
self:SetCheckResource("Mana", unit); |
end |
function PowaAuras:UNIT_MAXMANA(...) |
local unit = ...; |
self:SetCheckResource("Mana", unit); |
end |
function PowaAuras:UNIT_RAGE(...) |
local unit = ...; |
self:SetCheckResource("RageEnergy", unit); |
end |
function PowaAuras:UNIT_ENERGY(...) |
local unit = ...; |
self:SetCheckResource("RageEnergy", unit); |
end |
function PowaAuras:UNIT_MAXENERGY(...) |
local unit = ...; |
self:SetCheckResource("RageEnergy", unit); |
end |
function PowaAuras:UNIT_RUNIC_POWER(...) |
local unit = ...; |
self:SetCheckResource("RageEnergy", unit); |
end |
function PowaAuras:SetCheckResource(resourceType, unitType) |
if (self.ModTest == false) then |
if (unitType == "target") then |
self.DoCheck["Target"..resourceType] = true; |
elseif (unitType == "focus") then |
self.DoCheck["Focus"..resourceType] = true; |
elseif ("party" == string.sub(unitType, 1, 5)) then |
self.DoCheck["Party"..resourceType] = true; |
self.DoCheck["NamedUnit"..resourceType] = true; |
elseif ("raid" == string.sub(unitType, 1, 4)) then |
self.DoCheck["Raid"..resourceType] = true; |
self.DoCheck["NamedUnit"..resourceType] = true; |
elseif (unitType == "pet") then |
self.DoCheck["NamedUnit"..resourceType] = true; |
elseif (unitType == "player") then |
self.DoCheck[resourceType] = true; --- active les checks |
end |
end |
end |
function PowaAuras:UNIT_MAXRUNIC_POWER(...) |
local unit = ...; |
self:SetCheckResource("RageEnergy", unit); |
end |
function PowaAuras:SpellcastEvent(unit) |
if (self.ModTest == false) then |
--- spell alert handling |
if unit and not UnitIsDead(unit) and UnitCanAttack(unit, "player") then |
if UnitIsUnit(unit, "target") then |
self.DoCheck.TargetSpells = true; |
end |
if UnitIsUnit(unit, "focus") then |
self.DoCheck.FocusSpells = true; |
end |
self.DoCheck.Spells = true; --- party/raidscan for casting units in this case |
end |
end |
end |
function PowaAuras:UNIT_SPELLCAST_SUCCEEDED(...) |
if (self.ModTest == false) then |
local unit, spell = ...; |
--- druid shapeshift special case |
if unit and (unit == "player") and ( (spell == GetSpellInfo(768)) or (spell == GetSpellInfo(5487)) or (spell == GetSpellInfo(9634)) ) then |
self.DoCheck.Mana = true; |
self.DoCheck.RageEnergy = true; |
end |
PowaAuras:SpellcastEvent(unit); |
end |
end |
function PowaAuras:UNIT_SPELLCAST_START(...) |
local unit = ...; |
PowaAuras:SpellcastEvent(unit); |
end |
function PowaAuras:UNIT_SPELLCAST_CHANNEL_START(...) |
local unit = ...; |
PowaAuras:SpellcastEvent(unit); |
end |
function PowaAuras:UNIT_SPELLCAST_DELAYED(...) |
local unit = ...; |
PowaAuras:SpellcastEvent(unit); |
end |
function PowaAuras:UNIT_SPELLCAST_CHANNEL_UPDATE(...) |
local unit = ...; |
PowaAuras:SpellcastEvent(unit); |
end |
function PowaAuras:UNIT_SPELLCAST_STOP(...) |
local unit = ...; |
PowaAuras:SpellcastEvent(unit); |
end |
function PowaAuras:UNIT_SPELLCAST_FAILED(...) |
local unit = ...; |
PowaAuras:SpellcastEvent(unit); |
end |
function PowaAuras:UNIT_SPELLCAST_INTERRUPTED(...) |
local unit = ...; |
PowaAuras:SpellcastEvent(unit); |
end |
function PowaAuras:UNIT_SPELLCAST_CHANNEL_STOP(...) |
local unit = ...; |
PowaAuras:SpellcastEvent(unit); |
end |
function PowaAuras:PLAYER_FOCUS_CHANGED(...) |
if (self.ModTest == false) then |
self.DoCheck.FocusBuffs = true; |
self.DoCheck.FocusHealth = true; |
self.DoCheck.FocusMana = true; |
self.DoCheck.FocusRageEnergy = true; |
self.DoCheck.FocusSpells = true; |
end |
end |
function PowaAuras:BuffsChanged(unit) |
if (not self.ModTest) then |
--self:Message("BuffsChanged ", unit); |
if (arg1 == "target") then |
self.DoCheck.TargetBuffs = true; |
elseif ("party" == string.sub(arg1, 1, 5)) then |
self.DoCheck.PartyBuffs = true; |
self.DoCheck.GroupOrSelfBuffs = true; |
elseif (arg1 == "focus") then |
self.DoCheck.FocusBuffs = true; |
elseif (string.sub(arg1, 1, 4) == "raid") then |
self.DoCheck.RaidBuffs = true; |
self.DoCheck.GroupOrSelfBuffs = true; |
elseif (arg1 == "player") then |
--- active les checks |
self.DoCheck.Buffs = true; |
self.DoCheck.GroupOrSelfBuffs = true; |
else |
self.DoCheck.UnitBuffs = true; |
end |
end |
end |
function PowaAuras:UNIT_AURA(...) |
local unit = ...; |
self:BuffsChanged(unit); |
end |
function PowaAuras:UNIT_AURASTATE(...) |
local unit = ...; |
self:BuffsChanged(unit); |
end |
function PowaAuras:PLAYER_DEAD(...) |
if (self.ModTest == false) then |
self.DoCheck.All = true; |
end |
self.WeAreMounted = false; |
self.WeAreInVehicle = false; |
self.WeAreAlive = false; |
end |
function PowaAuras:PLAYER_ALIVE(...) |
if not UnitIsDeadOrGhost("player") then |
self.WeAreAlive = true; |
if (self.ModTest == false) then |
self.DoCheck.All = true; |
end |
end |
end |
function PowaAuras:PLAYER_UNGHOST(...) |
if not UnitIsDeadOrGhost("player") then |
self.WeAreAlive = true; |
if (self.ModTest == false) then |
self.DoCheck.All = true; |
end |
end |
end |
function PowaAuras:PLAYER_TARGET_CHANGED(...) |
if (self.ModTest == false) then |
self.DoCheck.TargetBuffs = true; |
self.DoCheck.TargetHealth = true; |
self.DoCheck.TargetMana = true; |
self.DoCheck.TargetRageEnergy = true; |
self.ResetTargetTimers = true; |
self.DoCheck.Actions = true; |
self.DoCheck.TargetSpells = true; |
self.DoCheck.Combo = true; |
end |
end |
function PowaAuras:PLAYER_REGEN_DISABLED(...) |
if (self.ModTest == false) then |
self.WeAreInCombat = true; |
self.DoCheck.Others = true; |
self.DoCheck.Enchants = true; |
self.DoCheck.TargetBuffs = true; |
self.DoCheck.Buffs = true; |
self.DoCheck.GroupOrSelfBuffs = true; |
self.DoCheck.Actions = true; |
end |
end |
function PowaAuras:PLAYER_REGEN_ENABLED(...) |
if (self.ModTest == false) then |
self.WeAreInCombat = false; |
self.DoCheck.Others = true; |
self.DoCheck.Enchants = true; |
self.DoCheck.TargetBuffs = true; |
self.DoCheck.Buffs = true; |
self.DoCheck.GroupOrSelfBuffs = true; |
self.DoCheck.Actions = true; |
end |
end |
function PowaAuras:UNIT_COMBO_POINTS(...) |
local unit = ...; |
if unit ~= "player" then return; end |
if (self.ModTest == false) then |
self.DoCheck.Combo = true; |
end |
end |
function PowaAuras:VehicleCheck(unit, entered) |
if unit ~= "player" then return; end |
if (self.ModTest == false) then |
self.DoCheck.All = true; |
end |
self.WeAreInVehicle = entered; |
end |
function PowaAuras:UNIT_ENTERED_VEHICLE(...) |
local unit = ...; |
self:VehicleCheck(unit, true) |
end |
function PowaAuras:UNIT_EXITED_VEHICLE(...) |
local unit = ...; |
self:VehicleCheck(unit, false) |
end |
function PowaAuras:UNIT_FACTION(...) --- GetPVPTimer() returns the time until unflag in ms |
local unit = ...; |
if (self.ModTest == false) then |
if unit == "player" then |
self.DoCheck.PvP = true; |
elseif unit == "target" then |
self.DoCheck.TargetPvP = true; |
end |
for i=1,GetNumPartyMembers() do |
if unit == "party"..i then |
self.DoCheck.PartyPvP = true; |
break; |
end |
end |
for i=1, GetNumRaidMembers() do |
if unit == "raid"..i then |
self.DoCheck.RaidPvP = true; |
break; |
end |
end |
end |
end |
function PowaAuras:COMBAT_LOG_EVENT_UNFILTERED(...) |
local timestamp,event,sourceGUID,sourceName,sourceFlags,destGUID,destName,destFlags, spellId, spellName = ...; |
if (not self.ModTest) and destName and destName==UnitName("player") then |
if event == "SPELL_PERIODIC_DAMAGE" then |
if spellName then |
self.AoeAuraAdded = spellName; |
self.AoeAuraTexture = select(3, GetSpellInfo(spellId)); |
self.DoCheck.Aoe = true; |
end |
elseif event == "SPELL_AURA_REMOVED" then |
if spellName then |
self.AoeAuraFaded = spellName; |
self.AoeAuraTexture = select(3, GetSpellInfo(spellId)); |
self.DoCheck.Aoe = true; |
end |
end |
end |
end |
function PowaAuras:ACTIONBAR_SLOT_CHANGED(...) |
local arg1 = ...; |
self:MemorizeActions(arg1); |
end |
function PowaAuras:UPDATE_SHAPESHIFT_FORMS(...) |
self:GetStances(); |
if (self.ModTest) then return; end |
self.DoCheck.Stance = true; |
end |
function PowaAuras:ACTIONBAR_UPDATE_COOLDOWN(...) |
if (self.ModTest == false) then |
self.DoCheck.Actions = true; |
self.DoCheck.Stance = true; |
for slot=1,120 do |
if HasAction(slot) then |
local start, duration, enable = GetActionCooldown(slot); |
if enable > 0 and start > 0 and duration > 0 then |
self.UsablePending[slot] = math.ceil(start + duration); |
else |
self.UsablePending[slot] = nil; |
end |
end |
end |
end |
end |
function PowaAuras:ACTIONBAR_UPDATE_USABLE(...) |
if (self.ModTest == false) then |
self.DoCheck.Actions = true; |
self.DoCheck.Stance = true; |
end |
end |
function PowaAuras:SPELL_UPDATE_COOLDOWN(...) |
if (self.ModTest == false) then |
self.DoCheck.OwnSpell = true; |
--self:Message("SPELL_UPDATE_COOLDOWN", ...); |
end |
end |
function PowaAuras:SPELL_UPDATE_USABLE(...) |
if (self.ModTest == false) then |
self.DoCheck.OwnSpell = true; |
--self:Message("SPELL_UPDATE_USABLE", ...); |
end |
end |
function PowaAuras:UPDATE_SHAPESHIFT_FORM(...) |
if (self.ModTest == false) then |
self:Debug("UPDATE_SHAPESHIFT_FORM"); |
self.DoCheck.Stance = true; |
self.DoCheck.Actions = true; |
end |
end |
function PowaAuras:CustomTexPath(customname) |
local texpath; |
if string.find(customname,".", 1, true) then |
texpath = "Interface\\Addons\\PowerAuras\\Custom\\"..customname; |
else |
_, _, texpath = GetSpellInfo(customname); |
end |
if not texpath then texpath = "" end |
return texpath; |
end |
--- ------------------------------------------------------------------------------------ |
function PowaAuras:CreateTimerFrame(auraId, index) |
local frame = CreateFrame("Frame", "TimerFrame"..auraId.."_"..index); |
self.TimerFrame[auraId][index] = frame; |
frame:SetFrameStrata("LOW"); |
frame:Hide(); |
frame.TimerValue = 0; |
frame.texture = frame:CreateTexture(nil,"BACKGROUND"); |
frame.texture:SetBlendMode("ADD"); |
frame.texture:SetAllPoints(frame); |
if (self.Auras[auraId].Timer.Transparent) then |
frame.texture:SetTexture("Interface\\Addons\\PowerAuras\\timersTransparent.tga"); |
else |
frame.texture:SetTexture("Interface\\Addons\\PowerAuras\\timers.tga"); |
end |
end |
function PowaAuras:CreateTimerFrameIfMissing(auraId) |
if (not self.TimerFrame[auraId]) then |
--self:Message("Creating missing TimerFrames for aura "..tostring(auraId)); |
self.TimerFrame[auraId] = {}; |
self:CreateTimerFrame(auraId, 1); |
self:CreateTimerFrame(auraId, 2); |
end |
self:UpdateOptionsTimer(auraId); |
return self.TimerFrame[auraId][1], self.TimerFrame[auraId][2]; |
end |
--- ----------------------------------------------------------------------------------------------- CREE LA LISTE DES CHECKS |
function PowaAuras:CreateEffectLists() |
if (self.Initialising) then return; end |
for k in pairs(self.AurasByType) do |
self.AurasByType[k] = {}; |
end |
for auraId, aura in pairs(self.Auras) do |
if (aura ~= nil and aura.off ~= true) then |
--print("Aura", aura.id); |
aura:AddEffect(auraId); |
end |
end |
if (self.Misc.debug == true) then |
for k in pairs(self.AurasByType) do |
self:Message(k .. " : " .. #self.AurasByType[k]); --OK |
end |
end |
end |
--- ----------------------------------------------------------------------------------------------- Memorize les actions |
function PowaAuras:MemorizeActions(actionIndex) |
local imin, imax; |
self:Debug("---MemorizeActions---"); |
if (#self.AurasByType.Actions == 0) then |
return; |
end |
--- scan tout ou uniquement le slot qui a change |
if (actionIndex == nil) then |
self:Debug("---Scan all Actionbuttons---"); |
imin = 1; |
imax = 120; |
--- reset all action positions |
for _, v in pairs(self.AurasByType.Actions) do |
self.Auras[v].slot = nil; |
end |
else |
imin = actionIndex; |
imax = actionIndex; |
end |
for i = imin, imax do |
if (HasAction(i)) then |
self:Debug("---Button",i," Action Found---"); |
PowaAction_Tooltip:SetOwner(UIParent, "ANCHOR_NONE"); |
PowaAction_Tooltip:SetAction(i); |
local text = PowaAction_TooltipTextLeft1:GetText(); |
--self:Debug("tooltip text=",text); |
if text and text ~= "" then |
self:Debug("| "..text.." |"); |
end |
if (text~=nil and PowaAction_TooltipTextLeft1:IsShown()) then |
for _, v in pairs(self.AurasByType.Actions) do |
local actionAura = self.Auras[v]; |
--self:Debug("actionAura",v,actionAura.buffname, actionAura.ignoremaj); |
if((actionAura.ignoremaj == true and string.find(string.upper(text), string.upper(actionAura.buffname), 1, true)) or |
(actionAura.ignoremaj == false and string.find(text, actionAura.buffname, 1, true)) ) then --- on a trouve le slot |
actionAura.slot = i; --- remember the slot |
self:Debug("---------------------------------------"); |
self:Debug("Actionname="..actionAura.buffname.." / Search in Tooltipstring="..text); |
--- remember the texture |
local tempicon; |
if (actionAura.owntex == true) then |
getglobal("PowaIconTexture"):SetTexture(GetActionTexture(i)); |
tempicon = getglobal("PowaIconTexture"):GetTexture(); |
if (actionAura.icon ~= tempicon) then |
actionAura.icon = tempicon; |
end |
end |
if (actionAura.icon == "") then |
getglobal("PowaIconTexture"):SetTexture(GetActionTexture(i)); |
actionAura.icon = getglobal("PowaIconTexture"):GetTexture(); |
end |
end |
end |
end |
PowaAction_Tooltip:Hide(); |
end |
end |
end |
function PowaAuras:CheckMultiple(aura, reason, giveReason) |
if (not aura.multiids or aura.multiids == "") then |
if (not giveReason) then return true; end |
return true, reason; |
end |
if string.find(aura.multiids, "[^0-9/!]") then --- invalid input (only numbers and / allowed) |
self:Debug("Multicheck. Invalid Input. Only numbers and '/' allowed."); |
if (not giveReason) then return true; end |
return true, reason; |
end |
for pword in string.gmatch(aura.multiids, "[^/]+") do |
local reverse; |
if (string.sub(pword, 1, 1) == "!") then |
pword = string.sub(pword, 2); |
reverse = true; |
end |
local k = tonumber(pword); |
local linkedAura = self.Auras[k]; |
if linkedAura then |
self:Debug("Multicheck. Aura ",k); |
result, reason = linkedAura:ShouldShow(giveReason, reverse); |
if (not result) then |
if (not giveReason) then return false; end |
return result, reason; |
end |
else |
self:Debug("Multicheck. Non-existant Aura ID specified: "..pword); |
end |
end |
if (not giveReason) then return true; end |
return true, "All multiples match "..aura.multiids; |
end |
function PowaAuras:TestThisEffect(auraId, giveReason) |
self:UnitTestInfo("TestThisEffect", auraId); |
local aura = self.Auras[auraId]; |
self:Debug("----------------------------------"); |
self:Debug("Test Aura for Hide or Show = ",auraId, " showing=",aura.Showing); |
--local shouldShow, reason = aura:ShouldShow(giveReason); |
local shouldShow, reason = aura:ShouldShow(true); |
if (shouldShow) then |
shouldShow, reason = self:CheckMultiple(aura, reason, giveReason); |
end |
if shouldShow then |
if (not aura.Showing) then |
--self:Message("ShowAura ", aura.buffname, " (",auraId,") ", reason); |
self:DisplayAura(auraId); |
end |
else |
if (aura.Showing) then |
--self:Message("HideAura ", aura.buffname, " (",auraId,") ", reason); |
aura.HideRequest = true; |
local secondaryAura = self.SecondaryAuras[aura.id]; |
if (secondaryAura and secondaryAura.Showing) then |
secondaryAura.HideRequest = true; |
end |
end |
end |
return shouldShow, reason; |
end |
function PowaAuras:NewCheckBuffs() |
self:UnitTestInfo("NewCheckBuffs"); |
for auraType in pairs(self.AurasByType) do |
if ((self.DoCheck[auraType] or self.DoCheck.All) and #self.AurasByType[auraType]>0) then |
--self:Message("TestAuraTypes ",auraType," DoCheck ", self.DoCheck[auraType], " All ", self.DoCheck.All, " #", #self.AurasByType[auraType]); |
for _, v in pairs(self.AurasByType[auraType]) do |
--self:Message("TestThisEffect ",v); |
self:TestThisEffect(v); |
end |
self.DoCheck[auraType] = false; |
end |
end |
self.DoCheck.All = false; |
end |
--- ----------------------------------------------------------------------------------------------------------- |
function PowaAuras:ShowAuraForFirstTime(aura) |
self:UnitTestInfo("ShowAuraForFirstTime", aura.id); |
local auraId = aura.id; |
if (self.ModTest == false) then |
if (aura.sound > 0) and (aura.customsound == "") then |
PlaySound(aura.soundfile); |
end |
if not (aura.customsound == "") then |
PlaySoundFile("Interface\\AddOns\\PowerAuras\\Sounds\\"..aura.customsound); |
end |
end |
local frame, texture = aura:CreateFrames(); |
if (aura.owntex == true) then |
texture:SetTexture(aura.icon); |
elseif (aura.wowtex == true) then |
texture:SetTexture(self.WowTextures[aura.texture]); |
elseif (aura.customtex == true) then |
texture:SetTexture(self:CustomTexPath(aura.customname)); |
elseif (aura.textaura == true) then |
texture:SetText(aura.aurastext); |
else |
texture:SetTexture("Interface\\Addons\\PowerAuras\\Auras\\Aura"..aura.texture..".tga"); |
end |
if (aura.randomcolor) then |
texture:SetVertexColor(random(20,100)/100,random(20,100)/100,random(20,100)/100); |
else |
texture:SetVertexColor(aura.r,aura.g,aura.b); |
end |
if (aura.texmode == 1) then |
if (aura.textaura ~= true) then |
texture:SetBlendMode("ADD"); |
else |
texture:SetShadowColor(0.0, 0.0, 0.0, 0.8); |
texture:SetShadowOffset(2,-2); |
end |
frame:SetFrameStrata("LOW"); |
else |
if (aura.textaura ~= true) then |
texture:SetBlendMode("DISABLE"); |
else |
texture:SetShadowColor(0.0, 0.0, 0.0, 0.0); |
texture:SetShadowOffset(0,0); |
end |
frame:SetFrameStrata("BACKGROUND"); |
end |
if (aura.textaura ~= true) then |
if (aura.symetrie == 1) then |
texture:SetTexCoord(1, 0, 0, 1); --- inverse X |
elseif (aura.symetrie == 2) then |
texture:SetTexCoord(0, 1, 1, 0); --- inverse Y |
elseif (aura.symetrie == 3) then |
texture:SetTexCoord(1, 0, 1, 0); --- inverse XY |
else |
texture:SetTexCoord(0, 1, 0, 1); |
end |
end |
frame.baseH = 256 * aura.size * (2-aura.torsion); |
if (aura.textaura == true) then |
local fontsize = math.min(33, math.max(10, math.floor(frame.baseH / 12.8))); |
local checkfont = texture:SetFont(self.Fonts[aura.aurastextfont], fontsize, "OUTLINE, MONOCHROME"); |
if not checkfont then |
texture:SetFont(STANDARD_TEXT_FONT, fontsize, "OUTLINE, MONOCHROME"); |
end |
frame.baseL = texture:GetStringWidth() + 5; |
else |
frame.baseL = 256 * aura.size * aura.torsion; |
end |
frame:SetAlpha(aura.alpha); |
frame:SetPoint("Center",aura.x, aura.y); |
frame:SetWidth(frame.baseL); |
frame:SetHeight(frame.baseH); |
frame.statut = 0; |
aura.TimeShown = 0; |
if (aura.Timer and aura.timerduration) then |
aura.Timer.CustomDuration = aura.timerduration; |
end |
if (aura.begin > 0) then |
frame.beginAnim = 1; |
else |
frame.beginAnim = 0; |
end |
if (aura.begin and aura.begin>0) then |
aura.animation = self:AnimationBeginFactory(aura.begin, aura, frame); |
else |
aura.animation = self:AnimationMainFactory(aura.anim1, aura, frame); |
end |
self:UnitTestInfo("frame:Show()", aura.id); |
--self:Message("frame:Show()", aura.id, " ", frame); |
frame:Show(); -- Show Aura Frame |
aura.Showing = true; |
aura.HideRequest = false; |
self:ShowSecondaryAuraForFirstTime(aura); |
end |
function PowaAuras:ShowSecondaryAuraForFirstTime(aura) |
self:UnitTestInfo("ShowSecondaryAuraForFirstTime", aura.id); |
if (aura.anim2 == 0) then --- no secondary aura |
local secondaryAura = self.SecondaryAuras[aura.id]; |
if (secondaryAura) then |
secondaryAura:Hide(); |
end |
self.SecondaryAuras[aura.id] = nil; |
self.SecondaryFrames[aura.id] = nil; |
self.SecondaryTextures[aura.id] = nil; |
return; |
end |
-- new secondary Aura |
local secondaryAura = self:AuraFactory(aura.bufftype, aura.id, aura); |
self.SecondaryAuras[aura.id] = secondaryAura; |
secondaryAura.isSecondary = true; |
secondaryAura.alpha = aura.alpha * 0.5; |
secondaryAura.anim1 = aura.anim2; |
secondaryAura.speed = aura.speed - 0.1; --- legerement plus lent |
local auraId = aura.id; |
local frame = self.Frames[auraId]; |
local texture = self.Textures[auraId]; |
local secondaryFrame, secondaryTexture = secondaryAura:CreateFrames(); |
if (aura.owntex == true) then |
secondaryTexture:SetTexture(aura.icon); |
elseif (aura.wowtex == true) then |
secondaryTexture:SetTexture(self.WowTextures[aura.texture]); |
elseif (aura.customtex == true) then |
secondaryTexture:SetTexture(self:CustomTexPath(aura.customname)); |
elseif (aura.textaura == true) then |
secondaryTexture:SetText(aura.aurastext); |
else |
secondaryTexture:SetTexture("Interface\\Addons\\PowerAuras\\Auras\\Aura"..aura.texture..".tga"); |
end |
if (aura.randomcolor) then |
if texture:GetObjectType() == "Texture" then |
secondaryTexture:SetVertexColor( texture:GetVertexColor() ); |
elseif texture:GetObjectType() == "FontString" then |
secondaryTexture:SetVertexColor(texture:GetTextColor()); |
end |
else |
secondaryTexture:SetVertexColor(aura.r,aura.g,aura.b); |
end |
if (aura.texmode == 1) then |
if (aura.textaura ~= true) then |
secondaryTexture:SetBlendMode("ADD"); |
end |
secondaryFrame:SetFrameStrata("LOW"); |
else |
if (aura.textaura ~= true) then |
secondaryTexture:SetBlendMode("DISABLE"); |
end |
secondaryFrame:SetFrameStrata("BACKGROUND"); |
end |
if not aura.textaura == true then |
if (aura.symetrie == 1) then |
secondaryTexture:SetTexCoord(1, 0, 0, 1); --- inverse X |
elseif (aura.symetrie == 2) then |
secondaryTexture:SetTexCoord(0, 1, 1, 0); --- inverse Y |
elseif (aura.symetrie == 3) then |
secondaryTexture:SetTexCoord(1, 0, 1, 0); --- inverse XY |
else |
secondaryTexture:SetTexCoord(0, 1, 0, 1); |
end |
end |
secondaryFrame.baseL = frame.baseL; |
secondaryFrame.baseH = frame.baseH; |
secondaryFrame:SetPoint("Center",aura.x, aura.y); |
secondaryFrame:SetWidth(secondaryFrame.baseL); |
secondaryFrame:SetHeight(secondaryFrame.baseH); |
secondaryFrame.statut = 1; |
if (aura.begin > 0) then |
secondaryFrame.beginAnim = 2; |
else |
secondaryFrame.beginAnim = 0; |
end |
if (not aura.begin or aura.begin==0) then |
secondaryAura.animation = self:AnimationMainFactory(aura.anim2, secondaryAura, secondaryFrame); |
else |
secondaryFrame:SetAlpha(0.0); -- Hide secondary until primary begin animation finishes |
end |
self:UnitTestInfo("secondaryFrame:Show()", aura.id); |
secondaryFrame:Show(); -- Show Secondary Aura Frame |
--self:Message("Show #2"); |
secondaryAura.Showing = true; |
secondaryAura.HideRequest = false; |
end |
function PowaAuras:DisplayAura(auraId) |
self:UnitTestInfo("DisplayAura", auraId); |
if (self.Initialising) then return; end --- de-actived |
local aura = self.Auras[auraId]; |
if (aura==nil or aura.off) then return; end |
--self:Message("DisplayAura aura ", aura); |
if (not aura.Showing) then --- si pas en cours |
self:ShowAuraForFirstTime(aura); |
end |
end |
--- ------------------------------------------------------------------------------------------------- ON UPDATE |
function PowaAuras:AnimateAura(aura, elapsed) |
self:UnitTestInfo("AnimateAura", aura.id, elapased); |
local frame = aura:GetFrame(); |
self.curScale.w=frame.baseL; |
self.curScale.h=frame.baseH; |
--- Animations ---------------------------------------------------------------------- |
self:UnitTestInfo("Animation type", aura.anim1); |
--- Animation 1 : aucune |
if (aura.anim1 == 1) then |
--- Animation 2 : max alpha <-> mi-alpha |
elseif (aura.anim1 == 2) then |
self.minScale.a = aura.alpha * 0.5 * aura.speed; |
self.maxScale.a = aura.alpha; |
if (frame.statut == 0) then |
self.curScale.a = frame:GetAlpha() - (elapsed / 2); |
frame:SetAlpha( self.curScale.a ) |
if (frame:GetAlpha() < self.minScale.a) then |
frame:SetAlpha(self.minScale.a); |
frame.statut = 1; |
end |
else |
self.curScale.a = frame:GetAlpha() + (elapsed / 2); |
if (self.curScale.a > 1.0) then self.curScale.a = 1.0; end --- pas trop haut non plus |
frame:SetAlpha( self.curScale.a ) |
if (frame:GetAlpha() >= self.maxScale.a) then |
frame:SetAlpha(self.maxScale.a); |
frame.statut = 0; |
end |
end |
--- Animation 3 : mini-zoom in repetitif + fading |
elseif (aura.anim1 == 3) then |
self.minScale.w = self.curScale.w * 0.90; |
self.minScale.h = self.curScale.h * 0.90; |
self.maxScale.w = self.curScale.w * 1.20; |
self.maxScale.h = self.curScale.h * 1.20; |
local speedScale = (25 * aura.speed) * aura.size; |
if (frame.statut == 1) then --- decale anim 2 |
frame:SetWidth(self.curScale.w * 1.15); |
frame:SetHeight(self.curScale.h * 1.15); |
frame.statut = 0; |
end |
frame:SetWidth( frame:GetWidth() + (elapsed * speedScale) ) |
frame:SetHeight( frame:GetHeight() + (elapsed * speedScale) ) |
frame:SetAlpha( ((self.maxScale.w - frame:GetWidth()) / (self.maxScale.w - self.minScale.w)) * aura.alpha ); |
if (frame:GetWidth() > self.maxScale.w) then |
frame:SetWidth(self.minScale.w); |
frame:SetHeight(self.minScale.h); |
end |
--- Animation 4 : mini-zoom in/out |
elseif (aura.anim1 == 4) then |
self.minScale.w = self.curScale.w * 0.95; |
self.minScale.h = self.curScale.h * 0.95; |
self.maxScale.w = self.curScale.w * 1.05; |
self.maxScale.h = self.curScale.h * 1.05; |
local speedScale = (50 * aura.speed) * aura.size; |
if (frame.statut == 0) then |
frame:SetWidth( frame:GetWidth() + (elapsed * speedScale * aura.torsion) ) |
frame:SetHeight( frame:GetHeight() + (elapsed * speedScale * (2-aura.torsion) ) ) |
if (frame:GetWidth() > self.maxScale.w) then |
frame:SetWidth(self.maxScale.w); |
frame:SetHeight(self.maxScale.h); |
frame.statut = 1; |
end |
else |
frame:SetWidth( frame:GetWidth() - (elapsed * speedScale * aura.torsion) ) |
frame:SetHeight( frame:GetHeight() - (elapsed * speedScale * (2-aura.torsion) ) ) |
if (frame:GetWidth() < self.minScale.w) then |
frame:SetWidth(self.minScale.w); |
frame:SetHeight(self.minScale.h); |
frame.statut = 0; |
end |
end |
--- Animation 5 : effet bulle |
elseif (aura.anim1 == 5) then |
self.minScale.w = self.curScale.w * 0.95; |
self.minScale.h = self.curScale.h * 0.95; |
self.maxScale.w = self.curScale.w * 1.05; |
self.maxScale.h = self.curScale.h * 1.05; |
local speedScale = (50 * aura.speed) * aura.size; |
if (frame.statut == 0) then |
frame:SetWidth( frame:GetWidth() + (elapsed * speedScale * aura.torsion) ) |
frame:SetHeight( frame:GetHeight() - (elapsed * speedScale * (2-aura.torsion) ) ) |
if (frame:GetWidth() > self.maxScale.w) then |
frame:SetWidth(self.maxScale.w); |
frame:SetHeight(self.minScale.h); |
frame.statut = 1; |
end |
else |
frame:SetWidth( frame:GetWidth() - (elapsed * speedScale * aura.torsion) ) |
frame:SetHeight( frame:GetHeight() + (elapsed * speedScale * (2-aura.torsion) ) ) |
if (frame:GetHeight() > self.maxScale.h) then |
frame:SetWidth(self.minScale.w); |
frame:SetHeight(self.maxScale.h); |
frame.statut = 0; |
end |
end |
--- position au hasard + zoom in + fade (water-drop) |
elseif (aura.anim1 == 6) then |
if (frame:GetAlpha() > 0) then |
self.curScale.a = frame:GetAlpha() - (elapsed * aura.alpha * 0.5 * aura.speed); |
if (self.curScale.a < 0) then frame:SetAlpha(0.0); |
else frame:SetAlpha(self.curScale.a); end |
self.maxScale.w = frame:GetWidth() + (elapsed * 100 * aura.speed * aura.size); |
self.maxScale.h = frame:GetHeight() + (elapsed * 100 * aura.speed * aura.size); |
if ( (self.maxScale.w * 1.5) > frame:GetWidth()) then --- evite les lags |
frame:SetWidth(self.maxScale.w) |
frame:SetHeight(self.maxScale.h) |
end |
else |
self.maxScale.w = (random(0,20) - 10) * aura.speed; |
self.maxScale.h = (random(0,20) - 10) * aura.speed; |
frame:SetAlpha(aura.alpha); |
frame:SetWidth(self.curScale.w * 0.85); |
frame:SetHeight(self.curScale.h * 0.85); |
frame:SetPoint("Center",aura.x + self.maxScale.w, aura.y + self.maxScale.h); |
end |
--- static sauf parfois ou la texture est decalee + opaque (type electrique) |
elseif (aura.anim1 == 7) then |
if (frame.statut < 2) then |
frame:SetAlpha(aura.alpha / 2); --- mi-alpha |
if (random( 210-(aura.speed*100) ) == 1) then |
frame.statut = 2; |
self.maxScale.w = random(0,10) - 5; |
self.maxScale.h = random(0,10) - 5; |
frame:SetPoint("Center",aura.x + self.maxScale.w, aura.y + self.maxScale.h); |
frame:SetAlpha(aura.alpha); |
end |
else |
frame:SetPoint("Center",aura.x, aura.y); |
frame.statut = 0; |
end |
--- zoom out + stop + fade |
elseif (aura.anim1 == 8) then |
self.minScale.w = self.curScale.w; |
self.minScale.h = self.curScale.h; |
self.maxScale.w = self.curScale.w * 1.30; |
self.maxScale.h = self.curScale.h * 1.30; |
local speedScale = (50 * aura.speed) * aura.size; |
if (frame.statut == 0) then --- demarre le zoom out (max size) |
frame:SetWidth(self.maxScale.w); |
frame:SetHeight(self.maxScale.h); |
frame:SetAlpha(0.0); |
frame.statut = 2; |
elseif (frame.statut == 2) then --- zoom out + fade in |
frame:SetWidth( frame:GetWidth() - (elapsed * speedScale * aura.torsion) ) |
frame:SetHeight( frame:GetHeight() - (elapsed * speedScale * (2-aura.torsion) ) ) |
frame:SetAlpha( ((self.maxScale.w - frame:GetWidth()) / (self.maxScale.w - self.minScale.w)) * aura.alpha ); |
if (frame:GetWidth() < self.curScale.w) then |
frame:SetWidth(self.curScale.w); |
frame:SetHeight(self.curScale.h); |
frame.statut = 1; |
end |
elseif (frame.statut == 1) then --- demarre le fade-out |
frame:SetWidth(self.curScale.w); |
frame:SetHeight(self.curScale.h); |
frame:SetAlpha(aura.alpha); |
frame.statut = 3; |
elseif (frame.statut == 3) then --- fade-out |
self.curScale.a = frame:GetAlpha() - (elapsed / random(1,2)); |
if (self.curScale.a < 0.0) then |
frame:SetAlpha(0.0); |
frame.statut = 0; |
else |
frame:SetAlpha(self.curScale.a); |
end |
end |
--- deplacement vers le haut + fade-out + reduction |
elseif (aura.anim1 == 9) then |
local speedScale = (50 * aura.speed) * aura.size; |
if (frame.statut < 2) then --- debut |
frame:SetWidth(self.curScale.w); |
frame:SetHeight(self.curScale.h); |
frame:SetPoint("Center",aura.x, aura.y); |
frame:SetAlpha(aura.alpha); |
frame.statut = 2; |
else |
_,_,_,xOfs,yOfs = frame:GetPoint(); |
frame:SetPoint("Center",xOfs + (random(1,3)-2), yOfs + (elapsed * random(10,20))); |
self.curScale.a = frame:GetAlpha() - ( (elapsed / random(2,4)) * aura.alpha); |
frame:SetWidth( frame:GetWidth() - (elapsed * speedScale * aura.torsion) ) |
frame:SetHeight( frame:GetHeight() - (elapsed * speedScale * (2-aura.torsion) ) ) |
if (self.curScale.a < 0.0) then |
frame:SetAlpha(0.0); |
frame.statut = 1; |
else |
frame:SetAlpha(self.curScale.a); |
end |
end |
--- rotation autour du centre |
elseif (aura.anim1 == 10) then |
self.maxScale.w = math.max(aura.x, -aura.x, 5) * 1.0; |
self.maxScale.h = self.maxScale.w * (1.6 - aura.torsion); |
local speedScale = elapsed * 75 * aura.speed; |
if (aura.isSecondary and (self.Frames[aura.id].anim1 == 10)) then |
if (aura.symetrie < 2) then |
frame.statut = self.Frames[aura.id].statut + 180; |
if (frame.statut > 360) then frame.statut = frame.statut - 360; end |
else |
frame.statut = 180-self.Frames[aura.id].statut; |
if (frame.statut < 0) then frame.statut = frame.statut + 360; end |
end |
elseif (aura.symetrie == 1 or aura.symetrie == 3) then |
frame.statut = frame.statut - speedScale; |
if (frame.statut < 0) then frame.statut = 360; end |
else |
frame.statut = frame.statut + speedScale; |
if (frame.statut > 360) then frame.statut = 0; end |
end |
--- annule la torsion |
frame:SetWidth(self.curScale.w / aura.torsion); |
frame:SetHeight(self.curScale.h / (2-aura.torsion)); |
--- annule la symetrie |
if not aura.textaura == true then |
local texture = aura:GetTexture(); |
if (texture) then |
texture:SetTexCoord(0, 1, 0, 1); |
end |
end |
--- transparence |
if (frame.statut < 180) then --- zone de transparence |
if (frame.statut < 90) then |
frame:SetAlpha( (1-(frame.statut / 90)) * aura.alpha ); |
else |
frame:SetAlpha( ((frame.statut-90) / 90) * aura.alpha ); |
end |
else |
frame:SetAlpha(aura.alpha); |
end |
frame:SetPoint("Center",self.maxScale.w * cos(frame.statut), (self.maxScale.h * sin(frame.statut)) + aura.y); |
end |
end |
function PowaAuras:UpdateAura(aura, elapsed) |
--self:Message("UpdateAura ", aura, " ", elapsed); |
if (aura == nil) then |
self:UnitTestInfo("UpdateAura: Don't show, aura missing"); |
return; |
end |
if (aura.off or not aura.Showing) then |
self:UnitTestInfo("UpdateAura: Don't show, ", aura.off, aura.Showing); |
return; |
end |
local frame = aura:GetFrame(); |
if (frame == nil) then |
self:UnitTestInfo("UpdateAura: Don't show, frame missing"); |
return; |
end |
--self:Message("UpdateAura ", aura, " ", elapsed); |
if (aura.HideRequest) then |
--self:Message("Hide Requested for ",aura.id); |
aura.HideRequest = false; |
aura.animation = self:AnimationEndFactory(aura.finish, aura, frame); |
if (not aura.animation) then |
aura:Hide(); |
return; |
end |
end |
if (not aura.isSecondary) then |
if (self.ModTest == false) then |
if (aura.duration > 0) then |
aura.TimeShown = aura.TimeShown + elapsed; |
if (aura.TimeShown > aura.duration) then --- If duration has expired then hide this aura |
self:UnitTestInfo("UpdateAura: Hide, duration expired"); |
aura.HideRequest = true; |
return; |
end |
end |
end |
aura.Timer:Update(elapsed); |
end |
if (aura.animation) then |
local finished = aura.animation:Update(elapsed); |
if (finished) then |
if (aura.animation.IsBegin) then |
aura.animation = self:AnimationMainFactory(aura.anim1, aura, frame); |
local secondaryAura = self.SecondaryAuras[aura.id]; |
if (secondaryAura) then |
local secondaryAuraFrame = self.SecondaryFrames[aura.id]; |
if (secondaryAuraFrame) then |
secondaryAura.animation = self:AnimationMainFactory(aura.anim2, secondaryAura, secondaryAuraFrame); |
end |
end |
elseif (aura.animation.IsEnd) then |
aura:Hide(); |
end |
end |
return; |
else |
self:AnimateAura(aura, elapsed); |
end |
end |
function PowaAuras:OnUpdate(elapsed) |
--- lance les checks de la cible |
self:UnitTestInfo("OnUpdate", elapsed); |
if (self.Initialising) then return; end --- Addon Disabled |
if (self.ModTest == false) then |
--self:Message("OnUpdate ",elapsed, " ", self.ChecksTimer); |
self.ChecksTimer = self.ChecksTimer + elapsed; |
self:UnitTestInfo("ChecksTimer", self.ChecksTimer, self.NextCheck); |
if (self.ChecksTimer > self.NextCheck) then |
self.ChecksTimer = 0; |
if (self.ModTest == false) then |
local isMountedNow = (IsMounted()~=nil); |
if (isMountedNow ~= self.WeAreMounted) then |
self.DoCheck.All = true; |
self.WeAreMounted = isMountedNow; |
end |
self.DoCheck.Enchants = true; |
end |
end |
self.DebugTimer = self.DebugTimer + elapsed; |
--- Usable pending Checks |
if self.UsablePending then |
self:UnitTestInfo("UsablePending"); |
for slot, cd in pairs(self.UsablePending) do |
if cd then |
if GetTime() > cd then |
self.DoCheck.Actions = true; |
self.DoCheck.Stance = true; |
self.WeAreMounted = (IsMounted()~=nil); |
self.WeAreInVehicle = (UnitInVehicle("player")~=nil); |
self.UsablePending[slot] = nil; |
end |
end |
end |
end |
--- lance les checks normaux |
self:UnitTestInfo("DoCheck update"); |
for k ,v in pairs(self.DoCheck) do |
self:Debug("DoCheck "..k.." = " .. tostring(v) ); |
if (v) then |
self:NewCheckBuffs(); |
break; |
end |
end |
end |
-- Check each aura |
self:UnitTestInfo("Aura checks"); |
for _, aura in pairs(self.Auras) do |
self:UpdateAura(aura, elapsed); |
end |
for _, aura in pairs(self.SecondaryAuras) do |
self:UpdateAura(aura, elapsed); |
end |
self.ResetTargetTimers = false; |
end |
function PowaAuras:ExtractImportValue(valueType, value) |
if valueType == "st" then |
return value; |
elseif valueType == "bo" then |
if value == "false" then |
return false; |
elseif value == "true" then |
return true; |
end |
elseif valueType == "nu" then |
return tonumber(value); |
end |
return nil; |
end |
function PowaAuras:ImportAura(aurastring, auraId) |
--self:Message("Import ", auraId); |
--self:Message(aurastring); |
local aura = cPowaAura(auraId); |
local aurastring = string.gsub(aurastring,";%s*",";"); |
local temptbl = {strsplit(";", aurastring)}; |
local importAuraSettings = {}; |
local importTimerSettings = {}; |
for i, val in ipairs(temptbl) do |
--self:Message(i, " ", val); |
local key, var = strsplit(":", val); |
local varpref = string.sub(var,1,2); |
var = string.sub(var,3); |
if (string.sub(key,1,6) == "timer.") then |
importTimerSettings[key] = self:ExtractImportValue(varpref, var) |
else |
importAuraSettings[key] = self:ExtractImportValue(varpref, var) |
end |
end |
for k, v in pairs(aura) do |
local varType = type(v); |
--self:Message(k, " ", v, " ", varType, " ", importAuraSettings[k]); |
if (varType == "string" or varType == "boolean" or varType == "number" and k~="id") then |
aura[k] = importAuraSettings[k]; |
end |
end |
if (aura.bufftype==self.BuffTypes.Combo) then --backwards compatability |
if (string.len(aura.buffname)>1 and string.find(aura.buffname, "/", 1, true)==nil) then |
local newBuffName=string.sub(aura.buffname, 1, 1); |
for i=2, string.len(aura.buffname) do |
newBuffName = newBuffName.."/"..string.sub(aura.buffname, i, i); |
end |
aura.buffname = newBuffName |
end |
end |
if (importAuraSettings.timer) then --backwards compatability |
aura.Timer = cPowaTimer(aura.id); |
end |
if (#importTimerSettings>0) then |
--self:CreateTimerFrameIfMissing(aura.id) |
if (aura.Timer==nil) then |
aura.Timer = cPowaTimer(aura.id); |
end |
for k in pairs(aura.Timer) do |
aura.Timer[k] = importTimerSettings["timer."..k]; |
end |
end |
--self:Message("new Aura created from import"); |
--aura:Display(); |
return self:AuraFactory(aura.bufftype, auraId, aura); |
end |
function PowaAuras:CreateNewAuraFromImport(auraId, importString) |
if importString==nil or importString == "" then |
return; |
end |
self.Auras[auraId] = self:ImportAura(importString, auraId); |
if (auraId > 120) then |
PowaGlobalSet[auraId] = self.Auras[auraId]; |
end |
end |
function PowaAuras:SetupStaticPopups() |
StaticPopupDialogs["POWERAURAS_IMPORT_AURA"] = { |
text = self.Text.aideImport, |
button1 = ACCEPT, |
button2 = CANCEL, |
hasEditBox = 1, |
maxLetters = 2000, |
hasWideEditBox = 1, |
OnAccept = function(self) |
PowaAuras:CreateNewAuraFromImport(PowaAuras.ImportAuraId, self.wideEditBox:GetText()); |
self:Hide(); |
end, |
OnShow = function(self) |
self.wideEditBox:SetFocus(); |
end, |
OnHide = function(self) |
if ( ChatFrameEditBox:IsShown() ) then |
ChatFrameEditBox:SetFocus(); |
end |
self.wideEditBox:SetText(""); |
PowaAuras:DisplayAura(PowaAuras.CurrentAuraId); |
PowaAuras:UpdateMainOption(); |
end, |
EditBoxOnEnterPressed = function(self) |
local parent = self:GetParent(); |
PowaAuras:CreateNewAuraFromImport(PowaAuras.ImportAuraId, parent.wideEditBox:GetText()); |
parent:Hide(); |
end, |
EditBoxOnEscapePressed = function(self) |
self:GetParent():Hide(); |
end, |
timeout = 0, |
exclusive = 1, |
whileDead = 1, |
hideOnEscape = 1 |
}; |
StaticPopupDialogs["POWERAURAS_EXPORT_AURA"] = { |
text = self.Text.aideExport, |
button1 = OKAY, |
button2 = EXIT, |
hasEditBox = 1, |
maxLetters = 2000, |
hasWideEditBox = 1, |
OnShow = function(self) |
self.wideEditBox:SetText(PowaAuras.Auras[PowaAuras.CurrentAuraId]:CreateAuraString()); |
self.wideEditBox:SetFocus(); |
self.wideEditBox:HighlightText(); |
end, |
OnHide = function(self) |
if ( ChatFrameEditBox:IsShown() ) then |
ChatFrameEditBox:SetFocus(); |
end |
self.wideEditBox:SetText(""); |
end, |
EditBoxOnEnterPressed = function(self) |
self:GetParent():Hide(); |
end, |
EditBoxOnEscapePressed = function(self) |
self:GetParent():Hide(); |
end, |
timeout = 0, |
exclusive = 1, |
whileDead = 1, |
hideOnEscape = 1 |
}; |
end |
--- ------------------------------------------------------------------------------------ GESTION DES OPTIONS |
function PowaAuras:RedisplayAura() ---Re-show aura after options changed |
if (self.Initialising) then return; end |
local aura = self.Auras[self.CurrentAuraId]; |
if (not aura or not aura.Showing) then |
return; |
end |
aura:Hide(); |
aura:CreateFrames(); |
self.SecondaryAuras[aura.id] = nil; -- Force recreate |
self:DisplayAura(aura.id); |
end |
function PowaAuras:OptionTest() --- teste ou masque l'effet choisi |
--self:Message("OptionTest for ", self.CurrentAuraId); |
local aura = self.Auras[self.CurrentAuraId]; |
if (not aura or aura.buffname == "" or aura.buffname == " ") then |
return; |
end |
if (aura.Showing) then |
aura.HideRequest = true; |
else |
aura:CreateFrames(); |
self.SecondaryAuras[aura.id] = nil; -- Force recreate |
self:DisplayAura(aura.id); |
end |
end |
function PowaAuras:HideTimerFrame(auraId, i) |
if (self.TimerFrame[auraId] and self.TimerFrame[auraId][i]) then |
--self:Message("Hide Timer Frame 1 for ", auraId); |
self.TimerFrame[auraId][i]:Hide(); |
end |
end |
function PowaAuras:HideTimerFrames(auraId) |
if self.TimerFrame[auraId] then |
self:HideTimerFrame(auraId, 1); |
self:HideTimerFrame(auraId, 2); |
end |
end |
function PowaAuras:DeleteTimerFrames(auraId) |
self:HideTimerFrames(auraId); |
if self.TimerFrame[auraId] then |
self.TimerFrame[auraId][1] = nil; |
self.TimerFrame[auraId][2] = nil; |
self.TimerFrame[auraId] = nil; |
end |
end |
function PowaAuras:OptionHideAll(now) --- cache tous les effets |
--- force Hide on mod shutdown |
for _, aura in pairs(self.Auras) do |
if now then |
aura:Hide(); |
self:HideTimerFrames(aura.id); |
else |
aura.HideRequest = true; |
end |
end |
end |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
<html> |
<head> |
<meta http-equiv="content-type" content="text/html; charset=windows-1250"> |
<meta name="generator" content="PSPad editor, www.pspad.com"> |
<title>Deutsche Anleitung</title> |
</head> |
<body> |
Anleitung:<br> |
<br> |
Screens sind alle auf Englisch, aber sonst ist alles am gleichem Fleck nur auf deutsch.<br> |
<br> |
Also fangen wir an:<br> |
<br> |
Man hat das AddOn im seinen AddOn Ordner kopiert<br> |
WoWInstallationsVerzeichniss/Interface/AddOns/PowerAuras<br> |
<br> |
Im Spiel kann man dann "/powa" eingeben um das Optionsfenster zu öffnen.<br> |
<br> |
<table border=1> |
<tr> |
<td> |
<img src="Manual_Pics/Config1.jpg" /> |
</td> |
<td> |
1 = Das AddOn an oder ausschalten.<br> |
<br> |
2 = Auras nur für diesen Charakter.<br> |
<br> |
3 = Auras für alle Charaktere.<br> |
<br> |
4 = Auras auf dieser Seite.<br> |
<br> |
5 = Erstellt eine neue Aura.<br> |
<br> |
6 = Verschiebt eine Aura zu einer Seite nach Wahl.<br> |
<br> |
7 = Kopiert eine Aura zu einer Seite nach Wahl. Kann auch die gleiche Seite sein.<br> |
<br> |
8 = Löscht die ausgewählte Aura. Geht nur mit gedrückter STRG-Taste, um unabsichtliches löschen zu vermeiden.<br> |
<br> |
9 = Öffnet den Effekt-Editor für die ausgewählte Aura. |
</td> |
</tr> |
<tr> |
<td colspan="2"> |
Man erstellt sich also erstmal mit "Neu" eine neue Aura.<br> |
Der Effekt Editor öffnet sich und man sieht eine Grafik im Interface. |
</td> |
</tr> |
<tr> |
<td> |
<img src="Manual_Pics/Editor1.jpg"/> |
</td> |
<td> |
1 = Die Ansicht der Grafik, ohne Animation. Einfach die Bilddatei.<br> |
<br> |
2 = Farbeinstellungen<br> |
<br> |
3 = Die Grafikauswahl. Bei Glow werden Bereiche transparent die zu dunklere Töne hingehen. Will man eine schwarze Farbe benutzen muss man es deaktivieren. <br> |
Bei WoW Textures kann man ausgewählte Grafiken vom Spiel benutzen. <br> |
Bei Custom Textures kann man eigene Grafiken im Ordner /AddOns/PowerAuras/Custom/ auswählen. Man muss dann den Dateinamen reinschreiben in das Textfeld was erscheint.<br> |
<br> |
4 = Die Anzeigeeinstellungen der Grafik. Bissl rumspielen, dann weiss man was was macht. :)<br> |
<br> |
5 = Positionseinstellung der Grafik/Aura. Wenn man ganz nach links oder rechts geregelt hat, geht der Regler wieder in die Mitte und man kann nochmals nachregeln. <br> |
Genau Positionangeben kann man rechts eingeben.<br> |
<br> |
6 = Das AuswahlMenu für das Event welches man überwachen will. Später mehr dazu.<br> |
<br> |
7 = Das Icon des Buff/Debuff/Fähigkkeit, welches gespeichert wird beim ersten auftreten des Events<br> |
<br> |
8 = Der Name des Buff/Debuff/Fähigkeit. Nur ein Teil vom Namen oder mehrere Namen gehen auch. Siehe Bild<br> |
<br> |
9 = Das "Objekt" welches man überwachen möchte. Wenn keins ausgewählt ist man selber das Objekt. Focus geht nur, wenn ihr ein Ziel gefokust habt.<br> |
<br> |
10 = Anzeigeoptionen wann die Grafik angezeigt werden soll. ALso zB. das die Grafik da ist, wenn gerade das Event nicht da ist. |
</td> |
</tr> |
<tr> |
<td colspan="2"> |
Also man hat eine neue Aura erstellt und hat sich eine Grafik ausgesucht, Farbe, Anzeige und Position.<br> |
Dann wählt man unten aus bei "6", was man eigentlich überwacht haben will. <br> |
Also nehmen wir mal an ich will wissen wann ich ein "Erneuern" auf mir hab. Damit ich sofort weiss, gleich kommt "Stille" und du hast kein HoT.ˆˆ <br> |
Also wähle ich aus "Buff" und schreibe in das Textfeld unten dran: "Erneuern" oder "Renew" kA wie der HoT auf Deutsch heisst genau. :)<br> |
Dann hake ich unten nix ab, weil ich ja meinen Char überwachen will. <br> |
Ganz unten könnt ich noch sagen, das es nur wichtig ist wenn ich im Kampf bin. Also Haken dran bei "Nur im Kampf".<br> |
<br> |
Das war es schon. Aber halt! Wo sind die phaten An1m4t1onen?ˆˆ<br> |
<br> |
Man klickt den Reiter "Animationen" an. Darauf wäre jetzt niemand gekommen, oda?<br> |
</td> |
<tr> |
<td> |
<img src="Manual_Pics/Editor3.jpg" /> |
</td> |
<td> |
So jetzt schnell zum Ende...<br> |
<br> |
1 = Einblendanimation<br> |
<br> |
2 = Ausblendanimation<br> |
<br> |
3 = Hauptanimation<br> |
<br> |
4 = 2t Animation, stapelt sich einfach über die Hauptanimation.<br> |
<br> |
5 = Animationsgeschwindigkeit (Stroboskop bittesehr)<br> |
<br> |
6 = Animationsdauer. Bei "Keine" ist die Animation und die Grafik solange da wie das Event.<br> |
</td> |
</tr> |
<tr> |
<td colspan="2"> |
So und jetzt HF. |
</td> |
</tr> |
</table> |
</body> |
</html> |
## Interface: 30200 |
## Title: Power Auras Classic |cff7f7fffv.2.6.2Q|r |
## Author: Smacker 'lolcat',Driizt 'classic',Garstiger 'continued',Sinsthar 'base' |
## Version: 2.6.2Q |
## Notes: Cool Effects around the player for ingame events. Authors: |cff7f7fff-Sinsthar-, -Garstiger-, -Driizt-, and -Smacker-|r |
## Notes-frFR: Affiche des effets visuels autour du personnage. |
## Notes-zhCN: å¤åè½æ¡ä»¶è§¦åå¼è¶ é ·ç¹æé³æ |
## DefaultState: Enabled |
## LoadOnDemand: 0 |
## SavedVariables: PowaGlobalSet,PowaGlobalListe |
## SavedVariablesPerCharacter: PowaSet,PowaMisc,PowaTimer,PowaPlayerListe,PowaState |
PowerAurasBase.lua |
localisation.lua |
localisation_frFR.lua |
localisation_deDE.lua |
localisation_ruRU.lua |
localisation_zhCN.lua |
localisation_zhTW.lua |
PowerAurasDump.lua |
PowerAurasClasses.lua |
PowerAurasAnimations.lua |
PowerAuras.lua |
PowerOptions.lua |
PowerAuras.xml |
PowerOptions.xml |