Register forum user name Search FAQ

Release notes for MUSHclient version 4.62


Version 4.62

Released on 28 Sep 2010

1. Changed spell-checker to use the Sqlite3 feature WAL (Write-ahead logging). This makes generating the spellcheck database file slightly faster, and should allow for faster additions to it.

[master a8c7c30]


2. Changed the ATCP_Mapper.lua plugin to use WAL (as above). This should let you walk faster through new areas.

[master bfaea92]


3. Changed the plugin Messages_Window.xml to load the Dina font and *then* load it. The old version wouldn't have worked if you didn't have Dina installed already.

[master 0f2d70c]


4. Fixed bug in GetTracebackFunction where it did not handle correctly the situation of the debug table being nil, or not being a table. Thanks to Twisol for spotting it.

[master 347fdc1]


5. Moved Automatic_Backup.xml plugin from the "lua" directory where the installer was incorrectly putting it.

[master 985c360]


6. Got rid of quite a few compiler warnings in the source. Bumped warning level from 3 to 4, to detect various warning situations. Fixed some subtle bugs that the warnings revealed.

[master a0d2cd3] (and others)


7. Fixed bug where, during the opening of a world file, if it had plugins, GetInfo (67) would not return the correct world file directory.

[master 5f711c8]


8. Updated the installer to change a few installation options:

* Deleted plugins JScript_Version, Perlscript_Version, Python_Version, VBscript_Version, sample_plugin

* Made the lua_chat plugin the official "chat" plugin

* Renamed Lua_Sapi plugin to Text_To_Speech plugin

* The default for "confirm before closing client" is now false

[master 30d726ffe, 1fbac6583, 3a06ff12]



9. Fixed bug where MUSHclient would crash on startup if preferences database (mushclient_prefs.sqlite) was locked.

[master 8363e59]


10. Assorted major code cleanups as described here:

http://www.gammon.com.au/forum/?id=10605

Basically the way plugin callbacks are called has been rewritten to make it neater and easier to maintain.

[master 54797dc] (and others)


11. Fixed bug where MXP callbacks might not be called if you had more than one plugin installed.

[master 13411c1]


12. Fixed bug where the list of timers in Debug "summary" would probably be wrong.

[master 13411c1]


13. Added extra hyperlink to Debug "summary" which lists the callbacks for each plugin (the installed callbacks) and how many times each has been called.

[master 13411c1]


14. Amended help file to put Lua examples near the top (rather than the bottom) of each function help page. Also the return code from each function is shown further up. This helps if you are using the recommended scripting language: Lua.


15. Added new Lua script function: utils.filterpicker.

This lets you display a dialog with a table control (multiple columns and rows) and let the user choose one. They can also filter to a subset of the items by typing into the filter box.

For more details, examples and screenshots see:

http://www.gammon.com.au/forum/?id=10618

[master 9bc7e9c, 4bede38, 34e9dbb]


16. Added new Lua script function: utils.timer

This effectively returns the same thing as GetInfo (232) but in a somewhat more self-documenting way. Also, if the high-resolution timer is not available for some reason it returns the low-resolution timer (which has a resolution of one second).

The high resolution timer (which always seems to be available when I test it) has a very high resolution output.

[master 1fa37b3]


17. Changed GetInfo (232) to return the low-resolution time rather than 0.0 if the high-resolution timer is not available. At least this lets you time, to the nearest second, how long things take, rather than not having any idea.

[master 1fa37b3]


18. Added GetInfo (297) which returns the frequency of the high-resolution timer. On my test machine, for example:

print (string.format ("%0.9f", 1 / GetInfo (297))) --> 0.000 000 838

This indicates that the timer is going to measure intervals of around a microsecond (which would be 0.000001 seconds).

Effectively this tells you that doing utils.timer () (or GetInfo (232)) will let you time code to the nearest microsecond (on my PC at least). Your results may vary depending on your CPU clock speed.

[master 4a20b70]


19. Updated dialog boxes to have a more modern look-and-feel. This is done by some minor code changes, and including a file MUSHclient.exe.manifest in the distribution. If you get weird graphical glitches, delete the file MUSHclient.exe.manifest from your MUSHclient installation directory. Thanks to Worstje for research and code suggestions.

[master b20dffe]


20. Added Omit_Blank_Lines.xml plugin to the distribution.

[master 9306b5d]


21. Added provision for line preambles in the output window. This lets you time-stamp (or date-stamp) each line.

Lines can be stamped differently according to their line type (input, output, note).

You can control the foreground and background colour of each preamble (eg. red for input, green for output).

There is no GUI interface for doing this, but the following script commands will achieve it (examples):

-- text of preamble (with time substitution) (%P is player name)
SetAlphaOption ("timestamp_input", "(input) %H:%M:%S > " )
SetAlphaOption ("timestamp_output", "%H:%M:%S (%P) > " )
SetAlphaOption ("timestamp_notes", "%H:%M:%S > " )

-- colours

SetOption ("timestamp_input_text_colour", ColourNameToRGB ("brown") )
SetOption ("timestamp_input_back_colour", ColourNameToRGB ("black") )


SetOption ("timestamp_output_text_colour", ColourNameToRGB ("white") )
SetOption ("timestamp_output_back_colour", ColourNameToRGB ("black") )

SetOption ("timestamp_notes_text_colour", ColourNameToRGB ("cyan") )
SetOption ("timestamp_notes_back_colour", ColourNameToRGB ("black") )

The acceptable codes (eg. %H) are the same as for the logging line preamble, as documented here:

http://www.gammon.com.au/scripts/doc.php?dialog=IDD_PREFS_P4

The additional space taken by the preamble (if any) is not counted in the column-wrap figure for the output window. Thus, if you want to fit the preamble in, you would need to resize the output window a bit larger (width).

Also, the preamble is only displayed. Selecting text, copying text, and accessing the lines via scripting is unaffected.

If you don't want the timestamp to be hard against the text in the output window you need to place a space in the timestamp as per the examples above.

You can more easily change the timestamps and colours by using the Config_Option_Changer plugin (updated in this release).

[master 549e662, 35a26d1, 5120d0c]



22. Updated the Config_Option_Changer.xml plugin to handle the new timestamp options described above.

[master 645bd7f]


23. Added Timestamps plugin to the distribution. This makes it easy for players with no scripting experience to turn timestamps on (just install the plugin). To disable the timestamps, disable the plugin. (And re-enable the plugin to get them back).

You could modify the plugin to make an alias turn the timestamps on or off.

[master 907f93c]


24. Reorganised source to put the script methods into a subdirectory scripting/methods, and split the methods.cpp file up into a lot of smaller, and more logically organised files.

[master 814d672, 0665664, e362b37]


25. Fixed bug, hopefully, where sometimes notepad documents would open with garbage (also may possibly fix occasional crash under Wine).

[master 24e3b5253, c03815833f]


26. Added new Lua script function: utils.infotypes

This returns a table of all the GetInfo selector codes, and their description. This the same description you get from typing:

Debug "info"

This table could be used to call GetInfo repeatedly, getting the value, and associating it with a description (like Debug "info" does).

[master b4128d4]


27. GetLineInfo now can return the elapsed time for this line from when the world was started (in microseconds).

Selector 13, or "elapsed" table item if using the Lua table.

[master 9068bac]


28. Fixed some memory leaks.

[master c529fba]

View all MUSHclient release notes

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.