Download
(105Kb)
Download
Updated: 12-06-10 04:15 PM
Pictures
File Info
Updated:12-06-10 04:15 PM
Created:unknown
Downloads:24,393
Favorites:123
MD5:

eXtreme Unit Buttons  Popular! (More than 5000 hits)

Version: v2.0
by: tayedaen [More]

This highly configurable mod allows players to associate buttons to unit frames. It is meant as a replacement to GroupButtons which stopped functioning with the 2.0 patch in December 2006. The mod extends the capabilities of GroupButtons by providing these additional features:

  1. an unlimited number of buttons per unit frame
  2. Buttons which turn on/off depending on the amount of damage a unit has
  3. Buttons which are dimmed if a unit as that buff or a related buff applied.
  4. Buttons which appear when a debuff is applied to a unit.
  5. Buttons which allow you to have any type of "/" slash or macro command on a button
  6. A variety of a modes for different activities in the game. For example, a set of buttons
  7. for soloing, buttons for instances, buttons for raids, buttons for specific bosses (such as Baron Geddon in MC (to all priests to debuff), buttons for PvP, etc.
  8. Assign buttons to unit frames that when clicked cast spells on different units. This feature allows, for example, buffs and heals for the player unit to appear within the target buttons to minimize the amount of mouse movement between buttons.
  9. Works for any kind of non-casting classes; specifically warriors and rogues.

Version 2.0 (Dec 06, 2010) (by tayedaen)

I know that the documentation is a complete mess at the moment, I am already working on it.
But I wanted to have a released version for cataclysm start.

Before upgrading, please read the included 'readme.txt'.

You will loose your config, so read carefully !

Hightlights of the changes since the last official release:

Code:
New: Support for default profiles for spec1 and spec 2
New: Wizards for Group and Profile generation
 Please use them !
New: LDB button (and menu)
New: Default Buttons now always use the Prefix 'SB_'
 This is an abbreviation for StandardButton.
 I recommend to use 'CB_' as prefix for custom buttons.
New: '$' self condition for cast buttons (buff, debuff etc.)
 Example: CB_Renew,buff,Renew,$Renew
 This custom buutton will only chnge to the state BUFFED if the destination unit is buffed with your OWN Renew.
New: '!' inverts conditions for cast buttons (buff, debuff etc.)
New: new debuff condition "Death"
 A button with this condition is only shown if the destination unit is dead.
New: new debuff condition "Purge"
 A button with this condition is only shown if the destination unit has at least one buff to purge.
New: two keywords for exclude-units:
  'hostile'   and    'friendly'
  Example: MyGroupName,SB_Renew,*,hostile
  This button will be hidden on hostile units (= it will only be shown on friendly units)
New: Spell ranks have been removed (multiranking too)
New: Macro buttons support now '[target=unit#]'
 Here unit# will be rpalced at runtime with the unit the button is attached to.
 Example: /target [target=unit#]
Improved: Verification of buttons while configuring the addon

And last but not least: 
!!! Improved: Internals are mostly rewritten from scratch for better performance  !!!

Please refer to 'z_historic_Changelog.txt' for older changes.
Known problems:
XPerl's partypets get no buttons

Known blizzard bugs:
------------------------
'isUsableSpell' is broken, there is nothing I can do to change that.
That means: Some spells are reported 'not usable' if you target a hostile target or NPC (like 'PowerWord: Shield' for example).

Enjoy - Tayedaen

Hightlights of the changes since the last official release:
===========================================================
New: Support for default profiles for spec1 and spec 2
New: Wizards for Group and Profile generation
Please use them !
New: LDB button (and menu)
New: Default Buttons now always use the Prefix 'SB_'
This is an abbreviation for StandardButton.
I recommend to use 'CB_' as prefix for custom buttons.
New: '$' self condition for cast buttons (buff, debuff etc.)
Example: CB_Renew,buff,Renew,$Renew
This custom buutton will only chnge to the state BUFFED if the destination unit is buffed with your OWN Renew.
New: '!' inverts conditions for cast buttons (buff, debuff etc.)
New: new debuff condition "Death"
A button with this condition is only shown if the destination unit is dead.
New: new debuff condition "Purge"
A button with this condition is only shown if the destination unit has at least one buff to purge.
New: two keywords for exclude-units:
'hostile' and 'friendly'
Example: MyGroupName,SB_Renew,*,hostile
This button will be hidden on hostile units (= it will only be shown on friendly units)
New: Spell ranks have been removed (multiranking too)
New: Macro buttons support now '[target=unit#]'
Here unit# will be rpalced at runtime with the unit the button is attached to.
Example: /target [target=unit#]
Improved: Verification of buttons while configuring the addon

And last but not least:
!!! Improved: Internals are mostly rewritten from scratch for better performance !!!

Please refer to 'z_historic_Changelog.txt' for older changes.

Known problems:
XPerl's partypets get no buttons
Optional Files (2)
File Name
Version
Size
Author
Date
Type
2.1beta4
104kB
09-15-12 11:51 AM
Addon
upload1 RC2
105kB
12-01-10 11:42 AM
Addon


Post A Reply Comment Options
Unread 03-14-07, 08:49 PM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Originally posted by Taroven
Fridmarr:

I don't use XUB myself (I'm a stubborn keyboarder), so I can't test, but this might work:

#show Righteous Defense
/cast [target=target,help] Righteous Defense; [target=targettarget,help] Righteous Defense

That #show forces the game to display cooldown info about that spell instead of what it *thinks* it should show. It's helped with some of my other macros, it may help in this case.
XUB doesn't allow separate lines in the macro, but I will investigate the #show option.
Report comment to moderator  
Reply With Quote
Unread 03-14-07, 08:46 PM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Re: Displaying Macro Cooldown

Originally posted by Fridmarr
I have a custom macro button tied to my target frame for calling Righteous Defense, which has a 15 second cooldown.

I've defined the macro as...
/cast [target=target,help] Righteous Defense; [target=targettarget,help] Righteous Defense

Basically it casts on the current target if it's friendly or my target's target if it's hostile.

When I use it from xub macro button, the button does not show the cooldown, but if I make a regular macro and add it to a standard toolbar, then it does. Is there anyway to have my xub button also show the cooldown?
The macro system is pretty dumb. It simply issues the command without any kind of analysis of what the macro is. I think the action button system does some analysis as to what the macro is and can make more intelligent display decisions.

I'm not prepared to write this kind of logic, however, I have been thinking about a new set of changes that MAY make the need to write macros like this one obsolete. It's still pretty preliminary and is at least 2-3 versions away.
Report comment to moderator  
Reply With Quote
Unread 03-14-07, 08:20 PM  
Taroven
A Cyclonian
AddOn Author - Click to view AddOns

Forum posts: 49
File comments: 837
Uploads: 11
Fridmarr:

I don't use XUB myself (I'm a stubborn keyboarder), so I can't test, but this might work:

#show Righteous Defense
/cast [target=target,help] Righteous Defense; [target=targettarget,help] Righteous Defense

That #show forces the game to display cooldown info about that spell instead of what it *thinks* it should show. It's helped with some of my other macros, it may help in this case.
Report comment to moderator  
Reply With Quote
Unread 03-14-07, 05:17 PM  
Fridmarr
A Kobold Labourer

Forum posts: 1
File comments: 3
Uploads: 0
Displaying Macro Cooldown

I have a custom macro button tied to my target frame for calling Righteous Defense, which has a 15 second cooldown.

I've defined the macro as...
/cast [target=target,help] Righteous Defense; [target=targettarget,help] Righteous Defense

Basically it casts on the current target if it's friendly or my target's target if it's hostile.

When I use it from xub macro button, the button does not show the cooldown, but if I make a regular macro and add it to a standard toolbar, then it does. Is there anyway to have my xub button also show the cooldown?
Last edited by Fridmarr : 03-14-07 at 05:24 PM.
Report comment to moderator  
Reply With Quote
Unread 03-14-07, 11:04 AM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Re: Re: Re: Re: Re: Saved Variables location

Originally posted by fredddredd
I'd be fascinated to know how many people actually use completely different mods in that manner. Of the mods I've looked at, you seem to be the only person supporting that, but then again I don't claim expertise, and if that's what you're aiming for, fine. As for having things in text, though, the difference between one approach and the other is simply having WoW save/load your variables in/from one .lua file per character or in/from one .lua file for the mod as a whole. Being able to cut and paste text within a single file is very little different to doing so between files, and arguably far easier to manage if you need to copy sections rather than the whole thing, so no issue there.

Anyway - all of this has been just a personal reaction to the single aspect of the mod to date that I really disliked. Feel free to ignore it or not as you please, naturally. I suspect that if you'd included a load/don't load option by toon as well (as, say, Auctioneer does), I'd not even have noticed until the game corrupted my saved files (as it has on at least three occasions in the past) and I found that I didn't have a backup. For me, the idea of having to manage individual configuration files, in different locations, for every one of my 20+ toons is, in all honesty, off-putting, and a significant inhibitor to using it extensively, even if in reality I can handle the backup issue by copying the whole of my WTF directory now that I understand the issue - but maybe I'm unusual in that respect.
I've run into this before, but not with WOW. Some user says, "We'd never do that" and within six months they'd come up with a reason why in some cases they'd do that. So I have learned to create code that is not constraining. There are no "special case" conditionals in the code that test to see if this is a particular character type or not. I didn't want to add constraints about the settings for OPTIONS either. While it's true that most gamers have the same configuration across all their toons, I'm the exception and don't. Why should I create something that constrains myself? Anyway, the approach allows all gamers to use the mod and handle the special situations too.

What if I implemented a SAVE configuration option that made a copy of the variables and placed them globally? Then a corresponding LOAD option to pull them from the global area into whatever character. It doesn't mess up other existing gamers and gives you a centralized location for all your toons configuration.

I'm considering this as part of a solution to a different problem, which is helping the first time user configure the mod. If I included a default global LUA file (which was installed), then a "/xub load default_priest" would effectively initialize their environment with a typical "priest" configuration. For yourself, you could, on one toon, say "/xub save ..." then on another server with another toon type "/xub load ...".

Comments?
Report comment to moderator  
Reply With Quote
Unread 03-14-07, 09:21 AM  
fredddredd
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 34
Uploads: 2
Profiles/Floating frame observation

The (unsupported) floating frame has potential; with more such frames, the ability to control their opacity and to lock their locations, you'd have the function to add arbitrary groups of buttons pretty much without limit and wherever needed. One observation: whether or not it's been triggered by my using it on one character or not I don't know, but right now the frame box displays for any character without a profile.

You also don't currently support, as far as I can see, the idea of an "empty" profile - i.e. I can't tell the mod that it has nothing to load, so it throws an error on startup every time if nothing exists.
Last edited by fredddredd : 03-14-07 at 09:28 AM.
Report comment to moderator  
Reply With Quote
Unread 03-14-07, 08:54 AM  
fredddredd
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 34
Uploads: 2
Re: Re: Re: Re: Saved Variables location

Originally posted by Elenesski
The key reason to store ALL the variables on the character was to eliminate the issue of one toon having a completely different configuration (unit frames et al) from another toon; such as a partner/sibling playing on your account.

Also, because the specification is all text, you can copy-and-paste it from one character to another by placing it in a separate text file. Issues with sharing between characters, albeit with text, is working now and requires no additional work.
I'd be fascinated to know how many people actually use completely different mods in that manner. Of the mods I've looked at, you seem to be the only person supporting that, but then again I don't claim expertise, and if that's what you're aiming for, fine. As for having things in text, though, the difference between one approach and the other is simply having WoW save/load your variables in/from one .lua file per character or in/from one .lua file for the mod as a whole. Being able to cut and paste text within a single file is very little different to doing so between files, and arguably far easier to manage if you need to copy sections rather than the whole thing, so no issue there.

Anyway - all of this has been just a personal reaction to the single aspect of the mod to date that I really disliked. Feel free to ignore it or not as you please, naturally. I suspect that if you'd included a load/don't load option by toon as well (as, say, Auctioneer does), I'd not even have noticed until the game corrupted my saved files (as it has on at least three occasions in the past) and I found that I didn't have a backup. For me, the idea of having to manage individual configuration files, in different locations, for every one of my 20+ toons is, in all honesty, off-putting, and a significant inhibitor to using it extensively, even if in reality I can handle the backup issue by copying the whole of my WTF directory now that I understand the issue - but maybe I'm unusual in that respect.
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 06:47 PM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Re: Re: Re: Saved Variables location

Originally posted by fredddredd
In all honesty, having thought about it, it may well be something you're not going to do. Anyway (and let me add up front that I'm not an LUA programmer; whilst I've tweaked mods, I've never written one myself, so I'll readily confess that I'm guessing a little based upon the code of some of the ones I use).

The difference of approach is to code for multiple characters rather than a single one. As far as I can see, your .toc file uses SavedVariablesPerCharacter, whereas many mods simply use SavedVariables, which I guess is what puts it into the common x:\World of Warcraft\WTF\Account\<account name>\SavedVariables folder (so still under WTF, but in a single location rather than one location for each character, which makes the whole thing easy to back up - to give you an idea of the difference, I have roughly 20 toons spread over 4 or 5 realms, so backing each one up would be a nightmare, and is pretty much a non-starter; backing up a single directory, by contrast, is downright trivial).

To support multiple characters, the variables are extended to reflect the presence of multiple toons - either by toon alone (using a name constructed of the toon and realm names together) or by toon and realm.
The key reason to store ALL the variables on the character was to eliminate the issue of one toon having a completely different configuration (unit frames et al) from another toon; such as a partner/sibling playing on your account.

Also, because the specification is all text, you can copy-and-paste it from one character to another by placing it in a separate text file. Issues with sharing between characters, albeit with text, is working now and requires no additional work.

I investigated the ability to load specifications from files and it is very restrictive. If it was possible to read/write files I might add a utility, but right now it is too challenging.

That being said, I don't like the fact that I have to specify so many variables, so I am going to change it in the future. I may consider the name value pairs in a different way.
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 06:31 PM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Originally posted by Cosmic Cleric
FYI, after d/l and installing version 1.3c, the first time I did a 'Verify' I got this error...

Code:
Error: profile specification referred to an unknown unit 'player'.
Repeating the 'Verify' a second time, the error did not show. I didn't change my existing config settings from 1.3b before installing 1.3c and doing a 'Verify'.

EDIT: Additional Info. When my char first logs in, none of the buttons appear. If I try to do a "Verify" at this point, I get the error I mention above. If I wait ~10 seconds, the buttons appear, and then when I do a 'Verify' I don't get the error. However, on another char, I have some 'pet' entries, even though my char does not have a pet, and I get the same error in this case, except for 'pet' instead of 'player'.

It seems like if the bar is not visible, hitting the 'Verify' button will generate an error, but once the button is visible, the error goes away, for 'player' and 'pet' at least.
The buttons will eventually load .. there is a 30-second pause from the time the game engine starts before it shows up. I'm investigating different ideas to minimize this time and as such the problem you are reporting should resolve itself.
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 04:23 PM  
fredddredd
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 34
Uploads: 2
Re: Re: Saved Variables location

Originally posted by Elenesski
What did you have in mind?

I save all the variables according to character, I didn't think it was possible to save them elsewhere (other than not on the character). This is 3rd mod, and my first mod that required more than 100 lines of code. That means I'm very new to LUA and very new to WOW mods.

Any suggestions are greatly appreciated.
In all honesty, having thought about it, it may well be something you're not going to do. Anyway (and let me add up front that I'm not an LUA programmer; whilst I've tweaked mods, I've never written one myself, so I'll readily confess that I'm guessing a little based upon the code of some of the ones I use).

The difference of approach is to code for multiple characters rather than a single one. As far as I can see, your .toc file uses SavedVariablesPerCharacter, whereas many mods simply use SavedVariables, which I guess is what puts it into the common x:\World of Warcraft\WTF\Account\<account name>\SavedVariables folder (so still under WTF, but in a single location rather than one location for each character, which makes the whole thing easy to back up - to give you an idea of the difference, I have roughly 20 toons spread over 4 or 5 realms, so backing each one up would be a nightmare, and is pretty much a non-starter; backing up a single directory, by contrast, is downright trivial).

To support multiple characters, the variables are extended to reflect the presence of multiple toons - either by toon alone (using a name constructed of the toon and realm names together) or by toon and realm.

GroupButtons, for example, had a saved structure along the lines of
GB_Settings = {
["Toonname1::Realmname1"] = {
....
},
["Toonname2::Realmname2"] = {
...
},
}

By contrast, CharacterProfiler has
myProfile = {
["Realmname1"] = {
["Toonname1"] = {
...
},
["Toonname2"] = {
...
},
},
["Realmname2"] = {
["Toonname3"] = {
...
},
},
}

Clearly more scaffolding is needed to handle that extra structure, and equally clearly it's the sort of thing that's easiest to do if you design for it from the start, because going from a simpler structure to a more complex one has the potential to hit just about every line of code multiple times - with plenty of opportunities for bugs by consequence. Probably non-trivial and probably not for the faint-hearted unless you're lucky in the approach you've taken to date and the shape of your existing code, I guess. Ah, well.

(Edited for clarity)
Last edited by fredddredd : 03-13-07 at 04:38 PM.
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 03:55 PM  
silverhaze
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Hi,

With v1.3 my NaturesSwiftness button doesn't work on the target unit or raid unit. It is non-clickable. Only clickable on the player unit.
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 03:32 PM  
Cosmic Cleric
A Deviate Faerie Dragon
 
Cosmic Cleric's Avatar
AddOn Author - Click to view AddOns

Forum posts: 15
File comments: 283
Uploads: 7
FYI, after d/l and installing version 1.3c, the first time I did a 'Verify' I got this error...

Code:
Error: profile specification referred to an unknown unit 'player'.
Repeating the 'Verify' a second time, the error did not show. I didn't change my existing config settings from 1.3b before installing 1.3c and doing a 'Verify'.

EDIT: Additional Info. When my char first logs in, none of the buttons appear. If I try to do a "Verify" at this point, I get the error I mention above. If I wait ~10 seconds, the buttons appear, and then when I do a 'Verify' I don't get the error. However, on another char, I have some 'pet' entries, even though my char does not have a pet, and I get the same error in this case, except for 'pet' instead of 'player'.

It seems like if the bar is not visible, hitting the 'Verify' button will generate an error, but once the button is visible, the error goes away, for 'player' and 'pet' at least.
Last edited by Cosmic Cleric : 03-13-07 at 04:01 PM.
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 08:21 AM  
EvilDevil
A Kobold Labourer

Forum posts: 0
File comments: 9
Uploads: 0
Great Job Elenesski, Buttons working great for me

big thx
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 08:14 AM  
tayedaen
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 191
Uploads: 6
Hi !

First: I think this is really a GREAT addon.
I already recommended it to all my friends.

Now I have to make a suggestion and a bug report.

Suggestion:
Please show the Cooldown on a button the same way blizzard shows it (clockwise rotating fade).
It should be simple to do that by inheriting the Blizzard Cooldown, like for example Benecast does.
The main benefit is, that I can see if a button will be up soon or not - so I can react MUCH faster.

Bug report:
Sometimes the first button of the first group is blocked.
That means: no Tooltip when mouseover, not clickable.
I can solve this by using /XUB config, then use any of the apply buttons (either Apply in unitframe or Save& Apply etc.)
Happened to me on all versions since at least v 1.1, last version tested: 1.3b.
The way the buttons are set up:
Group:
MyHealing,HealingWave,*
MyHealing,LesserHealingWave,*

Profile:
normal,MyHealing,player,-100,0
normal,MyHealing,target,-280,-64

If I target myself while the first button is blocked, then the button on the target is working.

Wow+BC german, Perl Classic Unitframes
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 07:12 AM  
Khuas
A Kobold Labourer

Forum posts: 1
File comments: 9
Uploads: 0
AceGUI

Originally posted by Elenesski
Actually ACE GUI 2 is almost gold. I'll probably write the GUI in it now that I am more comfortable with LUA, and while LUA isn't OO, I do write C# all day long.
Hmmm... I was under the impression that AceGUI (is that what you mean? The toolkit for building GUIs?) hasn't been worked on for quite some time.

You might want to consider this: http://www.wowace.com/forums/index.php?topic=4812.0

(I have nothing to do with these, just perusing the forums)
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: