Current File Versions:
Genbot.mac 13.0.3
BotCore.inc 13.0.3
BotCombat.inc 13.0.3
BotSpell.inc 13.0.3
BotHealer.inc 13.0.3
BotShortCut.inc 13.0.3
Personal.inc 13.0.3
GenbotDoc.txt 12.38
Changelog 2004-06-15
Improved target change detection. As before, if your target changes state (dies, is charmed, etc) during your cast you will still duck to abort the spell, but if you just change away from your previous target, the cast will finish normally.
Changed default type for the MountItem to item instead of spell. A mount of "alt whateverthatpallymountaltis" will also work -- reported by sj_digriz
Fixed some typos -- thanks Nightshift
Changed shortcut arguments. Bug reported by sj_digriz. Previously, any shortcut that ended with on would have the argument of the shortcut when called appended to it. This hasn't worked out so well, so I've changed it to use the term "NameS" for the placeholder for the shortcut argument. Thus:
Old and busted:
New hotness:fullbuff=buff aegolism on|buff Mark of Karn on|buff someotherthingy on
All new buff code implemented. Selfbuffs for which the icon is recognized will be refreshed when the icon disappears. Unrecognized self buffs and other buffs will be refreshed 5 seconds before the max duration runs out.fullbuff=buff aegolism on NameS|buff Mark of Karn on NameS|buff someotherthingy on NameS|/tell NameS You are fully buffed, NameS. It's a pleasure fighting alongside you.|/wave NameS|/guild NameS is a buff leech!
sn vs. snt confusion fixed. Actually, the documentation on genbot is quite clear on how they work, so I think the confusion was all mine. They're switched back now. Thanks Mortedamour
AdvPath Follow command fixed. Unfortunately, ml2517's advpath include has an unspecified /doevents, which was causing an endless loop with my new timers for all major subs. I had to take out all of my routine timers, which was one of the ways I was trying to control the "load" genbot put on your PC. I've requested ml2517 remove the /doevents calls, since I'm not a fan of uncontrolled /doevents in .inc files.
Fixed the rememspells option. Reported by Saelinye and sj_digriz
Fixed the "heal" command. -- Reported by Saelinye.
Fixed IgninGroup to allow substrings of ignored words. For instance, "ds" was not allowed as a command in the group channel because it was the last 2 characters of "cmds".
Note: Some of the names of the .ini file settings for spells have changed for clarity, for example Remem has become RememSpells. You may want to regenerate your .ini file.
Changelog 06-11-2004
Removed an .inc line that caused errors in personal.inc
Changelog 06-10-2004
Updated the personal.inc so that it would be called from genbot.mac. Just 2 lines added.
Changelog 06-10-2004
Spell queues are now functional. Multiple spell commands can be issued without pauses in between, and genbot will remember all spells, and cast them in a first in first out order. Exceptions to this order are heals and evac spells initiated by genbot, which will be cast before any master requested spells.
Genbot automatically changes to the appropriate target immediately before casting, and changes back to your previous target immediately after casting. Genbot also recognizes target not required types of spells (pb ae, self, ae pc v2, and group v1), and does not change your target when casting them.
Before casting, genbot records the type of target (none, pc, npc, corpse, pet), and if that type changes during casting, genbot will abort the spell, assuming you're not riding a horse. This is handy if your target dies, is resurrected, is charmed, looses charm, or goes linkdead.
Items or alt abilities can be cast anywhere that a spell could be cast previously, just by prepending it with "item" or "alt" respectively, such as "buff item shrunken goblin earring" or "snt alt ae taunt". Alt abilities can called by number, or name. This functionality also works for buffs as well. Do alt buffs exist?
When requesting a spell, you can specify what spell gem to memorize to if not memorized already, such as "snt gem3 ensnare nagafen".
The major subroutines (coremain, spellmain, healmain, etc.) are now only called by timers. This ability will be developed in the future to allow you to control how often particular subs are called or if they are called at all to improve genbot performance in low frame rate environments.
Notes
I've changed the version number system so we don't end up with genbot v263.31 before it's time. The first digit represents the overall major release. Second digits represent enhancements to that release. Last digit represents bug fixes to that enhancement.
The focus of release 13 will be task queueing and performance improvement. With version 13.0.0, Spell queueing is implemented, along with handling of clickable items and alternate abilities as spells.
Known issues:
Heal messages from the .ini file don't work.
Task and spell overlap is not handled well. Requesting tasks in the middle of spells may not work.
Buffs are considered successful even if they didn't land.
Multiple genbot initiated heals can exist in the spell queue, so repeated heals may be cast on one char.
Requests to cast a spell that is already in the spell queue on the same target are ignored.
Not much testing done on alt commands, because, um, none of my chars have many alt abilities.
If using Windows XP or 2000, genbot performs much better if Performance Options are set to Background Services. http://techrepublic.com.com/5100-6313-5034438.html Programs setting can cause slow responses, especially with more than one char on a PC.
Function removals:
itemcast has been replaced with sn item <item name>, snt item <item name>, or buff item <item name>
The following commands have been replaced with the / commands:
afk <message> - Turn bot's afk on with optional <message>. USE: /tell bot /afk <message>
autoinv - Commands bot to use the /autoinv command USE: /tell bot /autoinv
camp - Commands bot to camp out. USE: /tell bot /camp
dismount - Commands bot to /dismount. USE: /tell bot /dismount
disc <discname> - Commands bot to fire the specified /disc. USE: /tell bot /disc <discname>
group <message> - Commands the bot to /gsay <message>. USE: /tell bot /g <message>
petback - Commands bot to execute it's /pet back command. USE: /tell bot /pet back
petguard - Commands bot to execute it's /pet guard command. USE: /tell bot /pet guard
random - Commands bot to /ran. USE: /tell bot /random <value>
say <message> - Commands the bot to /say <message>. USE: /tell bot /say <message>
sit - Makes bot sit USE: /tell bot /sit
stand - Makes bot stand USE: /tell bot /stand
tell <name> <message - Commands the bot to /tell <name> <message>. USE: /tell bot /tell <name> <message>
Future plans:
The ability to equip, cast, and replace items will be included.
Better buff management, including lists of outstanding buffs, the ability to remove 1 buff from the buff list, and the ability to have genbot time and name a buff icon for you.
Actions will also be incorporated into the task queue, which only contains castings stuff now.
Prioritization will be added to the task queue, so genbot can naturally decide what action to take next.
Code restructuring for increased performance.
New code for timers to determine if or how often to call subroutines.
Questions:
Can bards still cast items while moving or sitting? Moving yet, sitting no.
Can alt abilities be cast while sitting? Nope.
Do any notarget spell types besides pb ae, self, ae pc v2, and group v1 exist? None reported yet.
Why are pally spells handled as something different from every other healer? No answer.
As part of restructuring the code for better performance, I may mix the current sections, such as putting all init routines in one file. Would anyone mind this kind of reordering in return for better performance?
Ways you can help:
As you can see, I have a lot of plans for genbot, but my programming time is limited, and I kinda like to play with my own bots from time to time as well.
Maintain the genbot doc to keep it up to date -- Latest revision done by Seagreen! Would someone like to maintain it?
Create an .ini explanation file. Lots of stuff in the .ini files that could use explanation.
Organize and sort the genbot code so it is consistent and easy to find things -- Done by sj-digriz! Thanks!
Create a scheme for organizing the genbot responses to commands throught the ChatOut subroutine. Genbots responses and response priority levels are pretty random right now, depending on who wrote 'em and their mood that day.
Create a Do-equip routine. Parameters should be either "item_name" or "slot item_name". If slot is named, then routine will attempt to equip that item in that slot, and place other item where ever the first item came from. Bonus points if you can make it handle 2HB and 2HS weapons, as well as putting items in bags into inventory slots. If a slot name isn't given, routine should find what slot the item can be equipped in, and equip it for you. An example of working code that does something similar are available here: http://macroquest2.com/phpBB2/viewtopic.php?t=7568.
Give me a PM if you're interest in any of these tasks!
Enjoy the new version, and let me know where it's not working as planned!
--Vexix
P.S. Go here for the previous version changelog: http://macroquest2.com/phpBB2/viewtopic.php?t=7393


