genbot.mac Generic Bot macro for any class. V9.3 with ini

A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Moderator: MacroQuest Developers

User avatar
lasher
a lesser mummy
a lesser mummy
Posts: 71
Joined: Thu Dec 18, 2003 4:09 pm

Post by lasher » Wed Dec 31, 2003 5:53 am

fishez wrote:OKies. Just tried the new code. With Shammy (level 57) I got the message of course that he could not use the AA ability Cannabalization which is fine but also got a 2 couldn't parse ')'.

Looking through the code now but thought I would let you know in case first.

Thanks for the new code!!!

Fishez

Edit:

Think I found the extra ) here:

/if n $char(hp,cur)>1900 )
/if @CannAATimer<=1 {

Deleted that and changed the Cannibalize IV to Cannibalize III and everything worked great except for getting a couldn't parse 'ur)>1900' BUT he did canni correctly.

Thanks!!

Doh. Thanks for spotting that. I was merging my changes from 3 codebases, yay typos. Fixed. personal.inc updated.

User avatar
lasher
a lesser mummy
a lesser mummy
Posts: 71
Joined: Thu Dec 18, 2003 4:09 pm

Post by lasher » Wed Dec 31, 2003 5:58 am

For those having trouble on the yaulp and cann portions. They are controlled by having the bot 'reportlom'.

So to turn off canning or yaulping for any reason; /t bot reportlom off

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

Still struggling with genbot 1st time setup

Post by crisdan » Wed Dec 31, 2003 9:02 am

Master - warrior
slave 1 - shaman
slave 2 - mage

I have fun /mac genbot masterwarrior and this created a genbot_masterwarrior.ini file. Now my questions are:

1. Do I run the same genbot program for my 2 slaves individually?
2. After the genbot_masterwarrior file is created....what exactly am I editing in this file since he is a noncaster and just need a head start getting this setup?
3. If I can make this work I will be happy to start a preliminary readme for noobs since I am basically starting from skratch myself :>

Please advise

2boxingFiend
decaying skeleton
decaying skeleton
Posts: 5
Joined: Tue Dec 16, 2003 11:39 am

Post by 2boxingFiend » Wed Dec 31, 2003 10:43 am

from what i am reading, your war is your master, shm as healer, and mage as dmg dealer.

on your shm account.

/mac genbot warName. this creaste the ini file for the shm. then /end on shm account. go into shm ini file and modify the spells you want to use.

do the same on your mage account.

things i have been playing around on my shm bot is via tell macros i send from the master.

such like

/msg shmbot autoheal
/msg shmbot petona on (send in pet on assist)
/msg shmbot assist to lock $target(id) -- i think

then you can send msg like debuff (malo, criple), slow, sepic, nuke.

depend on what you are comfortable with. you can modify the percent in which the character heal. I do have a question. with autoheal, my shm is healing "tanks" when hp 51% or lower, and 70 for casters. is there a way to make my bot cast the hot when ever a character is under 90pct?

also my shm has ornate bp for clicky haste, and ornate legging for root, how do i use these items via buffs command without the bot memorizing the counterpart spell in my spellbook.

the ur)>1900 is still not parsing. still need to debug this part of the code.

ty for a wonderfull script.

User avatar
lasher
a lesser mummy
a lesser mummy
Posts: 71
Joined: Thu Dec 18, 2003 4:09 pm

Post by lasher » Wed Dec 31, 2003 10:54 am

2boxingFiend wrote:from what i am reading, your war is your master, shm as healer, and mage as dmg dealer.

on your shm account.

/mac genbot warName. this creaste the ini file for the shm. then /end on shm account. go into shm ini file and modify the spells you want to use.

do the same on your mage account.

things i have been playing around on my shm bot is via tell macros i send from the master.

such like

/msg shmbot autoheal
/msg shmbot petona on (send in pet on assist)
/msg shmbot assist to lock $target(id) -- i think

then you can send msg like debuff (malo, criple), slow, sepic, nuke.
Yes. 2boxingfiend is right. It sounds like you're running your macro from your main and not your bots. The macro needs to be run on the botted characters. Try what he suggests, see how it does for you.

depend on what you are comfortable with. you can modify the percent in which the character heal. I do have a question. with autoheal, my shm is healing "tanks" when hp 51% or lower, and 70 for casters. is there a way to make my bot cast the hot when ever a character is under 90pct?

also my shm has ornate bp for clicky haste, and ornate legging for root, how do i use these items via buffs command without the bot memorizing the counterpart spell in my spellbook.

In the .ini file, set the following to what you want for healing percents (if it becomes that low):

Code: Select all

CasterPctHeal=60
TankPctHeal=50
I have 60% for casters and 50% for tanks.

If your caster heal (as defined in CasterSpell) is a heal over time, set the following code to be true; also set the hot duration in HotDelay:

Code: Select all

CasterHealIsHot=1
HotDelay=60
Rereading above; are you asking for the ability to automatically use a heal over time on a tank (at a certain percent) or did the caster hot answer your question?

the ur)>1900 is still not parsing. still need to debug this part of the code.
Make sure you downloaded the new personal.inc. I haven't had a chance to test it as I'm at work; the typo should be fixed.

User avatar
grimjack
Macro Author
Macro Author
Posts: 525
Joined: Thu Nov 07, 2002 6:51 am
Contact:

Post by grimjack » Wed Dec 31, 2003 11:18 am

I'm glad to see that someone is going to keep it up to date. I have not signed on to EQ yet for 2 weeks and so far my detox is going well. I'll probably stop by here and there and see all the cool stuff you all add to genbot and maybe say hey or help out when I can.

Thanks again
When they come to me, they're in trouble, or they want some. I bust people out of prison, hunt down vampires, fight alien gods -- All the fun jobs people are too squeamish or too polite to do themselves.

Call me a mercenary. Call me an assassin. Call me a villain. I am all that and more.

My name's John Gaunt, but out on the streets of Cynosure, I am called...
GrimJack

User avatar
lasher
a lesser mummy
a lesser mummy
Posts: 71
Joined: Thu Dec 18, 2003 4:09 pm

Post by lasher » Wed Dec 31, 2003 12:18 pm

Grim,

Please do. =) I'll aiming to keep the same structure and modularity.

2boxingFiend
decaying skeleton
decaying skeleton
Posts: 5
Joined: Tue Dec 16, 2003 11:39 am

Post by 2boxingFiend » Wed Dec 31, 2003 1:39 pm

I notice that whenever I zone with the shm, the mana bar looses about 2 pct, thus the shm is constantly casting canni. also, although when on the move chain casting canni is kinda of useless due to interrupts. so i add changed the mana pct before to canni start, and added to only canni when the shm isn't moving.

Code: Select all

Sub CheckCann
   /if n $char(mana,pct)<80 {
      /if n $char(hp,pct)>=90 {
            /if n $char(hp,cur)>1900 {
            /if @CannAATimer<=1 {
            [color=red]/if n $char(ismoving)=="FALSE" {[/color]
                  /alt activate 47
                  /varset CannAATimer 3m
                  /return
             [color=red]}[/color]
            }
           }
      }
   }
   [color=red]/if n $char(mana,pct)<95 {[/color]
      /if n $char(hp,pct)>=40 {
         /if @CannTimer<=1 {
         [color=red]/if n $char(ismoving)=="FALSE" {[/color]
            /call SpellSub "Cannibalize IV"
            /varset CannTimer 4s
          [color=red]}[/color]
         }
      }
   }

bollox
orc pawn
orc pawn
Posts: 17
Joined: Tue Oct 28, 2003 2:14 pm

genbot syntax suggestion

Post by bollox » Wed Dec 31, 2003 10:46 pm

I send commands to genbot from an IRC channel. Since there is a lot of chatter in the channel, genbot occasionally crashes due to the Event_Chat being unable to parse unfamiliar characters, or multiple doublequotes, etc.

I propose that we change the genbot command syntax to require that the genbot's playername precede the command string.

i.e.: /irc dweezil heal me

It also cuts down on process time as it will toss out all chatter strings from being compared against the command array.

This simple code change under Event_Chat in botcore.ini does the trick:

Code: Select all

   
   | Commands must be preceded by bot's name!
   /if "$arg(1,"@Param2")"!="@BotName" /return

   | Remove BotName from Param2 string (to avoid having to rewrite genbot)
   /varset ParamCount 2
   /varset ParamString ""
   :Do-RemoveBotNameLoop
         /if $arg(@ParamCount,"@Param2")!="" {
            /echo $arg(@ParamCount,"@Param2")
            /varcat ParamString " $arg(@ParamCount,"@Param2")"
            /varadd ParamCount 1
            /goto :Do-RemoveBotNameLoop
         }
   /varset Param2 "@ParamString"
...and declare ParamString and ParamCount as local vars.

Code: Select all

Sub Event_Chat
   /declare ParamCount local
   /declare ParamString local

leetenc01
decaying skeleton
decaying skeleton
Posts: 1
Joined: Thu Jan 01, 2004 4:04 am

Post by leetenc01 » Thu Jan 01, 2004 4:07 am

was wondering, since im a fairly big newb to MQ heh, where in this would i need to edit to make my bot cast an item for his spell. Like if my wiz bot had epic and i wanted buff1 to be click staff of the four. Just putting buff one as the item name didnt work :(

Flea
a lesser mummy
a lesser mummy
Posts: 55
Joined: Fri Dec 26, 2003 4:56 am

Post by Flea » Thu Jan 01, 2004 5:46 am

also my shm has ornate bp for clicky haste, and ornate legging for root, how do i use these items via buffs command without the bot memorizing the counterpart spell in my spellbook.
I had this same question, my shaman uses ornate bp and a shield that casts immobilize, and also a mask that casts invisiblity.

Flea
a lesser mummy
a lesser mummy
Posts: 55
Joined: Fri Dec 26, 2003 4:56 am

Post by Flea » Thu Jan 01, 2004 6:38 am

Also getting a problem, or bug not sure, but when i Tell shaman, 'debuff' shaman then debuffs mob, however he then casts all spells on buff list on the mob.

McTisuk
orc pawn
orc pawn
Posts: 11
Joined: Thu Jan 01, 2004 6:46 am

Requested change

Post by McTisuk » Thu Jan 01, 2004 7:04 am

In botspell.inc,

Code: Select all

      /memspellset default 
causes the bot to try and load a spellset called "default". Most others got changed, this one didn't.
Here's my change applied (so you can find it) :

Code: Select all

   /if n @DoAgain==1 /goto :BeginCast
   /if n @Remem==1 {
[color=red]      /memspellset @DefaultSpellSet[/color]
      :loadsploop
      /delay 5
      /if $char(spellbook)=="TRUE" /goto :loadsploop
   }
/return 0

|WaitForStart
Also, any %T break on irc use, so can you replace all with $target(name,clean) please? I've checked and it works fine then -)


I have a mod for genbot (modded from the FIRST version posted here, without shammy canni fix, etc) which allows the bot to keep a list of buffs it needs on. It's implemented in another inc, with it's own cmd list, etc. Due to this, it's quite a lot of changes to some files. Any interest in me posting this?

Basically, you set spell names the bot must have in the ini file, then it checks and if they are fading or not on, it casts them on itself, or sends out a standard request for it to the control channel (snme).
Oh, and it does a combat-list only set too, so you could put say damage shield or yaulps in that list, and not have them spammed /cast all the time out of combat.
Is there any way to get "type of zone" ? like outdoor/indoor? SOE and other such buffs require you to be outdoors, would like to add outdoor list to this...
McTisuk ... just another macro writer~

User avatar
Bad Karma
a snow griffon
a snow griffon
Posts: 346
Joined: Sat Nov 22, 2003 9:34 pm
Contact:

Re: Requested change

Post by Bad Karma » Thu Jan 01, 2004 11:54 am

One thing I'd like to see is implimenting the Cannibalize-Inc.mac that was recently posted. Works like a charm.

McTisuk wrote:Is there any way to get "type of zone" ? like outdoor/indoor? SOE and other such buffs require you to be outdoors, would like to add outdoor list to this...
You could trap the event "This spell can only be cast outdoors" and have it check for an alternate spell from your .ini... SoW, for example, could be replaced with Shrew.

User avatar
Bad Karma
a snow griffon
a snow griffon
Posts: 346
Joined: Sat Nov 22, 2003 9:34 pm
Contact:

Post by Bad Karma » Thu Jan 01, 2004 12:16 pm

Hmm...I'm going to play around with this idea a bit... for the mac I'm working on...

Code: Select all

[SoW]
SPELL=Spirit of Bih`Li,39
ALT=Spirit of the Shrew,29

[AC]
SPELL=Shroud of the Spirits,54
ALT=Guardian,44
[SoW] could be used as my previous post. [AC] could be used if casting on a person who is unlder level 46 ("Your spell is too powerful"). Makes for great buffbots or for a group buff routine where members in a group are of mixed levels (like PLing alts).

EDIT: Oh, the # at the end, in case someone asks...'cause you know they will...is the level of the spell. This is for something else I'm working on...but will most likely get zapped.