Register forum user name Search FAQ

Release notes for MUSHclient version 4.28


Version 4.28

Released on 21 Jun 2008

1. Fixed a minor problem in Shift+Tab completion, where when scanning forwards it did not look for a period or underscore. This would only affect the behaviour if you positioned the cursor half-way through a word, and forwards of the cursor was a period or underscore.


2. Changed the default in Global Configuration for the timer period to be zero rather than one.


Effectively this means that timers are, by default, checked every 1/10 of a second rather than every second, giving finer granularity (eg. make a DoAfter action that fires after 0.5 seconds).


3. Changed the Event handlers in the Script configuration page to optionally send a string to the MUSHclient command processor, rather than call a script in the script file.

To do this, precede the handler with the "!" character.

For example:

World Events -> Open -> !/Note ("world opened")
World Events -> Connect -> !/Sound ("ding.wav")
World Events -> Save -> !my_save_alias

The string is sent to "Execute" (minus the "!" symbol) so you can do anything that you normally can in the command processor. For example, by using the scripting prefix - whatever you have defined that to be - you can execute a script. Or, just mention an alias by name to call it.

Events that can be handled in this way are the ones that take no arguments, namely:

World Open, World Close, World Save, World Connect, World Disconnect, World Got Focus, World Lost Focus, MXP Startup and MXP Shutdown.

If you use this new method of being notified then the use of the script file is optional.


4. Tab-completion of words now adds a space after the inserted word.

This is because generally you need one. For example if you wanted to "put sword bag" and you typed "put sw<tab>" then without the extra space, you need to type a space, before typing "bag".


5. Added new Lua module "getworld.lua" to the distribution. This contains a couple of functions that are useful for sending trigger output (such as chats) to a separate world file. See this forum thread for more details:

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


6. Improved the wait.lua module to make it clearer that when an error occurs, it is in the calling script, not wait.lua itself. Also changed it to use one-shot triggers, which were not available a few versions ago.


7. Added extensive extra sound support, which supports multiple simultaneous sounds.

For details see this forum post:

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

Basically there are three new script functions:

PlaySound (Buffer, FileName, Loop, Volume, Pan) --> play a sound
StopSound (Buffer) --> stop playing a sound
GetSoundStatus (Buffer) --> query if a sound is playing


8. The installer now creates a "sounds" subdirectory under where MUSHclient.exe is installed.

This is the default directory that PlaySound looks in for sounds.


9. If you have checked the output option "carriage-return clears line" this does NOT apply if a carriage return is directly followed by a newline. The option was intended for cases where a server might send a partial line, clear it with a carriage-return and then send more data.

There have been cases of MUDs sending things like help text terminated by a carriage-return/newline, and the entire line is cleared when the carriage-return arrives.


10. Fixed bug where, if a one-shot timer fired, and called a script which raised an error, the timer was not deleted. Now it will be.


11. Added new script command SetCommandWindowHeight.

This lets a script set the height of the command window. For example:

SetCommandWindowHeight (15) -- one line
SetCommandWindowHeight (0) -- no command window visible

This can be handy for "dummy" worlds where you only want to see the output window.


12. The timers list has a new column in it labelled "Next" which shows when the timer will next fire (HH:MM:SS). This is not dynamically updated, it shows from the moment you opened the dialog box.


13. The "check" function (as in the contents of check.lua) is now built into the Lua script space as a pre-supplied function.

Specifically, it does this:

function check (result)
if result ~= error_code.eOK then
error (error_desc [result] or
string.format ("Unknown error code: %i", result),
2) -- error level - whoever called this function
end -- if
end -- function check

This is designed to encourage script-writers to check script function call results, without needing to:

require "check"

For example:

check (DoAfter (10, "eat food")) -- raise error if DoAfter fails.


14. Changed the installer to put plugins in the <install directory>/worlds/plugins rather than where-ever the Registry said the plugin directory was. That seemed to be failing for some upgrades of MUSHclient.

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.