vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 BuffAhoy by Theck
2 version 1.45
3  
4 http://www.frontiernet.net/~gehring/BuffAhoy.htm
5  
6 BuffAhoy is a casting suite for paladins and other spellcasters. As of version 0.9, it now has a graphical
7 interface, which can be brought up via a slash command or bound to a hotkey through the Key Bindings interface.
8 This readme will be split into two parts, the first describing how to use the GUI, and the second describing
9 the functions this AddOn adds that can be used in macros.
10  
11  
12 This AddOn makes extensive use of two features that are not native to WoW:
13  
14 Passive Party Targetting(TM)(ok not really TM)(i actually stole this from one of the stickied
15 forum threads):
16 The passive party targetting, or PPT system, uses a variable to make it possible to cast
17 many spells on a party member while in combat, without switching away from your current
18 target. It's used in many of these functions, and requires that you bind keys to the four
19 PartyTarget#() functions (bindable through the Key Bindings interface). I've found this
20 immensely useful -- it required a little shift of my usual play habits, but after you get
21 used to it it's much faster and easier than trying to click around and change targets all
22 the time. It is (for the most part) optional, though i haven't gone to the trouble to code
23 each function so that it is actually disabled (if you don't want this, why are you downloading
24 the AddOn anyway?). If people request this ability in the future, i might put some time into it,
25 but for now that's how it is. Read the spell descriptions and you'll understand how PPT works.
26  
27 ------NOTE: As of version 1.4, it IS possible to get PPT and Telo's SelfCast to work together. It only requires a simple addition
28 to the SelfCast.lua file. Just open the file, scroll down to the end, hit return a few times and add the following text:
29  
30 function BA_UseAction(id, type, self)
31 lOriginal_UseAction(id, type, self);
32 end
33  
34 This way, you can use BuffAhoy with PPT enabled and still use SelfCast.
35  
36  
37 Also i'd like to mention one "bug" with the PPT system: So far i have not been able to get it to
38 recognize when the target is out of range, so often it will attempt to cast the spell and find out
39 the target is out of range, and thus fail, but still report to the party that the spell has been cast.
40 I'm pretty sure there's no way around this, because of the way the PPT system works and the limitations
41 of the API functions blizzard makes available to us.
42  
43 SmartCasting(TM)(again, not really)(very similar to Telo's SelfCast, but kinda different)
44 SmartCasting is similar to the SelfCast AddOn by Telo, but it's got 2 major differences:
45 1) SelfCast uses Alt to cast on yourself
46 2) SelfCast affects all spells -- In this addon, only certain functions use the
47 SmartCast system, others don't. The readme should mention which ones do and don't.
48  
49 My play style centers around Shift as my self-cast button, so that's what i've used in this
50 Addon. You can choose Shift or Alt to be your self-cast button in the Options section of the GUI.
51 The default is Alt.
52  
53 slash commands:
54 "/ba toggle" will toggle all verbosity settings (this isn't really that useful, but it's there if you want it)
55 "/ba config" will bring up both BuffAhoy configuration panels ('/ba buffs' and '/ba caster' still work, for legacy users)
56 "/ba help" will display a very brief list of slash commands
57  
58  
59 I. Quick-start guide to BuffAhoy.
60 This will give you step by step instructions on how to get BuffAhoy set up for the first time.
61  
62 1. Open the BuffAhoy zip file, and extract the contents to "C:\Program Files\World of Warcraft\Interface\Addons\".
63 This should create a BuffAhoy folder underneath the AddOns folder. Inside the BuffAhoy folder there should be
64 7 files. If it looks like you've done this correctly, move on to step 2.
65 2. Start the game. When you log into the server, you should see a message in the Chat log that says "Theck's BuffAhoy
66 Loaded". If you don't see this, go back to step 1. If you do, or you're not sure, type "/ba config" at the chat
67 line. This should bring up the BuffAhoy configuration panel, if it doesn't, then go back to step 1.
68 3. Open your spellbook, and drag spells into the buffing configuration slots for each class. You can also drag spells
69 into any of the other functions in the interface. If you're using a SelfCast addon, then you may want to disable
70 PPT in the interface by unchecking "PPT enabled", or disable your SelfCast addon.
71 4. Now open the Key Bindings menu (Escape->Key Bindings) and scroll down to the "BuffAhoy Binds" section. Bind keys to
72 the following functions:
73 Buff Sequence 1
74 BuffAhoy Config
75 you can also bind keys to any other functions you want to use. If you intend on using the Passive Party Targetting
76 system (read below), then bind keys to the PPT targetting functions (i.e. PPT Target Party 1, etc).
77 5. Close the key bindings menu, and start using BuffAhoy!
78  
79  
80  
81 II. The BuffAhoy GUI
82  
83 To use BuffAhoy through the GUI, go to Key Bindings and bind a key to "BuffAhoy Config" and then bring up
84 one of the configuration panels. Alternatively, you can type '/ba config' to bring up the configuration panel. You can select
85 the particular functions you want to edit with the "BuffAhoy Navigation" dropdown box. You can drag spells from your spellbook
86 into the slots in any of the sections, referred to as "panes" from here on.
87  
88 The Reset Button
89 The button to the left of the Exit button on the GUI will reset the entire frame (removing all spells from
90 their slots). Not sure how useful this is, but it's there if you want it.
91  
92 The Verbosity Mode dropdown
93 The verbosity mode dropdown box will change the channel to which verbose functions will send their messages. This
94 defaults to "party" every time you start the game. Options are "Party", "Raid", and "Say".
95  
96 1. The BuffCasting Pane
97  
98 The Buffcast pane has functions mostly applicable to Paladins and Druids, but any class can use them.
99  
100 The 'Buffing Mode' dropdown box toggles between Individualized buffing mode and Class-based Buffing mode. In individualized
101 mode, you can specify which buff each party member gets, in order, for 1 buff sequence, as well as 2 buff sequences that cast
102 the same 1 buff on each party member. In Class-based buffing mode, a different interface is brought up, which lets you
103 specify 1 buff for each class type in the first sequence, as well as 2 sequences which apply the same buff to the entire party
104 or raid group. Note that Class-based mode works in raids or regular parties, while Individualized Mode is only for regular parties.
105 To use these you must bind keys to "Buff Sequence 1" through "Buff Sequence 3" in the Key Bindings page.
106  
107 Using BuffCast Sequences:
108 Individualized Mode: The first sets of buttons next to "Buffs" are the buffs you will cast on yourself, each party
109 member, and each party pet, as labelled above each slot. To use BuffCast, you must bind a key to "Buff Sequence 1"
110 in the Key Bindings control panel (through the main interface). Pressing that button several times sequentially will
111 buff each party member with the buff located in that GUI slot.
112  
113 The set of slots below sequence 1 are unused at this point, and are a place to put extra buffs from your spellbook so you
114 can switch buffs around quickly without having to open your spellbook.
115  
116 BuffCast Sequences 2 and 3 will try and buff the entire party with the same buff (you still need to press the
117 button multiple times, of course).
118  
119 BuffCast will automatically try and buff pets if a spell is put in the "pets" slot. It checks for pets every time combat
120 ends, so it will usually be up-to-date. You can bind a key to the 'PetCheck()' function in the GUI if you want to run
121 petcheck other times (for example, if someone's pet has died during combat and they resummon it before you start buffing.
122  
123 BuffCast has several verbosity options. The check buttons below the second set of buffs allow you to choose
124 either Verbose, Quiet, or Silent (both unchecked) modes.
125  
126 Class-Based Mode: The 8 slots in sequence 1 are labelled according to class type. Drag a buff into
127 each slot to specify what buff that class will receive when you run Buff Sequence 1. Sequences 2
128 and 3 will buff every raid or party member with the buff in the Seq. 2 or Seq. 3 slot. The verbosity settings are
129 identical to that of BuffCast.
130  
131  
132 2. The Multi/ShoutCast pane
133  
134 The Multicast pane has functions that are more useful to casters like Mages and Warlocks, but any class can use them.
135  
136 a) Using MultiCast Sequences: The two sets of buttons next to "MultiCast" are the spells you will cast sequentially.
137 To use MultiCast, you must bind a key to "MultiCast Sequence 1" or "MultiCast Sequence 2" in the Key Bindings control panel
138 (through the main interface). Pressing that button several times sequentially will cast the next spell on the list.
139  
140 The MultiCast slots generally assume that you are targetting a hostile unit, though if you do not have one targetted they
141 will still attempt to cast using the PPT system. The checkbox at the top allows you to enable or disable Verbosity in the
142 Multicast sequences.
143  
144 ------ NOTE THAT MULTICAST SEQUENCES USE A MODIFIED VERSION THE PPT SYSTEM THAT WILL CAST ON HOSTILE TARGETS!!
145  
146 b) Using ShoutCast buttons: The four buttons below MultiCast are ShoutCast buttons. Spells placed in these slots will be
147 cast using the ShoutCast algorithm, which announces to the party what spell you are casting and the target of the spell.
148 The checkboxes to the right toggle the verbosity (in case you only want to use the slot for selfcasting) and whether the
149 slot uses the SmartCast algorithm. Note that the "SmartCast enabled" setting will override this, if it's disabled.
150  
151 ------ NOTE THAT SHOUTCAST BUTTONS USE A MODIFIED VERSION THE PPT SYSTEM THAT WILL CAST ON HOSTILE TARGETS!!
152  
153 3. The Utility pane
154  
155 The Utility Pane has six "Utility Spell" slots: There are 6 slots, named "Heal 1", "Heal 2", "Heal 3", "Cleanse 1", "Cleanse 2",
156 and "Protect". These are slots that are designed for utility spells, appropriate to the names. You can drag any spell to
157 these slots, of course, the names are just a suggestion.
158  
159 The check boxes to the right toggle the verbosity and whether the spell uses the SmartCast algorithm. Note that disabling the
160 "SmartCast enabled" checkbox in the Options pane will override the individual ones.
161  
162 These slots use the Passive Party Targetting system, so here is a quick description of how it works. First,
163 bind a key to the "Target Party 1" through "Target Party 4" functions through the Key Binding configuration.
164  
165 Now, if you are targetting a friendly target and press the button bound to "Heal 1", you will heal that
166 target (whether they are in your party or not).
167 If you instead target a hostile target, or no target at all, it will cast the heal spell on the current
168 "PartyTarget". You can set the "PartyTarget" by pressing the keys bound to the "Target Party #" functions.
169 example: if F3 is bound to "Target Party 3", and "H" is bound to "Heal 1", then the sequence:
170 F3, H
171 will set the 3rd party member as the passive target and cast the healing spell on them, without breaking
172 your current combat target. Party member 3 will remain the passive party target until one of the other
173 "Target Party #" functions are called (by pressin the appropriate key bind).
174  
175 These slots also (optionally) use the SmartCast algorithm, so if you're holding the smartcast key while pressing the
176 button bound to this function, you will cast the spell on yourself instead. You can disable this by unchecking the
177 checkbox next to the button.
178  
179  
180 Using Protect:
181 The button beneath "Protect" is the button used in the verbose protection function, Protectzor. You should
182 drag a protection spell (paladins: Blessing of Protection, other classes: ?) to this slot, and bind a key
183 to "Protect Party member" in the Key Bindings Config.
184  
185 A special mention needs to be made of this slot, because it is designed for a paladin's Blessing of Protection.
186 BoP is only castable on party members, so the logic used for this slot reflects that, and will give you an error
187 message if you try and use it on other people. Keep this in mind if you decide to use this slot for a spell'
188 that doesn't have this limitation.
189  
190  
191 4. The Options Pane
192  
193 The Options pane contains all of the major options for BuffAhoy. Here's a rundown of the options:
194  
195 a) PPT Enabled -- This Option will enable or disable the Passive Party Targetting system. See above
196 for a description of how PPT works. If you disable this, BuffAhoy will actively target everything.
197  
198 b) SmartCast Enabled -- This Option enables or disables the BuffAhoy SmartCast algorithm, which
199 auto-targets you if the SmartCast button is held down. The SmartCast button can be chosen by the
200 dropdown box to the right of this option, you can use either Alt or Shift. Remember that
201 SmartCast ONLY applies to certain functions in BuffAhoy, not all spells cast.
202  
203 c) Wait on Mana/Range when Buffing -- This option will cause you to target each player during a buffcast sequence when
204 outside of combat. As a result, it will wait until you have enough mana and your target is
205 in range. This is useful if you don't want to skip someone while buffing because they're out
206 of range. Again, this only activates if you're outside of combat.
207  
208 d) Verbose Multicasting -- This option will make multicast sequences verbose, thus announcing each spell
209 in the sequence.
210  
211 e) Enable Status Messages -- This option will toggle the chat frame status messages for cooldown and mana checks
212 (i.e., this will disable the "Patience, young padawan" message).
213  
214 f) Enable Failure/Interruption Messages
215 -- This option will toggle the "Spell Failed", "Spell Interrupted", and "Spell Delayed"
216 messages that occur for verbose functions when the appropriate events happen.
217  
218 g) Force Class-Based Buffing to ignore Raid
219 -- This option will force the Class-Based buffing algorithm to buf only your immediate
220 party, even if you're in a raid group.
221  
222 h) Show PPT Frame -- This toggles the visibility of the PPT Frame. The PPT frame is a draggable box
223 that shows the name of the current target of the PPT system. It's mostly for reference, so you can
224 see at a glance who you'll cast on when you use a BuffAhoy PPT-enabled function.
225  
226 ------- EVERYTHING BELOW THIS LINE IS FOR ADVANCED OR LEGACY USERS. IF YOU ARE NOT ADEPT AT MACROS, IT'S PROBABLY NOT WORTH YOUR TIME TO READ THE REST OF THE README --------
227  
228  
229 III. The BuffAhoy Macro Interface
230  
231 All of the major functions which can be bound via keys can also be called with a slash command, such as:
232  
233 /ba buff1 (Buff Sequence 1)
234  
235 the other functions are as follows:
236 /ba buff2 (Buff Sequence 2)
237 /ba buff3 (Buff Sequence 3)
238 /ba heal1 (Heal 1)
239 - /ba heal3 - (Heal 4)
240 /ba cleanse1 (Cleanse 1)
241 - /ba cleanse2 - (Cleanse 2)
242 /ba protect (Protect)
243 /ba multi1 (Multicast Seq 1)
244 /ba multi2 (Multicast seq 2)
245 /ba shout1 (shoutcast 1)
246 - /ba shout4 -(shoutcast 4)
247  
248 Alternatively, you can access the base logic functions as described below.
249  
250 BuffAhoy adds the following functions, which can be called in macros:
251  
252 Macro-Enabled Functions: (NOTE, this list is out of date as of 4/12/05, i'll try and update it by the next patch. In particular, it omits BBoC)
253 Cleanzor() Cleansing script
254 Healzor() Healing script
255 BuffCast() Buff casting sequencer for whole party
256 Protectzor() Protection script
257 Smartzor() Smartcasing script
258 ShoutCast() Verbose Casting - announces the target and spell being cast to party
259 MultiCast() Casting Sequencer, basically CastAway using action id's instead of names
260 MultiShoutCast() Verbose Casting Sequencer, read the description
261 BandAid() Action/Bandage script, designed for a rogue, but included for fun
262 UsableCheck() Checks to see if a spell is usable (mana/cooldown/range checks).
263 PetCheck() Function that checks the party for pets, should be run before BuffCast
264 PartyTarget1() -
265 PartyTarget4() Party Targetting functions to work with Cleanzor,Healzor, SmartCast,etc
266 Sets PartyTarget variable to one of the party members (PPT system)
267 PetTarget1()-
268 PetTarget4() Pet Targetting functions for the PPT system
269 PetTargetMine() Pet Targetting function for the PPT system
270  
271  
272 To use the macro version of BuffAhoy, bind keys to the four Party Target functions and PetCheck() in the
273 Key Bindings page, and then create a macro and type in the appropriate syntax:
274  
275 /script Cleanzor(spellid)
276 1 optional argument.
277 Required:
278 spellid is the action bar id of your Cleanse spell. It is only needed if you want the castable
279 checks (i.e. checks for enough mana, cooldown, and range) to work. Except that at the moment
280 they don't. Oops. Working on this.
281  
282 This script casts Cleanse on current target if it is friendly, or yourself if shift
283 is being held down (using the SmartCast system). If target is hostile or there is no target, it will cast the spell
284 on the current party target (without breaking combat!). This is basically Smartzor() but with
285 a customized party message.
286  
287 This script can be run in verbose or silent mode. In silent mode, the party message is omitted.
288 This is togglable through the GUI
289  
290  
291  
292 /script Healzor(spellid, "Spellname(Rank X)")
293 1 required argument, 1 optional argument.
294 Required:
295 spellid is the action bar id of the heal spell you want to cast.
296 Optional:
297 "Spellname(Rank X)" is the name of a healing spell you know, but do not have in your action bar.
298 To use this optional argument, you must set the first argument to zero. Also note that using this
299 optional argument will disable the castable checks (mana, cooldown, and range).
300  
301 This will cast that spell on the current target if it is friendly. If the target is hostile or
302 there is no target, it will cast the spell on the current party target (without breaking combat!).
303 This script is also verbose, in that it tells the party who you're trying to heal, or that you
304 do not have mana to heal them.
305  
306 example: /script Healzor(12)
307 will cast the spell in slot 12 on the appropriate target, and announce to the party the name
308 of the character you are healing.
309  
310 example: /script Healzor(0, "Flash of Light(Rank 3)")
311 will cast a rank 3 Flash of light on the target. This will become more useful if i get around to
312 implementing the system i eventually hope to use, that would cast the highest level heal spell
313 the caster currently knows as a default. Maybe i'll get around to that next patch.
314  
315 This script can be run in verbose or silent mode. In silent mode, the party message is omitted.
316 The verbosity can be toggled via the GUI.
317  
318  
319  
320 /script BuffCast("Name", timeout, petbuff, yourbuff, party1buff, party2buff, party3buff, party4buff)
321 3 required arguments, 1-5 optional arguments.
322 Required:
323 "Name" is the name of the current buffset (makes it possible to have several different buff
324 arrangements). This is identical to the format of CastAway and serves the same purpose.
325 timeout is the time (in seconds) before the script resets to targetting you again
326 petbuff is the number of the action you want to perform on all party pets
327 (i.e. if Blessing of Might is on your Action Bar in slot 4, then making this value 4 will
328 cause all party pets to receive that blessing). This works with the bindings in Flexbar.
329 To use actions on other bars, add 12 for each bar you've scrolled (ex. first bar is 1-12,
330 second is 13-24, etc).
331 Optional:
332 yourbuff is the number of the action you want to perform on yourself (see above)
333 party1buff is the number of the action to be taken for party member 1
334 party2buff is the number of the action to be taken for party member 2
335 party3buff (see above)
336 party4buff (see above)
337  
338 This script will cast the predefined buffs (passed as arguments to the function) on the respective party
339 member.
340 This script is also "smart", in the sense that it will automatically cast buffs on each party
341 member's pet. For this to work, the PetCheck() function has to be run at least once so that the
342 function knows what pets the party has. Read the description for PetCheck() for more information.
343  
344 It will also not attempt to cast a buff if the action is not usable, costs too much mana,
345 is still cooling down, or is trying to target a party member that doesn't exist. It is NOT smart enough
346 to avoid trying to cast if your target is out of range however.
347  
348 To use this function, you must press the key bound to this macro once for each party member
349 and pet (including yourself).
350  
351 example Macro:
352 /script BuffCast("defaultBuff", 20, 4, 5, 6, 86, 32)
353 This will cast the spell in Action Slot 4 on all party pets, Action Slot 5 on you, action
354 slot 6 on party member 1, 6 on party member 2, 86 on party member 3, and 32 on party member 4.
355  
356 This script can be run in verbose, quiet or silent mode. In silent mode, the party messages are omitted,
357 while in quiet mode the messages are instead sent to the default chat frame (only visible to you).
358 The verbosity can be toggled in the GUI.
359  
360  
361 /script Protectzor(spellid)
362 1 required argument.
363 Required:
364 spellid is the action bar id of the protection spell you want to cast
365  
366 This string is a verbose script for casting a Blessing of Protection spell on a party member.
367 It doesn't use the SmartCast system, but it does use the PPT system (so you can protect someone
368 while in combat without breaking target, but you can't use this one on yourself). I might add
369 the smartcast functionality in the future, but for right now it's disabled (mostly because my personal keybind
370 for this involves Shift).
371  
372 This script can be run in verbose or silent mode. In silent mode, the party message is omitted.
373 The verbosity can be toggled in the GUI.
374  
375  
376 /script SmartPPT(spellid, saystring, verbose, smart)
377 1 required argument, 3 optional arguments.
378 Required:
379 spellid is the action bar id of the spell spell you want to cast.
380 Optional:
381 "saystring" is a string that is used in the party chat statement made by this script
382 verbose is a toggle for verbosity, if set to 1 the script will be verbose. If set to 0 this
383 will disable the verbosity of the function.
384 smart is a toggle for smartcastability, if set to 0 the script will NOT use the smartcast algorithm.
385  
386 This script is a smart-cast script. It will cast the spell in Action Slot spellid on the current
387 target if it is friendly, or yourself if shift is being held down. If the current target is
388 hostile or there is no target, it will cast the spell on the current party target (without
389 breaking combat!). This is also verbose for the party (it will report your action to the
390 whole party), and should give you error messages if the action isn't usable due to cooldown,
391 mana, or range (though the range check doesn't work with the Passive Party Targetting system
392 yet).
393  
394 example:
395 /script SmartPPT(8, "Casting the Best Spell Ever on")
396 will cast the spell in action slot 8 on the appropriate target (read above), and send the
397 following message to the party (lets assume your target's name is Bob):
398 "Casting the Best Spell Ever on Bob"
399 Since verbose and smart are omitted, they will default to true (1)
400  
401 note that you can omit "saystring", which will just shut off the party message
402  
403  
404 /script ShoutCast(spellid, "saystring", verbose, smart))
405 1 required argument, 3 optional argument.
406 Required:
407 spellid is the action bar id of the spell you want to cast.
408 Optional:
409 "saystring" is a string that is used in the party chat statement made by this script
410 verbose is a toggle for verbosity, if set to 1 the script will be verbose. If set to 0 this
411 will disable the verbosity of the function.
412 smart is a toggle for smartcastability, if set to 0 the script will NOT use the smartcast algorithm.
413  
414 This script is a verbose casting script. It will inform the party of the target of the current
415 spell, as well as a user-defined string describing what you're casting. You're probably asking
416 yourself what the difference is between this and Smartzor(). The answer is that this does NOT
417 use the Smart Casting or Passive Party Targetting systems. This is for spells like Polymorph,
418 which you wouldn't use on a friendly or party member.
419  
420 example Macro:
421 /script ShoutCast(4, "My Favorite Spell")
422 This will cast the spell in action slot 4 and send the following message to party chat
423 (assuming you're targetting me, and i'm not on your faction):
424 "Casting My Favorite Spell on Theck"
425  
426 note that you can omit "saystring", which will just shut off the party message (making the
427 function rather useless). Also, omitting verbose and smart defaults them to true (1)
428  
429  
430 /script MultiCast("Name", timeout, spell1, spell2, ...)
431 2 required arguments, 1-? optional arguments.
432 Required:
433 "Name" is the name of the current buffset (makes it possible to have several different buff
434 arrangements). This is identical to the format of CastAway and serves the same purpose.
435 timeout is the time (in seconds) before the script resets to step 1
436 Optional:
437 spell1, spell2, ... are the numbers of the action bar slots of the spells to be cast, in the order
438 they are listed in the macro.
439  
440 This script will cast spell1 on the first keypress, spell2 on the second keypress, etc. It will
441 recycle back to spell1 at the end of the list, or after a period of inactivity set by the
442 "timeout" variable (in seconds). This is functionally identical to CastAway, but it uses Action
443 ids instead of Spell Names. While i say there are only 2 required arguments, this is completely
444 useless unless you use at least 2 spells, bringing the total to 4 arguments.
445  
446 example Macro:
447 /script MultiShoutCast("SpellSequence", 20, 8, 9, 10)
448 will do the following:
449 First Keypress:
450 Casts the spell in action slot 8
451 Second Keypress:
452 Casts the spell in action slot 9
453 Third Keypress:
454 Casts the spell in action slot 10
455  
456 /script MultiShoutCast("Name", timeout, spell1, "saystring1", spell2, "saystring2", ...)
457 2 required arguments, 1-? optional arguments.
458 Required:
459 "Name" is the name of the current buffset (makes it possible to have several different buff
460 arrangements). This is identical to the format of CastAway and serves the same purpose.
461 timeout is the time (in seconds) before the script resets to step 1
462 Optional:
463 spell1, spell2, ... are the numbers of the action bar slots of the spells to be cast, in the order
464 they are listed in the macro.
465 "saystring1","saystring2", ... are strings used in the party chat statements made by this script
466  
467 This script will cast spell1 on the first keypress, spell2 on the second keypress, etc. It will
468 recycle back to spell1 at the end of the list, or after a period of inactivity set by the
469 "timeout" variable (in seconds). What makes this different than MultiCast() is that this script
470 is also verbose, so it will send messages to the party when you are casting each spell. Replacing the
471 "saystring#" argument with nil will result in no message for that step.
472  
473 example Macro:
474 /script MultiShoutCast("FunSequence", 20, 8, "First Spell", 9, nil, 10, "Third Spell")
475 will do the following:
476 First Keypress:
477 Casts the spell in action slot 8
478 Sends Message to the party: "Casting First Spell on TargetName"
479 Second Keypress:
480 Casts the spell in action slot 9
481 Third Keypress:
482 Casts the spell in action slot 10
483 Sends message to the party: "Casting Third Spell on TargetName"
484  
485 /script UsableCheck(spellid, verbose, "manastring", "cdstring", "oorstring")
486 1 required argument, 4 optional arguments.
487 Required:
488 spellid is the id number of the action bar slot of the spell being checked.
489 Optional:
490 verbose is a toggle for verbosity of the function. If a 1 is passed, it will give feedback in
491 the default chat frame or party chat depending on whether a string is passed in one of the next three arguments
492 "manastring" is a string that is used in the party chat announcement for an out of mana error
493 "cdstring" is a string that is used in the party chat announcement for a cooldown error
494 "oorstring" is a string that is used in the party chat announcement for an out of range error
495  
496 This function returns true if the slot is usable, else it returns nil.
497  
498 /script BandAid("SpellName(Rank X)", bag, slot)
499 3 required arguments.
500 Required:
501 "SpellName(Rank X)" is a spell or ability known by the player
502 bag, slot are the bag/slot coordinates of the bandages in your inventory. Bags start at
503  
504 starting with 1. so 0,3 would be the 3rd slot across the top row in your backpack, and
505 3,1 would be the top left slot of your third bag.
506  
507 This script is similar to the BuffCast script, except it toggles between 2 actions, one of which
508 is a spell or ability and the second of which is the use of an item on yourself from a particular
509 location in your backpack. To use this, press the key bound to this macro twice AFTER highlighting
510 your target. The first press will cast the desired spell on the target (if possible), and the
511 second press will attempt to use the item in your inventory at location (bag, slot) on yourself.
512 This was written for a Rogue who wanted to Gouge and then Bandage right afterwards.
513  
514 /script RaidCheck(loud)
515 1 optional argument.
516 Optional:
517 loud is either 1 or 0 -- when set to 1, the function runs silently, when set to 0, it will spit out the name
518 and level of every raid member to the Default Chat Frame.
519  
520 /script RaidCast(cast_id, timeout, id)
521 2 required arguments, 1 optional argument.
522 Required:
523 cast_id is a string describing the sequence, only used to create the data array
524 timeout is an integer number of seconds before the sequence will reset
525 Optional:
526 id is the action bar slot of a buff. This is used to override the class-based buffing that is the default
527 mode for RaidCast. If id is non-nil, it will attempt to buff every raid member with the spell in slot id.
528  
529 Note that you cannot call this function without using the action bar slots if you want to use the class-based
530 buffing algorithm.
531  
532 Bindable Functions:
533  
534 PetCheck()
535 No arguments
536 This script will check the party for pets. It does this by trying to target each party member's pet, and
537 storing the names it finds in an array that gets used in BuffCast. It will check to see if you have a hostile
538 target first, and if so, it will restore that target after it checks the party for pets (though it won't
539 attack that target afterwards). I considered running this every time BuffCast was used, but i decided against
540 it so that BuffCast could be cast in combat without ever breaking target.
541  
542 As a result, this should be used once before BuffCast is used (otherwise it won't try and buff pets). However,
543 it does NOT need to be cast before every buff -- as long as the party's pets haven't changed, running PetCheck()
544 again won't do anything useful for you.
545  
546 Any time a party member gets a new pet, or loses a pet, or changes a pet, PetCheck() should be run so that
547 BuffCast can accurately buff the party.
548  
549  
550 PartyTarget1()
551 This will set the PartyTarget (the passive target for PPT-enabled scripts) to party member 1. If the
552 "PPT Enabled" box is unchecked, this will actively target the respective party member.
553  
554  
555 PartyTarget2()
556 See above, but replace 1 with 2 everywhere. Same goes for 3 and 4.
557  
558  
559 PetTarget1()
560 This will set the PartyTarget to the first party member's pet (not counting yourself). Same goes for 2-4.
561  
562 PetTargetMine()
563 This will set your pet to be the current PartyTarget.