Download
(105Kb)
Download
Updated: 12-06-10 04:15 PM
Pictures
File Info
Updated:12-06-10 04:15 PM
Created:unknown
Downloads:24,203
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 11-06-10, 07:45 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
Re: Re: Re: status update

I sent you a PM, I'll be glad to 'kick the tires' and help out on the new version.

Originally posted by tayedaen
Unfortunately this means I will not transform old configurations.
Everbody who wants to keep his old config needs to copy the content of the three editboxes manually.
Its always best to back up this way anyways, using Ctrl-C and Ctrl-V to Copy/Paste XUB text to/from WoW/Notepad.

Originally posted by tayedaen
But I need to publish a working 2.0 version first.
And I would like to wait for 4.03 since that will break some things again.

cu
tay
Just curious, what things are changing in 4.03?
Report comment to moderator  
Reply With Quote
Unread 11-05-10, 07:21 PM  
tayedaen
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 191
Uploads: 6
Re: Re: status update

Originally posted by Cosmic Cleric
Any ETA on when a new version will be available for testing?
Hi !

I have a new version available for testing now.
But I will not post it to the public, because it's not tested enough.
Everybody willing to help in the testing please send my a PM (with your mail address).
I will send the addon to everybody who wants it. But I really think this is only for people who know what they do !!!

Be warned:
I rewrote much of the code. MUCH. really.

I deeply changed the structure of the buttons so that I can use global IDs as much as possible. Reason: That's the way blizzard is heading.
So I no longer rely on spell/item names when creating a button. I use the SpellID/ItemID.
I also save this ID in the save files.
Unfortunately this means I will not transform old configurations.
Everbody who wants to keep his old config needs to copy the content of the three editboxes manually.

On the other hand, this has a big advantage:
In the future, we can share config files across language barriers.
Think of presets Oh the possibilities

Additionally, starting the addon as a new user should be easier now:
No more manual copying of the groups.. You'll see...

And more yet to come
But I need to publish a working 2.0 version first.
And I would like to wait for 4.03 since that will break some things again.

cu
tay
Report comment to moderator  
Reply With Quote
Unread 11-02-10, 02:34 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
Question Re: Re: Bug report with v4.01a and 4.1a

I wonder why they changed the api like that?

Originally posted by fredddredd
It's not just Soulstone, it's "use" buttons in general. I get a similar error if I try, say,
Code:
_BandageUse,use,Heavy Frostweave Bandage,Recently Bandaged

I found a note in the API stuff on WoWwiki saying that GetItemCooldown won't work with itemName as of 4.01 (which is what the mod is passing); it has to have itemId. Getting the correct itemId seems non-trivial.

It could be deeper than just that statement; the button texture display for Soulstone seems particularly mucked up (sometimes I get the texture, sometimes not - it seems to be related in some way to whether or not I have a stone or the spell's on cooldown when I log in.).
Report comment to moderator  
Reply With Quote
Unread 11-02-10, 02:29 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
Question Re: status update

Thank you Tay for your efforts!

Any ETA on when a new version will be available for testing?

Also, fredddredd, if you're reading this, thank you as well for your efforts!

Originally posted by tayedaen
status update:

done:
- fredredds code is merged
- passive spells are filtered out (with IsPassive)
- GetItemcooldown is fixed
- other small problems are fixed

work in progress:
- eliminating every occurrence of rank, since spells have no longer ranks.
(This makes the code easier to maintain, and additionally the addon gets faster )

cu
tay
Last edited by Cosmic Cleric : 11-02-10 at 02:34 PM.
Report comment to moderator  
Reply With Quote
Unread 11-02-10, 10:28 AM  
tayedaen
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 191
Uploads: 6
status update

status update:

done:
- fredredds code is merged
- passive spells are filtered out (with IsPassive)
- GetItemcooldown is fixed
- other small problems are fixed

work in progress:
- eliminating every occurrence of rank, since spells have no longer ranks.
(This makes the code easier to maintain, and additionally the addon gets faster )

cu
tay
Report comment to moderator  
Reply With Quote
Unread 11-02-10, 07:12 AM  
fredddredd
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 34
Uploads: 2
Re: Bug report with v4.01a and 4.1a

Originally posted by Cosmic Cleric
So on my Warlock I have a custom button...

Code:
_SoulStoneUse,use,Soulstone,Soulstone Resurrection
self3pvp,_SoulStoneUse,player
pvp,player,self3pvp
And its generating this WoW error (that you only see if you turn on seeing LUA errors)...

Code:
Message:
Interface\AddOns\eXtremeUnitButtons\XUB_OnUpdate.lua:417:
Usage: GetItemCooldown(itemID)
.
.
.
It's not just Soulstone, it's "use" buttons in general. I get a similar error if I try, say,
Code:
_BandageUse,use,Heavy Frostweave Bandage,Recently Bandaged

I found a note in the API stuff on WoWwiki saying that GetItemCooldown won't work with itemName as of 4.01 (which is what the mod is passing); it has to have itemId. Getting the correct itemId seems non-trivial.

It could be deeper than just that statement; the button texture display for Soulstone seems particularly mucked up (sometimes I get the texture, sometimes not - it seems to be related in some way to whether or not I have a stone or the spell's on cooldown when I log in.).
Last edited by fredddredd : 11-02-10 at 07:13 AM.
Report comment to moderator  
Reply With Quote
Unread 11-01-10, 05:41 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
Exclamation Bug report with v4.01a and 4.1a

So on my Warlock I have a custom button...

Code:
_SoulStoneUse,use,Soulstone,Soulstone Resurrection
self3pvp,_SoulStoneUse,player
pvp,player,self3pvp
And its generating this WoW error (that you only see if you turn on seeing LUA errors)...

Code:
Message:
Interface\AddOns\eXtremeUnitButtons\XUB_OnUpdate.lua:417:
Usage: GetItemCooldown(itemID)
...
Stack: [C]: in function 'GetItemCooldown'
Interface\AddOns\eXtremeUnitButtons\XUB_OnUpdate.lua:417:
in function 'XUB_CHECK_SINGLE_BUTTON'
Interface\AddOns\eXtremeUnitButtons\XUB_OnUpdate.lua:126:
in function 'XUB_UpdateButtons2'
Interface\AddOns\eXtremeUnitButtons\XUB_OnUpdate.lua:85:
in function 'XUB_UpdateButtons'
Interface\AddOns\eXtremeUnitButtons\XUB_OnUpdate.lua:65:
in function
<Interface\AddOns\eXtremeUnitButtons\XUB_OnUpdate.lua:12>

Locals: (*temporary) = "Soulstone"
NOTE! This error only happens if I do NOT have the buff "Soulstone Resurrection"! If I have this buff (because I put the soulstone on myself) the error does NOT happen. Its the absence/lack of the Soulstone Resurrection buff that causes the error!

In case this matters, please note that the item name and the buff name both start with the word 'Soulstone'.

This error happens with both 4.01alpha and 4.1alpha of XUB.

Let me know if I can offer any debug info.
Last edited by Cosmic Cleric : 11-01-10 at 05:53 PM.
Report comment to moderator  
Reply With Quote
Unread 11-01-10, 10:26 AM  
tayedaen
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 191
Uploads: 6
Re: Alpha upload tweak

Originally posted by fredddredd
Assuming it makes it through moderation, I've uploaded (with his permission) a tweaked version of Tayedaen's "Alpha" release for 4.1. Hopefully I've caught and fixed most of the problems with scrolling, dropdown boxes and missing spells.
Thank you very much. Ireally appreciate your help !
I simply lack to time at the moment.

Thank you also for the most valuable discussion we had in the PMs.
It's always good to exchange ideas with another coder.

I implemented some code locally before your submission, and will try to make a code merge soon (tm).

THANK YOU
Report comment to moderator  
Reply With Quote
Unread 11-01-10, 09:32 AM  
fredddredd
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 34
Uploads: 2
Alpha upload tweak

Assuming it makes it through moderation, I've uploaded (with his permission) a tweaked version of Tayedaen's "Alpha" release for 4.1. Hopefully I've caught and fixed most of the problems with scrolling, dropdown boxes and missing spells.
Report comment to moderator  
Reply With Quote
Unread 10-30-10, 04:04 AM  
fredddredd
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 34
Uploads: 2
Flyouts break XUB

Hi Tay,

I believe that the problem with missing spells is down to the new flyout entries in the spellbooks of some classes. For example, in XUB_GenerateDefaultSpellsAsList, the flyout entries themselves don't return a spell name, so the discovery loop ends prematurely (the entries within the flyouts turn up later as entries in their own rights). That routine doesn't find anything deeper in the spell book than the first flyout, therefore. (So, in the mage case as an example, nothing beyond the Teleport flyout under Arcane gets found - so no Fire or Frost at all.)

There may be other places also impacted; I haven't had time to dig yet. But just skipping the flyout entry in that routine doesn't, of itself, seem to fix everything; when I tried that, the missing spell names were then visible in Group Maker, but they didn't have graphics against them, and buttons for them still didn't get built. (Could just have been my poor coding, of course.)

((edited to correct typo's))
--- Update

OK - looks like the problem is in two routines.
XUB_GenerateDefaultSpellsAsList (in XUBConfig.lua)
XUB_GetSpellTextureAndID (in eXtremeUnitButtons.lua)

In both, rather than relying on the Spell name being non-nil to find the end of the list of valid spells, a different check is needed initially. SkillType works; it has a value for everything in the book (and will be "SPELL" for anything that we're interested in, I believe - other values are "PETACTION", "FUTURESPELL" and "FLYOUT").

I tweaked the two as below, and it seems to work ((sorry - haven't worked out how to get this to format...)). I didn't get around to taking the spell rank out of the second.

++++++++

function XUB_GenerateDefaultSpellsAsList()

local SpellName;

local i=1
local myText = "";
local myBonusText = "\n";

local l_SkillType = GetSpellBookItemInfo(i,SpellBookFrame.bookType );

XUB.DefaultButtons = {};
XUB.DefaultButtonsArray = {};

while ( l_SkillType ~= nil ) do

if (l_SkillType == "SPELL") then
SpellName = GetSpellInfo(i,SpellBookFrame.bookType );

local mySpellVariable

mySpellVariable = string.gsub(SpellName, " ", "");
mySpellVariable = string.gsub(mySpellVariable , ":","" );
mySpellVariable = string.gsub(mySpellVariable , "'","" );
mySpellVariable = string.gsub(mySpellVariable , "%)","" );
mySpellVariable = string.gsub(mySpellVariable , "%(","" );

XUB.DefaultButtons[#XUB.DefaultButtons+1] = mySpellVariable .. ",spell," .. SpellName .. ","
XUB.DefaultButtonsArray[#XUB.DefaultButtonsArray+1] = { strsplit(",",XUB.DefaultButtons[#XUB.DefaultButtons]) };

end

i=i+1
l_SkillType = GetSpellBookItemInfo(i,SpellBookFrame.bookType );

end

end

++++++++++++

function XUB_GetSpellTextureAndID(aSpellName, aRank)

local mySaveTexture = "";
local mySaveID = 0;

local i=1
local SpellName,Rank;
local SkillType = GetSpellBookItemInfo(i,SpellBookFrame.bookType );

while ( SkillType ~= nil ) do

SpellName, Rank = GetSpellInfo(i,SpellBookFrame.bookType );
if ( SpellName == aSpellName ) then
if ( aRank == "" ) then -- then do NOT search for a specific

rank
if ( Rank == "" ) then -- this spell has no ranks
return GetSpellTexture(i,SpellBookFrame.bookType),i
else -- this spell has ranks
-- Save the texture and id and then continue
-- because we need to find the highest rank the user has access to
mySaveTexture = GetSpellTexture(i,SpellBookFrame.bookType);
mySaveID = i;
end
else -- then do search for a specific rank
if ( aRank == Rank ) then -- if the rank in the spellbook is

the same that is specified then
return GetSpellTexture(i,SpellBookFrame.bookType),i
end
end
end
i=i+1
SkillType = GetSpellBookItemInfo(i,SpellBookFrame.bookType );
end

--[[
if ( mySaveID < 1 ) then -- if we have found no spell
if ( GetNumTalentGroups() > 1 ) then -- if you have dual spec
XUB_ShowMessage( "XUB: Warning: Spell '" .. aSpellName .. "' cannot be validated . A reason for

this could be that you are using dualspec." );
mySaveID = 1;
end
end
]]--
return mySaveTexture,mySaveID;
end

++++++++

Cheers
Last edited by fredddredd : 10-30-10 at 01:09 PM.
Report comment to moderator  
Reply With Quote
Unread 10-24-10, 01:28 PM  
abinning
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 1
File comments: 47
Uploads: 1
It is real easy to change the button sizes in the LUA file.
just open the the .lua in saved variables and find em.

If you need more details let me know.
Last edited by abinning : 10-25-10 at 09:25 AM.
Report comment to moderator  
Reply With Quote
Unread 10-24-10, 12:51 PM  
manick74
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Having issues

Mousing over the resize numbers and using scroll wheel seems to be broken for me. Can't resize the bars I've built.

The drop down menus in the options page also seem to be borked. Can't change my anchor point or anything. Any help?
Report comment to moderator  
Reply With Quote
Unread 10-24-10, 11:29 AM  
abinning
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 1
File comments: 47
Uploads: 1
Originally posted by Carolina
Hey guys, post some pictures of your UI, please? The whole screen with raid frames for at least 10 people? I haven't come up with a setup I'm happy with yet, I need some inspiration!
It would be awesome if everyone posted configs & UI pics here
http://xub.abits.biz/

I already have a few up.

I will get some screens up with more showing.
Last edited by abinning : 10-24-10 at 11:30 AM.
Report comment to moderator  
Reply With Quote
Unread 10-23-10, 03:14 PM  
VolRath217
A Kobold Labourer

Forum posts: 0
File comments: 8
Uploads: 0
I logged on my hunter and most of my buttons didn't show up, I went to the Make Groups screen and probably 80% of my spells aren't in there.
Report comment to moderator  
Reply With Quote
Unread 10-23-10, 08:48 AM  
Carolina
A Kobold Labourer
 
Carolina's Avatar

Forum posts: 0
File comments: 13
Uploads: 0
Hey guys, post some pictures of your UI, please? The whole screen with raid frames for at least 10 people? I haven't come up with a setup I'm happy with yet, I need some inspiration!
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: