Cleric Bot (Updated 05/08/05)

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

Moderator: MacroQuest Developers

Badfish
decaying skeleton
decaying skeleton
Posts: 8
Joined: Mon May 23, 2005 9:17 pm

Post by Badfish » Tue May 24, 2005 7:46 pm

Well /stick and scuh are MQ2Moveutils, havnt found anywhere to get the latest of that since i came back to EQ. I searched wiki and here and neither have it can u throw up a link to where i can get it? I was actually really wantin to get it for other purposes as well.

User avatar
fearless
Not a Psychic
Posts: 2684
Joined: Wed Mar 10, 2004 3:52 pm

Post by fearless » Tue May 24, 2005 7:57 pm

It is in the Plugin forums, which are under VIP.
Reading . . . it's not just for me.

[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]

DigitalMocking
a grimling bloodguard
a grimling bloodguard
Posts: 620
Joined: Mon Apr 04, 2005 5:53 pm

Post by DigitalMocking » Tue May 24, 2005 9:09 pm

sorry, missed something in my last post, here's the proper code for following to work:

Code: Select all

  /if (${ChatText.Equal["follow me"]}) { 
    /if (!${AllowAutoFollow}) /return 
    /squelch /stick off 
    /squelch /moveto off 
    /target ${ChatSender}
    /delay 1s ${Target.CleanName.Equal[${ChatSender}]} 
    /call FollowFunction "${Target.CleanName}"
    /varset following ${ChatSender} 
    /return 
  } 

Badfish
decaying skeleton
decaying skeleton
Posts: 8
Joined: Mon May 23, 2005 9:17 pm

Post by Badfish » Wed May 25, 2005 6:42 am

well phooey, plugins were made ViP? that stinkerz. Not that i dont think yall deserve compesation ill just do w/o.

On a side note, is there a way to keep the bot on his mount when he melees? seems kinda worthless if hes gonna dismount every time lol. I mean i can sit between pulls so thers no reason for a horse really.

Thanks.

adesheer
a lesser mummy
a lesser mummy
Posts: 64
Joined: Mon Mar 28, 2005 12:06 pm

Post by adesheer » Fri May 27, 2005 12:51 am

The plugin in giving me errors because of a missing struct in ActorInfo..Another one that Lax took out? NameOfLastSuccessfulTargetHit;

guest_01
a ghoul
a ghoul
Posts: 115
Joined: Thu Apr 22, 2004 5:15 am

Post by guest_01 » Sat Jun 11, 2005 9:41 pm

Been awhile since I've had internet access, so lets see if I can do a bit of catchup here...

umm...

Follow code: I know I had to play with the advpath.inc file I got out of snippets a lot for various reasons, so not sure if it's just an incompatability, but my follow code works fine for me... I can't remember what I changed, but advpath wasn't working at all for me prior to. Can someone verify if the fix posted works?

Melee on horses: That's something that could be added, but since you lose your horse med bonus while attack is on, and you can't use yaulp for mana regen on a horse, I found that horse shuffling tends to increase overall mana regen in all but the shortest battles.

Melee not working period: probably due to the /stick usage... you NEED moveutils for almost all auto-movement code, which is available in the plugins section (recently made VIP only)

NameOfLastSuccessfulTargetHit spam: Look in my first post for a link to my beastlord bot (or just find it in the macro section). The plugin needed is in that post. You can also just disable "DoSlow" (Mark of Righteousness), since that's the only thing that should be using that command.

I think that covers everything, and again, I welcome all comments and suggestions... but due to my extreme lack of internet time (this is the first time in about a month that I've been able to even check the boards), I can't say how long it will take me to reply.

Clueless
a hill giant
a hill giant
Posts: 163
Joined: Fri Jun 03, 2005 2:36 pm

Post by Clueless » Tue Jul 05, 2005 2:19 am

Can on of you guru types let me know how to fix the string issues in this? I think I just delete something but wanted to check here in hopes of saving myself some hours of errors and trials of trying to guess at it.

Thanks much.

rheallyuhgly
decaying skeleton
decaying skeleton
Posts: 9
Joined: Tue Jun 28, 2005 11:58 am

Post by rheallyuhgly » Wed Jul 06, 2005 1:00 pm

I get an Error with this macro. The error keeps repeating saying
Due to the complete misuse of the string top-level object, it has been removed.


It keeps repeating it over and over... any help?

DigitalMocking
a grimling bloodguard
a grimling bloodguard
Posts: 620
Joined: Mon Apr 04, 2005 5:53 pm

Post by DigitalMocking » Wed Jul 06, 2005 1:22 pm

use search, this issue has been reported and fixed in a number of places. I don't believe the original maintainer of this macro is active currently.

You may want to check the ViP section for afcleric, mycleric, raiddruid or advbot, all make excellent cleric macros.

rheallyuhgly
decaying skeleton
decaying skeleton
Posts: 9
Joined: Tue Jun 28, 2005 11:58 am

Post by rheallyuhgly » Wed Jul 06, 2005 5:59 pm

I have searched the boards and found no solution. It seems Alot of macros, ever the ones you mentioned do not work because string is not allowed to function like it used to.
How can I fix the problems in this macro program? I took out the mentions of the ${string[]} and after taking that out mq freaks out and doesnt know what to do.

Clueless
a hill giant
a hill giant
Posts: 163
Joined: Fri Jun 03, 2005 2:36 pm

Post by Clueless » Mon Jul 11, 2005 11:14 am

Took a fast look through the code. There are only two references to the removed "string" reference in this one function:

Code: Select all

| #################### The Single boofs stuff routine kinda 
| Im sure there is a better way to do this. 
| But this is what I could crackup at work. 

Sub SingleBuffs 

   /declare i int local 1 
   /declare g int local 0 
   /declare h int local 1 
   /declare Classes int local 0 
   /declare sID int local 0 

   /if (!${SpellBuff.Size[1]}) /return 

   /for i 1 to ${SpellBuff.Size[1]} 

     /if (${Spell[${SpellBuff[${i},1]}].Mana} > ${Me.CurrentMana}) /return 

     /varset Classes ${String[${SpellBuff[${i},2]}].Count[,]} 

     /if (${Bool[${SpellBuff[${i},3]}]}) { 

      /for g 0 to ${Math.Calc[${Group.Members}+${otherBuffees.Size}]} 

    /if (${g}<=${Group.Members}) { 
       /varset sID ${Group.Member[${g}].ID} 
    } else { 
       /varset sID ${Spawn[${otherBuffees[${Math.Calc[${g}-${Group.Members}]}]}].ID} 
    } 


          /squelch /declare SpellBufftmr${i}${Spawn[${sID}].Name}   timer   global 0 


    /if (${SpellBufftmr${i}${Spawn[${sID}].Name}}>0 && ${Spawn[${sID}].Type.Equal[Corpse]}) /resetbuffs corpse ${Spawn[${sID}].CleanName} 


         /if (!${Spawn[${sID}].Type.Equal[Corpse]} && ${SpellBufftmr${i}${Spawn[${sID}].Name}}<=0) { 


          /call SpellInformation "${SpellBuff[${i},1]}" 

         /for h 1 to ${Classes} 

            /if (${Spawn[${sID}].Class.Name.Equal[${String[${SpellBuff[${i},2]}].Arg[${h},,]}]}) { 

               /target id ${sID} 

               /delay 1s ${Target.ID}==${Spawn[${sID}].ID} 

      /if (${Target.Distance}<=${Spell[${SpellBuff[${i},1]}].Range}) { 

         /if (${Me.CurrentMana}<${Spell[${SpellBuff[${i},1]}].Mana}) { 
            /return 
         } 

                        /call checkCanCast "${SpellBuff[${i},1]}" gem${SpellBuffsGem} 
                        /if (!${Macro.Return}) /return 

                     /call EquipItem ${BuffFocusItem} 

                     /varset MainItem ${Macro.Return} 

         /call FullStop 


                     /call cast "${SpellBuff[${i},1]}" gem${SpellBuffsGem} ${SpCastTime} CheckForHeal 
            /varset tookAction 1 

         /if (${Macro.Return.Equal[CAST_SUCCESS]} || ${spellNotHold}) { 
                        /varset SpellBufftmr${i}${Spawn[${sID}].Name} ${Math.Calc[${Math.Calc[${SpDuration}-${SpCastTime}]}-${Math.Calc[300-${Math.Calc[${Spell[${SpellBuff[${i},1]}].RecastTime}*10]}]}]} 
         } else /if (${Macro.Return.Equal[CAST_OUTOFRANGE]}) { 
            /call AttemptAvoid ${sID} ${Spell[${SpellBuff[${i},1]}].Range} 
          } else { 
                        /varset SpellBufftmr${i}${Spawn[${sID}].Name} 10 
                        /call EquipItem ${MainItem} 
            /next h 
         } 

                     /call EquipItem ${MainItem} 
                     /return 
      } else { 
         /call AttemptAvoid ${Spawn[${sID}].ID} ${Spell[${SpellBuff[${i},1]}].Range} 
                     /varset SpellBufftmr${i}${Spawn[${sID}].Name} 10 
         /next h 
      } 
            } 
         /next h 
   } 
      /next g 
     } 
   /next i 




/return 
I tried replacing "{String[$" with nothing and that causes errors.

Not being a programer I am not sure of the correct way to fix these two references.

I am more then willing to learn if someone would spend the time that some use to berate us for not doing search, to actually explain what you do and why you do it so we don't bother you again the next time this comes up.

Give a man a fish as apposed to teaching him and all that.

Roskoe
decaying skeleton
decaying skeleton
Posts: 4
Joined: Mon Jun 13, 2005 7:38 pm

same sinking boat

Post by Roskoe » Mon Jul 18, 2005 5:52 am

did you ever get this to work clueless? ive tried the "{String[$ replacement also with no luck.

Clueless
a hill giant
a hill giant
Posts: 163
Joined: Fri Jun 03, 2005 2:36 pm

Post by Clueless » Mon Jul 18, 2005 11:23 am

No, I switched to advbot but it has half the functionality that this one does. I kind of miss this ones ability to duck out of a conviction to heal a low on health group member. Also advbot doesn't seem to DA or heal the cleric itself when he is getting beat on like this one does.

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 » Mon Jul 18, 2005 11:32 am

RaidDruid does all that and more. I think I've stolen about every good idea related to healing ever posted here and added them.

The only thing really missing at this point is a separate tank and caster heal spell. I set my fast heal to remedy and just CH the tank with no problems though.

It also interrupts spells (Including heals) to cast Divine Arbitration (or cleric epic 1.5) in order to save low HP members, and in my most recent version(not yet posted since I'm still testing) it will even Bestow Divine Aura on someone if Divine Arb isn't up and there's a member that's below your DivArb HP threshold (With the Exception of your MA). Also soon to be released is a threshold for auto DA/DB on yourself, as well as Divine Retribution and Sanctuary if either DA or DB are down.

Feel free to check it out, I'll be adding more to my heal logic soon to include Group Heals, HoT spells(I mean it this time!), and whatever else I can come up with.
[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]

Merlin
a lesser mummy
a lesser mummy
Posts: 69
Joined: Tue Oct 26, 2004 2:33 am

Post by Merlin » Sun Jul 31, 2005 3:14 pm

"Search" finally gave me a clue... but since I use to do some programming back in the stone age (before Windows) I had an advantage....



What you're looking for is:

${String[${SpellBuff[${i},2]}].Count[,]}


it's the ${String you delete.

BUT... some old programming grammar rules are still valid....

that { you deleted has a } somewhere after it that has to be deleted TOO

in this particular case the } that goes with the { you're deleting is the one after Count[,]

it's just like the stuff in that algebra class you thot youd never use after you got out of school... all opening brackets, parethesis, etc. have a matching closing one.



There's a second instance in clericbot that has to be changed too, so search the macro for ${String to find them all.

Anyway... it's working without errors for my level 6 cleric.