Go to Page... |
Updated: | 12-06-10 04:15 PM |
Created: | unknown |
Downloads: | 24,306 |
Favorites: | 123 |
MD5: |
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:
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.
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 |
![]() |
Comment Options |
tayedaen |
View Public Profile |
Send a private message to tayedaen |
Find More Posts by tayedaen |
Add tayedaen to Your Buddy List |
paladindrome |
View Public Profile |
Send a private message to paladindrome |
Find More Posts by paladindrome |
Add paladindrome to Your Buddy List |
![]() |
||
|
New API request post for XUB PLEASE double-check me on the post, as I mixed and matched text from posts both you and drome made together, and may have missed something. |
|
![]() |
![]() |
Cosmic Cleric |
View Public Profile |
Send a private message to Cosmic Cleric |
Find More Posts by Cosmic Cleric |
Add Cosmic Cleric to Your Buddy List |
![]() |
||
|
Basically Dispel Magic is a spell that removes magical debuffs from friendly targets or magical buffs from enemy targets. So the UnitIsFriendly check should determine on which kind of spells we should be looking for. If friendly: Look for magical Debuffs (easy to do). If hostile: Look for Buffs (like Purge already does, but this time only for magical ones. This is nearly impossible, since we do not know the Buff-Type) We could then declare the button like this: '_DispelMagic,debuffblink,Dispel Magic,,DispelM' But I am still thinking if there isn't a better solution. Perhaps I'll find something better ![]() cu tay EDIT: I've just read Paladindrome's post in UI-forum. And he is completely right ;-) Unfortunately he made a type in his post so that he wrote UnitDebuff two times. What we would need is an API enhancement for UnitBuff, giving the BUFFTYPE. We have now: Code:
for Debuffs: name, rank, texture, count, debuffType, duration, timeLeft = UnitDebuff(unitID, debuffIndex [, removable]); and for Buffs: name, rank, texture, count, duration, timeLeft = UnitBuff(unit, buffIndex [, castable]); Code:
change for the API UnitBuff: name, rank, texture, count, buffType, duration, timeLeft = UnitBuff(unitID, debuffIndex [, castable]); God, I HATE it that I can't post there since I am an EU customer. Why do we have less contact to the developers only because we are from europe? Do we pay less ? [/rant end]
Last edited by tayedaen : 11-27-07 at 11:29 AM.
|
|
![]() |
![]() |
tayedaen |
View Public Profile |
Send a private message to tayedaen |
Find More Posts by tayedaen |
Add tayedaen to Your Buddy List |
![]() |
||
|
Perhaps for Dispell (and Purge?) check to see if there's any buffs/debuffs on the target before deciding on showing the button or not? EDIT: Its valid to call Dispel on a friendly target and an UNfriendly target, so your suggested fix wouldn't work (unless there's more to it than the UnitISFriendly call?).
Last edited by Cosmic Cleric : 11-26-07 at 05:52 PM.
|
|
![]() |
![]() |
Cosmic Cleric |
View Public Profile |
Send a private message to Cosmic Cleric |
Find More Posts by Cosmic Cleric |
Add Cosmic Cleric to Your Buddy List |
![]() |
|
|
Hi !
I've read the conversation there, and they are mostly right. That means: Yes, WowWiki sometimes has errors, and Yes, 'IsSpellInRange' is probably the wrong API call for our case here. Please ask them for a recommendation on what API call to use in this special case. If they do not answer seomthing helpfull then I'l try finding my own solution. I have an idea here (using 'UnitIsFriendly(Player,Button.destination)' ), but I am not sure about the impact this would have on other spells at the moment. cu tay |
![]() |
![]() |
tayedaen |
View Public Profile |
Send a private message to tayedaen |
Find More Posts by tayedaen |
Add tayedaen to Your Buddy List |
![]() |
||
|
I posted about this on the WoW UI/Macro forum: WoW UI/Macros Forum thread about IsSpellInRange Was getting some resistance from a major add-on developer (Cogwheel) about if its valid to depend on IsSpellInRange to determine if its valid to cast a spell or not. I actually argued your perspective on the api call. Take a look at the conversation and let me know what you think about it? |
|
![]() |
![]() |
Cosmic Cleric |
View Public Profile |
Send a private message to Cosmic Cleric |
Find More Posts by Cosmic Cleric |
Add Cosmic Cleric to Your Buddy List |
![]() |
||
|
But normally XUB would detect that the button is uncastable on the current target. This seems to fail for Dispel Magic. Blame it on Blizzard. ![]() Technical details about what exactly fails here: The call for "IsSpellInRange(myButton.FullSpellName,myButton.Unit)" should return NIL (see case 1), but does not. Code:
-- Disable the button if it is not in range or valid for the unit or if that unit is in a duel if ( myButton.Unit ~= "player" ) then local inRange = IsSpellInRange(myButton.FullSpellName,myButton.Unit) if ( inRange == nil ) then -- this means either (from WoWWiki) -- 1. The spell cannot be cast on the unit. i.e. attempting to check range using 'Frostbolt' on a party member will always return 'nil', similarly testing 'Heal' against an enemy target will also return nil. -- 2. If the unit is not 'visible' (see API UnitIsVisible) then you will get a nil, and not a '0' as you might expect. -- 3. The unit doesnt exist (e.g. 'target' when you have nothing targetted) -- 4. The current player does not know this spell (so you cannot use 'Heal' to test 40 yard range for anyone other than a priest) myButton.State = STATE_INVALID; return; elseif ( inRange == 0 ) then -- this means the target is not in Range myButton.State = STATE_INVALID; return; end end I could code Dispel Magic as a special case (eg write code that explicitely checks if the spell is Dispel Magid, and the target is hostile), but I'd rather avoid too many special cases. cu tay |
|
![]() |
![]() |
tayedaen |
View Public Profile |
Send a private message to tayedaen |
Find More Posts by tayedaen |
Add tayedaen to Your Buddy List |
![]() |
||
|
EDIT: Er three posts not two. ![]()
Last edited by Cosmic Cleric : 11-26-07 at 03:21 AM.
|
|
![]() |
![]() |
Cosmic Cleric |
View Public Profile |
Send a private message to Cosmic Cleric |
Find More Posts by Cosmic Cleric |
Add Cosmic Cleric to Your Buddy List |
![]() |
|
|
Hi,
I just posted a new version, 1.9 beta 1: Changelog: ------------- CHANGED: updated toc for patch 2.3 CHANGED: improved PerfectRaid support ADDED: multiple GUI improvements all coded by Cosmic Cleric - additional slider for the INVALID_ALPHA - additional option box for 'Use Global Dim' - additional option box for 'Cooldown Spinner' - additional option box for 'Global Cooldown' - additional option box for 'Show Decimal Values in Cooldown' - 'Apply' button changed to 'Save Changes' ADDED: handling for the shaman spell 'Purge' The way I implemented it is: I added a new debuff type: "Purge", that will react to any buff. Example: CB_Purge,debuff,Purge,,Purge This creates custom button type debuff, with the debuff type set to "Purge". A debuff button declared with "Purge" will be shown if any buff is active on the target FIXED: fixed a bug with OnValueChanged that resulted in an error in 'FrameXML.log' Please post your results in the subforum of the new release. have fun tay |
![]() |
![]() |
tayedaen |
View Public Profile |
Send a private message to tayedaen |
Find More Posts by tayedaen |
Add tayedaen to Your Buddy List |
![]() |
||
|
Re: Purge Blink
![]() Clearly the server knows that the target has something appropriately PURGEable on it, or the spell couldn't work. I guess the question is whether and how that information is available. Meanwhile, I guess I stick to trying to remember to check the trarget visually. (I'd considered whether it would work if I named the spells. The trouble is there are just too many of them for it to be practical in all but the most specific, "I've really got to keep that buff supressed", circumstances.)
Last edited by fredddredd : 11-25-07 at 06:54 AM.
|
|
![]() |
![]() |
fredddredd |
View Public Profile |
Send a private message to fredddredd |
Find More Posts by fredddredd |
Add fredddredd to Your Buddy List |
![]() |
||
|
Re: Re: Blink
If my priest puts a SW:Pain on an enemy target, my Dispell Magic button lights up on the target frame, even though I cannot (oblviously) dispell my own debuff I just applied to a mob. Code:
_DispelMagic,debuffblink,Dispel Magic,,Magic
Last edited by Cosmic Cleric : 11-24-07 at 02:54 PM.
|
|
![]() |
![]() |
Cosmic Cleric |
View Public Profile |
Send a private message to Cosmic Cleric |
Find More Posts by Cosmic Cleric |
Add Cosmic Cleric to Your Buddy List |
![]() |
||
|
Re: Blink
Uusually the target has buffs on it, when you want to use purge. So the button type DEBUFF does not work, since the target is not debuffed The button type BUFF is not working since you would have to explicetely name all buffs that should enable the purge button. We would need some sort of check that tells us: The target has at least one buff. I'll think about it, and see I find something ![]() cu tay |
|
![]() |
![]() |
tayedaen |
View Public Profile |
Send a private message to tayedaen |
Find More Posts by tayedaen |
Add tayedaen to Your Buddy List |
![]() |
||
|
Re: Blink
I havent realy looked at this in the past - I know that we get limited information on hostile mobs - I dont know if this is due to that. I will play with my Priest and see if I can come up with something. Drome. |
|
![]() |
![]() |
paladindrome |
View Public Profile |
Send a private message to paladindrome |
Find More Posts by paladindrome |
Add paladindrome to Your Buddy List |
![]() |
||
|
Re: XUB bug reported by WoW's log file
Code:
<Scripts> <OnUpdate>XUB_SliderLowHigh("YOffset","-1000","1000",1,"%d");</OnUpdate> <OnMouseWheel>XUB_Scroll("YOffset",arg1);</OnMouseWheel> <OnValueChanged>XUB_SliderLowHigh("YOffset","-1000","1000",1,"%d",XUB_OptionsYOffsetEdit);</OnValueChanged> </Scripts> Hopefully we will have developer discussions on code.google.com soon - and be able to leave this to user discussions (everyone invited of course). Thanks, Drome |
|
![]() |
![]() |
paladindrome |
View Public Profile |
Send a private message to paladindrome |
Find More Posts by paladindrome |
Add paladindrome to Your Buddy List |
![]() |