Genbot v13.2.1 [Updated 07/23/2004] Defend, Guard, Protect!

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

Moderator: MacroQuest Developers

Vexix
Genbot Janitor
Posts: 245
Joined: Sat Apr 17, 2004 10:10 am

Post by Vexix » Mon Jul 19, 2004 8:35 pm

Another method for doing alt abilities is:

snt alt area taunt

or

snt alt 110

This puts it in the casting queue, and makes sure bot is standing, etc.

I haven't actually tested that much, um, since my chars don't have many alt abilities. :oops: Let me know if it doesn't work.

Sj,

You're getting PI, soon? Guess I better fix the cast subs to handle that. At the moment, they might get confused since you would be trying to cast a self-target spell on another char.

Personal.inc hasn't changed, so I corrected the top post version.

A_Druid

Clicking off buffs in the .ini could be put into genbot, but isn't high on my list right now. Check the poll for some of the stuff I'm looking at doing soon.

Same with Buff priority lists. Genbot currently detects bounces, and then waits a few minutes before trying again. That seems to be a good work around for now.

Swap clickies is big on my list as well. This will probably be coming after the next code rewrite and heal rewrite.

The heal issue you mentioned should already be fixed with this release, since I think that was related to the heal prioritization bug. Try it and let me know if you still have this issue

As for interrupting nukes for heals, it could be done, but I think in general it's too much of a judgement call for me to want to code it into genbot. Would you always want nukes interrupted for heals? Even if the nuke has half a second left before it finishes? What if someone else is 9 seconds into a CH on that char? For most cases, I think the nuke should be left to complete, and then worry about healing.

That said, if you take a look at the code and want to take a shot at coding any of those things, go for it. Anything that works and makes sense I'll throw into the code. :)

Please do put up your shortcuts. I think many would appreciate them.

--Vexix

sj_digriz
a lesser mummy
a lesser mummy
Posts: 40
Joined: Wed Jun 02, 2004 9:10 am
Contact:

Post by sj_digriz » Mon Jul 19, 2004 9:23 pm

Vexix wrote:Another method for doing alt abilities is:
You're getting PI, soon? Guess I better fix the cast subs to handle that. At the moment, they might get confused since you would be trying to cast a self-target spell on another char.
Well I don't know about soon since I'm gonna be gone for 2 weeks and I don't xp with the chanter very much. But, I don't think you need to change anything to be honest. I've checked a couple of times to be sure, but look at my self buff shortcuts.

som=snt Shield of Maelin on botname
etc..

I don't use the buff command because I don't like accidental spell reloads that require sitting at the wrong time. So I started using snt on all the buffs instead. I prefer it that I have to tell the bot when to buff. Anyhow, I can infact do...

/t botname som othertoon

and it will target the other char while casting a self only buff. I do the same thing for gate. sn/snt will NOT cast without a target, so I give one even if its bogus. So I'm pretty sure PI will work fine with snt. I could be wrong hehe, but no sense fixing something that may not be broke.

By the way, this brings up a question that I've had for quite awhile. The dobuff=1 setting. If I set that to 0 I thought it would stop refreshing buffs as they expire. I've tried but it still casts the rebuffs. Again this is one of those things that is so trivial I haven't really messed with it much. Plus I may just no know what that toggle is for.

FYI, the new follow does indeed quit on escape, but I couldn't get STOP to do it. I do all my tells in a private chat channel so I can keep the commands short. for example if I want to slow something all I do is type..

/2 slow (and I have these on a hotkey as I explain below)


I didn't try doing stop in any other com channel. BTW, 8 hotkeys on the master socials page are the main chanter actions...

voq,vq,sov,tash,aetash,slow,mez,aemez

This makes raiding sooooooo much easier. And typing something like /2 cha is very easy.

I forget just how sweet this is until we have the 2 or 3 days of no mq2 after a patch.

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 19, 2004 10:26 pm

Thanks for the answers Vex, I appreciate it.

Yeah, I hadn't tried screwing with healing since the new code; it was just one observation I made on the old code. I was still at work and just posting what I had managed to pick up over the weekend.

I have to agree that clicking buffs doesn't turn into a huge thing for me usually, but on some raid nights where resists are imperative, and I have to make room for 2 MGB heals as well as a possible debuff icon or two, it's annoying to have to go down the list 1 by 1 to pick out the ones I can afford to lose. It was just something I came up with as a 'nice to have'

The waiting on blocked buffs is indeed OK, but I still found it embarrassing when my bot chain casted my clicky pants after a mage joined my group yesterday and hit his DS. In the meantime, I just click off buffs I know are blocking my autobuff spells.

Swapping in clickies is indeed high on my list as well, it would be quite spiffy to have Grim Aura up all the time in my top slot, and not having to swap it in and out on mobs with dispell.

As a full time pad healer/weak DPS class, I've found it's usually better to err on the side of caution with heals. In the case of a Paladin for example, their group heals and fast heal can be lifesavers. That 1 second left on the nuke/stun along with the 2.5 second recast of the spell gem added with the following cast time of whatever heal you cast could be the difference between life and death for a dress wearer like an Enchanter; take Tipt for example. The DPS I lose by patching would be perfectly acceptable if I manage to save at least one or two groupmembers over the course of a night.

I tend to be backup healer a lot, especially in GoD content, and it's pretty imperative that I'm on time with pad heals. And in Hard LDoNs I'm quite often the main healer with a paladin tanking and rezzing. If nothing else, have it turned on purely for Patch Healing, with a toggle for those that like to live on the edge.

I agree that it would be next to impossible to make it smart enough to be watching the cleric and timing his CHs to make it's decisions. But, if you also implement the code you mentioned to make the bot duck out of heals that would have landed on a person above the heal thresholds you have set, barely any mana would ever be wasted, lots of lives might be saved, and DPS won't suffer a ton. Most healers are a source of very mediocre DPS anyway, it's their being able to step up and pick up slack in a group's healing that makes them appealing.

Oh, and here's the current run of shortcuts I have. I haven't tested WoW because I lack it, or DC yet due to a lack of mobs to test it on after raids tonight.

Code: Select all

fire=sn summer's flame
cold=sn winter's frost
Dfire=sn Hand of Ro|sn Ensnare
Dcold=sn E'ci's Frosty Breath|sn Ensnare
root=sn Savage Roots

SoTW=/alt activate 185
exodus=moveto me|/alt activate 43
camo=/alt activate 80
mgbsotw=/alt activate 35|/alt activate 185
DC=sn alt 46
RC=/alt activate 153

WOW=snt alt 170 on NameS
invis=snt Foliage Shield on BotNameHere
9=snt Protection of the Nine on NameS
seasons=snt Protection of Seasons on NameS
summer=snt Circle of Summer on NameS
soe=snt Spirit of Eagle on NameS
Bo9=snt Blessing of the Nine on NameS
I've got to work at 5am tomorrow, or I'd take some time to learn the code better. I've played around with VBasic and some other programming code like Python a bit in the past, but I've never done a whole lot with it; so, it'll probably be a while before I produce anything remotely useful here. I do hope to contribute where I can though.

Edit: Left a char name in there, go me. That's what I get for posting right before I go to bed.
Last edited by A_Druid_00 on Tue Jul 20, 2004 4:25 pm, edited 1 time in total.
[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]

theafkxper
a hill giant
a hill giant
Posts: 207
Joined: Sun Sep 08, 2002 6:41 pm

Post by theafkxper » Tue Jul 20, 2004 4:13 pm

you might want to edit your post.. you arent exactly invisible

Edit: np :cool: hehe

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 Jul 20, 2004 7:10 pm

Is it just me, or is anyone else seeing odd behavior on botted melee? I was running a monk earlier and had attack on assist and behind on assist turned on; and my bot would go through spurts of just standing there strafing back and forth like a retard.

I turned behind on assist off, and he started acting fine; but he almost died to enrage a few times.
[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]

Vexix
Genbot Janitor
Posts: 245
Joined: Sat Apr 17, 2004 10:10 am

Post by Vexix » Wed Jul 21, 2004 5:42 am

A_Druid,

Hmm. . . I was playing around in a new zone last night, and I also noticed that bot response seemed a bit slow, but I assumed that may have been due to double-boxing on one PC in a laggy zone. Here's a few tests you can try to help me pin down the issue:

1. Try turning off defend, protect, and guard, and see if that changes anything.

2. If it still seems laggy, then try swapping back to the 13.1 version of Genbot, and let me know if that fixes it so I'll know if it's the new code that is causing the slow responses.

By the way, what do you mean by "strafing back and forth like a retard?" :D Was he within attack range and attacking, but just kept going back and forth? That does sound like a lag issue.

If the old code is still bad, you might try turning off models and pulling in the clipping plane. Are you 2-boxing on a single computer?

Thanks for the comments on the interrupt heals. I can put something like that in, and will keep it in mind for our raiding friends. ;)

I'm pausing a bit on coding, while I try and make a bit of plat for my chars. Need some better equipment before I can move onto new hunting grounds!

By the way, you can use "on yourself" with the "buff whatever on yourself" to buff the bot. "snt spellname on me" will cast on the master. Handy if you want to be able to show others your .ini. ;)

--Vexix

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 » Wed Jul 21, 2004 7:34 am

1. Defend, Protect, and Guard were all off. The only thing that seemed to be messed up was pathing when 'behind on assist' was turned on. One thing I'd like to note about Guard: Is it possible top take into account and avoid mezzed mobs? I broke a few mezzes tonight when I turned it on :\ Pets have some logic that lets them avoid it, is that info sent to the client?

2. I'll try that tonight

3. The bot would take one step left, then one step right, over and over. And no, he was not in range of the mob at all. At times, he would take off and make a bee line for what appeared to be nothing with attack on as well; I had to sent a stop command to him in order to prevent him from training me. This all went away when I turned b on a off. I thought it was lag too at first, but I have background services prioritized, and he would respond to other commands when sent to him. If I told him to FD for example, he'd do it.

4. Yes, I was 2 boxing on a single computer. I'll try it with a single accound and see how it behaves tonight.

I never thought of using youself on the shortcuts; I'll start using it from now on so I don't leav in any more typos.
[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]

mackster
a ghoul
a ghoul
Posts: 95
Joined: Mon Sep 09, 2002 3:02 pm

Post by mackster » Wed Jul 21, 2004 8:48 am

I tried using this but was unable to get my bot to /assist.

Neither /assist or /assist <mastername< worked. It just would not acquire a target. This worked fine in the previous version.

Any ideas?

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 » Wed Jul 21, 2004 8:59 am

I just tell my bot 'attack' and he goes after the mob I have targetted.
[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]

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 » Wed Jul 21, 2004 10:30 am

I have a question that popped up sitting here at work. How hard would it be to just integrate the MQ2moveutils plugin into GenBot? I mean, the code for circling, getting behind, and distance settings are all already in place with mq2moveutils; why reinvent the wheel? I use it when on my main's comp while I run genbot on my 2nd box, and I have to say the movement is pretty fluid and simple. It has some glitches, but overall it's really nice.

That way, you could just set the /stick or /circle command you want the bot to use in the ini file for that bot instead of behindonassist. It would require the person to have mq2moveutils plugged in, but if they're running genbot, then it's not like moveutils is out of their reach. And, it adds a lot of movement behavior functions that are presently not in genbot like /stick loose and /circle drunken.

I know you're busy and want to play EQ too, but I just figured I'd throw out ideas as they come up. I've still yet to have time outside of raids and helping my guildies get flagged for KT to really play with the code; but I hope to sit down a few hours this weekend and take a stab at things myself.

Oh, and currently there's combat commands in the ini file that seem to be duplicates of behindonassist and attackonassist. I think they're autobehind and autoengage or something like that. I tried playing around with all 4 settings in various combinations last night when I ran into the odd patching behavior using behindonassist. Are any of those ini settings ones that should be removed?
[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]

Vexix
Genbot Janitor
Posts: 245
Joined: Sat Apr 17, 2004 10:10 am

Post by Vexix » Wed Jul 21, 2004 11:17 am

Mackster,

In botcore, change Assist sub to:

Code: Select all

Sub Assist(string sAssistName)
   /squelch /target clear
   /if (${DebugList.Find[core]}) /echo /assist ${sAssistName}
   /assist ${MasterName}
   /delay 2s ${Target.ID}
   [color=blue]/if (!${Target.ID}) {
      /call ChatOut 3 "Unable to /assist ${sAssistName}."
   } else {
      /varset CombatTargetID ${Target.ID}
   }
/return[/color]
A_Druid,

Glad to hear your comments. You're absolutely right about some of the commands being redundant. It's one of the things I'm looking to fix. I asked about behind and getbehind in the questions up above. I'll prolly keep getbehind, because it's purpose is slightly different, but behind, bona, etc. will probably be consolidated into one behind toggle.

There are still some issues with the new defend and protect, etc. Working on it now.

I noticed that RH added in moveutils. I'm considering it. What do others think? Need or want it incorporated into base genbot code?

--Vexix

Vexix
Genbot Janitor
Posts: 245
Joined: Sat Apr 17, 2004 10:10 am

Post by Vexix » Wed Jul 21, 2004 11:36 am

Er, I found the issue with defend and protect. "ProtectOrDefendCheckRadius=20" isn't a long enough setting for the melee range. Try putting 50 or so here, and it works much better.

Other than that, seems to be working normally. A_Druid, had you tried the behind functions before? I don't really use them and haven't changed them, so I'm not sure what state they're in.

--Vexix

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 » Wed Jul 21, 2004 11:58 am

The behind function worked flawlessly for me on the previous code. I used it a lot on my druid since enrage kind of destroys him even with the high delay on his weapon. I was also using the same comp to 2 box with the old code and wasn't seeing this happen, if that helps.

I'll be the first to put my vote in for mq2moveutils, it really is nicely done overall. If it's not too much work, you could have it set as an option sort of like you did with advpath vs. standard genbot pathing.

Oh, and I had advpath turned on for moveto and follow when I had these behind on assist problems. You don't use the moveto settings to get the bot to the mob when attacking do you? Maybe it's something conflicting with your positioning code and advpath's moveto if so. I'll try it tonight with genbot's basic pathing turned on and see if it still happens if I get the time.

I still haven't played with the protect or defend settings since I've had no time to do anything but raid really. If I get a chance to 2 box a ldon or a trial tonight I'll set up the bot to defend the tank and see how it goes.
[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]

Rebeis
decaying skeleton
decaying skeleton
Posts: 1
Joined: Wed Jul 21, 2004 6:29 pm

Post by Rebeis » Wed Jul 21, 2004 6:36 pm

One observation i made so far..
If you have bot following you, and fight any given mob, the bot will dart away like is there no tomorrow, the moment the mob is dead.
This only happens if you command to bot to cast on the mob however, it works perfectly if if you command bot to cast spells on yourself, or ofcourse, don't send any commands at all.

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

Post by ascii38 » Wed Jul 21, 2004 10:31 pm

In BotCombat.inc, should:

Code: Select all

Sub CombatMain
   /call Combatcheck
   /if (!${CombatTargetID}) /return
   /if (${DoMelee}) {
      /if (!${Me.Combat}) /attack on
      /if (!${MoveTo.Lengh}) /call MoveTo "id ${CombatTargetID}" 
be "Length" rather than "Lengh", or does "Lengh" refer to something else? I've had too many beers to follow this all the way through right now.