BuffAhoy v1.401 -- Now compatible with SelfCast! -- see the
Changes section.
BuffAhoy is an AddOn that adds several powerful features
for spellcasters, including:
A Passive Party Targetting (PPT) system, which allows spells
to be cast on party members passively (i.e. without explicitly
targetting them)
A SmartCast algorithm, which allows you to use the SHIFT key
to make spells target yourself
A buff sequencer, so that one button (pressed repeatedly)
will buff the entire party or raid group, including pets,
with a customizable set of buffs using the PPT system (so
you can buff during combat without having to break your combat
target).
Heal, Cleanse, and Protect slots that use the PPT system to
cast spells on party members during combat
A spell sequencer, so that one button can be pressed repeatedly
to cast a series of spells on a hostile or friendly target.
4 ShoutCast slots, which automatically announce to the party
(or raid group) which spell is being cast and who the target
is.
All functions now automatically get the name of the spell
being cast and use it in the party messages (if set to verbose
mode)
All of these features are accessible through BuffAhoy's new,
fully configurable GUI. It's as simple as dragging spells
from your spellbook into the button slots in the BuffAhoy
control panels. All of the functions are bindable through
the Key Bindings interface, in the 'BuffAhoy Binds' section.
To bring up the Configuration Panels, you can either type
'/ba config' in the chat window, or bind a key to 'BuffAhoy
Config'.
The control panels allow you to drag spells into the slots,
as well as toggle the verbosity and SmartCast (the 'Self'
checkbox) options for each spell. There is a dropdown box
to select the channel to which verbose functions will send
messages; options are 'party', 'raid', and 'say'.
Finally, you can enable or disable the PPT and SmartCast
systems, Status Messages, and a host of other options through
the control panel.
The PPT system allows you to target party members passively,
so you can cast spells on them without having to target them
explicitly. This is extremely useful in combat, as you could
be attacking a mob and switch to healing a party member while
you still have the mob targetted. In this way, you start attacking
the mob again immediately after the heal is done, without
having to use Tab or the mouse to re-target anything. The
readme.txt file explains the logic of the PPT system, but
here it is in short:
If a friendly unit is targetted, it will cast the spell on
them.
If a hostile unit is targetted, or you have no target it will
cast the spell on the Passive Party Target.
note that the ShoutCast and MultiCast functions WILL try and
cast spells on a hostile target, as they assume that's what
you're trying to do. You can disable this by disabling the
PPT system through the config panel.
The other main feature of this addon is the BuffCast script,
which lets you cast buffs on party members passively. BuffCast
has been redone for version 1.30 to make it even more streamlined
and informative. The BuffCast sequence can be set to one of
two different modes: Individualized and Class-Based. In Class-based
mode (the default), you can specify a different buff for each
class type, as well as a buff for pets. Running Buff Sequence
1 will buff each person in the party or raid group based on
their class type.
In Individualized mode, you can choose a predefined buff for
each party member, as well as one for party pets. Pressing
the button bound to 'Buff Sequence 1' will then cast the first
buff on you. Pressing it again casts the second buff on the
first party member. etc.
Both modes will support pets, and no longer require PetCheck
to be run by the user (though it is still available as a keybind),
because it runs automatically every time you exit combat.
BuffCast now supports 3 sequences -- 1 with individually-
or class-defined buffs, and 2 for buffing the entire party
with one buff.
This AddOn is standalone, and should work just fine with
Cosmos and all other addons you have installed. However, for
Telo's SelfCast addon to work, you must either add 3 lines
of code to SelfCast.lua (see version changes below) or disable
the PPT system in BuffAhoy. This mod will by default use a
bunch of action bar slots:
73-84 (conflicts with Telo's BottomBar)
85-96 (conflicts with Telos' BottomBar)
109-120 (conflicts with Telo's Sidebar and Cosmos' SideBar)
if you have flexbar or another mod that uses these buttons,
they may interfere with one another. I chose these ranges
because they are the only ones that would not interfere with
the new blizzard interface bars.
If you use Telo's BottomBar/Sidebar or Cosmos' SideBar, there
is an extra file named 'BuffAhoyConfigAlternate.lua' in the
BuffAhoy folder that will help you out. Delete the 'BuffAhoyConfig.lua'
file and remove the 'Alternate' from the extra file. This
reconfigures BuffAhoy to use the following presets:
37-48
49-60 (conflicts with PopBar in cosmos)
61-72 (conflicts with PopBar in cosmos)
Alternatively, you can edit the BuffAhoyConfig.lua file and
remap ALL of the buttons used in BuffAhoy to any # you want.
The Config file is well-documented so that it should be easy
for anybody to edit, even if you don't have any background
in coding.
All of the scripts in this AddOn can be activated by a macro,
as per version 0.8, so advanced users and people familiar
with previous version still have the flexibility in writing
macros that earlier versions provided. The Readme.txt file
lists all of the scripts as well as their arguments, and a
brief description of the casting logic used.
Readme:
http://www.frontiernet.net/%7Egehring/README.txt
The home page has an e-mail address at which you can send
bugs/suggestions/etc. or ask for help. You can also post in
the WoW UI Customization forum thread:http://forums.worldofwarcraft.com/thread.aspx?fn=w...
This AddOn makes considerable use of code written by others,
especially danboo's CastAway. Out of respect, i have not included
his exact CastAway() script in BuffAhoy, though there is a
version i modified to use action bar id's instead of spell
names (MultiCast()), and large sections of my code resemble
his very closely or exactly. Without his code, this mod would
have taken considerably longer to write (especially since
i learned a lot of the lua i now know by reading his code).
I'd also like to thank Dhargo, as reading his Flexbar code
proved invaluble in developing the GUI button interface.
|