vanilla-wow-addons – Blame information for rev 1
?pathlinks?
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. |