Advbot.mac - Advanced Caster Bot - Heal/Debuff/Buff

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

Moderator: MacroQuest Developers

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

Post by JimJohnson » Wed May 05, 2004 5:47 pm

i know how to take it out I asked if you can toggle a pause on it. some things need it like bolt spells but most dont.

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Wed May 05, 2004 6:16 pm

LOL yeah I never thought about the issue if you had 5 bots or whatever. I'll throw in an INI setting for /face on/off.

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Wed May 05, 2004 9:28 pm

Updated:
advbot.mac
advbot.inc
advbot.txt

Added FaceBeforeDebuff INI option. If set to 1 you will automatically face the mob upon casting each debuff.

Added 'face' toggle on/off command.
Example:
/echo face
/tell botname face

Added automatic grouping function. If a person on your master list invites you, you will automatically accept. If someone that isn't on your master list invites you it will decline it.

Added automatic rez accept. Checks for a rez window and acknowledges if one is found.

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Thu May 06, 2004 12:11 am

Updated:
advpath.inc *** I had to split up advpath.inc so there is now a second part that is just #include'd to the first. You don't set up or call from macros any differently than you had.
advpath2.inc (This is the second part.)

For more details to what changed in advpath.inc see the post in the snippets forum. In regards to this macro nothing has really changed.

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

Post by JimJohnson » Thu May 06, 2004 12:47 pm

Code: Select all

[MQ2] -[There are 0 mobs in your search radius ] -
-[There are 0 mobs in your search radius ] -
-[There are 0 mobs in your search radius ] -
-[There are 0 mobs in your search radius ] -
-[There are 0 mobs in your search radius ] -
-[There are 3 mobs in your search radius ] -
-[There are 3 mobs in your search radius ] -


and so on.
it just keeps spaming the output window. It does the debuffs / heals / buffs still just spams the output window

latest zip. 1030cst was last zip i dled

MrSmallie
a hill giant
a hill giant
Posts: 167
Joined: Fri Oct 11, 2002 11:18 am

Post by MrSmallie » Thu May 06, 2004 12:58 pm

From Page 7....
Illu1on:
Just find this line of code:
Code:

/echo -[ There ${If[((${VarNpcCount}>1) || (${VarNpcCount}==0)),are ${VarNpcCount} mobs,is 1 mob]} in your search radius. ]-



and delete it or comment it out. I will just remove it if most people don't want to see it. It really was meant to help me debug what was going on with the MinMobs in area thing.
Me
[img]http://home.comcast.net/~mrsmallie/ches.JPG[/img]

young_mquser01
decaying skeleton
decaying skeleton
Posts: 4
Joined: Wed May 05, 2004 12:11 pm

Selfbuff

Post by young_mquser01 » Thu May 06, 2004 4:19 pm

ini for a wizard

Code: Select all

[Settings]
Radius=100
NoSit=0
TrackNumber=10
Announce=1
AnnounceChannel=group
RetryCount=2
PauseDebuffs=1
PauseEvents=0
PauseHeals=1
PauseSelfBuffs=0
PauseGroupBuffs=0
FaceBeforeDebuff=0

[SelfBuff]
SelfBuffCount=0
SelfBuff1=item Phylactery
SelfBuff2=Shield of Maelin
SelfBuffDuration1=700
SelfBuffDuration2=4500
SelfBuffAtStart1=0
SelfBuffAtStart2=0
SelfBuffIconCheck1=1
SelfBuffIconCheck2=1
SelfBuffIconName1=Soul Clasp
SelfBuffIconName2=Shield of Maelin
SelfBuffMemToSlot1=0
SelfBuffMemToSlot2=7
[Debuff]
DebuffCount=0
Debuff1=item Staff of Temperate Flux
Debuff2=item Dagger of Entrapment
Debuff3=item Maelin's Leggings of Lore
Debuff4=Strike of Solusek
Debuff5=Draught of Ro
DebuffDuration1=450
DebuffDuration2=180
DebuffDuration3=20
DebuffDuration4=9
DebuffDuration5=5
DebuffStartWait1=0
DebuffStartWait2=0
DebuffStartWait3=0
DebuffStartWait4=0
DebuffStartWait5=0
DebuffMinHealth1=100
DebuffMinHealth2=100
DebuffMinHealth3=100
DebuffMinHealth4=80
DebuffMinHealth5=30
DebuffMinHealthNoCast1=90
DebuffMinHealthNoCast2=90
DebuffMinHealthNoCast3=50
DebuffMinHealthNoCast4=30
DebuffMinHealthNoCast5=15
DebuffMinMana1=0
DebuffMinMana2=0
DebuffMinMana3=0
DebuffMinMana4=30
DebuffMinMana5=10
DebuffMinMobsInArea1=0
DebuffMinMobsInArea2=0
DebuffMinMobsInArea3=0
DebuffMinMobsInArea4=0
DebuffMinMobsInArea5=0
DebuffAnnounce1=Baby Malos -> [ %T ]
DebuffAnnounce2=Snare -> [ %T ]
DebuffAnnounce3=NULL
DebuffAnnounce4=NULL
DebuffAnnounce5=NULL
DebuffMemToSlot1=0
DebuffMemToSlot2=0
DebuffMemToSlot3=0
DebuffMemToSlot4=3
DebuffMemToSlot5=2
DebuffOnMATarget1=0
DebuffOnMATarget2=0
DebuffOnMATarget3=1
DebuffOnMATarget4=1
DebuffOnMATarget5=1
[Events]
EventCount=0
EventSpell1=activate 172
EventSpell2=Harvest
EventSpell3=activate 52
EventSpell4=activate 303
EventMinMana1=80
EventMinMana2=80
EventMinMana3=60
EventMinMana4=100
EventMaxMana1=0
EventMaxMana2=0
EventMaxMana3=0
EventMaxMana4=59
EventMinHP1=100
EventMinHP2=100
EventMinHP3=100
EventMinHP4=100
EventMaxHP1=0
EventMaxHP2=0
EventMaxHP3=0
EventMaxHP4=0
EventDuration1=485
EventDuration2=610
EventDuration3=600
EventDuration4=600
EventMemToSlot1=0
EventMemToSlot2=8
EventMemToSlot3=0
EventMemToSlot4=0
[Heal]
HealCount=0
HealSpell1=Heal Spell Name
HealSpell2=Heal Spell Name
HealSpell3=Heal Spell Name
HealSpell4=Heal Spell Name
HealSpell5=Heal Spell Name
HealSpell6=Heal Spell Name
HealSpell7=Heal Spell Name
HealSpell8=Heal Spell Name
HealMinHP1=0
HealMinHP2=0
HealMinHP3=0
HealMinHP4=0
HealMinHP5=0
HealMinHP6=0
HealMinHP7=0
HealMinHP8=0
HealMaxHP1=100
HealMaxHP2=100
HealMaxHP3=100
HealMaxHP4=100
HealMaxHP5=100
HealMaxHP6=100
HealMaxHP7=100
HealMaxHP8=100
HealMinMana1=0
HealMinMana2=0
HealMinMana3=0
HealMinMana4=0
HealMinMana5=0
HealMinMana6=0
HealMinMana7=0
HealMinMana8=0
HealMinGroupCount1=0
HealMinGroupCount2=0
HealMinGroupCount3=0
HealMinGroupCount4=0
HealMinGroupCount5=0
HealMinGroupCount6=0
HealMinGroupCount7=0
HealMinGroupCount8=0
HealClass1=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
HealClass2=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
HealClass3=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
HealClass4=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
HealClass5=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
HealClass6=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
HealClass7=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
HealClass8=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
HealMemToSlot1=0
HealMemToSlot2=0
HealMemToSlot3=0
HealMemToSlot4=0
HealMemToSlot5=0
HealMemToSlot6=0
HealMemToSlot7=0
HealMemToSlot8=0
HealAnnounce1=Heal Announcement
HealAnnounce2=Heal Announcement
HealAnnounce3=Heal Announcement
HealAnnounce4=Heal Announcement
HealAnnounce5=Heal Announcement
HealAnnounce6=Heal Announcement
HealAnnounce7=Heal Announcement
HealAnnounce8=Heal Announcement
[GroupBuff]
GroupBuffCount=0
GroupBuff1=Group Buff Spell Name
GroupBuff2=Group Buff Spell Name
GroupBuff3=Group Buff Spell Name
GroupBuff4=Group Buff Spell Name
GroupBuff5=Group Buff Spell Name
GroupBuff6=Group Buff Spell Name
GroupBuff7=Group Buff Spell Name
GroupBuff8=Group Buff Spell Name
GroupBuffDuration1=99999
GroupBuffDuration2=99999
GroupBuffDuration3=99999
GroupBuffDuration4=99999
GroupBuffDuration5=99999
GroupBuffDuration6=99999
GroupBuffDuration7=99999
GroupBuffDuration8=99999
GroupBuffAtStart1=0
GroupBuffAtStart2=0
GroupBuffAtStart3=0
GroupBuffAtStart4=0
GroupBuffAtStart5=0
GroupBuffAtStart6=0
GroupBuffAtStart7=0
GroupBuffAtStart8=0
GroupBuffMinMana1=0
GroupBuffMinMana2=0
GroupBuffMinMana3=0
GroupBuffMinMana4=0
GroupBuffMinMana5=0
GroupBuffMinMana6=0
GroupBuffMinMana7=0
GroupBuffMinMana8=0
GroupBuffMinGroupCount1=0
GroupBuffMinGroupCount2=0
GroupBuffMinGroupCount3=0
GroupBuffMinGroupCount4=0
GroupBuffMinGroupCount5=0
GroupBuffMinGroupCount6=0
GroupBuffMinGroupCount7=0
GroupBuffMinGroupCount8=0
GroupBuffAnnounce1=Group Buff Announcement
GroupBuffAnnounce2=Group Buff Announcement
GroupBuffAnnounce3=Group Buff Announcement
GroupBuffAnnounce4=Group Buff Announcement
GroupBuffAnnounce5=Group Buff Announcement
GroupBuffAnnounce6=Group Buff Announcement
GroupBuffAnnounce7=Group Buff Announcement
GroupBuffAnnounce8=Group Buff Announcement
GroupBuffClass1=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffClass2=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffClass3=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffClass4=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffClass5=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffClass6=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffClass7=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffClass8=WAR|SHD|PAL|RNG|MNK|ROG|BRD|BST|BER|SHM|CLR|DRU|WIZ|MAG|ENC|NEC
GroupBuffMemToSlot1=0
GroupBuffMemToSlot2=0
GroupBuffMemToSlot3=0
GroupBuffMemToSlot4=0
GroupBuffMemToSlot5=0
GroupBuffMemToSlot6=0
GroupBuffMemToSlot7=0
GroupBuffMemToSlot8=0
[Pet]
PausePet=1
PetAssistOnHPPct=98
PetAssistCheckTime=5s
PetAssistName=Assist Name
PetBuffCount=0
PetBuff1=Pet Buff Name
PetBuff2=Pet Buff Name
PetBuff3=Pet Buff Name
PetBuff4=Pet Buff Name
PetBuff5=Pet Buff Name
PetBuff6=Pet Buff Name
PetBuff7=Pet Buff Name
PetBuff8=Pet Buff Name
PetBuffIconName1=Pet Buff Icon Name
PetBuffIconName2=Pet Buff Icon Name
PetBuffIconName3=Pet Buff Icon Name
PetBuffIconName4=Pet Buff Icon Name
PetBuffIconName5=Pet Buff Icon Name
PetBuffIconName6=Pet Buff Icon Name
PetBuffIconName7=Pet Buff Icon Name
PetBuffIconName8=Pet Buff Icon Name
PetBuffMemToSlot1=0
PetBuffMemToSlot2=0
PetBuffMemToSlot3=0
PetBuffMemToSlot4=0
PetBuffMemToSlot5=0
PetBuffMemToSlot6=0
PetBuffMemToSlot7=0
PetBuffMemToSlot8=0
/tell botname | /echo selfbuff [#|all] generates no action

in debuff mode he only sotf's then nothing :/

must be some gaping error I'm making, but sadly I have no clue what.... any ideas? any help muchly appreciated.

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Thu May 06, 2004 5:21 pm

You have to set your xxxxxCount= settings.

SelfBuffCount=0
DebuffCount=0

etc. You set this to the number of slots you filled in for each section. For SelfBuffs you have two spells defined so you'd set it to 2.

Then to buff yourself with self buffs you'd:

/echo selfbuff all (For all self buffs)
/echo selfbuff 1 (For just the buff in slot 1)

Get it now?

young_mquser01
decaying skeleton
decaying skeleton
Posts: 4
Joined: Wed May 05, 2004 12:11 pm

Post by young_mquser01 » Thu May 06, 2004 5:45 pm

Thank you very much. Working like a charm now. :)

jumpyfrog
Macro Author
Macro Author
Posts: 100
Joined: Thu Dec 11, 2003 5:42 am

hmm

Post by jumpyfrog » Thu May 06, 2004 9:40 pm

Ok, this is going to sound like a stupid question but what does this line, and the others exactly like it do?

SelfBuffCheckTime=15s

Logic makes me think it checks the status of self buffs every 15 seconds, and the one for debuff would check for mobs to be debuffed every X seconds...right?

I was playing around with the numbers and on a large number, like I set the group buff one to 30 seconds, it seemed to do just that. However, I sometimes notice a very significnt slowness in the debuff even with it set at 1-3s depending. Like I would pull it, and fight the thing for over 10 seconds before the mob was noticed and then debuffed. Other than that its working correctly, just seems slow to respond.

Is that my machine/priority configuration or something similiar or do I need to manipulate more numbers in the ini? And the pause upon action or whatever IS set to zero, meaning no pause before the actions, its not that. Once it notices the mob it starts its debuffing instantly, it just takes a few to notice it on occassion

Also like to add that while the Canni system does work properly, and this again could be MY mistake, but in your example INI it said setting the duration to 1 will continue canning as long as the conditions are true. However what happens is he will cast cann IV, sit...it pauses a few seconds, then casts it again I would like him to just stand there and chain cast it, or at least sit, and immediatly stand and cast again, where is the pause coming from?
-Mark

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Thu May 06, 2004 9:51 pm

Your cpu can only do so much work in a given time. If you have all functions turned on heal, debuff, selfbuff, groupbuff and events you'll never get all of those checks done in a short period of time regardless of what you set those checks to. You will however help out your processing if you do like you were saying and change buffs to once every 30 seconds.

In order of inherent cost/priority it is like this:

heal --> debuff --> events/selfbuffs/groupbuffs

Moral of the story is, if you are a cleric and have 6 heals or whatever and one debuff, you will save a ton of processing if you just forget about that debuff and toggle it off. This would give you very good response time to heals if it isn't fast enough while doing the one debuff.

Also, if you turn on follow mode and leave it on you are stealing alot of processing power from thos functions when standing still. When moving around all functions except heal are paused until you stop.

The check timers only guarantee the minimum amount of time functions will be called. If I have a crap CPU it and I set the heal timer to 1s it is likely it'd never get done with the other work it had to do by the time the one second was up on that timer. However, if I had a kick ass system, I might get back tot he function call in .8 seconds. If I did, it would say "sorry the timer isn't ready for you" and it would catch that function on the next time it was called.

This is the same reason you are having that behavior with Cann. Set the event check timer to 1s, turn off heals if you have them on and you'll notice a world of difference. If you are a spot healer and that isn't an option you can issue the '/tell botname heal' command when your bot needs to cann fast and it would then speed up the cann events. Then after he is good on mana you could turn heals back on.

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Thu May 06, 2004 10:01 pm

I might add a priority number for all functions that would help better control the macro. If it works out I could probably get rid of the check timer, as it would better control the execution than a timer.

jumpyfrog
Macro Author
Macro Author
Posts: 100
Joined: Thu Dec 11, 2003 5:42 am

wow

Post by jumpyfrog » Thu May 06, 2004 10:58 pm

holy shit yea.....
I understand the concept of a CPU only being able to handle so much at once, but I guess I completely underestimated the amount of processing a simple macro uses. I just think of the hundred of simple little stupid programs I've written for class and how they zip right through, I assumed a macro would be *nearly* as fast.
Anyway I changed it to pause self and group buff at startup, which makes group buffing a bit more bleh because I turn it on to buff and off again after to keep the more crucial functions operating at a faster speed, but still quite nice.
It works beautifully though, so excellent job.
One thing I noticed though, even with the change to increase speed. On a constant stream of Canni IV's he still sits between each one, which im guessing has to do with the order of operations, so to speak that you coded the cycle of what to do. and right along side of that it turns attack on real quick, then off again. i checked my settings and I dont have auto attack with assist on either, so thats not it.
-Mark

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Fri May 07, 2004 12:12 am

I have some improvements to casting in general and added priority to events. I will post it here in a bit after I test it a bit more.

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Fri May 07, 2004 12:19 am

Updated:
advbot.mac

I've improved spell casting to wait for spell gem refresh a bit better.

Added some more delay time when targeting, it seems that sometimes I wasn't giving it enough time to gather new HP info etc. before checking the data.

Gave higher priority to event functions.

For your Cann issue I would suggest that you try setting the event check timer to 1s.

Everyone please let me know if this helped hurt anything and I'll try to get it fixed.

Priority is more like this now:
heal --> debuff --> events --> selfbuffs/groupbuffs