Genbot.mac 13.1.5
BotCore.inc 13.1.5
BotCombat.inc 13.1.5
BotSpell.inc 13.1.5
BotHealer.inc 13.1.5
BotShortCut.inc 13.1.5
Personal.inc 13.1.0
GenbotDoc.txt 12.38
Changelog 2004-07-11
Fixed Bot continuing to attack after original target is gone. FYI, "${XXX.NotEqual[YYY]}" is not the same as "!${XXX.Equal[YYY]}" if there is a possibility that XXX is NULL.

Fixed cmds-SHORTCUTS undefined message.
Fixed some upper/lower case problems with the new events code.
Fixed PatchHeals. Patch heals, along with the other heals, still ignore the .ini messages, but at least they should cast correctly now!
Added some /squelch commands before the /target and /face commands to eliminate the unsightly errors when your target poofs before the command.
Fixed the /gb renaming ${MasterName} messing up the /assist codes so you couldn't use sn commands after /gb commands. Output channel is still reset on /gb commands, but now sn commands will use /assist ${MasterName}, where ${MasterName} is the first master on your list.
Fixed lag related loot freezes.
Fixed the "Heal" command. Should handle pets and assist master for target if no target specified.
Changelog 2004-07-09
Fixed the below event code to handle caps and changed botshortcut.inc to use the new LoadSetting sub.
Changelog 2004-07-09
Added invite code. If invited to group by master, bot will automatically accept. If invited by someone else, bot will tell the master who invited it.
Added EVENTS section to .ini, and several typical events like EventImDead, EventLoosingInvis, etc. These events take standard shortcut format commands. For instance, if you wanted to recast levitate when it started to fade, you would change:
EventLoosingLevitate=/botsay I'm loosing Levitate.
To:
EventLoosingLevitate=/botsay Recasting levitate.|snt levitate
Added shortcut type to LoadSettings subroutine to help handle the new events.
Added /botsay alias for sending a message to the normal bot channel. Mostly for use with the new Event shortcuts.
Changelog 2004-06-26
Refined the previous change to be less spamarrific.
Changelog 2004-06-23
Increased the .ini default value for CampRadius to 100. If you order the bot to attack, and the distance from the bot to the mob is greater than the CampRadius from your .ini file, the bot will not attack, and will now give you an error message telling you the mob is out of range. This setting is to prevent the bot from charging across zones after warped mobs, etc.
Changelog 2004-06-21
Added on/off toggles "buffing" and "healing". When off, you will not buff or heal respectively. "snt bigbuff on me" type commands will work normally, even if buffing is toggled off. "IsHealer" .ini entry replaced with "DoHeals". Healers must set "DoHeals=1" in your .ini file, or your healer won't heal.

Changed the LoadSettings subroutine to take a variable type after the variable name to save having to declare the variable separately. New format looks like this:
/call LoadSetting PersonalVar VarType Personal Personalkey Default
You no longer need to /declare the PersonalVar in a separate line. The LoadSetting sub will declare if for you. Also, if the VarType is a string, LoadSetting will create a variable called PersonalVar-DefaultValue so you can check if the value is different from the default value. Thanks to sj_digriz for the formatting help!
Let's welcome back the afk, camp, tell, etc commands, which were removed before. Although the functionality of these commands still existed with /afk, /camp, etc, I found it to be a pain to have to enter the "/" and also to remember which ones needed it and which didn't, so they've been put back in. Thanks sj_digriz!
Added Gate event, so you stop attacking if your target gates.
Added target name to enrage off and on events so pets won't trigger them.
Changed buff refresh behavior when the buff is unsuccessful. If buff doesn't land due to out of range, etc, buff will be recast 2 more times, with a 10 second delay between each try. If still unsuccessful, it will start over again 90 seconds later. If the buff bounces off a higher buff, it will try to land the buff again 2 minutes later.
I also tried to remove some of the spam from the bot if the recipient of the buff isn't in the same zone. Bot will wait patiently and quietly until the buff recipient is back in the same zone.
Fixed a bug with the OOM message not meditating correctly.
Moved FindTraps to botcore instead of botcombat.
Fixed rapid tells to master not appearing by adding a 2 second delay between tells to master. EQ seems to have an anti-spam filter, so tells that are done less than 1 second apart get ignored.
Removed a line from the Agressive routine that prevented you from attacking when attacked if your inventory window was open. Any ideas what the original purpose of this was? Not attack if you were casting an item?
Changed Aggressive check so it will only attack when you are not in combat.
Changed "/if (${Me.Sitting}) /stand" to "/if (!${Me.Standing}) /stand". If the bot is feigned or ducked and master orders attack, bot will stand.
Added DoMelee toggle and DoMelee to .ini settings. If DoMelee is on, you will close and attack when in battle. If off, you will not. Note that DoMelee and DoArchery shouldn't both be true.

Combatstatus and Supportstatus replaced with DoMelee and CombatTargetID. "snt spell" without a target name during combat will now target the mob you last commanded the bot to assist or attack. Also, bot will be considerably more "sticky" in battle. If target changes from original mob, but original mob is still in range and not dead or charmed, bot will retarget and engage if DoMelee is on.
I think I've solved the /target or spells hitting pets or mounts with similar names to their masters. Let me know what command you used if you still hit a pet when you meant to hit the master. Thanks Robjer for the pointer to the problem!
Mount has been fixed. Thanks Robjer!
Fixed lootup and lootall. Removed the /assist functionality of lootup. Unless a target corpse is provided in the command, genbot will just loot the closest corpse.
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.
Multiple genbot initiated heals can exist in the spell queue, so repeated heals may be cast on one char.
If using Windows XP or 2000, genbot performs much better if Performance Options are set to Background Services. Programs setting can cause slow responses, especially with more than one char on a PC.
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.
defend, guard, and protect commands to allow bot to guard an area or attack anything that attacks it's master.
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. Examples of working code that does something similar are available here: and here:
Give me a PM if you're interest in any of these tasks!
Enjoy the new code, and let me know where it's not working as planned!
--Vexix
P.S. Go here for move of the changelog on the previous version: http://macroquest2.com/phpBB2/viewtopic.php?p=54475