MQ2Data GenBot, 99% Complete

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

Moderator: MacroQuest Developers

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

Post by Dulapore » Fri Apr 23, 2004 5:25 pm

This fixes the sn command for me, along with meming a spell if it isn't memed already. This is all in Botspell.inc. If it seems to cryptic to follow the edits, I can post the whole thing. Fell free to let me know if my logic is flawed in any of this.

Find :MemWait, and replace the section with below. I don’t get the logic of it. It seems to exist for instances where in Parms @SpellSlot<0 . I don’t know what that is for, but commenting it all out allows spells to be cast correctly with SN from my point of view.

Code: Select all

108 [color=red]|[/color]  :MemWait 
109      /doevents 
110 [color=red]|[/color]  /if (${String[@Fail].Equal[1]}) { 
111 [color=red]|[/color]     /varset Fail 0 
112 [color=red]|[/color]     /if (${String[@Remem].Equal[1]}) { 
113 [color=red]|[/color]        /memspellset @DefaultSpellSet 
114 [color=red]|[/color]        :loadsploop 
115 [color=red]|[/color]        /call Delay 5 
116 [color=red]|[/color]        /if (${Window[SpellBookWnd].Open}) /goto :loadsploop 
117 [color=red]|[/color]     } 
118 [color=red]|[/color]     /if (@SitAfterCast==1 && ${Me.State.Equal[STAND]}) /sit 
119 [color=red]|[/color]     /return 1 
120 [color=red]|[/color]  } 
121    /varset SpellSlot ${Me.Gem[@SpellName]} 
122 [color=red]|[/color]   /if (@SpellSlot<0) { 
123 [color=red]|[/color]      /call Delay 1s 
124 [color=red]|[/color]      /goto :MemWait 
125 [color=red]|[/color]  } 
126    /if (@SpellSlot==NULL) { 
 
Add a }

Code: Select all

144      /if (!${Me.SpellReady[@SpellName][color=red]}[/color]) /goto :refreshwait 
Delete Quotes around @SpellName, and make it an Int

Code: Select all

146     /varset CastTime "${Spell[@SpellName].MyCastTime.[color=red]Int[/color]}" 
Comment or delete one to many } for the /if.

Code: Select all

166    [color=red]|[/color]  }
Add SpellSlot

Code: Select all

188    /cast @[color=red]SpellSlot[/color]

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

Post by Dulapore » Fri Apr 23, 2004 6:39 pm

Note that my above Fixes were for 10.02 BotSpell.inc

Initial 10.03 BotSpell.inc results

You left an echo on.

It clears the target while it's still casting when using the sn command. I have that fixed above.

10.02 Bothealer.inc
If IsHealer is set to 1 in the ini, and you have no one in your group, you get
WriteChatColor(Ending macro: Calculate encountered unparsable text '')

WriteChatColor(bothealer.inc@261 (CheckGrpHealth): /if (@tempvar>${Group} && ${Target.ID}!=@HealTargets(@tempvar)) {)

WriteChatColor(genbot.mac@61 (Main): /call CheckGrpHealth)

WriteChatColor(Cleared the following: Timers Arrays)

WriteChatColor(The current macro has ended.)

WriteChatColor(Failed to parse /if condition '(1>0 && NULL!=UNDEFINED-ARRAY-ELEMENT)', non-numeric encountered)

WriteChatColor(Error: {)
[/quote]
Last edited by Dulapore on Fri Apr 23, 2004 7:57 pm, edited 1 time in total.

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...

Ok, here's my pass...

Post by fez_ajer » Fri Apr 23, 2004 7:01 pm

Hey all, frequent listener, first time caller. Love Genbot, but even in it's current state I've found some things that are just very fuxxored. The macro was crashing more than Courtney Love at Drug-a-palooza.

Along those lines, here's what I did to make it (somewhat) behave.

1) Botting a cleric who fights and Yaulps: When in combat, the casting check crashes the macro. This is because ${Me.Casting} returns either NULL or a spell object, not a boolean.

Line 168 botcombat.inc:

Code: Select all

/if (${Me.Casting}) /return
Change to:

Code: Select all

/if (${String[${Me.Casting}].NotEqual[NULL]}) /return
2) Botting a SA: The SA was clearing his target every time he got hit by the mob! Not good for sticking and tank mezzing.

Line 301 botcombat.inc

Code: Select all

/target clear
Comment it out until someone figures out why the hell this is behaving badly

Code: Select all

|/target clear
3) Cleric does not Yaulp, does not heal, does not, well, do much of any damned thing...

(Looks like you got this one... Had to do with Class returning a class object, not a string so Class.Name needed to be compared)

4) Heal over Time code crashing macro.

I won't lie, I didn't have time to fix it so I commented it out.

Line 343 bothealer.inc

Code: Select all

|/if (@CasterHealIsHot==1 && @HOTWait>0 && @Param0==@HealedId) /return 
I know these are hacks but they work for now. I managed to get through with these and only had the macro crash when mobs were enraged. It was still only healing the master and the other casters, not the SA... Will look at that later unless someone else fixed it.

Other than that, I hope this little bit helps and great job guys!

- Fez

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

Post by Dulapore » Fri Apr 23, 2004 7:54 pm

Botspell 10.03 Fixes.

Won't even work without this

Code: Select all

[color=red]|[/color]|** 
[botspell] 
version=10.03 
**| 
Delete the extra } on line 163. This fixes the issue where you clear your target before the spell lands and is evaluated.

Code: Select all

[color=red]163[/color]
164      /return 1 
165   } 


Wendel
a lesser mummy
a lesser mummy
Posts: 58
Joined: Wed Jul 24, 2002 1:48 am

Post by Wendel » Fri Apr 23, 2004 9:23 pm

Running into this problem with bothealer
WriteChatColor([MQ2] Advanced pathing enabled.)

WriteChatColor([MQ2] Advpath.inc by ml2517 -- Initialized.)

WriteChatColor(Failed to parse /if condition '(Warrior.Name.Equal[Warrior]})', non-numeric encountered)

WriteChatColor(Ending macro: {)

WriteChatColor(bothealer.inc@267 (CheckGrpHealth): /if (${Spawn[@HealTargets(@tempvar)].Class}.Name.Equal[@TankArray(@tankcount)]}) {)

WriteChatColor(genbot.mac@57 (Main): /call CheckGrpHealth)

WriteChatColor(Cleared the following: Timers Arrays)

WriteChatColor(The current macro has ended.)
Of course this happens when the tank is getting a heal

jumbotron
decaying skeleton
decaying skeleton
Posts: 6
Joined: Tue Feb 10, 2004 4:50 pm

Post by jumbotron » Fri Apr 23, 2004 9:38 pm

Hey Guys, long time user of Genbot, excellent program.

With the latest patch in EQ, I was forced to upgrade to the latest version of MQ2, which compiled successfully and works flawlessly as far as I can tell.

The old version of Genbot would not start up however.
So I assumed the new changes were in MQ2 and that Genbot needs an update to function properly.

When I copied and pasted the latest Genbot files, and type /mac genbot mastername... I get "The Macro has Ended" - Nothing else.

I had zero INI files in my Macros directory, but now I have a new one, that is half created... stops at AnchorRAdius=6 and nothing after that.

Anyone else having this problem with the newest version of MQ2 and the newest version of Genbot as of April 23, 2004 : 6:37pm PST?

You guys are talking about helping fix the current problems with the macro like it's actually starting up for you. I wish I could help, but I need to start it up successfully first.

I'm also using the latest version of Advpath found earlier in this thread.

Thanks for your help,

JT

Wendel
a lesser mummy
a lesser mummy
Posts: 58
Joined: Wed Jul 24, 2002 1:48 am

Post by Wendel » Fri Apr 23, 2004 9:42 pm

Code: Select all

||**
[botspell]
version=10.03
**|
[quote]

Should be

[/quote]
||**
[botspell]
version=10.03
**||[quote]

in all the files.  That took me  a while to figure out to :D[/quote]

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...

Ok, here's another couple

Post by fez_ajer » Fri Apr 23, 2004 10:01 pm

Assuming all /if conditions should be enclosed in outer parens...

bothealer.inc line 347:

Code: Select all

/if @ReportAutoHeal==1 /g @HealCasterMsg
should be:

Code: Select all

/if (@ReportAutoHeal==1) /g @HealCasterMsg
botcore.inc line 409:

Code: Select all

/if ${Me.Combat} /return 
should be:

Code: Select all

/if (${Me.Combat}) /return 
personal.inc line 554:

Code: Select all

/if ${Defined[Param@ParamInt]}==1 { 
should be:

Code: Select all

/if (${Defined[Param@ParamInt]}==1) { 
personal.inc lines 959, 990, 1135, 1165:

Code: Select all

/if ${Me.State.NotEqual[STAND]} /stand
should be:

Code: Select all

/if (${Me.State.NotEqual[STAND]}) /stand

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

Post by LordGiddion » Fri Apr 23, 2004 10:18 pm

Hey folks seeing as there are so many problems with the current Macro here I will post my version tomorrow night after I have completed some more testing

wassup
Official Guardian and Writer of TFM
Official Guardian and Writer of TFM
Posts: 1487
Joined: Sat Oct 26, 2002 5:15 pm

Post by wassup » Fri Apr 23, 2004 10:23 pm

I keep getting
No such spawn member 'NotEqual'
when running this now

Diggler
> Oid
Posts: 120
Joined: Thu Oct 09, 2003 3:28 pm
Location: Lexington, KY

Post by Diggler » Fri Apr 23, 2004 11:12 pm

NotEqual thing was due to the HealPets sub I believe. Tried something new with it and it's not crashing autoheal. Fixed so if not grouped the first healtarget is your own ID, not null. /varset HealedID to 0 at the start so it has something to parse before setting a value later to fix the CasterHealIsHot yada yada line. Please post what still isn't working and I'll get on it again hehe

NOTE: ALL files are 10.05 now, grab them from front page please!

EDIT: JUST fixed SNT. Grab botspell 10.06 or face snt's wrath!

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

Post by Dulapore » Fri Apr 23, 2004 11:51 pm

Just got this error with autoheal code and 10.05
WriteChatColor(Ending macro: Failed to parse /if command. Could not find command to execute.)

WriteChatColor(botcombat.inc@347 (Event_Enraged): /if (${Target.ID}))

WriteChatColor(botspell.inc@149 (SpellSub): :TimerLoop)

WriteChatColor(bothealer.inc@327 (Tankheal): /call SpellSub "@TankSpell")

WriteChatColor(bothealer.inc@276 (CheckGrpHealth): /call Tankheal @HealTargets(@tempvar))

WriteChatColor(genbot.mac@61 (Main): /call CheckGrpHealth)

WriteChatColor(Cleared the following: Timers Arrays)

WriteChatColor(The current macro has ended.)

WriteChatColor(Usage: /if (<conditions>) <command>)

Diggler
> Oid
Posts: 120
Joined: Thu Oct 09, 2003 3:28 pm
Location: Lexington, KY

Post by Diggler » Fri Apr 23, 2004 11:56 pm

Fixed. Thanks ;) botcombat.inc AND botcore.inc now 10.06

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

Error in Event_timer (botcore.ini)

Post by bollox » Sat Apr 24, 2004 12:40 am

You need to remove the "@" before SitTimer in the first compare.

Code: Select all

Sub Event_timer
   /if (${String[@Param0].Equal[@SitTimer]} && ${String[${Me.State}].Equal[STAND]}) /sit
/return
It should be

Code: Select all

Sub Event_timer
   /if (${String[@Param0].Equal[SitTimer]} && ${String[${Me.State}].Equal[STAND]}) /sit
/return
Otherwise, you're comparing string @Param0 to the value of @SitTimer.

Tangeleno
a hill giant
a hill giant
Posts: 193
Joined: Fri Feb 20, 2004 6:00 pm

Post by Tangeleno » Sat Apr 24, 2004 2:32 am

not sure if its my fault or a bug... but I keep gettin this error when the bot is posed to heal my pet...
Ending Macro: Calculate encountered unparsable text.
bothealer.inc@363 (Petheal): /if (${Target.ID}!=@Param0) /target id @Param0
bothealer.inc@293 (CheckGrpHealth) /call Petheal ${Spawn[@HealTargets(@tempvar)].Pet}
Genbot.mac@61 (Main) /call CheckGrpHealth

Failed to Parse /if Condition '(NULL!=Gebann00)' , Non-numeric encountered

Error: /target id Gebann00
I don't feel I'm talented enough with writing macro's to even try to fix this problem on my own or else I would take a shot at it...