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

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

Moderator: MacroQuest Developers

Frank25
a ghoul
a ghoul
Posts: 136
Joined: Thu Aug 12, 2004 6:38 am

Post by Frank25 » Sun Mar 13, 2005 3:43 am

giblankor wrote:Well is this macro just dead then or what... instead of just saying thats not the right one, you could say that's not, this is?
Or you could do some more reading then this 1 post and realise it has NOTHING to do with the macro, but more a change in MQ2's dealing with groups....

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

Post by fantum409 » Mon Mar 14, 2005 8:51 pm

Front page updated with a fix for the new Group TLO

Or, to fix this macro yourself, and I would guess every macro affected by the recent TLO changes, just use the replace feature in your text editor. Replace all instances of

Code: Select all

${Group[
with

Code: Select all

${Group.Member[
If you do it exactly like that, it should fix it. No spaces in there. =)

Sorry for the lag time, I'm away from EQ most days lately. /sigh

fryfrog
a hill giant
a hill giant
Posts: 271
Joined: Fri Jun 20, 2003 5:37 am

Post by fryfrog » Mon Apr 04, 2005 4:23 am

This is probably a really dumb question, and I am still exploring it on my own... but can I use afcleric with mq2irc? I'd simply like to make the channel an irc channel instead. Its probably totally obvious and I'll figure it out about 10min after I post :)

nytemyst
a grimling bloodguard
a grimling bloodguard
Posts: 578
Joined: Mon Oct 25, 2004 2:29 pm
Location: florida

Post by nytemyst » Mon Apr 04, 2005 2:03 pm

Any plans on adding a raiding toggle so that it turns off complete heals and starts diong fast heals for the classes?

Frank25
a ghoul
a ghoul
Posts: 136
Joined: Thu Aug 12, 2004 6:38 am

Post by Frank25 » Mon Apr 04, 2005 4:07 pm

nytemyst wrote:Any plans on adding a raiding toggle so that it turns off complete heals and starts diong fast heals for the classes?
Honestly, why?

Just have 2 hotkeys on your cleric like i do

One for groups "/mac afcleric <whatever%yourtankneeds>"

and for raids "/mac afcleric <whatever%> supernal light" ..

Viola, theres your toggle :P)

nytemyst
a grimling bloodguard
a grimling bloodguard
Posts: 578
Joined: Mon Oct 25, 2004 2:29 pm
Location: florida

Post by nytemyst » Mon Apr 04, 2005 4:22 pm

Holy shit i never thought of that. Would it also do fast heals to other tanks in the group instead of complete heal?

Frank25
a ghoul
a ghoul
Posts: 136
Joined: Thu Aug 12, 2004 6:38 am

Post by Frank25 » Mon Apr 04, 2005 4:35 pm

Ok, i'll have to be carefull here.
I'm 99% sure it will do any heal to the "non-mt's" as defined at the start.

I heavily modified mine for certain peopel (i.e it never heals wizards/rangers when they drop under 50% health because the ones in my guild dotn seem to know agro management :P).

but yes, in general it will only use the designated heal (pious light/supernal light whatever) for the MT at whatever % you use.

if he drops to low it will DA, fast heal etc, and the groupw illbe healed as normal.

Oblivious
decaying skeleton
decaying skeleton
Posts: 2
Joined: Tue Apr 05, 2005 2:55 am

Is this thing on?

Post by Oblivious » Tue Apr 05, 2005 3:18 am

Ok, been searching through the forums trying to find a solution to my problem, as well as asking all my MQ2 friends in game... My problem is that I can't get the AFCleric macro to work (as intended). It seems to fire up ok, but immediately I'm spammed with error messages saying No such 'int' member 'Member' along with some variations of text like

afcleric.mac@338(Healgrou
((${Group.Member[${gmember}].PctHPs}<=60)&&(${Group.Member[${gmember}].
PctHPs}>=1))/varcalc majorhurt ${majorhurt})+1
afcleric.mac@247 (Main): /call Healgroup

Been spending a lot of time trying to figure this out, even had a friend load it up for his cleric, and he ended up with the same result. Hoping someone has a solution, or worst case senario, tell me the macro is not working at this time. Everything I've read about the afcleric macro tells me it's an excellent tool for botting a cleric, and I've been anxious to get it working.... But since I can't, I've come here to plead for a little assistance.

Hepl! :shock:

fryfrog
a hill giant
a hill giant
Posts: 271
Joined: Fri Jun 20, 2003 5:37 am

Post by fryfrog » Tue Apr 05, 2005 4:02 am

Maybe your copy/paste didn't go well?

Oblivious
decaying skeleton
decaying skeleton
Posts: 2
Joined: Tue Apr 05, 2005 2:55 am

Post by Oblivious » Tue Apr 05, 2005 4:53 am

I'll look at it closer, but at a rough glance, it all looks good.

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

Post by JimJohnson » Tue Apr 05, 2005 4:55 am

READ THE LAST TWO PAGES of the thread and it tells you how to fix that.

drunkmage
decaying skeleton
decaying skeleton
Posts: 4
Joined: Tue Apr 05, 2005 3:10 am

afcleric code

Post by drunkmage » Thu Apr 07, 2005 4:21 pm

I thought this was a wonderfull macro. Then I ran it. Great format yes. Just lots of bugs took me a long time to fix it.

This is the origianl code for example with the buff me reutine. At first not only would it not cast anything because there is no cast subroutine so you can't /call cast if there is no sub cast. You have to have /cast instead. Plus there were no delays in the right places so the next buff wouldn't cast. Brilliant code otherwise.. Just needed a few hours of tripple checking on format :/ I still have no clue why you put gemx in there becuase the cast command uses text not gems to cast the spell. It seemed to have absolutely no reference.

Code: Select all

  /if (${ChatText.Equal[buffme]}) {
      /call FindExactPC ${Sender}
      /if (${String[${Macro.Return}].NotEqual[TARGET_SUCCESS]}) /return
      /if (${Target.Class.Name.Equal[Paladin]}) {
         /call Cast "${longhpbuff}" gem4 10s
         /if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
         /if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
         /return
      }
      /if ((${Target.Class.Name.NotEqual[Warrior]})&&(${Target.Class.Name.NotEqual[Monk]})&&(${Target.Class.Name.NotEqual[Rogue]})&&(${Target.Class.Name.NotEqual[Berserker]})&&(${Target.Class.Name.NotEqual[Bard]})) {
         /if (${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "Breastplate of Vengeful Fury" item
         /if (!${FindItem[Breastplate of Vengeful Fury].ID}) /call Cast "${spellhastebuff}" gem8 5s
      }
      /call Cast "${acbuff}" gem6 7s
      /call Cast "${singlesymbuff}" gem5 7s
   } 

This is what I changed it to.. Now it seems to work perfect for me.

Code: Select all

   /if (${ChatText.Equal[buff me]}) { 
      /call FindExactPC ${Sender} 
      /if (${String[${Macro.Return}].NotEqual[TARGET_SUCCESS]}) /return 
      /if (${Target.Class.Name.Equal[Paladin]}) { 
         /cast "${longhpbuff}"
		   /delay 17s 
         /if (${FindItem[Breastplate of Vengeful Fury].ID}) /cast "Breastplate of Vengeful Fury" item 
         /if (!${FindItem[Breastplate of Vengeful Fury].ID}) /cast "${spellhastebuff}"
		   /delay 10s 
         /return 
      } 
      /if ((${Target.Class.Name.NotEqual[Warrior]})&&(${Target.Class.Name.NotEqual[Monk]})&&(${Target.Class.Name.NotEqual[Rogue]})&&(${Target.Class.Name.NotEqual[Berserker]})&&(${Target.Class.Name.NotEqual[Bard]})) { 
         /cast "${spellhastebuff}"
		   /delay 10s 
      } 
      /cast "${acbuff}"
	   /delay 10s 
      /cast "${singlesymbuff}"
	   /delay 9s 
   } 

Rambo
decaying skeleton
decaying skeleton
Posts: 4
Joined: Wed Mar 16, 2005 6:49 pm

Post by Rambo » Thu Apr 07, 2005 5:31 pm

I am using the version on the first page with just a few edits for different spells and it buffs perfectly for me. I especially love the Gbuff now!. Great macro, thank you.

User avatar
LrdDread
a snow griffon
a snow griffon
Posts: 343
Joined: Sun Sep 12, 2004 7:55 am
Contact:

Post by LrdDread » Fri Apr 08, 2005 5:03 am

drunkmage wrote:I thought this was a wonderfull macro. Then I ran it. Great format yes. Just lots of bugs took me a long time to fix it.

This is the origianl code for example with the buff me reutine. At first not only would it not cast anything because there is no cast subroutine so you can't /call cast if there is no sub cast. You have to have /cast instead. Plus there were no delays in the right places so the next buff wouldn't cast. Brilliant code otherwise.. Just needed a few hours of tripple checking on format :/ I still have no clue why you put gemx in there becuase the cast command uses text not gems to cast the spell. It seemed to have absolutely no reference.
You need to be using the .inc file spell_routines.inc which handles the delays, gems, fizzles, interupts, etc... works beautifully :)

Virtuoso65
a hill giant
a hill giant
Posts: 150
Joined: Wed Oct 15, 2003 2:29 pm

Post by Virtuoso65 » Fri Apr 08, 2005 10:50 pm

The sitting code in this mac is well crap for the most part so I rewrote it a while ago. With this you can get rid of the redundent sit code that ended up causing the cleric to sit/stand/sit/stand over and over at specific life% and mob range.

Code: Select all

Sub MedTime
   :oomwait
   /call CheckEvents
   /If ((${FindItem["Rod of Mystical Transvergance"].InvSlot})&&(${Me.PctMana}<=70)&&(${Me.PctHPs}>=98)&&(${rodwait}==0)) {
      /call Cast "Rod of Mystical Transvergance" item
      /varset rodwait 1
      /timed 3000 /varset rodwait 0
   }
 [color=red] /if ((${autosit}>0)&&(${Me.PctMana}<=98)&&(!${Me.Casting.ID})) {
      /if ((${Bool[${Me.Standing}]})&&(${Me.PctHPs}>90)) {
       		/if ((!${NearestSpawn[1,npc radius ${distancetosit} zradius 30].Distance})&&(!${Me.Buff[${yaulpspell}].ID})&&(!${Me.Moving}) ) /sit
	  }
      /if ((${Bool[${Me.Sitting}]})&&(!${Window[SpellBookWnd].Open})) {
	    	/if (${NearestSpawn[1,npc radius ${distancetosit} zradius 30].Distance}) {
		       /stand
		    }
	  }
   }
[/color] 
   /if ((${Bool[${Me.Standing}]})&&(${autosit}==2)&&(${Me.PctMana}<=98)&&(${Me.PctHPs}>90)&&(!${Me.Casting.ID})&&(!${Me.Buff[${yaulpspell}].ID})) /sit
   /if ((${Bool[${Me.Sitting}]})&&(${autosit}>=1)&&(${Me.PctMana}>98)&&(!${Window[SpellBookWnd].Open})) /stand
   /if ((${Bool[${Me.Standing}]})&&(!${Me.Mount.ID})&&(${Me.SpellReady[${yaulpspell}]})&&(!${Me.Buff[${yaulpspell}].ID})) {
      /if ((!${Me.Buff[Vallon].ID})&&(!${Me.Buff[Spiritual Vigor].ID})&&(!${Me.Buff[Strength of Tunare].ID})) /call Cast "${yaulpspell}" gem8
   }
   /if (${buffbeg}==1) /call Buffbeg
   /if (${Me.PctHPs}<=${selfhealpoint}) /return
   /if (${Me.PctMana}<=8) /goto :oomwait
/return