| 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.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.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.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. :D11/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.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.)
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. :P9/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.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.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.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
7/22/06
7/15/06
later still
7/15/06
later
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:
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!

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
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.
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
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.
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
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.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.
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 @listtypeHey...did I mention before that 6.0a now has threads??
SURVEYFORMAT @formattype
SURVEYLISTCLEAR @cond
9/25/04
In Magsbot 6.0 a12:
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 $password6/25/04
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]
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 ZoneEvents:
ZONEENTER
ZONEEXITCommands:
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 $groupFunctions:
@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