Genbot Version 12 MQ2Data Ready

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

Moderator: MacroQuest Developers

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

Post by LordGiddion » Thu Apr 29, 2004 7:49 am

fez_ajer: I'll add the event.
on the sitting logic had someone remark in a PM that ! wasn't very noticable and so made reading the logic unclear. So it should be

Code: Select all

   /if (${Me.Standing}) /sit
  -- or --
   /if (${Me.Sitting}) /stand
Also this should keep the bot from doing either if state is something else for some weird reason. If I've got something more confusing somewhere in the code let me know and I'll correct.

All: I have to work today and some other RL crap, If I get a chance tonight I'll test this through and post an update to fix whatever bugs I'm sure I left in there.
Once everthing is bug free I've got a list on enhancements to go in. Some more code clean-up, replace timers on aa functions and combat abilities, Fix HoT Healing, the chain nuke , the chain stun, SelfBuff and then some new stuff - gonna add a command/function set so that a bot can be set to keep itself at maxMelee range. May add some more functions from my personal.inc - Melee spell casting (great for hybrids) - Farming functions (works great with a bot'ed puller and a support team) - Farming Loot functions for destroying or keeping certain loot - Feign death pulling for aggro control - Bot auto call threasholds (so bot can call Tag, Assist and Nuke when needed) - Caster Nuking assist - Chanter auto mez/crowd control - Monk mend.
If there are any of these functions you want to see in particular, or if you'd like some other enhancements let me know.

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 » Thu Apr 29, 2004 7:49 am

Variable conflict:

Code: Select all

Find 'MyLastXLoc' in "..macros\botcore.inc' :
..\macros\botcore.inc(149):    /declare MyLastXLoc int outer
..\macros\botcore.inc(150):    /declare MyLastXLoc int outer
These variables are declared in advpath.inc 1.24

Once I edited these out of botcore, when I run genbot, the macro ends... but no idea why. No error messages.

Edit:

After looking at genbot the light blue line probably needs to be removed, othe redits or issues follow after:

Code: Select all

   /declare MasterList string outer |
   /declare MasterCount int local
   /for MasterCount 0 to ${Macro.Params}
      /varset MasterList ${MasterList}${Param${MasterCount}}|
   /next MasterCount
   /echo ${MasterList}
  [color=cyan] /endmacro[/color]

|||This is where the commands the bot can take are set up
   /call CoreCommands
   /call SpellCommands
   /call CombatCommands
   /call HealerCommands
   /call ToggleCommands
   /call BuildShortCuts
   /call PersonalCommands
Ouch... further edits need to be made: arrays use [ ] not ( )

/declare shortcutsarray[4][100] string outer

I have it running without any errors right now, but have to actually test it with a two boxed character.

It took quite a bit of editing. I would post here but don't really want to do that. If LG wants me to PM them to him as I have them now I can do that to save him quite a bit of time.

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

Post by LordGiddion » Thu Apr 29, 2004 9:50 am

Yeah Wassup If you get it running go ahead and PM me your version.

TO everyone like I said it wasn't tested and I don't really have time to play with it today. As it is I'm wasting more time at work then I should be, I glanced through the code after a good nights sleep and I see an bunch of stuff I need to fix up. For 1 thing arrays can't have a 0 element anymore, and another my arrays aren't declared correctly. I'll work on it some and test it tonight ot tomorrow.

Warning, I'll be making another change to the way the command arrays are loaded and the INI files read that will effect Personal.inc, Please forgive me and I expect it will be the last time I make a change that forces you to rewrite you personal.inc

TRex
decaying skeleton
decaying skeleton
Posts: 5
Joined: Mon Apr 19, 2004 6:14 am

Post by TRex » Thu Apr 29, 2004 10:50 am

Work? What's Work?

User avatar
Fuergrissa
a grimling bloodguard
a grimling bloodguard
Posts: 607
Joined: Mon Dec 08, 2003 3:46 pm
Location: UK

Post by Fuergrissa » Thu Apr 29, 2004 10:52 am

work is having to press the hotkey for bash - taunt - kick and beg :(

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

Post by LordGiddion » Thu Apr 29, 2004 10:55 am

Work is how I keep me, my 3 kids and 2 ex-wives fed.

Charisa
a hill giant
a hill giant
Posts: 165
Joined: Tue Apr 06, 2004 5:38 pm

Post by Charisa » Thu Apr 29, 2004 11:13 am

LordGiddion wrote:Bot auto call threasholds (so bot can call Tag, Assist and Nuke when needed) - Caster Nuking assist - Chanter auto mez/crowd control
I asssume the threshold stuff would be kind of like how xylobot master control script worked where you could setu to d ox debuff/nuke at x percent, and just issue a command that you wanted it to start combat routines and it would watch for that percent and excecute? IF so definately something I'd love to see go in.

I bot up to 5 characters at a time, and I don't always want the chanter going to tash right away, etc. agro control is important, and timing when I do things helps alot with that. I'd also very much love to see the auto mez/crowd control routine. :)

ANyhow you've done a wonderful job. Thanks for answering my question on the chat channel stuff, I can't wait to try this out tonight, and see if I can finally get things working

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

Sitting

Post by fez_ajer » Thu Apr 29, 2004 11:17 am

Gid,

I think most of the time we are going from Sit->Stand and Stand->Sit, but there are ALOT of possibilities we're not accounting for with that code. Yah, '!' may be hard to read but the bottom line is that

Code: Select all

/if (${Me.Sitting}) /stand
is not really the same as:

Code: Select all

/if (!${Me.Standing}) /stand
If it was just a matter of style, I could care less. I think there's more than a couple places though where we'll need one and not the other. This came about because stand was not standing my FD necro.

Along those lines, since it is (semi)important to me I'll go through the new code and try to come up with a list of which should be which. I'll take a look when I get home from work.

- Fez

Charisa
a hill giant
a hill giant
Posts: 165
Joined: Tue Apr 06, 2004 5:38 pm

Post by Charisa » Thu Apr 29, 2004 11:17 am

LordGiddion wrote:Work is how I keep me, my 3 kids and 2 ex-wives fed.
But if you had worked on this more you wouldn't have had time to have 3 kids and 2 ex-wives, hmmmm, either that or this helped add to the ex-wive collection.

bclark
a lesser mummy
a lesser mummy
Posts: 30
Joined: Sun Feb 22, 2004 7:29 pm

Post by bclark » Thu Apr 29, 2004 1:14 pm

Not sure if this has anything to do with the latest MQ release (April 29) as I havent ran genbot in a while, but I tried running genbot 12.10 with the April 29 release and after typing /macro genbot <master name here> it is erroring out with:
Ending macro. Calculate encountered a bad = formation
botcore.inc@250 (SetupCoreVars): /if ($(ChatInChannel)=0) {
genbot.mac@29 (Main): /call SetupCoreVars
The current macro has ended.
Failed to parse /if condition '(0=0)'. non-numeric encountered
Error. {


Not sure if this is due to a smiley or something in the post or if its due to a change with the April 29 release of MQ2. Any help or guidance is appreciated.

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

Post by LordGiddion » Thu Apr 29, 2004 1:20 pm

has to do with the fact that between lack of sleep and MQ2's state after the patch I didn't get a chance to test 12.1, if your not in the mode to debug it yourself wait till 12.2 is posted tomorrow or so.

bclark
a lesser mummy
a lesser mummy
Posts: 30
Joined: Sun Feb 22, 2004 7:29 pm

Post by bclark » Thu Apr 29, 2004 1:22 pm

np LordG. I just wanted to see if it was something I was perhaps doing wrong. Thanks for the quick reply.

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

Post by ml2517 » Thu Apr 29, 2004 1:58 pm

Wassup wrote: /declare shortcutsarray[4][100] string outer
Does declaring it like that actually work? It was my understanding the proper format was:

/declare shortcutsarray[4,100] string outer

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

Post by LordGiddion » Thu Apr 29, 2004 2:04 pm

ml2517 I believe your right, saw that this morning after I got to work.

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

genbot

Post by wassup » Thu Apr 29, 2004 3:43 pm

I'll just post them here and you can move them to the new section after...

The macro runs on startup with these, but I have not tested them out with actual two boxing yet.

Code: Select all

|genbot.mac
|Generic bot macro for any class.
|Version 12.10
|Date:04/28/2004 9:00 pm
|
||**
[genbot]
version=12.10
**||
|

#include botcore.inc
#include botspell.inc
#include botcombat.inc
#include bothealer.inc
#include shortcuts.inc
#include personal.inc
#include advpath.inc
#turbo 40

Sub Main
   /if (!${Defined[Param0]}) {
      /echo Usage: /macro generic <Master Name1> <Master Name2>...
      /endmacro
   }
   |setup ini File Reference
   /declare IniFile string Outer genbot_${Me.CleanName}.ini
   |Initialize variables in each include
   /call SetupCoreVars
   /call SetupSpellVars
   /call SetupCombatVars
   /call SetupHealerVars
   /call SetupPersonalVars
   |Determine master(s)
   /declare MasterList string outer |
   /declare MasterCount int local
   /for MasterCount 0 to ${Macro.Params}
      /varset MasterList ${MasterList}${Param${MasterCount}}|
   /next MasterCount
   /echo ${MasterList}
|   /endmacro

|||This is where the commands the bot can take are set up
   /call CoreCommands
   /call SpellCommands
   /call CombatCommands
   /call HealerCommands
   /call ToggleCommands
   /call BuildShortCuts
   /call PersonalCommands
   :MainLoop
   /doevents
   |Fire tasks in each Include
   /call CoreMain
   /call HealerMain
   /call SpellMain
   /call CombatMain
   /call PersonalMain
   /call AdvPathPoll
   /goto :MainLoop
/return