What's New: 
 
Major versions:
Version 1.0: humble beginnings :D 
Version 2.0: Multiple instances 
Version 2.1: ADO Database support 
Version 3.0: Revised internal queue processing, added terrain features. 
Version 4.0:  Function calls and parameter passing. 
Version 4.1: VLists
Version 5.0: Switch to Delphi 7. 
Version 5.1: (Some preliminary changes, rolled over into version 5.2.) 
Version 5.2: AW SDK build 37. 
Version 5.3: SHOWTERRAINBUFFER command, ZONE commands and events. 
Version 5.4: FTP Commands (actually in 5.3.1, see 8/20/04 below).
Version 6.0: PlugIns, Survey to Obj List.  THREAD command.
Version 6.1: Some new features for plug-ins.
Version 6.2: WINMSG command/event.
Version 6.3: Ability to hide action tabs.
Version 6.4: AW SDK build 41, small changes to NearBy dialog.
Version 6.5: New ADO module, support for ADO 2.8.
Version 6.6: Administrative instances.
Version 6.7: Find button.
Version 6.8: Improved disconnect recovery.  In 6.8.30: Calculator dialog, Events Viewer, improved database operations with a THREAD.
Version 7.0: For SDK build 59 (AWB version 4.1 beta)
Version 7.1: For SDK build 60 (AWB version 4.1)
Version 7.2: For SDK build 61.
Version 7.3: Added @objdata functions.
Version 7.4: SDK build 63.
Version 7.5: SDK build 64.
Version 7.6: SDK build 65.
Version 7.7: New ADO module, ADOnis 4.7.
Version 7.8: SDK build 66.
Version 7.9:  Object IDs in survey.
Version 7.10: New instance list handling.
Version 7.11: Changes for RPGBot II, threading fixes.
Version 7.12: SDK build 70, 71, 72 (for AW 4.2)

See here for known bugs, bug fixes and planned enhancements.

7/4/08

Version 7.12.3  Some changes for custom Magsbots.

7/2/08

Version 7.12.2 SDK Build  72.  No new features, just a new aw.dll. The OBJECTCLICK bug in the SDK is fixed! Yayyyy! :)

7/1/08

Fixed a typo in the userdefs.udf that affected HUD flags.

6/25/08

7.12.1 beta SDK Build 71. Some changes to zone objects and movers.  Later: 7.12.1 beta 2: fixes a problem with missing zone object preset properties.

6/22/08

7.12 beta 2  Fixed some things with CAVREQUEST.  Added functions @cavdeflen and $cavdefstr (used within CAV and WORLDCAV events). 

6/21/08

7.12 beta  SDK build 70.  Added CAVREQUEST, CAVDELETE, CAVCHANGE, WORLDCAVREQUEST, WORLDCAVDELETE, WORLDCAVCHANGE,  OBJECTQUERY,  OBJECTQUERY_ commands, and @awzip and @awunzip functions. (I haven't updated the documentation yet, but use Insert Action and Insert Function to see the arguments, and use the AW Wikipedia to see how these features work in the SDK. These new features have not been tested yet.) Also fixed AVATARLOCATION so that it properly returns avatar info.

AWZIP, AWUNZIP work with the same functions used with object data blocks, i.e.  @datafromstr, @copydate, @datalen, FREEOBJDATA. They don't have much usefulness yet since there is no way to create a datablock other than @datafromstr which expects a hex string as input. I will add a function to allow Magsbot to read binary data from a file into a datablock soon.

5/21/08

7.11.11  Bug fixes to prevent crash under some rare circumstances.

5/15/08

7.11.10  Added Advanced->Performance->Threads menu.

NOTE:  No, you didn't miss anything! This is the first update since 4.10.8 that I've sent out a reminder about, because most everything since 4.10.8 has concerned changes to accomodate RPGBot II and didn't much affect users of the generic version of Magsbot. However some of the recently improved threading features might be useful for the general user, so I've now issued the update reminder.

5/14/08

7.11.9  More fooling around with APM in threads.

5/12/08

7.11.8  Added THREADWAIT command., better error handling to THREADSUSPEND, THREADRESUME, THREADEND.

5/11/08

7.11.7  Fix error handling and trapping in threads.

5/7/08

7.11.6  Make @thread function work inside thread as well as outside.

5/3/08

7.11.5 More new encryption features.

5/2/08

7.11.4 More threading fixes (setinstance update), and more changes to encryption.

7.11.3 More threading fixes: APM in ProcessAction

7.11.1, 7.11.2
Trial fixes for threading. APM variations

7.11 Changes for RPGBot II (new encryption features).

4/15/08

7.10.10 Fixed a problem that could occur when terminating instances. This also fixed a problem with the @instid function within a TERMINATEINSTANCE event. (Version 7.10.9 was a goof, delete it.)

4/3/08

7.10.8 Some minor changes to help with the RPGBot II project.

3/21/08

7.10.7 Fixed a bug in the ADDCATEGORY command (it expected two arguments, but should only have required one).

1/10/08

7.10.6 Added Fixed a bug in @avsession_ and $avname_ (weren't recognizing a bot instance being run by the same copy of Magsbot).

12/2/07

7.10.5 Added @avsession_[$name].

12/1/07

7.10.4 Enhanced $avname_[@session] so that it also searches instance list (as well as avtracking).

11/18/07

7.10.3 Fixed a bug in $vlpicks and $vlpickvs.

10/17/07

7.10.2 Still more changes to disconnect recovery. (Fixed a bug with the error message when bot is ejected.)

10/15/07

7.10.1 Some more changes to disconnect recovery.  AutoRecover menu item removed; bot always attempts to recover now, unless ejected or unwelcome.

10/12/07

7.10 New instance and recovery handling.  (Technical stuff: formerly aw_user_data was used to store a pointer to instance data; now that is stored in the instance list row.)

10/10/07

7.9.5 Added Allow Irregular Objlist Numbers item under the Advanced menu. When checked, object list files can be read that use non-integer object numbers. This is useful if you want to use the GETOBJLIST_ and SAVEOBJLIST_ commands to read or save a vlist to a file with item numbers included, and the item numbers are non-integer.

Also corected the SORTVLIST command so that it sorts vlists properly when the variable names are numeric.

9/14/07

Made some changes to the Terrain buttons that save and read binary files. Previously the data size was based on the current world size, which was a mistake since the bot might not be in the world where the terrain buffers were read.
Now the data size is based on the size of the terrain buffers when saving, and the size is also saved to the file for when it is read back in again.  The old buttons are still there in case you have some old terrain files that need to be converted.

9/6/07

7.9.4 Fixed problem with varlist sorting.

9/2/07

7.9.3 Improved sorting of varlists and fixed SAVELIST so it now saves items in correct order.

9/1/07

7.9.2 Fix problem with update check system.

8/27/07

7.9.1 Changed flood limit default setting. Fixed a bug in $vlpicks and $vlpickvs.

8/8/07

7.9  ENITITYCHANGE filtered along with AVATARCHANGE fixed (oops).   New survey option: create object list using object ID instead of object number.

8/7/07

7.8.3  ENITITYCHANGE filtered along with AVATARCHANGE.

6/28/07

7.8.2 Added some missing events to the Insert Event dialog.

5/18/07

7.8.1 Preliminary changes for Evaluation module version 4.

5/15/07

7.8 SDK build 66.

5/12/07

7.7.1 Fixed a possible problem with setting a new instance within a THREAD clause.

5/11/07

7.7 Upgraded ADO database module.

3/14/07

7.6.10 Added "Show HUD Events" to Options/Show in Log... menu.

7.6.9   Fixed a bug: if the last action within a WHILE clause, within a THREAD, is an IF, then the thread will terminate.

3/11/07

7.6.8   Fixed a bug: the DELETECATEGORY command was wrongly listed as DELCATEGORY in the InsertAction dialog, and would be inserted as DELCATEGORY when selected.

later

Added a HUD category tab, and made some changes to userdefs.udf to support it.

3/10/07

7.6.7   Added third server verification backup. (In case the first two update notification servers are down, there's now a third one. Doesn't really affect anything important unless you have a custom version of Magsbot.)

2/24/07

7.6.6   Fixed a problem with the EVENT command.   < Mistake! Was okay, should not have changed! Nevermind! :D

2/10/07

7.6.5   Added $dbparamcount, $dbparami functions.

7.6.4   Added $dbparam function.

1/19/07

7.6.3   Fixed a problem with converting the LF in the Build (propdump) command.

1/1/07

7.6.1   Fixed a problem with Events list.

12/30/06

7.6  SDK build 65. Added new attributes and AVLOCATION @cit @session $name.

12/2/06

7.5  SDK build 64. Added HUDCLICK, HUDCREATE, HUDDESTROY @session @id, HUDCLEAR @session commands and corresponding events, and HUDRESULT callback.  I'm not sure how all these work yet, but there are in there for you to use, if you do. :D

Also added these attributes, which are new in SDK build 64:

HUD_ELEMENT_TYPE
HUD_ELEMENT_ID
HUD_ELEMENT_SESSION
HUD_ELEMENT_ORIGIN
HUD_ELEMENT_X
HUD_ELEMENT_Y
HUD_ELEMENT_Z
HUD_ELEMENT_FLAGS
HUD_ELEMENT_TEXT
HUD_ELEMENT_COLOR
HUD_ELEMENT_OPACITY
HUD_ELEMENT_SIZE_X
HUD_ELEMENT_SIZE_Y
HUD_ELEMENT_SIZE_Z
HUD_ELEMENT_CLICK_X
HUD_ELEMENT_CLICK_Y
HUD_ELEMENT_CLICK_Z
HUD_ELEMENT_TEXTURE_OFFSET_X
HUD_ELEMENT_TEXTURE_OFFSET_Y
CITIZEN_PRIVACY

11/29/06

7.4.12  Changes to the DBGrid for use with MySQL databases.  Memo fields now display in blue, with the first 32 characters of the text instead of the word "(Memo)".  Varchar fields that are longer than 32 characters display in green, with only the first 32 characters showing on the grid (although the column can be resized) and are edited in the edit box the same as memo fields, when the user presses Enter.  They can still be edited within the grid by pressing F2.  Any text field (memo or varchar) can be edited in the edit box by pressing Ctrl-F2.

The number of characters displayed can be changed in the .ini file, by setting MaxColWidth in the [Database] section.

11/23/06

7.4.11  Completed changes to WRITE command, and added READ command, for saving and loading binary files. This can be used to save and load terrain buffers; for large worlds, much faster than polling the terrain.

11/19/06

7.4.10  Added error message to @avspresent, @avspresent_ when instance has no nearby list.  Some fixes to threading.

11/15/06

7.4.9  Fixed some encryption issues.

11/4/06

7.4.8  Category tags can now be encrypted individually.

7.4.7
 
Added @createhbuffer and @createtbuffer. Made changes to WRITE command to allow saving data to binary files. (Still some bugs in this however.)

10/24/06

7.4.6  Added zone priority features, implemented by the ZONEPRIORITY command and @zonepriority function.

10/16/06

7.4.5  Fixed: the OBJECTADD event wasn't including OBJECT_TYPE.

9/12/06

7.4.4  Fixed a bug that caused a false error message in AVSET* commands.

9/12/06

7.4.3  Adjusted OBJECTRESULT for @objectidadd and @objectidload. The return value is incorrect (due to an SDK peculiarity), but the value in the OBJECTRESULT callback is correct in this version.

9/11/06

7.4.2  Adjusted @objectidadd and @objectidload...but they still don't work. :P

9/9/06

7.4.1  Fixed a bug in @vlistfromobjdata function, that applied to movers only. But creating movers with the bot still doesn't work, except when using an object data string from a propdump or survey.  Also removed "old z, old x" arguments from @objectidchange. This might cause some problems when loading old scripts...if you get a message that says there are errors in the buttons or behavior tables, choose the option to edit them, and remove the second and third arguments. Sorry about that...I try to preseve backward compatibility, but I doubt that many people have been using @objectidchange anyway.

OLD:
@objectidchange[@obj_num,@old_ns,@old_we,@owner,@ns,@we,@alt,@yaw,@tilt,@roll,$model,$desc,$action,@objtype,$objdata]
Change to NEW:
@objectidchange[@obj_num,@owner,@ns,@we,@alt,@yaw,@tilt,@roll,$model,$desc,$action,@objtype,$objdata]

9/8/06

7.4  SDK build 63.

9/7/06

7.3.18  Can now sort the Nearby List by clicking on a column header.

9/5/06

7.3.17  Changed commands AVSET and AVSET_, and added AVSETTYPE, AVSETTYPE_, AVSETGESTURE,  AVSETGESTURE_, AVSETLOCATION, AVSETLOCATION_, AVSETSTATE, AVSETSTATE_. See here.

9/1/06

7.3.16  Fixed a bug in SVRBROADCAST.  Added @clientindex to CLIENTCONNECT, CLIENTDISCONNECT, CLIENTMSG events and optionally to SVRSEND command (SVRSEND address port index).   This allows you to differentiate between clients when you have several clients from the same addess logged on.

7.3.15  Added "Name for instance" menu item (when checked, the bots name shows in the log in place of the instance handle). Added Login and Enter events.

8/20/06

I haven't uploaded a new version for some time, sorry. Partly I was waiting to see if some of the new fixes really worked. Also there was a long-standing problem with null instances that appeared since the AW 4.1 SDK, that I wanted to fix before making a new version public. And I've been very busy so I didn't get a chance to fix that until recently.

Besides the changes below,  I added a new category tab "Presets" for loading, editing and creating special objects. (In the process I fixed a minor bug with the special objects data structures too.)  Test 'em out, and let me know how they work for you. :)

And I added a "Seed objects" button to the Build tab. It's similar to the "Instant Woods" button but with more options.

7.3.14
Fixed "null instance" bug that started in AW4.1.  Changed @height and @texture so don't automatically return cell info in local var list; instead they optionally take the handle of a vlist to put the information in.


7.3.12 Adjusted AvChangeFilter/Limit, added debug panel on AvTracking (double-click the box with the number of avatars).

7.3.11 Fixed bug in Enter World menu item (didn't act on Active Instance)

7.3.10 Now sets Active Instance explicitly when click a button.

7.3.9  A small change to try to handle some active instance problems that have appeared in 4.1.

Some changes to the survey buttons for Log One Object in 4.1. (Some earlier fixes were lost??)

7.3.8 Changed disconnect handler so if an instance is already disconnected, it won't be processed again. Needs to be tested!  Also added: $avname_ function (same as $nameof except looks at nearby lists of all instances).

7/31/06

I discovered that part of the standard behavior table for saving a terrain query in a "node list" had gotten deleted somehow, so I put it back. I you found that the Terrain/Log from Terrain Query button didn't work, that was why. If you don't want to download the whole package again, you can just add these lines temporarily:

Active
Event
Action
On
TERRAINDATA
FTN "Terrain/[LogNode]"
On
TERRAINDONE
@@tqlog=0

7/23/06 later

Version 7.3.7
  Uh...okay...kinda messed up here. All the AVSET fixes turned out to not work as planned, and in fact the original scheme worked best. So I've put everything back the way it was.  If you are still using 7.3.4, just keep it. If you don't have 7.3.4 anymore, then get 7.3.7.  I promise no more changes for at least a few days! :D

7/23/06

Version 7.3.6  That 7.3.5 fix didn't work so good after all. I don't have time today to do a proper fix, but this version uses the old method when the new method fails. The old method doesn't exactly work right either, but for now it will have to do.  The problem is the AVSET and AVSET_ may not work right if you only use one of the two arguments. To avoid this bug, use AVSET and AVSET_ with both arguments until I fix it...

So you say you want the long, involved, technical details? Well it's like this....First off, the AVSET and AVSET_ commands are essentially the same thing, the only difference is that AVSET_ uses the session to target the command and AVSET uses the avatar name.  (Actually the underlying SDK function aw_avatar_set always uses the session, so for AVSET Magsbot just looks up the avatar's session on the Nearby List and uses that.)  The problem comes in because aw_avatar_set cannot set just the avatar type or just the gesture; it has to set both.  (The aw_avatar_set command also changes the avatar's location unless AW_AVATAR_FLAGS is set to 0...that's a new thing in 4.1 I believe.)  But in Magsbot I wanted to provide the ability to set one or the other (avtype or gesture) by itself if desired; however I recently realized that it just wasn't going to work. (That may be the reason for some wrong-avatar bugs in the RPGBots, I now realize.) 

I attempted to fix this problem in Magsbot 7.3.5 by using avatar tracking data to get the value for the unspecified attribute. That is, if you use AVSET with only one argument, then Magsbot fills in the missing argument for you using avtracking data (that's the data that Magsbot saves during an AVATARCHANGE event).  It also uses avtracking data for the location, so that AVSET won't change the target avatar's location unless used with no arguments. But that didn't work because the avtracking data is not always available.  When it isn't then Magsbot 7.3.5 would give an error message and AVSET would fail.

So I temporarily made changes in 7.3.6 so it will fall back on the previous method of filling in the missing argument, when the avtracking data is missing. That doesn't really work right either, but it has worked well enough in all the previous versions of Magsbot, so it will have to do until I get a change to make a better fix.  Meanwhile, if you use AVSET then make sure you specify both avtype and gesture, and it should work.

7/22/06

Version 7.3.5  Fixed a possible problem with the AVSET and AVSET_ commands.

7/15/06 later still

Version 7.3.4  Fixed a bug with the various @pick functions.(the list wasn't being cleared each time).

7/15/06 later

Version 7.3.3  Fixed some memory-freeing issues with the @objectadd, etc. functions, related to special objects.

7/15/06

Version 7.3.2  Changed the way that the @btntab function works. It will now return a 0 if the specified category tab isn't found. (Previously it would cause an error.)

7/11/06

Version 7.3.1  Fixed a minor bug: some of the function templates (that you get when insert a function into the edit box) didn't line up with the function list, so when you chose a function from the list, the wrong function was inserted. (Because I accidentally added two copies of one of the functions to the list.)

7/3/06

Version 7.3  Added @objdatafromvlist[@vlist], @vlistfromobjdata_[@objdata], ($objdatafromvlist[@vlist] and @vlistfromobjdata[$objdata] still exist also), $strfromdata[@objdata], @datafromstr[$objdata], @copydata[@objdata], @datalen[@objdata] and FREEOBJDATA. Changed @objectadd, etc. to make the last argument ($objdata) variable; can now be $objdata or @objdata.

Also added buttons [load preset], create preset at bot location and edit & create preset at bot location to the Build tab. They let you create special objects using presets that were saved by the AWB.

6/24/06

Fixed a problem in the "Log One Object" button, due to changes in the 4.1 SDK that I didn't notice earlier. (It used to be that after an OBJECTCLICK event, the object data would remain in memory until changed by something else; now apparently the object data is only available during the click event, (if you try to get it afterward, it's all 0's) so I had to explicitly save it myself, in order for the button to work right.)

6/21/06

Version 7.2 Using SDK build 61, no license file required.

6/18/06

Version 7.1.6 Fixed some bugs in terrain building and related issues.

6/14/06

Version 7.1.4 Fixed a bug in the @instid function (and therefore the @iid_ macro that uses it), that caused an error when trying to get the instance id of a terminated instance.

The @instID function should still work in a TERMINATEINSTANCE event, if you use @instance_ (from the queue) instead of @instance (the actual instance handle from the SDK) as the argument.  The instance has actually been terminated already, so you can't get the instance handle directly from the SDK; however the instance handle is saved in the event queue, specifically to allow you to use the @instID function to identify the terminated instance. Therefore you can use @instID in a TERMINATEINSTANCE event to delete or update a database entry for an instance that has terminated.  (As the AWRPG bots do.)


6/8/06, later

Version 7.1.3 Fixed a bug that prevented obj lists from being read from a file properly. Also updated the workings of the various buttons on the Survey tab.  Changed the name of the Options/Propdump version menu item to Options/ObjList Format to better reflect how it's used. Likewise changed the SETBUILDVERSION command to SETOLVERSION.  The Obj List Version setting tells Magsbot what format to expect when using an object list, either when building it or saving it in propdump format. The version numbers correspond to propdump version numbers, 2, 3 or 4.

6/8/06

Version 7.7.2 Made a small fix to allow instance ID to be available during TERMINATEINSTANCE.

Version 7.7.1 Added functions:

$vlpick[@v,$prompt]
$vlpicks[@v,$prompt,$delim]
$vlpickv[@v,$prompt]
$vlpickvs[@v,$prompt,$delim]

These are like the various $pick functions, except that they use a vlist instead of a global variable list.

6/2/06

Version 7.1  This is the one that will run in the newly released non-beta 4.1 AW worlds as of today, June 2nd 2006! :)

6/1/06

Version 7.0 b5 A few fixes...@vlistfromobjdata and $objdatafromvlist had their argument types reversed.  There is still a problem with creating movers from scratch....I'm working on that. :)

5/31/06

Version 7.0 b3 A few adjustments, plus the most important feature revision of all...a new picture for the splash panel!

turtle flock

5/30/07

VERSION 7.0 for AW 4.1!  This is still a beta version because I haven't gotten a few of the new features to work yet. In particular, creating movers using the @objectadd function doesn't work yet.  See here for information about creating special objects.

5/21/07

(Version 7.0 a109 This is the version for AW 4.1 beta. Send me a telegram in the beta uni if you want me to send you the beta aw.dll and license to use it.)  Replaced the @TZ and @DST macros with built-in functions that automatically determine the time zone and daylight savings time on your computer.  Also replaced the @VRDate and @VRTime macros with built-in functions.  And, added menu items in the File/Logging menu to allow you to add a timestamp to each event in the log window, in your local computer's time or in VR time.

5/15/06

Version 6.8.35 Added a button to the Calculator dialog for inserting a function, attribute name, etc.

5/11/06

Version 6.8.34 Changed some things with FLOODPROOFING and AVCHANGELIMIT. They now take an argument in milliseconds rather than a Delphi TDateTime value.

5/9/06

Wow, I'm better than I thought. :P I just discovered that the Scroll Lock feature (selected from either the checkbox on the Chat panel, or the menu item under Chat) does work after all. And all this time I thought that I just couldn't get it to function.  The catch is, the log window can't have the focus (i.e. don't click it) or the scroll lock goes away. If this happens you can re-activate scroll lock by unchecking and checking the scroll lock box.  Another catch is, the scroll lock checkbox and menu item will only be available when Advanced/Anti-Flicker is checked...but that much I knew. :)

5/2/06

Version 6.8.31 Fixed a bug in Connection/Abort failed instance recovery menu item.

Version 6.8.30 Fixed database operations within a thread bug.

Version 6.8.28 Added EventsViewer.  (Right click on Events bar to open).

Version 6.8.27 Added Calculator dialog for Expresssion Evaluation. Added error checking to GETHTTP, etc. Added third verification url for custom Magsbots.

3/25/06

Version 6.8.25 Changed the $if and @if functions so that the alternate argument (the second argument if the first argument is "true", or the third argument if the first argument is false) doesn't get evaluated. Not only is there no need to do so, but this will also prevent problems that used to occur if the alternate argument contained a function call that shouldn't be made. Previously, all arguments were evaluated regardless of whether the first argument was true or not.

Here's an example to show what I mean:

@x=@if[@a,@ftn["[ButtonOne]"],@ftn["[ButtonTwo]"]]

The @if function returns the result of the second argument (@ftn["[ButtonOne]"]) if the first argument (@a) is true, otherwise it returns the value of the third argument (@ftn["[ButtonTwo]"]).  That was working as it should, but because Magsbot normally evaluates all the arguments before passing them to the @if function, both the [ButtonOne] function in the second argument and the [ButtonTwo] function in the third argument would be called regardless of the value of @a.  If the function in the "alternate" argument did something that should only be done by the the function in the argument whose value is returned by @if, that would cause problems. In Magsbot version 6.8.25, the third argument won't be evaluated at all if the first argument is true, thus the [ButtonTwo] function won't be called; and likewise the second argument won't be evaluated at all if the first argument is false, so the [ButtonOne] function would not be called.  All of that also applies to the $if function as well.

3/9/06

Version 6.8.24 Added @dbisnull[$fieldname] function, that tells is a database field is null.

3/5/06

Version 6.8.22 Fixed a bug that was introduced into the $replace function by changes in 6.8.20.

3/3/06

Version 6.8.20 Checks for a more recent version of Magsbot and notifies you. (You can turn off this feature by putting Check=0 in the [Update] section of the .ini file.)

2/27/06 later

Version 6.8.18.  Fixed a problem pertaining to custom versions of Magsbot.

2/27/06

Version 6.8.17.  Fixed a bug that caused non-propdump lists to have a propdump header at the beginning of the file. (A goof caused when I updated to version 3 type propdumps in version 6.8.16.)

2/24/06

Version 6.8.16.  Added INFO command (similar to POPUP but uses a scrolling, resizable window) and updated survey functions to use the propdump version 3 format.

2/20/06

Version 6.8.14.  Yes, you guessed it: made some more changes to the ever-vexing recovery routines.

2/19/06

Version 6.8.11  Some changes to recovery. Added events CITIZENRESULT, LICENCEINFO, LICENSERESULT and commands CITIZENADD, CITIZENDELETE, CITIZENCHANGE, CITIZENNEXT, CITIZENPREVIOUS, LICENSEINFO, LICENSEADD, LICENSEDELETE, LICENSECHANGE, LICENSENEXT and LICENSEPREVIOUS. These commands and events are of interest only to people running their own universe or galaxy server.

2/16/06

Version 6.8.10  Changes to recovery routine, again.

2/15/06

Version 6.8.9  Changes to recovery routine, again.

2/10/06

Version 6.8.2  Fixed a bug that caused the BREAK command to not work within a THREAD clause.

2/9/06

Version 6.8.1  Changed some things to improve recovery from disconnects.

2/5/06

Version 6.7.20  Fixed a problem with the @recovering function. (See 6.7.17 below.)

1/29/06

Version 6.7.18 Changes to $dbrecord so that a null datetime value is returned as 0 instead of "".

1/28/06

Version ...6.7.17 Added @recovering function, valid within a TERMINATEINSTANCE event, that indicates if the instance is recovering from a disconnection (and will be restarted shortly with the same instance ID, though the instance itself may have changed). Also changed the Find Button routine so that matching buttons are highlighted as each tab is selected in the result dialog.

1/26/06

Version 6.7.9 Made some changes to allow @InstID function to work within a TERMINATEINSTANCE event.

1/25/06

Version 6.7.8. Changed @instid function so that it returns 0 and does not cause an error if the instance does not exist.

12/4/05

Version 6.7.7. Made button search (Ctrl-F) case insensitive.

11/28/05

(in version 7.0)
 SETSURVEYVER4 @cond
SETBUILDVER4 @cond

@ver4pd

"Build using 4.x Propdump Format" menu
also added to Survey dialog

11/9/05

Version 6.7.5.  Big jump, huh? Well I tried something experimental in 6.7.0, that didn't work out so well. But after several revisions, I decided to let the .7 stand, even though the only change now is the "Window/Find Button" menu item.  When you click that, you can enter the name or wildcard name of a button, and Magsbot will then popup a list of the tabs with buttons whose names match.

10/24/05

Version 6.6.15. Added EVENT command, AWINT_, AWFLOAT_, AWSTR_, MBNUM, MBSTR. Also added some features to support verification in custom Magsbots.

9/13/05

Version 6.6.7. Added an optional argument to @pos and @ipos and fixed a typo in the list of AW attributes.

9/5/05

Version 6.6.4  Made a little tweak to @dbfield, $dbfield functions and DBFIELD, DBFIELD_ commands internally, and add a $dbfieldtype function.

9/3/05

Version 6.6.3 allows you to create administative instances by menu or command, that can connect to your world server to use admin commands. I also added the UNIVATTRCHANGE command and various UNIVEJECT... commands (which however require the instance to be owned by citizen 1, so I haven't been able to test).

8/27/05

Version 6.5.27. Fixed a problem with the @session function (due to a bug in the SDK) and added an option to ADO options. Nothing major...

8/15/05

Version 6.5.25. Added an optional argument to @iposw. (It was added to 6.5.24, but there was a bug so that version was only posted very briefly.0

8/13/05

Version 6.5.23. Fixed a bug in ENDONREACT that caused ENDONREACT 0 to be ignored following an ENDONREACT 1.

8/2/05

Version 6.5.22. Fixed a bug: a few of the checkboxes on the Handlers dialog weren't working.

7/31/05

Version 6.5.21. Fixed a problem with the function that converts SDK coords to AWB coords (it was rounding them off too much).

7/25/05

Fixed a problem with the terrain buttons, that caused some terrain pages to not be read, in very large worlds. Some other button fixes and improvements too.

7/11/05

Version 6.5.19. Fixed some more terrain stuff...better. :P

7/10/05

Version 6.5.16. Fixed some more terrain stuff.

6/28/05

It turns out that version 6.5.7 didn't really have a bug, I was just having some strange problems with my Internet connection. But I made a bunch of other little changes in the process of figuring this out, and those changes are in the latest version 6.5.12.

6/27/05

Backed up to version 6.5.6 since I found some problems in 6.5.7.

6/26/05

Version 6.5.7. Assorted minor fixes and added @height and @texture functions and CELLFROMZX command (previously these were implemented as buttons, now they're built-in).

6/16/05

Version 6.5.3  New ADO module, support for ADO 2.8, and also fixed a problem with the textures buffer.

3/13/05

Version 6.4.8 Changed @dbfield so that when returning a boolean, true will always be 1, and never -1 which is annoying. :P

2/28/05

Version 6.4.7. Added @putchar[@filehandle,@ch], @getchar[@filehandle] and added an optional length argument to $read: $read[@filehandle,@length].

2/25/05

Version 6.4.6. Added $nameofcit[@citnumber] function.

2/18/05

Version 6.4.4.  Magsbot now sets the ADO version automatically.

2/9/05 later

Version 6.4.2. Decided to add privilege ID to the nearby list also, and a @privilegeof[@session] function.

2/9/05

Fixed a problem with the Stay-On-Top feature. Added citizen number of nearby list (yeah I know, about time). Added @citnumof[@session] function.

2/6/05

Oops, a new SDK version came out and I didn't hear about it. Oh well, now Magsbot 6.4 uses the new SDK build 41.

2/5/05

Version 6.3.8.   Arrgh, a fix I made to the survey system awhile back, returned to bite me, ouch.  Anyway I fixed that now (it caused an exception during a survey under some conditions.)

2/3/05

Version 6.3.7. Added PLAYSOUND $wavefile command. (Thanks to Percipient for writing a plug-in version, that inspired me to add a built-in command, since the code to do it was surprisingly simple.)

2/2/05

Version 6.3.6. Made the FREEVAR and FREELVAR functions case-insensitive.  Added "Stay On Top" to Window menu.

1/31/05

Version 6.3.5. Fixed a bug that sometimes caused Magsbot to hang when the "Action/Queues/Empty Action Queue" or "..EmptyEventQueue" menu items were clicked.  Also updated standard behaviors.beh and buttons.btn.

Also fixed a bug in FINDFIRST that sometimes caused an error message inappropriately.

1/29/05

Updated MBotCalls.pas, PublicMBTypes.pas, PlugInExample4, PlugInExample5 and the Radar plug-in.  This was to make the radar dll clean up "ghost" sessions (i.e. avatars who aren't really there anymore but remain on the screen after a disconnection) when the Refresh button is clicked.

1/28/05

Version 6.3.4 Fixed a bug in the WINMSG command. It wasn't contining to the next action in the sequence.

1/16/05

Version 6.3.2. Added two functions, @lvindex[@vlist,$value] and @lvindex_[@vlist,@value] that return the index of a variable in a vlist, according to its value, or -1 if its not found. (Use @lvindex for string variables and @lvindex_ for numeric variables.)

1/15/05 later

Version 6.3.1. Fixed a bug in the new show/hide tags system.

1/15/05

Version 6.3.  Fixed a problem with the queueing system, that caused an exception if an action in the queue didn't complete before the following action was called. This was not a problem in most cases, but the @newinstance function, for example, allows Magsbot to continue while the new instance was being started, therefore the next command in the queue to proceed even while the command with the @newinstance in it was still executing.  Thus the queue itself might finish and be freed before the @newinstance action completed, also freeing the local variable list that the @newinstance action was still using.  The changes made in 6.3 prevent a new action from being fetched from the queue until the previous item finishes.

I also added a new feature, the ability to hide tabs on the Actions panel. The buttons within the hidden tabs can still be called using CLICKBTN, FTN, @ftn or $ftn, but won't be visible to the user, to avoid visual clutter and confusion for the user.

12/29/04

Version 6.2.2.  Added WINMSG command and WINMSG event, to allow copies of Magsbot on the same computer to pass Windows messages.

Use command WINMSG @wparam @lparam to send.  The message is broadcast to every copy of Magsbot running on the same computer.

The message is received as a WINMSG event, with @wparam and @lparam available within the context of the event.

No text message is sent, just a standard Windows message of the same sort that Windows applications send to each other constantly. The actual message ID is generated new each Windows session (i.e., each time you restart your computer begins a new "Windows session"), but is unique for Magsbot; thus all other applications will ignore it. Since all Magsbots running in the same Windows session will derive the same Windows message ID for messages sent using the WINMSG command, they will always recognize a message sent by another Magsbot. The wparam and lparam are a pair of arbitrary long integers that you can use for whatever purpose you want, but are otherwise meaningless.

In 6.2.2, I also fixed a bug that caused an incorrect message when a plug-in (DLL) failed to load properly.

11/13/04

Version 6.1, which has some more features for plug-ins. See PlugInExample5.

11/9/04

Important note if you're writing plug-ins for Magsbot: I've discovered that even though I'm now using Recycler Memory Manage 1.3 in Magsbot, the 1.0 version of RMM still seems to work better in DLLs used with Magsbot. I discovered this when trying to recompile the Radar plug-in. With RMM 1.3 it crashed, with RMM 1.0 it works okay. Strange. Maybe it's a matter of differing settings?

11/8/04

Version 6.0.10. More memory tightening and debug stuff.

11/7/04

Version 6.0.9. Fixed a memory leak. Added some debugging stuff for myself.

10/31/04 Happy Halloween!

Version 6.0.5.

{$define AUTO_BIND}
{$define SHARE_MEM}
{.$define PATCH_ALLOCMEM}
{.$define SECURE_MEMORYMAP}
{.$define NO_BPL_PATCHING}
{.$define ALLOW_SSE}
{.$define RAISE_EXCEPTION_ON_INVALID_RELEASE}
{$define ALLOW_DELAYED_CHUNK_RELEASE}
{$define DEFER_INVALIDATE_POINTERS}
{$define ALLOW_USAGE_SNAPSHOT}
{.$define ALLOW_BENCHMARK}

(Plug-ins made with earlier versions of RecyclerMM will still work.)

10/22/04

Decided it was about time to release 6.0. Also enhanced the Radar PlugIn and added a small plugin for compacting a MS Access database.

10/17/04

Added more support for plug-ins, and another example. This one adds a RADAR command for a visual display of avatar location.

10/5/04

Fixed a bug that caused a problem with the survey command when using a conditional expression.

10/3/04

Here it is! Magsbot version 6.0 a21 allows your plug-in written in Delphi to add your own commands to Magsbot! See PlugInExample3.zip for details. :)

10/2/04 later

Fixed a problem with the feature that allows you to get object data in the OBJECTRESULT event (even though the SDK doesn't normally provide it). The data wasn't being properly saved in the @objectchange function. (@objectadd and @objectload were working correctly however).  Version 6.0 a19.

10/2/04

Get Magsbot version 6.0 a18 and MBPlugInExample2.zip and you can add your own Delphi functions to Magsbot!  In the next phase, I will add the ability to create your own Magsbot commands!  :)

10/1/04

Woo hoo! I'm so excited! I just realized that the Recycler Memory Manager that Magsbot uses, not only allows the passing of data more easily between the Magsbot program and DLLs, but also allows the DLLs to call upon functions within the Magsbot executeable itself! This means that true plug-ins are now possible, without a whole lot of work for me--well, except for writing the documentation.  Right now in version 6.0 a17 you can call on functions for expression evaluation, but soon it will be possible for you to create a DLL using Delphi, that will add new internal functions to Magsbot, and even new commands!  Download the new example file here.

minor change:

Removed the $botname function and added a macro with the same name, that does the same thing. Make sure you are using the latest userdefs.udf or add $botname=$atr[login_id] to your userdefs.udf.

9/29/04

In Magsbot 6.0 a14:

Added the ability to survey to an object list directly from the survey dialog. This new built-in method is faster than using the behavior table to process the data, and replaces the "Log from Survey" and "Log from World Survey" buttons on the Survey tab of the Actions panel.

New commands (used to set the new survey dialog options programmatically):

SURVEYLIST @listtype
SURVEYFORMAT @formattype
SURVEYLISTCLEAR @cond
Hey...did I mention before that 6.0a now has threads??

9/25/04

In Magsbot 6.0 a12:

9/1/04

Some more adjustments to the Random Movement/Patrolling functions.

8/30/04

Revised the Random Movement/Patrol buttons and behavior table section. (They now both use the same section.)

8/27/04

Some fixes to that darned @height function. It wasn't properly determining the terrain page.

8/20/04

So, what's new in 5.4?  The FTP functions are new. But, you say, those were added in 5.3.1!  Well, yes...but I decided that version should have really been called 5.4 since those new functions were enough to justify a new minor version number; I just didn't think about it at the time. So I've released 5.4 which actually only has a few adjustments to the FTP functions in it.

Also made some action button updates.

8/6/04

Added a setting for the [Debug] section of magsbot.ini, RecoveryDelay = time in seconds before the bot tries to recover from a disconnection. The default value is 10 (seconds).

8/5/04

Another fix to Ctrl-D.

8/4/04

Changed the Ctrl-D (see 7/12/04) so it works anywhere (you don't have to be on the Actions panel).

8/1/04

Made some improvements to HTTP and FTP features.

7/30/04

Made the HTTP and FTP features able to run without freezing the program.

7/12/04

Added Ctrl-D (Find Category) to Actions panel. I added this because the AWRPG script has so many category tabs, it sometimes takes me a minute or so to find a particular one, just searching visually. Now when you have a lot of tabs and can't see the one you want to select, you can press Ctrl-D and type the name to go right to it.

Also fixed a typo in the insert template for the FTPSEND and FTPGET commands.

7/9/04

Fixed a bug that caused Magsbot to lose focus, when a variable list window created with the SHOWVLIST command was closed using the Close menu item rather than Esc or the Close button.  Also added the BREAKRESET command, that has the same effect as the "Actions/Break Reset" menu item, and a CLEAROBJRESULTS command, that has the same effect as the "Advanced/Clear Object Results" menu item. Version 5.3.3.

Also updated the help to reflect the new menu hierarchy.

6/28/04

Added basic FTP capabilities in version 5.3.1:

FTPLOGIN   $url $username $password
FTPLOGOUT
FTPPORT @port
FTPTYPE $type (ASCII or BINARY)
FTPSEND $srcfile $destfile
FTPGET $srcfile $destfile
FTPCHANGEDIR $path
FTPCHANGEDIRUP $path
FTP CREATEDIR $path
FTPREMOVEDIR $path
FTPDELETE $filename
FTPRENAME $oldpath $newname
FTPCMD $command

$ftpdir[$specifier]
 

6/25/04

Corrected a mistake in the [LogObject] button, due to recent changes. (Make sure you get this fix if you are doing any relative surveys using the buttons on the Survey tab. Or you can just fix it yourself: edit the Survey/[LogObject] button and change the +'s to -'s.)

6/23/04

Made some changes to speed up terrain querying. Version 5.3.0. (No longer beta!)

6/20/04

Aaaaaah...those changes I made yesterday left a flaw in the survey buttons. Fixed now.

6/19/04 later

Added some buttons and made some changes in the behavior table to doing surveys directly to a database.

6/19/04

Made some fixes to various build buttons (build from objlog, search & replace, etc.)

6/15/04

Added a AVCHANGECOND command that can be used to specify which AVATARCHANGE events get sent to the behavior table.  Later...made some changes to AVCHANGECOND.  The command takes one optional argument, a numeric expression. If the expression is true (non-0) at run-time then the AVATARCHANGE event will get send to the behavior table as it normally does; otherwise, avatar tracking will still be updated and ENTERZONE and EXITZONE events will still be generated if appropriate, but no AVATARCHANGE event will be sent.  If the optional expression is omitted, then all AVATARCHANGE events are sent.  The AVCHANGECOND command operates per instance.

6/11/04

..also added a PACKGLOBALVARLIST command with the same effect as the "Pack Global Variable List" button. Version 5.3 b28.

6/11/04

Added a MUTESURVEYLOG command and "Mute Log" checkbox to the survey dialog, that can be used to prevent the results of a survey from appearing in the log window. Also fixed some problems in the survey buttons on the Survey tab of the Actions panel.

Also rearranged the main menu somewhat (there was too much stuff in Actions), and added a "Pack Global Variable List" item to the Advanced menu. Clicking this can free some memory used by deleted global variables.

6/10/04 later

Made some changes to greatly speed up loading lists, as well as the variable list. Version 5.3b26.

6/10/04

I had to made some fixes to the new OBJECTRESULT stuff just added. (Hey that's why it's still a beta...)

6/9/04

In the SDK, the OBJECTRESULT callback doesn't give you any information other than the object number. I added a mechanism so that now an OBJECTRESULT event will also have all the object attributes (OBJECT_Z, OBJECT_X, OBJECT_Y, OBJECT_MODEL, OBJECT_ACTION, etc.) available, so you can (for example) save them in a log or whatever...

Version 5.3 b24

6/7/04

Made some changes to the survey buttons to avoid conflicts with the survey dialog.

6/5/04

I made some changes to speed surveys up.  CELLOBJECT, CELLBEGIN, CELLEND and CELLRESULT events now go directly to the behavior table instead of the event queue. It's kind of an experiment, but it seems to work well so far. If you have any problems, you can check menu item Actions/Advanced/Use Queue in Survey to change back to the old way of doing it. With this new method, there is no wait after a survey ends for the data to finish processing. The survey itself may take just a bit longer, but the combined survey+data processing is shorter. Note that during the survey you won't see any events filling the queue on the monitor bar. You can tell when the survey is done either by the "Survey done" message in the log window, or by pressing F9 and looking at the survey dialog (the status bar will be gray when the survey has finished).

Version 5.3 b23

6/4/04 later still

I hope this doesn't mess anyone up...but I decided that the "bottom" and "height" arguments just don't work logically in the zone functions. I've changed them to "bottom" and "top" instead, in version 5.3 b21.  If you have and old zones file to convert, use the "Load OLD zone list" button.

6/4/04 even later

Fixed some incorrect items in the zones documentation. (The last two arguments for ZONE and ZONE_ at not "top" and "bottom", they are "bottom" and "height".)

6/4/04 later

There was in a bug in the AVATARDELETE handler due to the changed I just made to avatar tracking, etc.  It's fixed in version 5.3 b20.

6/4/04

Ooops...I found (and corrected) a mistake in the comments on this page for 5/28/04:  the new command was AVTRACKFILTER, not AVCHANGEFILTER.  The AVCHANGEFILTER command has been around for a long time, and does something entirely different.

However now that I think about it, AVTRACKFILTER is not such a great name for the new command anyway, since it doesn't filter av tracking, but rather AVATARCHANGE events. (At least, it seems more useful for it to work that way.) So I've changed the name of the command to AVCHANGECOND.  (AVCHANGEFILTER would have been an even better name, too bad it's already taken...)

I've revised all of the AVATARCHANGE filtering settings a bit also. I decided that there's not much point in filtering avatar tracking, since that doesn't take much time; instead the AVCHANGELIMIT, AVCHANGEFILTER, AVDETECTRANGE and new AVCHANGECOND commands will now affect only whether or not the event is sent to the behavior table, because the event queue is the big lag-producing factor. But if avatar tracking is turned on for that instance, the location data it will be updated regardless of filtering. I'll be looking at how this works and might change it back again if it's not more efficient.

I updated the main help with the Zone and AVATARCHANGE filtering commands too.

Version 5/3 b19.

6/2/04

Fixed a bug in @avzone, which was returning 0 for both the first zone and the "non-zone". It now returns 0 for the "non-zone" and 1 for the first zone.

Also made an adjustment to queueing, so that if a particular event has no active rows in the behavior table, then the event won't be queued at all, to save time. I actually added a feature some time ago to check if an event is really in the table before sending it, but this change will also check if any row is active or not. (I'm not sure if this will really improve performance, so this will be a test...).

later

Added some buttons (root category) to help in defining zones.

Version 5.3 b18.

5/29/04

Fixed a glitch with the new AVTRACKFILTER that caused the instance to change within the event under certain circumstances.

5/28/04

Added AVTRACKFILTER. This allows you to set a conditional expression to filter AVATARCHANGE messages. Only those AVATARCHANGE events for which the filter expression is non-0 will be sent to the behavior table.

Also made a few improvements to some action buttons.

later

Updated userdefs.udf for the button changes.

5/18/04

Fixed a mistake in the Insert Action template for the BOTGRAM command (it said session where it should have said citizen number).

5/12/04

Finally, finally I think I have the heights thing working under all circumstances. I found out there was a problem with the calculations for worlds with more than one terrain page, and I think it's work in all cases now.

5/11/04

Made Include Tilt,Roll in Build checked by default. Fixes some problems with negative numbers showing up in yaw. Fixed some button problems.

5/9/04

Fixed TURN and FACE so won't show negative yaw.

5/8/04

Added STARTINSTANCE event. Version 5.3 b3.

Added zone functionality. Version 5.3 b8.

Menu:
    Options/Check Avatar Zone

Events:
    ZONEENTER
    ZONEEXIT

Commands:
    ZONE $name @north @south @east @west @alt @height
    ZONE_ $name @north @south @east @west @alt @height
    UNZONE $name
    ZONECHECKING @cond
    ZONECHECKING_ @cond
    ZONEACTIVE @cond
    ZONEGROUP $zone $group

Functions:
    @zonechecking_
    @getzone[$zone,$Nvar,$Svar,$Wvar,$Evar,$Altvar,$Heightvar]
    @inzone[$zone,@session]
    @locinzone[$zone,@z,@x,@y]
    $avzone[@session]
    @avzone[@session]
    @zonestate[$zone]
    $zones
    $zonegroup[$zone]


5/3/04

Had to make yet another fix to the @height macro. Sigh.

5/2/04

Changed SHOWTERRAINBUFFER so that the window it creates is non-modal (it doesn't freeze the program while it's open) and added an optional caption argument. Also fixed a problem with the DBCONNECT and similar database commands, that caused the database window to sometimes not be updated properly.

5/1/04

Made some more button and behavior table improvements, including yet another adjustment to that darned [Height] button (and therefore the @height macro).  Also uploaded version 5.3 beta 1, which so far only has one big difference, which is the SHOWTERRAINBUFFFER command, that allows you to examine any terrain height and/or texture buffer (as created by @copyhuffer or @copytbuffer). Without the new command, you could only see the last terrain page that was loaded, using the terrain buffer dialog.  I plan to add several other things to 5.3 soon, including a better method of defining areas and checking if an avatar is in a particular area.

4/30/04

Fixed a mistake in the [Height] button.

later

Made some other button changes, to the walking routine.

4/29/04

Added an @xor function, and finally got terrain height calculation for avatars (the @height macro) working properly, thanks to Byte Me, Ima Genius and mostly Cristophe Kadara. Thanks!  Also I renamed two old functions, formerly called @height and @texture, but now called @aheight and @atexture to avoid conflict with the @height and @texture macros that I feel are likely to be used more often. I hope this doesn't mess anyone up. The [LoadNode] and [LoadNd] buttons on the Terrain tab also had to be updated with the new function names. Version 5.2.9.

4/28/04

Made some changes to the @reacted and @eventtype functions, to ensure that they are available within a button called with FTN, etc.  Version 5.2.7.

4/26/04

Added some error messages to some terrain functions. 5.2.6.

4/23/04

The @copytbuffer function was missing because of a typo. :O Fixed in version 5.2.4.

later

Fixed some other terrain texture stuff and updated some buttons. 5.2.5.

4/21/04

Made a change in @dbfield to avoid problems when returning boolean or single-precision types from a database. (Magsbot numerical variables are all variant type, and either integer or double precision.) Version 5.2.3.

4/20/04

Fixed a bug that caused an error if the bot heard a blank chat string. (It's not possible for someone to send an empty chat string from the AWB, but a bot can.) Version 5.2.2.

4/19/04

Fixed a bug that caused an error when asking the bot for it's version in chat. (If a Magsbot fails to respond to "version" then you'll know it's either a 5.2 beta version, or 5.2.0.)  Fixed in version 5.2.1.

4/18/04

Minor tweaks, plus a new argument to the $hex function. Version 5.2 (not beta anymore).

4/16/04

Fixed a problem with QWAIT, and generally improved how it works. (Note however that QWAIT still doesn't work predictably within an action clause, such as in the IF, FOR, WHILE, etc. actions.)

4/13/04

Fixed a problem with integer conversion that caused very large numbers to be improperly read or evaluated under some circumstances. (Now very large integers are automatically converted to floating point.)  Version 5.2 b9.

later

Added $sdkerror function. Version 5.2 b10.

later

Fixed a problem in the new @ivnum_ and @itemnum_Version 5.2.11.

4/11/04

Made some changes to @ivnum, @ivnum_, @itemnum, @itemnum_ and @wordinlist, to fix a problem that occurred when dealing with lists containing items numbered less than 1 (i.e. items numbered 0 or with negative item numbers). Also updated userdefs.udf to use the fix.

4/9/04

Some changes to the standard set of action buttons, including a fix to the [Height] calculation. Also some userdef.udf changes (all backward compatible).

4/4/04

Updated Bone telegram module, added new events to the Insert Event dialog. Version 5.2 b5.

4/3/04

AW SDK build 37 is out!  And here is Magsbot 5.2 beta with the new features already. :)  New commands are BOTGRAM, CLICKTOOLBAR, CLICKURL and USERLIST. The SENDURL has some new, optional arguments. There are new Events: BOTGRAM, TOOLBARCLICK, URLCLICK, UNIVDISCONNECT and USERINFO. This is a beta version.

If you're programming a bot yourself in Delphi, the AWAPI header for build 37, ported to Object Pascal, is here.

later

Version 5.2 beta 2. Well duh, I kind of misunderstood the aw_botgram_send...it is sent to a citizen number, not a session number. However, other than the erroneous message shown when the 'gram is sent, the BOTGRAM_ command should have worked properly in 5.2 b1, if a citizen number rather than a session number is input. In beta 2, I've removed BOTGRAM $name $message and BOTGRAM_ @session $message, and replaced them with a single command BOTGRAM @citizen_id $message. But, heck, it still doesn't seem to work, yet. It generates a "not logged in" error. Maybe an SDK bug, I don't know...time will tell.

3/29/04

Version 5.0.7 with some minor fixes, and also Version 5.1 b6 (beta), which has some things I added internally to make custom versions of Magsbot easier for me to make in the future, and also, incidentally, a $gethttp function similar to the GETHTTP command except the function version returns the web page as a string.

3/17/04

Just added a few debugging features. Version 5.0.6.

3/15/04

Added RECOVER and TERMINATEINSTANCE events. Version 5.0.4.

later

Changed the TERMINATEINSTANCE event so that it is queued like all other events, and added @session_ and @instance_ functions to get the session and instance of the instance just ending, within the TERMINATEINSTANCE event. Version 5.0.5.

3/14/04

Version 5.0.3 now saves the names in the table combo on the database dialog.

3/13/04

Made some changes to the $dbrecord function to improve the way it translates nulls, etc. Version 5.0.2.

3/10/04

Had to fix another bug caused by my behavior table improvement (the proper row wasn't being shown when an error occu