AFCleric.mac - Cleric automation macro (updated Aug 24th)

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

gxs
orc pawn
orc pawn
Posts: 24
Joined: Sun Dec 19, 2004 3:00 pm

Post by gxs » Fri Dec 24, 2004 5:15 am

This macro is very, very useful, and I've had to do a bit of modification in order to get it to work with my lower level cleric, but I'm having two problems, and I'm wondering if they're common problems, or something wrong on my part.

Sitting: It seems as if when I start the macro, the cleric will sit when I want him to, when he is not casting. (i use the autosit=2 setting) After a little while, he'll just stand for a long period of time after doing anything, which has made me resort to manual sitting, am I doing something stupidly wrong?

Spamming due to insufficient mana: When my cleric gets out of mana and has to heal someone, it will continuously spam the group with the announements (if i have them enabled, which i prefer) if I dont have enough mana. Is there a pointer anyone can give for it not to continously spam, but instead just med until it has sufficient mana to cast?

A_Druid_00
Macro Maker Extraordinaire
Posts: 2378
Joined: Tue Jul 13, 2004 12:45 pm
Location: Rolling on the Lawn Farting

Post by A_Druid_00 » Fri Dec 24, 2004 7:01 am

In answer to your 2nd question:
Add a Mana check to the /if statement that makes the decision to cast, long story short. I added a mana check to my druid macro to keep it from wasting time spamming heals when OOM.

Basically, if you change:

Code: Select all

      /if ((${Target.Distance}<=${patchhealrange})&&(${Target.PctHPs}<=${Math.Calc[0.7*${healpct}]})&&(${Target.PctHPs}>=1)) { 
         /if (${announce}==1) /g Casting ${patchheal} on %T 
         /call Cast "${patchheal}" gem2 1s CheckHP 
         /delay 15 ${Me.SpellReady[${patchheal}]} 
      } 
to:

Code: Select all

      /if ((${Target.Distance}<=${patchhealrange})&&(${Target.PctHPs}<=${Math.Calc[0.7*${healpct}]})&&(${Target.PctHPs}>=1)&&(${Me.CurrentMana}<${Spell[${patchheal}].Mana})) { 
         /if (${announce}==1) /g Casting ${patchheal} on %T 
         /call Cast "${patchheal}" gem2 1s CheckHP 
         /delay 15 ${Me.SpellReady[${patchheal}]} 
      } 
It will then only spam you when the client is lying to you and says you have enough mana. You know what I'm talking about.. when you hit the heal button and it tells you that you have insufficient mana, and then your mana total falls to what your actual mana total is according to the server or WTFever.

You'll have to repeat this for every /if statement that has a /call Cast ${SomeHealSpell}.

Alternatively you can just turn off announicing, and then he'll still spam, he just won't spam groupchat.

Of course, the most reliable way to do all these cast checks is by using the Spell ID # instead of the name; but that'd require more of a rework than I feel like explaining in this post.
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]

fantum409
a ghoul
a ghoul
Posts: 141
Joined: Fri Nov 14, 2003 10:03 pm

Post by fantum409 » Fri Dec 24, 2004 8:48 pm

The problem with cleric LoM causing spam is because your cleric, being lesser mana pool, does not have enough mana at 7% to get the heal spell off. Try changing these 2 lines:

Code: Select all

/if ((${Me.PctMana}<=7)&&(${announce}==1)&&(${oomspam}==1)) {
to:

Code: Select all

/if ((${Me.PctMana}<=10)&&(${announce}==1)&&(${oomspam}==1)) {
and then

Code: Select all

/if (${Me.PctMana}<=8) /goto :oomwait
to:

Code: Select all

/if (${Me.PctMana}<=11) /goto :oomwait
A_Druid_00 has a good point about use of datatypes. If I had been thinking about it when I wrote this, I would have used actual mana to decide if its med time or not, instead of taking a guess with mana pct. This could be adapted to do so; perhaps a statement that looks at mana costs for each healspell you've defined, then sub in a variable representing actual mana amt of the most costly spell in the 2 lines above.

As for the sit/stand issue, the cleric will stand pre-emptively, if people n your group are taking damage, even if not enough to trigger heals. I am guessing thats what your seeing. That could be changed, but would be a good bit of reading and editing. hehe. Try searching for /sit, and then /stand and see all the spots it can be triggerred. Then add a distinctive /echo command in that will trigger at the same time, so you can track it down more easily. Personally, I havent had any problem with it the way it is, but I am using high enough healpoints that if someone is 85% or lower, clr is casting anyway.

vanemon
a lesser mummy
a lesser mummy
Posts: 58
Joined: Fri Aug 20, 2004 7:22 am

Post by vanemon » Sun Dec 26, 2004 7:02 pm

i am probably to stupid to change that settings for lom-spam which a_druid_00 posted above.

my cle still keeps crying his patchheals when hes zoning back after he got rezzed. any suggestions how to turn this off?

thx a lot in advance

Busguy
a lesser mummy
a lesser mummy
Posts: 41
Joined: Tue Dec 07, 2004 2:06 pm
Location: California

Post by Busguy » Mon Dec 27, 2004 1:59 pm

The only time I have seen this program cause a cleric to stand when there are no mobs in the immediate vicinity is when he reaches full mana and doesnt need to sit/med. After next round of heals/buffs etc, he plops down again to med up.

Clueless_Coder
a hill giant
a hill giant
Posts: 192
Joined: Wed Aug 25, 2004 3:18 pm

Post by Clueless_Coder » Mon Dec 27, 2004 2:23 pm

I have to set /varset sit 0 to get my cleric to stay standing (useful for moving from camp to camp and so on)

Otherwise I sit whenever theres no mobs in camp and only stand again when I'm 99% mana.

Rinse repeat for the next pull.

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Mon Dec 27, 2004 10:45 pm

just turn on yaulp your mana goes so much farther and never have to worry about sit agro.

Cuervolush
decaying skeleton
decaying skeleton
Posts: 1
Joined: Tue Dec 28, 2004 10:40 pm

Post by Cuervolush » Wed Dec 29, 2004 12:19 am

Need a hint. Used search and RTFM, never came up with this error. Got the same error with the online vs.net and the command line one from the HELP forum, leads me to believe its not the compilers issue heh.

error C2006: '#include' : expected a filename, found 'identifier'

and

fatal error C1083: Cannot open include file: '': No such file or directory

Question is why is it seeing spell_routines.inc as a "identifier" and not a filename? I've also tried pointing it directly to the .inc file to no avail. .inc file is in the mq2afcleric folder. I'm sure its something retarded but after reading posts for 2 days everything is starting to blend together. Any help on this one would be much appreciated.
beer.

Valerian
a grimling bloodguard
a grimling bloodguard
Posts: 709
Joined: Sun Jul 28, 2002 3:29 am

Post by Valerian » Wed Dec 29, 2004 1:27 am

try running the macro in game instead of trying to compile it...

Neolesh
a hill giant
a hill giant
Posts: 231
Joined: Mon Aug 23, 2004 11:15 am

Post by Neolesh » Wed Dec 29, 2004 3:17 am

JimJohnson wrote:just turn on yaulp your mana goes so much farther and never have to worry about sit agro.
Partly correct. you sort of give the impression that Yaulp is just as good as medding so to be clear I'd point out that medding is 5 more mana per tick than Yaulp VII. But still good advice.

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Wed Dec 29, 2004 4:13 am

Neolesh wrote:
JimJohnson wrote:just turn on yaulp your mana goes so much farther and never have to worry about sit agro.
Partly correct. you sort of give the impression that Yaulp is just as good as medding so to be clear I'd point out that medding is 5 more mana per tick than Yaulp VII. But still good advice.
those 10 + seconds you stand casting your CH your getting no mana regen other then worn. if you have NOTHING going on yea sitting is better. if your in an active group yaulp is way better your mana stays up alot longer. even with sitting after each ch i would run oom on say Xuzl fight. If Yaulped every other CH i usually had 35+ mana at end of fight.

AEbard
a lesser mummy
a lesser mummy
Posts: 43
Joined: Fri Jan 30, 2004 10:53 am

Can we add this?

Post by AEbard » Mon Jan 03, 2005 12:19 pm

Can we add a spot for designating who the puller is so if puller is low on health the mac won't instant heal and gain aggro and die?

gohan4
a ghoul
a ghoul
Posts: 85
Joined: Sat Dec 18, 2004 11:36 am

Post by gohan4 » Fri Jan 07, 2005 12:59 pm

Looking through here I thought I saw something about if in the middle of a CH and the MT gets to low to finish it, there was a way to duck out and fast heal?..I can not seem to find that now. Can someone point me in the right direction? My MT's are dieing!

Thanks

A_Druid_00
Macro Maker Extraordinaire
Posts: 2378
Joined: Tue Jul 13, 2004 12:45 pm
Location: Rolling on the Lawn Farting

Post by A_Druid_00 » Fri Jan 07, 2005 1:12 pm

I don't think anyone posted that here. Neolesh did post code similar to that in my Raid Druid thread though.

Code: Select all

/if (${Spawn[${TankID}].PctHPs}<${Math.Calc[${MTHP}*0.5]} && ${castEndTime}>37) { 
      /call Interrupt 
      /if (${Target.ID}==${TankID}) /call CastSpell "${LightMsg}" "${TankHS}" spell CheckHP 
      /return 
   }
You'll have to change the name of the variables to match whatever it is AFCleric uses, but it'd fit in here.
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]

gohan4
a ghoul
a ghoul
Posts: 85
Joined: Sat Dec 18, 2004 11:36 am

Post by gohan4 » Fri Jan 07, 2005 1:47 pm

Thanks for the reply, I am at work atm so I'm going to play with it and see if I can find where it fits. I am new to this, but have read alot about what some of the code means and does so I might be able to do it.