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-13-07, 01:01 AM  
GallopingCow
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
I've got a few quick questions.

First, is there a way to check the mana level of a target similar to how you can check the damage a target has taken?
I'd like to have an Innervate button visible when a target is below a certain percentage of mana.

Second, could someone just briefly explain how to go about creating a second row of buttons for a noob? I assume it has something to do with profiles which I still seem to have a little trouble grasping.
Edit: After some re-reading, I found you just have to add the line "profile,target,CR" in the Profile box to insert another button row. I guess I just skimmed over that part before. The amount of customization and detail in this addon is amazing.

Finally, I'm trying to put a Nature's Swiftness button on each party frame next to the heal buttons. I've set the group to "swift,NaturesSwiftness,player" and the profile to "druid,party,swift" but the button refuses to show up at all. If I don't specify a target in the group settings, the button will show up when I first save the settings, but will disappear after a moment just like other spell buttons will when you go out of range.

Verify doesn't produce an error, but once I click Save & Apply, I get:
ERROR: XUGUnits[aDestinationUnit] is NULL = NIL
Last edited by GallopingCow : 03-13-07 at 02:29 AM.
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 12:35 AM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Originally posted by Cosmic Cleric
Actually, I was thinking of UI's that build the strings that we have to manually type into the three boxes now, vs a whole UI revamp. So instead of the three boxes you type in, have three buttons that bring up dialogs, and each one would be different, and contain checkboxes and dropdowns that give the users lists of things they can choose, and when they press the OK button it "types" for the human what the old entry field box would want.

There's two issues right now that makes the app difficult to use, one, getting your head around the different features of groups, buttons, special buttons, etc., and two, typing the information correctly w/o any syntax errors or missing stuff. If you automate the typing process at least it would make the app someone easier to deal with.

Just a few thoughts.
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.
Report comment to moderator  
Reply With Quote
Unread 03-13-07, 12:21 AM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Re: Re: Re: Re: Re: V1.3 Broke my Targets Buttons

Originally posted by Cosmic Cleric
I know you can have multiple rows, but to hide a button based on if the target is friendly/hostile is what I was really talking about.
Yes, I know. This works now. The mod will properly show/hide buttons for friendly/hostile targets where appropriate.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 11:05 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
Originally posted by Elenesski
The problem isn't creating the static UI bits. We have WOW UI Designer for that .. I cannot imagine how Loz wrote Group Buttons without it.

The problem is, because I decided to create unlimited buttons with unlimited groups per profile, I have to create a screen that edits and scrolls. Temper that with things like a variety of button types (spell, buff, debuff, health and macro) and all of a sudden you have something that is several orders of magnitude more difficult to build than a simple UI dialog. If you look at Group Maker dialog, the scrolling region to the left must handle all of the standard spells a player has + all of the custom buttons they create, and when the click a button I have to know what the name of the button is, what icon to use whether it is a spell or a macro. And all this dialog does is generate some text that the user cuts-and-pastes into another dialog.

How long that take? 5 days. And that's something simple. True I was just learning, but still. So a full UI configuration dialog is weeks of work, which slows down development of other features.

In other words, don't hold your breath for a GUI. It would be months away if I started now. So why even put in the effort? It works for me now.
Actually, I was thinking of UI's that build the strings that we have to manually type into the three boxes now, vs a whole UI revamp. So instead of the three boxes you type in, have three buttons that bring up dialogs, and each one would be different, and contain checkboxes and dropdowns that give the users lists of things they can choose, and when they press the OK button it "types" for the human what the old entry field box would want.

There's two issues right now that makes the app difficult to use, one, getting your head around the different features of groups, buttons, special buttons, etc., and two, typing the information correctly w/o any syntax errors or missing stuff. If you automate the typing process at least it would make the app someone easier to deal with.

Just a few thoughts.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 11:02 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: Re: V1.3 Broke my Targets Buttons

Originally posted by Elenesski
This works now ... you use the CR group in a profile specification to create the next row of buttons. On my hunter I have three rows, and on my priest and mage two rows a piece. You can create as many rows as you want.

But what they would like is one row of both friendly and hostile buttons; for which I have no solution.
I know you can have multiple rows, but to hide a button based on if the target is friendly/hostile is what I was really talking about.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 10:19 PM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Originally posted by GallopingCow
First off, thanks for an excellent mod. I never thought I'd be able to play my druid effectively again after GroupButtons was killed off.

With that said, I've got an error for you.

Error: attempt to concatenate field '?' (a nil value)
File: ...dOns\eXtremeUnitButtons\eXtremeUnitButtonsConfig.lua
Line: 133
Count: 1

I had configured a couple buffs, basically following the quick start guide line for line.
Everything was working splendidly until I decided to add another group for my poison/decurse spells.
I thought everything was right because Verify didn't turn out any errors, but after I saved/exited, the buttons were gone and I get that error any time I try to do anything (/xub config, options, unitframes, etc).
I can't get any of the config windows open to try and fix whatever went wrong.

I didn't have much set up, so it's no big deal at all to just wipe the saved variables. I just figured I should submit the error I keep getting.

edit: Apparently something was wrong with the Profile Specifications. I edited ...\SavedVariables\eXtremeUnitButtons.lua and deleted everything in XUGConfigProfiles = {} and I was able to open the config window again, and now everything works again.

Again, thanks a lot for the superior heir to the GroupButtons throne.
Not sure what happened there ... but for some reason I took out the code that validates the groups and profiles. So you could put any crap in there, and it would accept.

I'll issue a patch shortly.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 10:08 PM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Originally posted by Cosmic Cleric
For what its worth, I think the text entry configuration system sucks like a vacuum set on high!

Ok, having said that (please don't hit me, I was just teasing!), I would totally agree with you that creating UIs in WoW is not an easy matter. Its an order harder to do than just the non-UI coding portions of LUA/WoW. So I can understand (and agree) with why you had a text-entry only way of setting the configuration of your add-on.

I would be glad to offer my services in creating GUI's for you to use in your app. If you take a look at the screenpics for AutoShoutOut (http://www.wowinterface.com/download...ShoutOut.html), I have some experience in creating WoW UIs (though its pre-2.0 experience, I think I could still be helpful). If you are interested in my help, just let me know, and I can get from you an idea of how you want the configuration screens to be, and whip something up for you.
The problem isn't creating the static UI bits. We have WOW UI Designer for that .. I cannot imagine how Loz wrote Group Buttons without it.

The problem is, because I decided to create unlimited buttons with unlimited groups per profile, I have to create a screen that edits and scrolls. Temper that with things like a variety of button types (spell, buff, debuff, health and macro) and all of a sudden you have something that is several orders of magnitude more difficult to build than a simple UI dialog. If you look at Group Maker dialog, the scrolling region to the left must handle all of the standard spells a player has + all of the custom buttons they create, and when the click a button I have to know what the name of the button is, what icon to use whether it is a spell or a macro. And all this dialog does is generate some text that the user cuts-and-pastes into another dialog.

How long that take? 5 days. And that's something simple. True I was just learning, but still. So a full UI configuration dialog is weeks of work, which slows down development of other features.

In other words, don't hold your breath for a GUI. It would be months away if I started now. So why even put in the effort? It works for me now.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 09:53 PM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Re: Re: Re: V1.3 Broke my Targets Buttons

Originally posted by Cosmic Cleric
How about taking an approach of making a button visible/invisible (via its alpha value) based on if its associated with a "friendly" or "hostile" target? As far as I know, the alpha values can be changed during combat.

That way I can set up my target display in two rows, and have the top row be for friendly spells and the second row be for hostile spells, and either the top row or the bottom row would be visible, based on the target friendly/hostile attribute.
This works now ... you use the CR group in a profile specification to create the next row of buttons. On my hunter I have three rows, and on my priest and mage two rows a piece. You can create as many rows as you want.

But what they would like is one row of both friendly and hostile buttons; for which I have no solution.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 08:27 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
Originally posted by Elenesski
For everybody reading this post ...

Please continue to provide feedback. And if you can help out with support, please do so. It's always appreciated when I can do less work. Less work for me equals more WOW time.

Regards,
- El
For what its worth, I think the text entry configuration system sucks like a vacuum set on high!

Ok, having said that (please don't hit me, I was just teasing!), I would totally agree with you that creating UIs in WoW is not an easy matter. Its an order harder to do than just the non-UI coding portions of LUA/WoW. So I can understand (and agree) with why you had a text-entry only way of setting the configuration of your add-on.

I would be glad to offer my services in creating GUI's for you to use in your app. If you take a look at the screenpics for AutoShoutOut (http://www.wowinterface.com/download...ShoutOut.html), I have some experience in creating WoW UIs (though its pre-2.0 experience, I think I could still be helpful). If you are interested in my help, just let me know, and I can get from you an idea of how you want the configuration screens to be, and whip something up for you.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 08:11 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: V1.3 Broke my Targets Buttons

Originally posted by Elenesski
I've been investigating putting hostile and friendly spells on the same line, but unfortunately cannot make it work. The problem is that it works dandy in non-combat, but in combat, API function Raise() and Lower() become restricted. If I have a disabled button on top of an enabled button you cannot access it, and I cannot call Lower() on a disabled spell to make go underneath an enabled spell.
How about taking an approach of making a button visible/invisible (via its alpha value) based on if its associated with a "friendly" or "hostile" target? As far as I know, the alpha values can be changed during combat.

That way I can set up my target display in two rows, and have the top row be for friendly spells and the second row be for hostile spells, and either the top row or the bottom row would be visible, based on the target friendly/hostile attribute.
Last edited by Cosmic Cleric : 03-12-07 at 08:31 PM.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 07:04 PM  
GallopingCow
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
First off, thanks for an excellent mod. I never thought I'd be able to play my druid effectively again after GroupButtons was killed off.

With that said, I've got an error for you.

Error: attempt to concatenate field '?' (a nil value)
File: ...dOns\eXtremeUnitButtons\eXtremeUnitButtonsConfig.lua
Line: 133
Count: 1

I had configured a couple buffs, basically following the quick start guide line for line.
Everything was working splendidly until I decided to add another group for my poison/decurse spells.
I thought everything was right because Verify didn't turn out any errors, but after I saved/exited, the buttons were gone and I get that error any time I try to do anything (/xub config, options, unitframes, etc).
I can't get any of the config windows open to try and fix whatever went wrong.

I didn't have much set up, so it's no big deal at all to just wipe the saved variables. I just figured I should submit the error I keep getting.

edit: Apparently something was wrong with the Profile Specifications. I edited ...\SavedVariables\eXtremeUnitButtons.lua and deleted everything in XUGConfigProfiles = {} and I was able to open the config window again, and now everything works again.

Again, thanks a lot for the superior heir to the GroupButtons throne.
Last edited by GallopingCow : 03-12-07 at 07:43 PM.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 11:46 AM  
BlackWidow
A Murloc Raider

Forum posts: 2
File comments: 16
Uploads: 0
I agree, the text based UI is just fine. Takes a bit of getting used to, but certainly easy enough to grasp. I, like the previous poster, would rather you spend time fine tuning your mod rather than spend time working on a different UI.

Thanks again for your excellent work.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 11:01 AM  
Botch
A Kobold Labourer

Forum posts: 0
File comments: 8
Uploads: 0
I like the text-based interface just fine, getting the mod working seamlessly seems much more important than adding bloat that will in turn cause more problems.

How hard would it be to include multiple profiles 'out of the box'? Another config window that you could select Druid > Heal, or Priest > Shadow, or whatever, then have the mod load up the text into the config screen? Then people could play right away without worring about the config, and when they want to change something they could just make minor edits instead of working hard to dot their ts and cross their is. And if they mess things up, they could just reload the default for their class.

I can contribute my shadow priest buttons (nice because they drop you from shadowform to heal).
Last edited by Botch : 03-12-07 at 11:01 AM.
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 09:16 AM  
Elenesski
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 194
Uploads: 2
Originally posted by pilif
Hi,



I'm a developer myself and I just know how much it hurts to get these angry "it doesn't work"-reports without any helpful error message. You know: "Your product doesn't work. If I do X an error message appears" - "OK... what's the error" - "I don't know. I just clicked ok". I love these. So when the table is turned and it's ME requesting support from a developer, then I try to be as polite as humanly possible and I try to submit all the information the developer should need to locate the problem.

The bug in question, btw, is a prime example of why you should not program using copy & paste

Also, it's pretty obvious what went wrong and I SO should have found this myself when I was looking at line 533 yesterday, but bear in mind that I have no idea of how LUA and WOW-Addons in particular work.

And from seeing just the code handling these raid frames, I have to say: This sucks. Every developer seems to have their own idea how stuff should be handled and you as an integrator have to work with each of the entirely different solutions (ag and bliz is somewhat similar, but CTRA is totally different, as will X-Perl be). And none of the addons are documented well enough.

So working with these other addons doesn't just require you to be able to write LUA-code and understand your own code. You ALSO have to read and understand what other people (with varying talent and backgrounds) have written.

So hats off for that. After looking at line 533 and the unified diff I got for 1.3a->1.3b - because I was interested to see how it's fixed), I really admire you and your work.




The text based interface does its job perfectly well. This is mainly because you took the time to write 50 pages of documentation. I have some experience in UI design (none for WoW though) and I don't even get a quick idea how I would create a GUI for the functionality XUB provides - I mean not even on paper.

Again, many thanks for your incredibly nice work.

Philip
Thanks. It's an interesting world with LUA and the convoluted XML you need to write for the user interface. It's sort of like one day somebody said "hey, XML is universal, let's use that". In my day life I'm part of a project that uses Web Services and SOA, so we use XML all the time and I can say there are just some things you shouldn't do with XML. Actually, it is probably more ... there are many things you shouldn't do with XML.

Fortunately I use a tool called WOWUIDES which allows me to graphically put together a static interface. And that's how I created all the screens in XUB. I've looked at the code it creates and scratched my head wondering .. how could somebody think about and write that by hand?

The biggest problem I have with the mod are users like Farley. Clearly they are having problems and I want to help them use the mod but I don't know what I can say or do to help them out; because they say they have a problem but don't give the right kind of details. But it is like most users, they don't how to articulate exactly what the problem is. It would be like me describing a banging noise in my car. I know virtually nothing about cars, but to describe where or what the banging noise is to a mechanic is a lot like most users describing a software problem. What common language do we have that allows us to communicate. For Farley, I'm sure it is the simplest of things. I don't know if they have given up or figured it out. I hope they have figured it out.

But at the same time, I need people like Farley to identify weak points in either the software or documentation. In 1.3 I wrote logic to do a better job at parsing the text .. making sure that Spells were spelled correctly, and that the text was not sensitive to putting in spaces around commas. So in their descriptions of things and comments made by others, I picked up on the fact that the text parser required a better job at preventing people from making mistakes.

And like GroupButtons, XUB takes time to configure. I wonder if the text helps or hinders people, and I constantly debate whether I should replace the text with a UI that will, by all accounts, take incredible amounts of time to write and maintain when I know myself that a text-based interface is all I need to get the mod to do what I need. Who am I writing the mod for?

For everybody reading this post ...

Please continue to provide feedback. And if you can help out with support, please do so. It's always appreciated when I can do less work. Less work for me equals more WOW time.

Regards,
- El
Report comment to moderator  
Reply With Quote
Unread 03-12-07, 02:24 AM  
pilif
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 14
Uploads: 1
Hi,

Originally posted by Elenesski
It just goes to show that us developer-types aren't as smart as we'd like to think.
I'm a developer myself and I just know how much it hurts to get these angry "it doesn't work"-reports without any helpful error message. You know: "Your product doesn't work. If I do X an error message appears" - "OK... what's the error" - "I don't know. I just clicked ok". I love these. So when the table is turned and it's ME requesting support from a developer, then I try to be as polite as humanly possible and I try to submit all the information the developer should need to locate the problem.

The bug in question, btw, is a prime example of why you should not program using copy & paste

Also, it's pretty obvious what went wrong and I SO should have found this myself when I was looking at line 533 yesterday, but bear in mind that I have no idea of how LUA and WOW-Addons in particular work.

And from seeing just the code handling these raid frames, I have to say: This sucks. Every developer seems to have their own idea how stuff should be handled and you as an integrator have to work with each of the entirely different solutions (ag and bliz is somewhat similar, but CTRA is totally different, as will X-Perl be). And none of the addons are documented well enough.

So working with these other addons doesn't just require you to be able to write LUA-code and understand your own code. You ALSO have to read and understand what other people (with varying talent and backgrounds) have written.

So hats off for that. After looking at line 533 and the unified diff I got for 1.3a->1.3b - because I was interested to see how it's fixed), I really admire you and your work.


Originally posted by Elenesski
I'm having fun with the mod with all the thousands of downloads and the number of people tracking it as a favorite. Plus all of the positive feedback I get with it. I say this from a professional developer's perspective -- I just wish making the GUI configuration wasn't so freaking difficult; otherwise I'd have something instead of the text system I have now.
The text based interface does its job perfectly well. This is mainly because you took the time to write 50 pages of documentation. I have some experience in UI design (none for WoW though) and I don't even get a quick idea how I would create a GUI for the functionality XUB provides - I mean not even on paper.

Again, many thanks for your incredibly nice work.

Philip
Last edited by pilif : 03-12-07 at 03:21 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: