Pat's Place WoW Addon: Druid Func |
||
Linkback to Curse Gaming Page
DruidFunc is a collection of useful scripts that make your life as a druid easier and better.
The original DruidFunc library was written by Gabraelle. This substanital update and modification
was written by Patrick Hunlock (AkA Amid on Hyjal (alliance) and Dark Iron (horde).
The autodetection of the maximum spell rank was inspired by Adora's druid func modifications at
http://www.gerdofal.net/wow/druid_mod.html.
Many people have sent in bug reports, comments, and suggestions which have really increased the quality of this
mod. A few of the most notable contributors are Bitbyte of Icecrown, Joave (Alliance/Shadowsong EU), Threbrilith, Kagar of Azgalor and
Salex. Now with the credits out of the way, here's what you came for...
The important features of this library are:
Druidfunc is an extension of the WoW default interface. Great pains have been made to not interfere with the visual interface in any way. Druidfunc doesn't change how you see the game and it tries to be as unobtrusive as possible while you are playing the game. For the casual user, Druidfunc gives you access to most of your druid abilities through key binds, the ability to bind a specific key to a specific ability, say "F" for Faerie Fire, or "H" for healing touch. This makes those abilities available to you regardless of which toolbar you have up at any one time (and we've all fumbled the toolbar before!) Many of these bindable abilities have been extended and enhanced. For instance Faerie Fire, when bound to a key will work in both feral forms (if you have the talent) and humanoid. Prowl will shadowmeld you if you're a night elf in humanoid form and stealth you if you're a cat. And Healing touch does some amazing mana conservation tricks! You can also set up macros to access the various druidfunc abilities and drag them to your toolbars, and it's highly recommended that you use a balanced mix of keybinds and macros on your toolbar to use Druidfunc most effectively. For the advanced user Druidfunc gives you a toolbox to write your own complex macros using druid func's procedures and tools. Want to check for a buff, shapeshift, and equip a different weapon? All the tools to do that are right here. To install druid func click on the folder at the top of this page. Uncompress the folder in your /World of Warcraft/Interface/Addons/ directory. This should create a new folder called DruidFunc in the above directory. Now simply log in and the druidfunc scripts will be available to you. Note that on your non-druid characters you should go to the "addons" button on the character selection screen and disable this mod. It won't hurt anything if you don't but every addon slows wow just a little bit and a lot of addons can add up quick so it's best to turn off what you're not using. IMPORTANT It's very important that you turn off blizzar's auto-self cast as this interferes with the proper operation of druidfunc. To do this, hit ESC, Interface options, and then uncheck "auto self cast" in the controls (top section) section. There are three ways to use druidfunc. You can create a bunch of macros or you can bind them to keys, or you can do both! Once installed simply start WoW, hit ESC, "keybinds" and scroll down to the druid abilities you can now bind to keys. If you'd like a little more flexibility then you can create a bunch of macros. The macro commands are documented in the "macro" section. You can customize some of druidfunc's settings with the /druid command (you can use /df as a shortcut if you want.) If you just type /druid (or /df) you'll get a list of all the options and the current settings. There are a lot of options tho, so you may have to scroll up in your chat window a bit to see them all. Between keybinds and macros druidfunc puts a world of functionality at your fingertips. It won't play your druid for you but in addition to noticably improving your overall abilities it will make playing your druid a lot more natural, seamless, and fun. Druidfunc lets you bind almost all of your abilities to the key of your choice. This frees you up from the action bar and lets you have crucial abilities at your fingertip no matter what action bar is on the screen at any given time. To set up keybinds, log onto your druid and hit the "ESC" key. Press the "Key Bindings" button and scroll down to the "DruidFunc Library" section. Now simply find the action you want, press the "not bound" button and hit the key you'd like to use for that action.
Rejuvenation and Regrowth When rejuvenation gives you a warning that the spell is already on, it will not recast the spell. For a lot of people this is disruptive. If you'd like rejuvenation to be just plain old rejuvenation (with the self targeting and level adjusting) then you can set up a macro using the Druid.Rejuv() function. Healing Touch Healing Functionality /Druid ManaC [10-100, silent, announce] /Druid PlusHeal (#, auto, off) If you use the hibernation crystal or the zandalar hero charm then while the buffs are active your plusheal offset is increased by the value of the buff (the zandalar is calculated at a flat 400 bonus for the duration). /Druid PlusHeal without anything following it will give you a lot of information about your character including your present +heal numbers, your spirit regen, even an estimate of how much mana you get back on innervate. Desperate Prayer Power Touch Druidfunc implements an automatic outfitter that will change your armor and weapons when certain events happen. For instance shifting into bear form can equip all your tanking gear, shifting into cat form can equip all your dps gear, etc. Because this is a fairly complex system, the outfitter starts out completely disabled. You access the outfitter with the /doutfit command, you can also use /do as a shortcut. There are three specific modes. /doutfit outfit will swap all your gear (both weapons and armor). You must specifically enable the outfitter. To do this, issue the following command... /DOutfit on Outfit swapping is now enabled but only for weapons! To enable complete outfit changes issue the following command... /DOutfit outfit If you ever want to go back to just weapon swaps use the command /DOutfit weapon To save an outfit simply equip what you want to wear then type /DOutfit {name} save where name is one of the set names described below. The mod will take a snapshot of the gear you're using. For instance equip all your riding gear and type /Doutfit mount save this will take a snapshot of everything you're currently wearing and save that as your mount set. The available set names: Mount: This outfit is equipped whenever you mount up. Mana: This outfit (well just weapons) is equipped when your mana falls below 85% (only in combat) Innervate: This outfit (just weapon) is equipped when you cast innervate. Cat: This outfit is equipped whenever you switch to cat form. Bear: This outfit is equipped whenever you switch to bear form. Travel: This outfit is equipped whenever you switch to travel form. Aqua: This outfit is equipped whenever you switch to your aquatic form. Moon: This outfit is equipped whenever you switch to your moonkin form (heh). In addition to the above automatic sets there are some extra sets available for special situations. These sets are.... Fire: Hold your fire resistance set. Nature: Hold your nature resistance set. Frost: Holds your frost resistance set. Shadow: Holds your shadow resistance set. Arcane: Holds your Arcane resistance set. WSG: Holds your WSG set. PVP: Holds your PVP set. Heal: Holds a +heal armor set. Temp: Is a temporary set that is not saved between games. Special1: Holds whatever you want. Special2: Holds whatever you want. Special3: Holds whatever you want. So now you have all of these sets, it's time to use them. If you have /doutfit set to outfit then all of your armor is going to automatically change. The first few sets will be equipped AUTOMATICALLY for you when you shift into the associated form. When you shift out it will go back to your human set unless you've specifically set up one of the extra sets (more on that later). Mana and Innervate are two special sets that are triggered in your caster form. When you use innervate the innervate set (well only its weapons) will be equipped, this lets you switch to a high spirit staff and get every last point of mana out of innervate. Mana will automatically be equipped (again only weapons since you'll be in combat) when your mana pool falls below 85%. This lets you start out with a high int staff and as the fight progresses and you burn off that extra intellect the outfitter will swap you to a different weapon that emphasizes spirit or +heal, anything you want which you feel will contribute to the fight after the extra starting intellect is no longer needed. Now for the extra sets. By default this mod will go back to human gear after a fight or when you zone, you can change this behavior by doing a /DOUTFIT {name} where {name} is the name of your special set. So if you're fighting lava packs in molten core and you need your fire resist gear on (and to stay on) you'd type /doutfit fire. This will immediately equip your fire resist gear and just as importantly, if you shift, or leave combat you will still stay in your fire resist gear when you get back to humanoid form (or leave comabt). When you zone or type /doutfit human you'll go back to using your default humanoid gear. Once a set is defined the mod will attempt to equip all the items in the set whenever you shift, or cast innervate, or run low on mana. You can turn a specific set off by using the command.. /doutfit {name} off. for instance if you decide you no longer want a low mana set you'd type /doutfit mana off. The {name} off command completely removes the set, if you decide you want the set back you'll need to re-equip it and do a save. The sets and your preferences are saved for you between sessions with one exception. The temp set is not saved. It's just there for temporary situations (like a special pvp case) where you'll be getting in and out of a set for the next few hours but probably never again. Of all the outfits, mana and innervate are, arguably, the most important. For the most part you want to start out with a very high int weapon as your human set. When your mana hits 85% or lower, the mod will switch you to your mana set which is either a high mana/5 staff or a strong +heal staff. You want high int to start the fight but after you've cast a few spells that extra int isn't doing anything for you so this mod seeks to equip a weapon that will be of more use. Of course for innervate staff you want the very highest spirit weapon you can get, be it will of arlokk, soulkeeper, or dancing sliver. Even if you decide not to use the outfitter you should at least consider keeping enough of it enabled to allow for mana and innervate swaps. Outfit swapping on shift and mount is very useful in almost every case. However there are situations where the outfitter will work against your wishes. Some examples of this are if you want to stealth in pvp and pop up to heal, when you go cat you'll wear your feral gear and instantly lose all your mana pool because feral gear doesn't have int on it. Another example is you equip all your fire gear for the lava packs in MC and when the battle is over you're instantly back in your default casting gear and you have to track down all your fire gear all over again. After a while you'll get used to using /doutfit off and /doutfit on to disable and then re-enable outfit changes but it will take some time for this to be seamless. If you find complete outfit changes too intrusive then consider /doutfit weapon to allow only weapon swaps and not complete wardrobe changes. I personally use outfitter in weapon mode only, but I use /do (outfit name) often to swap outfits. Even if you have the outfitter turned off if you type /do fire then it's going to equip your fire resist set for you, it won't do anything else until you give it another command though. Additional Macros:
To equip a specific weapon: To swap between two weapon sets: Since both warden staff and unstoppable force are both 2 hand weapons the off-hand weapon name is left empty. To swap between two weapon sets AND idols:
To equip a set: Quick FAQ... Q] Why aren't low mana swaps working? Q] When I shift out of feral forms why aren't my human/low mana weapons equipped? Q] Why doesn't my human/low mana weapon equip when innervate ends? DruidFunc contains some powerful tools to help you harness the power of your feral abilities. You can begin by binding your shapeshifting abilities to permanent keys. While there is support for aquatic form, you don't really need to bind that form since druidfunc will automatically put you in aquatic form if you request travel form in water. By default hitting your shapeshift key will merely toggle you in and out of that form. If you hit the bear key , you will shift to a bear and if you hit the bear key again it will shift you back to human. If you're human and press the humanoid key it will target yourself. This means you can bind F1-F4 to be shapeshifting keys and if F1 is your humanoid form the key will still work as a self-target key if you've grown used to that default wow behavior. Unlike the default interface, DruidFunc will always try to give you the form you requested and if it can't it will move you one step closer to being able to enter the requested shape. For instance if you are mounted and request bear form, you will be dismounted. You will have to press the bear key again to get into bear form. If you're in bear form and request cat form you will revert to humanoid. You'll still need to press the cat key again to get into the cat form. You can enhance DruidFunc's feral abilities by using the /DHardShift command. To activate HardShifting enter /Druid HardShift on. Now your cat and bear forms are "locked", meaning if you hit the bear key you will shift into a bear, and if you press the bear key again you will no longer shift back to human form. You will stay a bear until you deliberately hit a different shapeshift key. Additionally the bear and cat shapeshift keys will cycle through some common actions. If you're humanoid and hit the bear key, you'll shift into a bear. The next bear key will attempt to feral charge and maul your target. Each subsequent bear key will repeat the maul attempts. If you're humanoid and hit the cat key, you will shift into cat form. The next keypress will attempt to stealth you (if you do not have the wsg flag) and detect humanoids. The next keypress will attempt tiger's fury and ravage (your backstab move). The next keypress will claw if you have energy and farie fire (if you have it trained) if you don't. When you have 5 combo points the cat button will do a ferocious bite. Hardshifting doesn't affect humanoid, you will still target yourself. It also won't affect travel form. Here you will continue to toggle between travel form and humanoid form since that's the best functionality to remove movement imparing effects. The druids who prefer cats have requested a means to change the functionality of hitting F1 in humanoid form. Since targeting yourself breaks the combo points on the enemy, they wanted a way to quickly get off heals without losing their combo points. You can do this with the /druid target [on/off] command. The default is "on". If you set /druid target off then when you hit the humanoid button while already humanoid DruidFunc will attempt to cast a regrowth on you. If you're below 35% health and have nature's swiftness DruidFunc will attempt a nature's swiftness+healing touch combo. All this is done without losing your target (and combo points). After you get the heal just go back to cat and continue the attack. Quick FAQ... Q] Why is nothing working the way this section says it should? Druidfunc has two seperate assist systems. There is a single target assist option which will lock all of your attack spells onto whatever a single person is targeting, regardless of who you are watching. There is also a more flexible smartcast system which will automatically assist whoever you have targeted. Smartcast Smartcast is a casual system which will assist whoever you have targeted at the moment. If you have a friendly player named connan targeted and he's fighting a bugbear then any healing spells will go on connan, and any attack spells will go on the bugbear. Likewise, if you have the bugbear targeted and it's attacking connan then all healing spells will be redirected to connan and all the attack spells will go to the bugbear. To make full use of this system, go to the interface options in WoW (Esc, Interface) and in the "Raid and Party" section, check the "show target of target" option. This system comes defaulted as off when first installed. You must specifically enable this with the "/druid smartcast on" option. Smartcast over-rides the single-target assist below. If you need to assist only a single target then you need to remember to use "/druid smartcast off" to disable this feature. Remember that you need to access both your offensive and defensive abilities through keybinds and macros. If you have moonfire dragged off the spellbook on your toolbar then it's not going to smartcast. You need moonfire dragged off your macro sheet or moonfire from a keybind set up to take advantage of the assist features of this mod. Single target assisting This addon incorporates a simple assist ability intended for use in raid dungeons and small outdoor groups. It's not recommended you use this feature in pvp or in situations where you may be attacked. What this assist ability does is let you designate a person to assist and all your attack spells will target the monster your designated person is attacking and you will never lose the person YOU are targeting. So lets say you're assisting Gozar and you're watching Bleem's health, if you tap your farie fire (keybind or macro) then farie fire will be put on Gozar's target and you will not lose track of bleem's health bar for even a second. It's pretty nifty actually which is why I incorporated it. To set up an assist type /Druid assist (name). You can type /Druid assist to find out who you are currently assisting. You can type /Druid assist off to turn off assisting. You can type /Druid assist on to resume assisting (uses your last assist name). If the person you are assisting is dead (ghost) assisting will be disabled until your target rezes. Note that if something comes charging for you, there's a capper on the flag, or one moonfire will save the raid and bring you fame and glory, unless the person you are assisting has that crucial target, it just ain't gonna happen. So use this cautiously and sparingly in raid type situations. If you have the actuall attack spell (IE not a macro you set up but the spell pulled straight from the spellbook) on any of your toolbars then assist will do a range check on the target if it's too far away then your attack will go to what you have selected (assuming it's hostile). "/druid assist (name)" is incompatible with the smartcast option. You must disable smartcasting before you can use this assist.
You can add trinket checking to the macros you create and in addition to that druidfunc has some automatic trinket activiation routines. To enable automatic trinkets type /Druid Trinkets on (/DTrinkets off to disable). When you enable automatic trinkets the following trinkets will attempt to be used.... You can add trinket checking and activation to your macros with the command /script Druid.testTrinket("trinket name"). Put this command before the spell cast command so it tests for trinkets before it tries to cast the spell. If you have the specified trinket equipped and it's not in cooldown (IE can be used) then testTrinket will activate the trinket for you. If you cast the spell before you test the trinket the trinket will ALWAYS be unvailable because the spell will activate the global cooldown. Using a trinket however does not start the global cooldown so you can activate as many trinkets as you want (well 2 of them anyway) and then go on to cast your spell. A simple macro to use the Zul'Gurub druid class trinket before using healing touch follows.... /script --CastSpellByName("Healing Touch(Rank 1)") You can test for all the trinkets you like. For example, if you do 5 tests and 2 of the trinkets are equipped (and not on cooldown) then those two trinkets will be used. Druidfunc contains a full featured totem stomper. Set it up with the macro /script Druid.TotemStomper() or set it up in the keybinds. When you activate the stomper it will target the highest priority totem and cast a rank 2 moonfire. This is sufficent to destroy most totems. Jindo's totems in Zul'Gurub will be blasted with your highest rank of moonfire. The lightning totems in the abomination wing of naxx are also recognized and will use the maximum rank of moonfire.
Once installed, you can customize druidfunc with a few simple slash commands. /doutfit (shortcut /do) is the outfitter and has its own section below. /druid (shortcut /df) is the command which will let you save most of the settings. Type /druid all by itself to get a list of all the commands and their setting. The list is fairly lengthy so you may need to scroll up a bit until you get to two green lines which are the start of the help. /druid stats
/druid ichat [message]
/druid manac [off/silent/announce/10-100]
"/druid manac off" will disable this feature and that's how it comes by default for a new install. "/druid manac silent" will prevent abort messages from showing up in your chat window. The spell will abort without notifying you. "/druid manac announce" will display abort messages in your default chat window (this is the default when manac is first set up). "/druid manac 80" will set the health threshold at 80%. As long as the target's health is below 80% when the spell is being cast it will continue to cast. If the target's health goes above 80% while you are casting then the spell will be aborted. You can use any number between 10 and 100. Note that 100 effectively turns this feature off. I personally use 90, your milage may vary. /druid plusheal [off/auto/#]
It's really not that complicated... Lets assume you have a target target, lets call him Connan the undergeared. Connan the undergeared needs a 1,000 point heal. Lets pretend your rank 1 heal will heal 900 points, your rank 2 heal will heal 1000 points, and your rank 3 heal will heal 1100 points. Lets also pretend you have +100 to healing on the items you're wearing so a 1,000 point heal will actually heal 1,100. If you have plusheal set to off (which is the way it first installs), healing touch will select rank 2 because the spellbook says it will heal 1,000 points and connan the undergeared will be healed for 1,100 points (100 points being wasted). If you have /druid plusheal auto then healing touch will see you have 100 points of +healing and instead of picking rank 2 it will cast rank 1 which will heal connan for exactly 1,000 points which is exactly what he needs. And because it cast rank 1 instead of rank 2, you just saved a lot of mana. If you don't trust df you can do /druid plusheal 100 and no matter what, even if you get completely naked healing touch would factor in 100 points and in this example cast rank 1 instead of rank 2 (which if you were naked would leave connan down 100 points after the heal.) If connan is taking a LOT of damage you can use a negative number. "/druid plusheal -100" would effectively say connan needs 1,000 but rank 2 will only give him 900, rank 3 is perfect tho because it will give him 1,000. It really won't give him 1,000 it will give him more, 100 more. Which might just be the extra damage he takes between when you start casting the spell and when it ends 3 seconds later. For the most part you want to leave plusheal off until you get around +200 to healing from items then set it to auto... "set it... and forget it!" as someone once spammed on a late night info-mercial. /druid hardshift [on/off]
/druid target [on/off]
/druid assist [off/name]
When you're done assisting just type "/druid assist off". You can also type "/druid assist on" to re-enable the single-target assist. If you use on, it will use the last person you were assisting. /druid smartcast [on/off]
This system is great. You run up to a fight, hit tab and get an enemy target. You've enabled target of target in the wow interface (esc, interface, "show target of target" in the raid & party section) so you immediately see who the enemy is attacking now without having to retarget anything you can cast your damage spells and your heal spells and let the mod decide which one goes where. Another very effective strategy is to just hit tab and then hit rejuv to cycle through all the enemies in the battle and get healing going on people who are actually taking damage. When first installed this system defaults to OFF, you must specifically turn it on to use this feature. /druid moonbar [0-6]
/druid trinkets [on/off]
/druid prayer [25-100]
Copy and paste the text below into your macro (only the lines that start with /script). For example: Mark of the Wild /script --CastSpellByName("Mark of the Wild(rank 1)") You would highlight the 2 /script lines from this web page. You would then hit Cntrl-C to copy those two highlighted lines. You would load up wow, go to the macro text area and hit cntrl-V to paste the lines. You do not copy over the title or any of the explanitory text. Drag the macro icon to your toolbar and you have successfully created a new macro. For those who are interested the first line is there only to give WoW information on spell cooldown and range. The second line is the line which actually calls the function. List of Macros you can make
Although every effort has been made to ensure that druidfunc behaves well with other mods, it's inevitable that there will occassionally be problems. As I become aware of the issues I'll post them here. COUNTMOON
return CountMoon.oldCastSpellByName(spellString, onSelf); FASTCAST
Fastcast only locks spells activated via the action bar, spells activated via keybindings (as well as other mods and spells such as click-casting that is not activated from the UI's default action bar) do not benefit from fastcasting. In order to use Fastcast in conjunction with DruidFunc, you'll need to include FastcastStopCasting() as part of the macros you write. At the simplest level: If you do disable Fastcast in-game once in a while, use: If you do disable Fastcast from the addons menu and still want your macros to work, use: edit: btw, to fully benefit from Fastcast, you'll want to add FastcastStopCasting() to almost every macro you add to your action bar (there may be some exceptions where you might want the "protection" of fastcast instead); spells added directly from your spellbook to the action bar will effectively call FastcastStopCasting() when activated, so you dont have to write a macro for those. it's been my experience that fastcast can trim down as much as your lantency for each non-instant spell cast, eg 500ms it can trim off about 0.5s per non-instant spell cast and is well worth the effort to get it working. |