Genbot Version 12 Ready

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

Moderator: MacroQuest Developers

Rassilon
a lesser mummy
a lesser mummy
Posts: 73
Joined: Thu Sep 04, 2003 6:34 pm

Post by Rassilon » Fri Apr 30, 2004 1:07 pm

Fuergrissa: Check your MQ2 zip cause autoheal was deffinatly working for me this morning.
Odd, I'm using a fresh install and new dir of MQ2 (latest one) and latest genbot and advpath and mine still craps out and endsmacro when trying to use the autoheal.

My ini healer section looks like this too:
[Healer]
IsHealer=1
IsPally=0
ReportAutoHeal=1
HealPets=0
PatchHealer=0
TankSpell=Complete Healing
CasterSpell=Supernal Remedy
DefaultHealSpell=Supernal Light
PetSpell=Name of Pet Heal Spell
PatchSpell=Name of Patch Heal Spell
HealCasterMsg=Healing %t
HealTankMsg=CH inc to %t
HealPetMsg=Healing %t
PalHealMsg=Healing %t
PatchHealMsg=Patch Healing %t
PallyGroupSpell=Name of Pally Group Heal Spell
PallyHealSpell=Name of Pally Heal Spell
CasterPctHeal=80
TankPctHeal=75


BTW, not sure if this pertains to genbot or to advpath but its "stick" on a mob is acting weird. A mob can push the tank out of its attack range and the tankbot won't move back in. Also, '/tell bot attack %t' makes the bot move and attack the mob about 25% of the time. The rest of the time it sits at its anchor with attack on and it keeps facing the mob but doesn't move to the mob to attack. You have to manually move or tap the arrow keys to get it started moving.


Thanks
Last edited by Rassilon on Fri Apr 30, 2004 1:13 pm, edited 2 times in total.

xander
a lesser mummy
a lesser mummy
Posts: 33
Joined: Thu Apr 22, 2004 11:40 pm

Post by xander » Fri Apr 30, 2004 1:07 pm

When I do sn/snt/buff spirit of wolf, my bot tells me that it doesn't know the spell spirit and can't cast it.
Xander

gus
a lesser mummy
a lesser mummy
Posts: 70
Joined: Fri Apr 09, 2004 11:58 pm

Post by gus » Fri Apr 30, 2004 1:31 pm

Case sensitive mispelling in 12.24 botcore.inc, correction in red:

Code: Select all

   /if (${Defined[[color=red]S[/color]hort[color=red]C[/color]uts]}) {
      /for counter 1 to ${TopShortCut}
         /if (${CurrCommand.Equal[${[color=red]S[/color]hort[color=red]C[/color]uts[1,${counter}]}]}) {
            /call ShortCut ${counter} ${CommandParam}
         }
      /next counter
   }
BTW, loving the shortcuts, very sweet addition. Really pares down my Personal.inc file.

LordGiddion
a snow griffon
a snow griffon
Posts: 352
Joined: Sat Sep 13, 2003 6:12 pm
Contact:

Post by LordGiddion » Fri Apr 30, 2004 1:37 pm

Ok folks give me a few, I think I see the problem - Looks like a problem with the spellsub choking on ceertain spell names, When I tested I used spells that didn't have spaces.

gus
a lesser mummy
a lesser mummy
Posts: 70
Joined: Fri Apr 09, 2004 11:58 pm

Post by gus » Fri Apr 30, 2004 1:42 pm

Just debuggin this now. It works for me when I change the call to the SpellSub to _not_ quote the string with " ".

B0rk'd:

/call SpellSub "${SpellName}"

Works:

/call SpellSub ${SpellName}

When quoting, only the first word of the string seems to get passed into the SpellSub. I don't know enough yet to know when to quote and when not to quote.
Last edited by gus on Fri Apr 30, 2004 1:54 pm, edited 1 time in total.

gus
a lesser mummy
a lesser mummy
Posts: 70
Joined: Fri Apr 09, 2004 11:58 pm

Post by gus » Fri Apr 30, 2004 1:54 pm

This with advpath.inc 1.24...

Noticing an oddity when I try to get bots to follow me. If I say 'follow me', sometimes the bot targets some random mob in the zone and then starts running for the mob (always seems at least to be mob of same name, perhaps same spawn id even). Funny the first couple times (assuming bot lives), but gets freaky after a while. Debugged the Genbot script, and seems proper, would appear to be an advpath.inc or core MQ2 bug. Will dig into this further after other lower hanging fruit are picked.

Additionally, if 'follow me' does work and the bot targets me, whenever I change my target, the bot decides to follow that new target. Again, not sure on why this would be so. Don't recall this being the legacy behaviour, perhaps I'm remembering incorrectly, not been able to play this month at all.

Gus

LordGiddion
a snow griffon
a snow griffon
Posts: 352
Joined: Sat Sep 13, 2003 6:12 pm
Contact:

Post by LordGiddion » Fri Apr 30, 2004 2:15 pm

Definatly some weird stuff with /call will get an update asap

Likwid
orc pawn
orc pawn
Posts: 22
Joined: Mon Nov 03, 2003 6:09 pm

Feedback

Post by Likwid » Fri Apr 30, 2004 2:29 pm

Okay with the new updates pasted. I get the following errors when running genbot. I get the /call errors the init-toggles, shortcuts, and personal. I took them out to load up genbot and it did so fine.

When genbot is loaded I got to test autoheal once again and it's progressed a little bit but here are some problems. It doesn't always heal when it is supposed to. When it does heal it casts more than one heal (usually 2) even if it's not needed. It doesn't chain cast the heals anymore.

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

Multiple bots per channel

Post by bollox » Fri Apr 30, 2004 2:29 pm

LordGiddion: there is currently no way to manage multiple bots per communication channel. For example, if you have two bots in an IRC channel and you issue a command, they will both execute that command. I propose that we change the command syntax from
command
to
botname command
This requires only a minor change to Event_Chat:

Code: Select all

   /if (${MasterList.Find[|${ChatSender}|]}) {
      | Commands must be preceded by bot's name!
      /if (${ChatText.Arg[1].NotEqual["${Me.CleanName}"]}) /return
      | Remove BotName from ChatText string.
      /varset ChatText ${ChatText.Mid[ ${Math.Calc[${Me.CleanName.Length}+1]} ,${ChatText.Length}]}
      /varset MasterName ${ChatSender}
      /call ExecCommand "${ChatText}"
   }
I've made this suggestion several times in the past and received no response. Does anyone have any feedback as to why this might be a bad idea?

gus
a lesser mummy
a lesser mummy
Posts: 70
Joined: Fri Apr 09, 2004 11:58 pm

Post by gus » Fri Apr 30, 2004 2:31 pm

Figured out the 'follow me' problem. Seems that 'Do-follow' is first translating 'me' into the name of the Master and then setting the 'Afollow' variable. Eventually this causes 'Do-moveto' to get called. However, 'Do-moveto' does various checks against the TargetName and the CommandParam variable, none of which match anything, so it ends up doing a '/target ${CommandParam}', which expands to '/target me' which finds the nearest mob in zone that partially matches the name 'me'.

Not sure on proper fix. Is it what I did below? Or instead to have 'Do-follow' not use ${MasterName} but use 'me' instead and avoid the duplicate/similar logic?

Code: Select all

Sub Do-moveto(string TargetName)
   /if (${Me.Sitting}) /stand
   /varset ObstacleCheck 0
   /varset GenLastXLoc ${Me.X}
   /varset GenLastYLoc ${Me.Y}
   /if (!${Defined[TargetName]}) {
      /assist ${MasterName} 
      /call Delay 5
      /varset CommandParam ${Target.CleanName}
   } else /if (${TargetName.Equal[me]}) {
      /target ${MasterName}
      /varset CommandParam ${Target.CleanName}
   } else /if (${TargetName.Equal[yourself]}) {
      /return
   } else /if (${TargetName.Equal[${Me.CleanName}]}) {
      /return
[color=red]   } else /if (${TargetName.Equal[${MasterName}]}) {
      /target ${MasterName}
      /varset CommandParam ${Target.CleanName}
[/color]   } else {
      /target ${CommandParam}
   } 
   /if (!${Target.ID}) /return
   /doevents
   /if (${MoveToMode}==1) {
      /if (${Supportstatus}) /return
      /call RangeSub
   }
   /if (${MoveToMode}==2) {
      /call GotoFunction "${Target.Y}" "${Target.X}" "${Target.Z}"
   }
/return

Dulapore
a lesser mummy
a lesser mummy
Posts: 67
Joined: Thu Feb 26, 2004 4:39 am

Post by Dulapore » Fri Apr 30, 2004 2:38 pm

bollox: This was in the post of Genbot 12 in the Param forum. Although I'd never use it as I like my hotkey's to be generic as I don't always run the same bot. Just change CheckName to 1 and test it out.
Add New Toggle Checkname (and ini support) - if it's true bot will only respond to commands in group or chat if the command is preceeded with <botname>
gus: Try changing FollowMode to 2 in the ini. That will use the advpath type of follow. That should get you working for now. Follow worked fine for me.

Likwid
orc pawn
orc pawn
Posts: 22
Joined: Mon Nov 03, 2003 6:09 pm

Autoheal

Post by Likwid » Fri Apr 30, 2004 2:45 pm

Clarification on Autoheal,


1. Okay I noticed when using complete heal on my warrior it will only heal him if I leave him targeted on the cleric box.

2. At 51% the warrior will get healed with complete healing. After which the cleric will continue with another complete heal, right after the first one. This is where the problem lies. I hope this helps.

Thanks and keep up the good work.

gus
a lesser mummy
a lesser mummy
Posts: 70
Joined: Fri Apr 09, 2004 11:58 pm

Post by gus » Fri Apr 30, 2004 2:49 pm

bollox: I like the default broadcast behaviour to all bots, let's not make it impossible. I would much rather prefer something like the following (untested):

Code: Select all

   /if (${MasterList.Find[|${ChatSender}|]}) {
      | If the BotName preceeds the command, remove it and attempt to
      | execute the command.
      | Otherwise, assume it is a broadcast command to any listening Bot.

      /if (${ChatText.Arg[1].Equal["${Me.CleanName}"]}) {
         /varset ChatText ${ChatText.Mid[${Math.Calc[${Me.CleanName.Length}+1]},${ChatText.Length}]}
      }
      /varset MasterName ${ChatSender}
      /call ExecCommand "${ChatText}"
   }
Seems Dulapore has a good suggestion for you as well, although it sounds restrictive in that the bot will only respond when properly addressed? You can always use /tell to the bot too (extra typing, bleh). Although it would be nice to be able to broadcast and single bot commands in chat at the same time (the above snippet would allow that?). Of course if we can already do that, please inform. ;)

Gus

LordGiddion
a snow griffon
a snow griffon
Posts: 352
Joined: Sat Sep 13, 2003 6:12 pm
Contact:

Post by LordGiddion » Fri Apr 30, 2004 2:55 pm

OK figured out the recasting issue, now I need to figure out how to program arround it, Problem is MQ2 Macro's are a lot more multi-thread then before - give me a few minutes and I'll fix. I have a few ideas already.

bollox: the checknames command was added just for you in respose to YOUR request, turn it on and it does what you want without changing function for anyone else. If it doesn't do what you want let me know, but try it first.

Likwid: PLEASE, is this with watchtarget or with a group member?!?!?

gus: I'll look at moveto logic when I get casting fixed.

Likwid
orc pawn
orc pawn
Posts: 22
Joined: Mon Nov 03, 2003 6:09 pm

hey

Post by Likwid » Fri Apr 30, 2004 3:03 pm

Groupmember....