Genbot Version 12 Ready

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

Moderator: MacroQuest Developers

Craft
orc pawn
orc pawn
Posts: 11
Joined: Fri Feb 13, 2004 3:39 am

Post by Craft » Sun May 02, 2004 5:30 pm

Ok I changed the quotes around and it working perfectly.... I haven't got a chance to test the backstab stuff but should later tonight.

A new problem.. made the changes poster for sitaftercast and now my bot sits aftercasting even if the flag is set to 0 or FALSE. Any thoughts?

Craft

MacroFiend
a grimling bloodguard
a grimling bloodguard
Posts: 662
Joined: Mon Jul 28, 2003 2:47 am

Post by MacroFiend » Sun May 02, 2004 7:48 pm

Request/Suggestion: Don't use short appreviations for EQ commands. If you don't have /g set as an alias to /gsay, it confuses EQ because it could also be /guildsay. Instead, since you are not manually typing these things to the client, use the whole command so there would be no chance for confusion. Use /gsay, /guild, /rsay etc.

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

Post by LordGiddion » Sun May 02, 2004 9:21 pm

Ok folks just to touch base, I won't be doing much with this tomorrow - work and all that stuff. But I will be putting asside some time for development and testing Tuesday - and maybe I might even get in some time playing EQ mayself :)
Things on my hit list, bug fixes posted, Buff and the rebuff timing, Chat channel - I'll fix it for text chat channel, maybe reload (not high priority), targeting for shortcuts and the breakout for that, Checking Quote use.

If I get those straight I'll work on the next round of enhancements to add (probably with associated bugs :) )

Virtuoso65
a hill giant
a hill giant
Posts: 150
Joined: Wed Oct 15, 2003 2:29 pm

Post by Virtuoso65 » Mon May 03, 2004 1:39 am

I think genbot is making a bad call to the advpath.inc when doing the follow command. Iv tryed to debug it but Im not quite sure whats wrong.

Code: Select all

[MQ2]Goto - went to label :fastmoveloop
[MQ2]Face - Facing 'gimp'...
[MQ2]Goto - went to label :fastmoveloop
[MQ2]Face - Facing 'gimp'...
[MQ2]Goto - went to label :fastmoveloop
[MQ2]Face - Facing 'gimp'...
[MQ2]Goto - went to label :fastmoveloop
[MQ2]Face - Facing 'gimp'...
First-chance exception at 0x74736166 in eqgame.exe: 0xC0000005: Access violation reading location 0x74736166.
As far as I can tell there is something wrong with this piece of code where it always crashes on the /goto :fastmoveloop.

Code: Select all

|Fastmove 
|Called by Rangesub for when mob is more than /keypress distance away. 
|Usage: /call Fastmove 
Sub Fastmove 
   /varset ObstacleCheck 0 
   /varset GenLastXLoc ${Me.X} 
   /varset GenLastYLoc ${Me.Y} 
   :fastmoveloop 
   /doevents 
   /if (!${Target.ID}) { 
      /varset Combatstatus 0 
      /keypress FORWARD  
      /if (${Me.Combat}) /attack off  
      /return 
   } 
   /if (${Me.Sitting}) /stand  
   /face fast 
   /if (${Target.Distance}>${FastRange}) /keypress FORWARD hold 
   /if (${Target.Distance}<=${FastRange}) { 
      /keypress FORWARD 
      /return 
   } 
   /if (${ObstacleCheck}>=30) { 
      /call Detectobst 
      /varset ObstacleCheck 0 
   } 
   /if (${Target.Distance}>=${Math.Calc[${FastRange}*3]}) /varcalc ObstacleCheck ${ObstacleCheck}+1 
   /goto :fastmoveloop 
/return 

Wishbringer
Contributing Member
Contributing Member
Posts: 230
Joined: Thu Nov 14, 2002 7:00 am

Post by Wishbringer » Mon May 03, 2004 5:25 am

Darn, i wish i would understand the whole genbot macro.
Tried to rewrite it as a MQ2 plugin (faster, because compiled code) but failed like a noob.

Wrote this msg now, because i think it's a good thing in it's nature and someone has the necessary knowledge.

Chant3r
orc pawn
orc pawn
Posts: 10
Joined: Sun Apr 18, 2004 3:27 pm

Post by Chant3r » Mon May 03, 2004 9:24 am

Hey Lord Giddeon

You kick ass thanks for the awesome macro .. I will keep posting things when I find them and sit queioty waitign for ya to get to it.. most likely with me I fergot to make the file right lol
Chant3r

If I were you I would hate me too

omper
a ghoul
a ghoul
Posts: 110
Joined: Sat Dec 06, 2003 10:46 pm

Post by omper » Mon May 03, 2004 12:29 pm

Still getting random end macro's.. Not sure where these are comming from.. think its in the botcore.inc .. not sure but when i do evac it ends.. and most of the time when i zone.. Like i said random

Getting alot of code being passed to the mq2 window.. not sure why its doing that either.. but i think that problem is in the bothealer.inc cause it does it when i do autoheal..

Bots are not autositting..

Bots dont remember to rebuff .. I know you working on that one..

Sometimes i get CTD when i issue the follow command.. I do this follow because EQfollow does not work ..


Thanks a bunch..


Omper..

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

Post by LordGiddion » Mon May 03, 2004 5:24 pm

Had a little insperation this afternoon, I think this will fix the buff problem.

Code: Select all

Sub Event_timer(string TimerName,string OldValue)
   /if (${TimerName.Equal[SitTimer]}) { 
      /if (${Me.Standing}) /sit 
   } 
   /if (${TimerName.Equal[ChainStunTime]}) { 
   	/call NextStun
   }
   /if (${TimerName.Equal[BuffListAdvance]}) { 
   	/declare counter int local
		/for counter 1 to ${BuffListCount}
			/varcalc BuffList[${counter},3] ${Int[${BuffList[${counter},3]}]}-5
			/if (${Int[${BuffList[${counter},3]}]}<5) {
				/call StandardTarget "${BuffList[${counter},1]}"
				/if (${Target.CleanName.Equal[${BuffList[${counter},1]}]}) {
					/call SpellSub "${BuffList[${counter},2]}"
					/if (${Macro.Return}==0) /varset BuffList[${counter},3] ${Spell[${BuffList[${counter},2]}].Duration.TotalSeconds}
				}
			}
		/next counter
		/varset BuffListAdvance 50
   }
/return 
Someone please give it a test and let me know if it fixes.

fez_ajer
a ghoul
a ghoul
Posts: 106
Joined: Fri Apr 23, 2004 6:44 pm
Location: If I was up your ass you'd know where I was...

Post by fez_ajer » Mon May 03, 2004 5:47 pm

I'm trying out the buff code now Gid.

On another note, I have two things going round my brain:

1) We should probably do something similar to AddCommand to handle INI stuff. There is alot of semi-standard repeated code there just like there was in adding commands.

2) This is more of a question: What is a good one sentence description of ${BreakOut}? Right now, it's kind-of odd because it gets set during follow code and only gets cleared during GrpHealthCheck. I think I know how it works, but that doesn't mean I know what it's REALLY supposed to do :)
- Fez

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

Post by LordGiddion » Mon May 03, 2004 6:00 pm

fez_ajer: a routine for reading ini files is in the works, that's the peice I keep mentioning as changing personal.inc later down the road. Also the routine for reading INI will make it easier to write a routine probably also this week that will let people save state to an ini. Additionally I plan to have the INI routine add support so the same call can read or write to the MySQL plugin (and later MQ2ODBC - if I finish writing it) as an option to the INI - Hoping if it works well ml2517 might pull the same routine for advpath as I'd love pathfiles to be DB entries instead of multiple INI files.

${BreakOut} is something Grim started adding to genbot, he threw it into stuff that seemed buggy and used it to stop those routines from running out of control - ${BreakOut} is only set to true by the stop command and is cleared by the routines that check it.

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

Post by ml2517 » Mon May 03, 2004 6:23 pm

I doubt I'd every program something that relies on something that isn't a core feature of MQ2, sorry.

fez_ajer
a ghoul
a ghoul
Posts: 106
Joined: Fri Apr 23, 2004 6:44 pm
Location: If I was up your ass you'd know where I was...

Hrmm...

Post by fez_ajer » Mon May 03, 2004 6:23 pm

The reason I ask about ${BreakOut} is that currently the only code that clears it is GrpCheckHealth. I found this out the hard way by trying to move the ${IsHealer} check into HealerMain so that non-healer bots wouldn't have to go through the overhead of make the subroutine calls. What happened is that ${BreakOut} got set and was never cleared, which stopped all the non-healer bots from casting at all.

I also have one other thing I've been looking at SpellSub about... It would be real nice for it to do two things:

1) Take a second parameter for retries. That way you could do:

Code: Select all

/call SpellSub "Dooming Darkness" 3
which would try Dooming 3 times before giving up and exiting. It's a nice thing to retry snare spells after an initial resist ;)

2) Pass a result back to the caller on whether the spell stuck. This would be great for personal.inc so that you could, say, throw a tash in then retry slow if slow failed the first time.

I know you have alot on your plate. I'll mash some proposed changes together and throw them at you at some point.
- Fez

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

Post by LordGiddion » Mon May 03, 2004 7:10 pm

ml2517: wasn't suggesting it as a replacment, don't plan to make a replacement in Genbot either, just sugesting that it might be nice to add it as an option.

fez_ajer: I'll look at cleaning up the implimation of Breakout.

I might look at updating spell sub to do some auto retrys. As far as spell success and Fails, spell sub returns 0 if the spell took and 1 if it didn't (in theory at least) I have plans to beef the return infomation up but it's on the to-do list

Did the suggested code for the buff timer work?

Nightshift
a lesser mummy
a lesser mummy
Posts: 54
Joined: Mon Oct 13, 2003 8:52 am

Post by Nightshift » Mon May 03, 2004 7:26 pm

LordGiddion wrote:ml2517: wasn't suggesting it as a replacment, don't plan to make a replacement in Genbot either, just sugesting that it might be nice to add it as an option.

fez_ajer: I'll look at cleaning up the implimation of Breakout.

I might look at updating spell sub to do some auto retrys. As far as spell success and Fails, spell sub returns 0 if the spell took and 1 if it didn't (in theory at least) I have plans to beef the return infomation up but it's on the to-do list

Did the suggested code for the buff timer work?
The buff code does the same thing for me.

/tell botname Buff <spellname> ON <target>
bot casts spell

then after about 5 seconds..

/varcalc failed, variable 'BuffList(1,3)' not found
botcore.inc@602 (Event_timer(string TimerName,string OldValue)): /varcalc BuffList[${counter},3]
${int[$Bufflist[${counter},3]}]-5
bothealer.inc@225 (CheckGrpHealth):}

I let it show another fail after the first and it added to it..

added:

bothealer.inc@184 (HealerMain):/call CheckGrpHealth
genbot.mac@54 (Main):/call HealerMain

this was right after the bottom of the other error text.


NightShift

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

Post by ml2517 » Mon May 03, 2004 7:49 pm

LordGiddion wrote:ml2517: wasn't suggesting it as a replacment, don't plan to make a replacement in Genbot either, just sugesting that it might be nice to add it as an option.
Gotchya