Genbot v13.3.7 [Updated 04/19/05]

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

Moderator: MacroQuest Developers

draco
a ghoul
a ghoul
Posts: 145
Joined: Thu Jan 29, 2004 7:06 pm
Contact:

Draco Casts Ressurection.

Post by draco » Tue Dec 28, 2004 11:38 am

I would like to Rez Genbot. But, I need help. This is to date my favorite bot macro. Anyone interested or should we let it die?

PM me any fixes that have been done and I'll put together a version 13.5.0.

I would like to start focusing on a repository for shortcuts and routines. My view is that most of the shortcuts may only be posted in the VIP section. But, we will establish some standards.

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 » Tue Dec 28, 2004 12:01 pm

That's a massive undertaking sir, I wish you luck.

One thing you may want to do in order to make things slightly easier in the long run is convert all the casting routines to use spell_routines.inc. One, it will provide this macro with long needed item swapping and casting. And, it will also allow you to make the casting routines a lot more intelligent. For example, using a check HP sub to interrupt buff/debuff casting to heal groupmembers needing healing. And another sub to check HPs and cancel heals if a groupmember gets healed before yours lands.

I thought about doing this myself, but found it to be more work than it was worth in my eyes. That's why I spawned RaidDruid.

The lack of item swapping and solid heal logic were the 2 main reasons I gave up on GenBot and moved onto making my own mac.
[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]

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

Post by Frank25 » Sun Feb 20, 2005 6:26 am

i've been using genbot for ages wihotu any trouble, but recently i've noticed that when i use it on my warrior and have "slam" on it keeps repeaeting
"you do not have this ability on a doablitly button"

Which, is odd coz i do and it used to allways work.
I've even tried putting slam on ALL the buttons but nothing.

The other odd thing is TAUNT does work ...

Anyone encounter this problem and able to fix it. i cant seem to find what could be wrong.

draco
a ghoul
a ghoul
Posts: 145
Joined: Thu Jan 29, 2004 7:06 pm
Contact:

Post by draco » Sun Feb 20, 2005 7:29 am

This became a problem several months ago. Check out help and VIP:HELP. Slam is an innate not an ability.

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

Post by Frank25 » Mon Feb 21, 2005 2:10 am

yeah, i coulnd't find it on the site but for those with the same problem this fixes it:

Go into the combat.inc and find where the "slam" toggle is set.
Instead of it saying /doability "slam" cahnge it to /doability 1 (or whatever number you have slam under) and it will work )

Dirty, but it works

ascii38
a grimling bloodguard
a grimling bloodguard
Posts: 506
Joined: Sat Jul 17, 2004 8:06 pm

Post by ascii38 » Wed Apr 20, 2005 2:05 am

Sorry for disappearing, folks. Something came up and it was unavoidable (all I'll say is that it wasn't jail :smile: ) . It sucks that it was right at the same time that Vexix left.

I've updated bothealer for the ${Group} changes. Can someone with a Paladin check to make sure that I got them all done in the right places?

Draco, if you've put a bunch of work in to updating Genbot while I've been gone, I will step aside, let you take over and assist where I can. I'm going to be back on a steep learning curve with the code anyway.

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

Post by nytemyst » Fri Apr 29, 2005 11:59 am

For the melees that go behind the mob is it possible to add a delay before it goes behind the mob again? It would seem more real if the bot wasnt instantly trying to get behind the mob everytime it moves. can possible also make it so being on the side of the mob is ok as well and doesnt try to reposition until the mob is pratically facing the bot.

crisdan
a ghoul
a ghoul
Posts: 126
Joined: Mon Mar 24, 2003 1:56 pm

Post by crisdan » Fri May 06, 2005 10:58 am

ascii thx for picking this backup. As a complete genbot user I love to see someone continue to keep this going.

Is there any current issues or release info you can post about your current workin ascii?

User avatar
billthecat
a lesser mummy
a lesser mummy
Posts: 64
Joined: Sun Jan 30, 2005 8:58 pm

Welcome back. Here's my list of comments.

Post by billthecat » Fri May 06, 2005 2:15 pm

One thing I've been looking at was adding in the crowd control routine from Rusty's auto enchanter bot. It has a nice system to maintain a list of targets in range and cycles through them to check if they are aggro on a team member. It maintains a list of timers for each of the mobs it has mezzed and will remezz them accordingly.

This kind of situational awarness would add alot to genbot's value.

I also have been working on some aggro control logic for the healer routine. right now I have AFcleric set up for my cleric, but I've been trying to adapt routines into genbot because I want to standardize on one platform.

Here's what I put into AFcleric:

Code: Select all

|**------ Aggro Management logic --------|
if MT target health is under 80% or MT under emergency health or MT is not in combat 
   cast ch
else
  if hot_timer for that toon has expired
     cast hot
  else 
     cast patch heal (divine light for example)
|--------------------------------------**|
Sub CarefulCHeal
   /echo careful cheal routine called
   /if ((${Target.Target.PctHPs}<=80) ||  (${Target.PctHPs}<=${Emer_heal_override}) ||  (!${Target.Combat})) {
      /echo ${healspell} incoming on %T.  stay close! 
      /call Cast "${healspell}" gem1 1s CheckHP  
   }
   /else {
      /echo %T, I realize you need a heal, but your target will come after me if you don't get a good aggro lock on it.  If you hit ${Emer_heal_override} percent health I'll Complete Heal you anyway
      /echo How about I toss a Heal over Time at you %T?
      /call HotHeal
   }
/return

Sub HotHeal
           /echo hot heal routine called
            /if ( !${Defined[hotTimer${Target.ID}]} ) /declare hotTimer${Target.ID} timer outer 0
            /if (!${hotTimer${Target.ID}) {               
               /call Cast "${hotspell}" gem3 1s CheckHP
               /varset hotTimer${Target.ID} ${HoTDuration}
            }
            /else {
               /echo On second thought, maybe the mob won't notice a ${patchheal} on you, %t
               /call Cast "${patchheal}" gem2 1s CheckHP
            }
/return
Those routines appeared to work in the testing I've done so far.

We might want to crank the speed up to 40 also.

One thing that has been brought up is the fact that some bots, like Genbot, need to be told to assist. we might want to alias protect or guard mode into an auto assist function.

I just have not had time to integrate all this together. otherwise I'd have posted an update.

One bug I ran into was a problem where if you told the bot to assist and it was following someone the bot would ping pong back and forth between the person it was following and the mob. I got around that by defining a 'wasfollowing' variable that would get set if you entered the assist routine and had a follow target defined. It would also set an anchor so the bot would return to where it was and resume following its follow target.

I also had to create an always stand override to keep the bot from jumping up and down when it ran out of mana too. It seemed to be a race condition between trying to maintain a self buff and medding.

It would also be nice if we could use the crowd control routine to signal the bot not to sit down if there are any hostile mobs nearby.
Last edited by billthecat on Fri May 06, 2005 6:52 pm, edited 2 times in total.
"If you think nobody cares, try missing a couple of payments"

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 May 06, 2005 3:01 pm

The sit logic could be fixed by adding an internal check before attempting to cast a spell. In RaidDruid I checked Me.CurrentMana against Spell[XXX].Mana before using /call Cast in spell_routines. I'd dig through my code, but I'm kinda busy at work atm. But, in essence, the only time the bot would stand out of turn is if the client's mana value is higher than what the server says it is and it tries to cast. It doesn't happen often, but it's something that screws with players and bots alike.

The lack of autoassist in GB always annoyed me too. Half my in game macros were IRC commands telling the bots what to do, which sort of defeated the purpose of having bots in the first place.
[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]

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

Post by Frank25 » Sun May 08, 2005 10:46 pm

Something odd be happening.
Since a week or so , after i patched to the latest MQ2 source after that last big EQ patch i started noticing 1 pc ( i run mq on 4) was chuggin.
It's not packet loss lag, but it looks like video lag.
However the PC is a 2400mhz, 1gig ram, GF4 256 meg system.
So with everythign turned off, it shuldnt' lag.

And the odd thing is. it never did till i patched.
it ONLY happens when i run genbot.mac. I haven't made changes to that since i got it months ago. (except for the group code, and it worked fine till last patch/mq update)
If i PAUSE the macro lag goes away, if i end it..lag goes away. start it..and it's back

Oddity, i run the exact same code on 5 other pc's, and they dont have the issue.

Now the code runs on a cleric without any melee/healer code on..
that particular pc / toon / mq2 instance has the alt-ability divine arbitration bug that lotta peopel been saying where the timer allways shows NULL

could that have anything to do with it?

only thing im 100% sure of is that fact it's ONLY genbot (afcleric.mac runs fine, albeit it the div arb code doesnt' work, but no lag).

Any ideas?

i r at a loss..

User avatar
billthecat
a lesser mummy
a lesser mummy
Posts: 64
Joined: Sun Jan 30, 2005 8:58 pm

Post by billthecat » Mon May 09, 2005 3:08 pm

So it only happens on your cleric on this one system?

What happens if you run it on a different system? (same character/ini)

What happens if you run a different healer class (pally/shammy/BL - whatever) on the affected system? What about a non healer?

Is it constant or does it only happen under certain circumstances?
"If you think nobody cares, try missing a couple of payments"

Crux
decaying skeleton
decaying skeleton
Posts: 1
Joined: Sun May 15, 2005 6:18 pm

Post by Crux » Sun May 15, 2005 6:20 pm

this still working for everyone?

getting flooded with DoCommand errors on execution

Warauinu
a snow griffon
a snow griffon
Posts: 377
Joined: Fri Apr 15, 2005 9:21 am

Post by Warauinu » Mon May 16, 2005 10:43 am

Still working for me, noticed a little more hesitation than usual like maybe it was a little slower in respondign but worked.

draco
a ghoul
a ghoul
Posts: 145
Joined: Thu Jan 29, 2004 7:06 pm
Contact:

Post by draco » Wed May 18, 2005 3:44 pm

I have done fixes to botspell.inc to fix cancel heals if already healed, Evac code.

And I also removed some conflicts with spell_routines.inc so you can make custom commands that can do a set of processing steps and cast spells without relying on the cast queue stack, this was nesessary to evac. For example, My druid is MH and when we need to evac my tank is keeping agro and taking damage fast. I don't need to heal logic to kick in and delay the evac. if the Tank dies while the druid is casting heal. Guess who the mobs go after next? You gueesed. TPW.