Download
(29 Kb)
Download
Updated: 03-05-07 05:57 PM
Pictures
File Info
Updated:03-05-07 05:57 PM
Created:unknown
Downloads:1,639
Favorites:21
MD5:
Mecaire's Macrotexter
Version: v1.20(beta)
by: Mecaire [More]
*** Mecaire has gone overseas and will have no internet access until at least May 19, 2007. Development and support for this mod will be discontinued at least that long.

Mecaire's Macrotexter allows you to define your own categories of spells and create custom behavior for them. By default, your spells are grouped into categories for implied targeting, but you can modify this or add to it.

v1.20(beta) of Macrotexter has partial support for Bartender3 bars. Macrotexter currently only works with Bartender3 and default Blizzard UI actionbars. Support for Bongos and CogsBar is coming soon.

Macrotexter's implied targeting allows you to automatically assist beneficial and harmful targets with the opposite types of spells. (EQ2 and City of Heroes/Villains players are probably familiar with this kind of targeting. You do not need to have played those games to use this though!) Here are some examples:

A) With a tank on target, a healer or caster can cast an offensive spell on the tank's target. The healer/caster's target does not change.

B) With an enemy on target, a healer can cast a heal, buff, HoT, or cure on that enemy's target. The healer's target does not change.

C) A paladin or warrior can use Righteous Defense or Intervene on an enemy to come to the defense of the player on its target.

D) A warrior or druid can use their taunt skill with a player on target, to taunt that player's target.

Of course, if you use your spells with a proper target (such as casting Smite on an enemy target, or Heal on a friendly target) they still work exactly as expected! Your Blizzard selfcasting still works (if you use this feature), too.

Currently in WoW 2.0, without Macrotexter, you would need to make all your spell buttons into macro buttons to do these things. Macrotexter saves you the trouble by enhancing the way your normal spell buttons behave. Macrotexter gives you the normal behavior of a spell button (which macro buttons don't do on their own--such as range checking, glowing edges while casting, cooldown display, etc.), as well as the enhanced "smarter" behavior of a macro button.

There is also extended built-in selfcasting available for Blizzard default UI bars, such as for situation B) above. (Bartender3 bars use their own selfcasting.) You can still selfcast beneficial spells if your enemy target has another party member on its target. Alt-selfcasting, right-click selfcasting, and ctrl-click selfcasting can be toggled for beneficial spells.

If you use Macrotexter's implied targeting, I highly recommend using a frame that displays your target-of-target. (These are provided by the default Blizzard interface and also most unitframe mods.) This will allow you to see what you're nuking if you nuke off of a friendly target - or who you're healing if you heal with the enemy on target.

Note that v1.20(beta) is a beta version. If v1.20(beta) does not work for you, you can use v1.10 instead. Please report any problems not already noted in the ReadMe.
Optional Files (0)


Post A Reply Comment Options
Old 02-22-07, 10:08 AM  
Mecaire
A Kobold Labourer
AddOn Compiler - Click to view compilations

Forum posts: 0
File comments: 8
Uploads: 1
Originally posted by Mazzlefizz
Very interesting. Since add-on code can't do targetting, do you iterate through the action IDs and create macro equivalents for all the spells? If so, wouldn't that work with all button add-ons implicitly?
Yes, that's what it does--it iterates through the 120 action slots and adds macrotext to the spell button(s) associated with each slot.

It doesn't work with all the button addons implicitly because I'm setting the button attributes using a hard-coded button name. For example, if you have a spell defined to implied-target in slot 54, currently it sets macrotext for ActionButton6 (in its page 5 state) and MultiBarBottomRightButton6.

If there is a way to find out any and all of the action buttons in the UI that are associated with a particular slot (without hard-coding them in), that would be a much better way to do it! But I don't know a way to do that. Currently I use a "constants" table that contains the button name prefix and slot numbers for each bar (and some other bits of info), and I iterate through that table instead of the actual buttons.

Since Bongos and Bartender let the player change the number of buttons on a bar, and whether the bar is multi-page at any time, as well as (in Bongos' case at least) how many pages it can have--there is a little bit of extra work to be done to support them. Right now my functions assume a constant twelve buttons per bar, and I only set up the state headers (for multi-page or stance bars) one time on player load, for example. Both of those bar mods create their own action buttons which are called different names from the Blizzard UI buttons, too, of course.

I hope I didn't knock you out with that explanation because if I read it a few weeks ago, before I worked with this stuff, it probably would have gone right over my poor head.

So anyway from everything I have seen in those two addons' script, I can see a way to add support for them, and it doesn't appear it will be very complex. It's just a matter of setting some time aside to add the extra logic over the next week or two!
Mecaire is offline Report comment to moderator  
Reply With Quote
Old 02-21-07, 04:14 PM  
Mazzlefizz
A Pyroguard Emberseer
 
Mazzlefizz's Avatar
AddOn Author - Click to view AddOns

Forum posts: 3521
File comments: 60
Uploads: 2
Very interesting. Since add-on code can't do targetting, do you iterate through the action IDs and create macro equivalents for all the spells? If so, wouldn't that work with all button add-ons implicitly?
__________________
MazzleUI Home Page: Mazzlefizz.WoWInterface.com
Info, FAQs, Forums, Download can be found at that link.
Mazzlefizz is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: