v7.23Added very basic master commands. follow XXX tells the bot to follow the designated person, just "follow" will follow the sender. You need to use the "Stop" command to stop following. It's very BETA at the moment now, so please provide suggestions.
Fixed the RefreshBuffs section to actually refresh buffs (Hate when I screw up and use an OR instead of an AND).
Also added the MasterList variable to the ini in order to define masters. The bot will only respond to command tells or irc from the master, but still buffs on request.
Added a couple doevents checks back to allow RootNScoot to fire more often, I'll probably add a couple more before I'm done.
Oh, and RaidDruid will automatically accept group invites from people on your MasterList too.
Maybe I did some other stuff, you decide!
6/27
v7.22 Minor bugfix in the rootnscoot toggle, RDEVents updated
v7.21 Fixed an issue in Dobuffs and replaced a missing /goto in RootNScoot
v7.2Removed the RDPause variable. It really wasn't up to date, and it wasn't all that useful anyway. If enough people bitch I'll put it back in and maybe clean it up, but until then /mqpause works even better anyway.
Cut back on the number of /doevents checks in hopes of getting rid of most of the mistargetting issues that were cropping up on me left and right with events firing all over the place. Won't really change much with the macro's operations, but hopefully will make things behave better.
Revamped my RefreshBuffs code to behave a little more like the DoBuffs. Also added a new variable to each DoBuff called DoBuffRefresh which defaults to 0. Change it to a 1 if you want it to refresh those buffs as they wear off. I did this to prevent things that might not need to be refreshed, like invis, can be controlled.
Fixed a major issue with both DoBuffs and RefreshBuffs. It wasn't taking into account the SitTimer, among other things. The new setup is much cleaner and probably behaves a LOT more reliably.
Also added Root and Scoot code. This code will target the nearest mob if you get hit, root it and then face the Main Assist and run over the top of him in hopes of peeling the mob off if root didn't happen to stick. It stops running after 1 second or until you're out of the mob's melee range. Haven't given this a real run for it's money yet, but it worked OK while single grouping tactics named yesterday. You can toggle it with the /rootnscoot alias, and you need to define a RootSpell and RootGem to cast from in the ini.
Added the new RootNScoot and RefreshBuffs toggles to the HUD for easy reference.
I think that's it, though I may have done some other tweaks in various areas that needed it. As always, keep the bug reports coming.
6/26
v7.1 Fixed the targetting issues by removing all instances fo the MyTarget variable. It used to be useful when this wasn't a full blown automation macro, but it's long since been pretty pointless and it was cuasing targetting issues with healing and buffing/debuffing. It will now always switch back to the MA's target if one exists. If you don't want your target switching on you, then use /mqpause or /rdpause for manual intervention.
Also re-added the MA Healing code that will only fast heal the MA if he is below 50% of your heal threshold instead of the heal threshold to stop from padding the MT at 50% when there's a cleric CHing, so you can start fast heals with enough time on non-MA targets that they won't be dead before it lands.
Refreshbuffs will also wait until it has enough mana to recast the buff before moving on to other duties as well. It still checks the group's HPs while waiting on mana to recover and heals if needed and there's mana to spare.
Only RaidDruid.mac and RDEvents.inc need to be updated for this change.
v7.0 Added auto-rebuffing code based on the new events triggered when your buffs wear off on PCs. It only refreshes single target buffs, so if you actually click off any group buffs like regen etc, it won't refresh them when the rest of the group loses it. /refreshbuffs turns it on, and there's a ini entry for the spell gem called WornOffGem in the ini (Defaults to gem3)
6/25
v6.92 I'm back bitches.... sorta at least Fixed the Group changes for pets that got missed in Fallon's version... also posting a new HUD with the group changes. I plan on adding some other stuff like melee code, root and scoot code, and maybe even HoT handling, though I'll need to find a shaman or something to let me do the testing for that.
1/21
v6.91 Changed up the group checking logic to use the TankHealPct for MA1 even when UseCH is off. It still won't heal the tank if he's above HealPct if you set your tankhealpct to like 90 and still have healpct set to 70. But, if it's set lower than the healpct, say HealPct is 70 and TankHealPct is 50, it won't heal the MA until he falls below 50. I hope that makes sense.
1/20
v6.9 I realized that my HealMeFirst logic was completely neglected to check my mana amount tonight and so was spam attempting to heal me while I was oom. Also realized that my Check4Pad logic wasn't using all my latest enhancements, so I fixed that. WTB a bug tester for my versions. I may have tweaked other things too, but I can't remember what they were.
1/18
v6.8 Added a version check justl ike Rogue Helper's version check to prevent loading the insane amount of aliases associated with RD every time the macro is loaded. CAUTION: Do not delete your Macroquest ini file... If you do, make sure to clear the Version parameter in your RD_XXX.ini file or you will lose all your aliases.
1/17
v6.7 Added HealMeFirst logic to the CheckHP sub. It will now interrupt heals if you are below the healpct. Tweaked /autosit logic so that it won't attempt to sit if there's a mob within 20 feet of you. Also fixed a logic problem with group HP checking. I wasn't resetting the WorstHurt %, so it would double heal the same group member. Buffbeg has also had a buinch of new buffs added, check them out.
v6.61 Fixed RDEvents with the syntax error pointed out by fallon
1/16
v6.6 Beta Added /healmefirst toggle, similar to AFCleric's healing code. If turned on, it will heal you first if you are below the /healpct, hopefully saving your life long enough to save any other who may need it. Essentially the group heal order is now Tank -> You -> Group.
v6.5 Beta Added Beta Pet Healing code. I don't group with many pet classes, so I can't test it out easily. Logic looks sound though, let me know how it works. Also changed up the CheckGroup sub a lot, it will now recheck the group after it heals someone before it moves on to other duties. Also shuffled DoRC around so that it gets checked every time the group does. /healpets turns pet healing on, and /pethealpct will adjust the % you start healing pets at.
v6.4 Cleaned up some other NULL announcements I missed. Also fixed checkgroup to heal the MA normally if /usech is off. *Think* I fixed the moveto after looting. Test it out and let me know if it still behaves oddly. Also fixed it so it wouldn't chain summon a horse if underwater.
1/14
v6.3 Added an extra check to the Heal/Debuff/etc Reports so that you should never be caught casting NULL on NULL.
v6.2 Fixed the /spamdelay toggle to properly set the ini.
v6.1 Minor change to the ReportMana subs, so that it actually works now =D. Also changed up some of the healing logic so that it will wait until your heal spell is ready to cast before announcing it.
v6.0 RaidDruid is no longer mute. Added toggles to chaty about pretty much every function he's capable of. Gonna try to list them all, it's pretty big:
/chatchannel Sets the Chat Channel that RD will talk in (Ex. /chatchannel gsay, echo, rsay, 1, 2, 3, etc.)
/reportdebuffs Toggle reporting of Debuffs on and off RD will report after a debuff has successfully landed, or after DotRecasts has been exceeded
/reportdobuffs Toggles reporting of buff directed to others. It will send the buff recipient a tell, and also announce it in the /chatchannel
/reportdots Same as ReportDebuffs, but for DoTs
/reportepic Same as ReportDebuffs, but for Epic 1.5
/reportheals Will report both CHs and Fast Heals
/reportinterrupts Reports any time you interrupt another spell to heal
/reportmana Reports your mana if you get below /medpct. Will report after every XP message, will also report when it hits FM after reporting LOM.
/reportrc Toggles reporting of Radiant Cure Casting
/reportselfbuffs Toggles reporting of casting buffs on yourself
/reportsnares Same as ReportDebuffs, but for Snare. Will also report if a mob is immune
/reportsotw Toggles reporting of Spirit of the Wood Casting
/reportwow Toggles reporting of Wrath of the Wild Casting
/spamdelay Sets the amount of time it will wait between announcements. This prevents if from spamming your group with 5000 interrupts a minute. Set it to whatever you feel comfortable with. Defaults to 3s.
1/13
v5.4 Beta Autoninja now returns you to your starting loc after looting corpses. Get the most current version of MQ2Moveutils including the fix posted by Cr4zyb4rd, to ensure /moveto works correctly. Only RDEvents needs to be updated for this one. Still Beta since I haven't actually tested it within the macro. I do know the /moveto logic is sound though!
1/10
v5.3 Beta Added /waittocancel alias. When turned on, this will wait until your heals have less than .5 seconds left before making the decison to cancel the heal. This will help out tons in raid situations when a lot of heals are hitting the tank and his HPs are fluctuating wildly above/below the cancelpct. Not 100% tested, but I think my logic is good and I can't play tonight. Oh yeah, and CheckHP now watches your target's state while your heal is casting, and will cancel your heal if the target is a monk/necro/sk and they break FD for whatever reason.
1/8
v5.2 Added ducking and pad healing logic to the UseCH code. If the tank's HPs are less than half of your configured tankhealpct, and there is still more than 5 seconds left on CH, it will duck out of CH and cast a pad heal.
1/5
v5.0 Tank healing is in, turn it on with the /usech alias, and watch it go to town. It will only use CH on the designated MA1 (So make sure MA1 is set to your Main Tank), and what it does is basically the same as Cr4zy's compucleric code. It will monitor the tank's HPs and if he's taking enough damage to be dead in less than 20 seconds, it will duck out of whatever RD is currently doing and start a CH. If the tank's HPs stop falling and level off above the TankHealPct, it will cancel CH and wait until the tank's HPs fall again. Set the TankHealPct to the abslute floor you want to start CH at. I set mine at about 40% today, as that's about the point where I'll land a full CH on the tanks I group with. That way you're pretty much guaranteed to get a full CH no matter what, and you'll start CHs early if your tank is taking a lot of damage pre-slow, pre-mezzes, etc. Worked like a champ in PoFire, but it feels risky at times. Only killed the tank once when I set the TankHealPct to 0, so it's pretty reliable as long as you have a non-retarded TankHealPct configured. Doubt you'll still be able to heal in places like RS reliably, but if you have a solid tank I'm willing to bet most other zones are fairly safe and efficient with this.
I'd like to give special thanks to the following people for giving me the framework with which to build my contribution:
Cr4zyb4rd for taking the time to teach me some of the more complicated features of Macro building. And also for finding new and original ways to break my macros for me. He also wrote the original framework for feedme, though I did a lot of improving to it.
Rusty for building one hell of an inc with Spell_Routines
Fantum409 for writing the original wait4rez and buffbeg macs that I converted into incs here.
Neolesh for spawning this entire thing in the first place with his AEHealer.mac for clerics, which I promptly butchered and put to use for druids.
And whoever I borrowed the self buff checking code from. I snagged it from some mac that I can't remember.
Jerle69 and Azum for giving me the framework for my toggles
NuttsThatKlank for sparking the HUD idea for the toggles
ml2517 for the ini and buff looping code. Very nice shit man, I hope I can wrap my brain around your MDL code enough to get my debuffs to be as cool as yours.
You're also probably going to want a custom bind to toggle between your nukes based on the situation, here's the one I use:
Code: Select all
/custombind add NukeToggle
/custombind set /varset WhichNuke ${If[${WhichNuke}==1,2,1]}
/bind WhichNuke ctrl space All of the below items can be found in the snippets section of these forums
spell_routines.inc
buffbeg.inc
feedme.inc
wait4rez.inc




