Released on 05 Nov 2005
1. You can now add duplicate aliases (ones that match on the same thing). The check that was previously there has been disabled, because some people wanted to have aliases that matched the same things in groups, where you would enable one group and disable the other one.
2. Added script routine TraceOut.
This lets scripters add their own trace items to the Trace facility.
TraceOut ("reached debug point 3")
The string you supply will be output to the current trace output (by world Note unless changed by a plugin using OnPluginTrace). However this will only happen if world tracing is turned on.
This will let scripters add debugging messages to scripts that can be easily turned off by simply turning tracing off.
3. Improved the supplied exampscript.lua to enhance the serialization routines.
4. Fixed a problem where if you did one of the following in a plugin, the main world "document has changed" flag would be set, prompting you to save your world, even if you made no other changes.
5. Added script routine ErrorDesc. This converts a supplied script return code to an alpha equivalent.
Note (ErrorDesc (30008)) --> The name of this object is invalid
If the code is not in its internal list of codes the supplied argument is returned.
Note (ErrorDesc (1234)) --> 1234
In Lua, the exact same descriptions can be obtained from the error_desc table (as was the case in earlier versions).
Note (error_desc ) --> The name of this object is invalid
Thus, this function is really intended for use in scripting languages other than Lua.
6. Added plugin callback OnPluginScreendraw.
This has been added specifically for people with screen readers, who want the contents of the main window read out, however don't want gagged text to be read. The current way MUSHclient works is to draw text as it arrives, and then "undraw it" if it is gagged. This approach doesn't really work with screen readers, as they can't "unread" something.
The arguments to OnPluginScreendraw are:
Type: type of line, where 0 = output line, 1 = note, 2 = command
Log: are we planning to log it?
Line: the text of the line itself
An example plugin function, which simply copies the text to a notepad window, is as follows:
function OnPluginScreendraw (type, log, line)
AppendToNotepad ("mylog", type, " ", log, " ", line, "\r\n")
end -- function
If you didn't want to have read to you the things you had typed, simply omit lines of type 2.
7. Changed a slight inconsistency in the way Lua function calls handled optional boolean values.
Previously, for something like this you could take a default:
EnableTrigger ("mytrigger", true)
EnableTrigger ("mytrigger", false)
EnableTrigger ("mytrigger") --> defaults to true
However if you explicitly supply nil as the default you got an error message:
EnableTrigger ("mytrigger", nil) --> error bad argument #2 to `EnableTrigger' (number expected, got nil)
Now, the following functions will take nil as the default value, and use the documented default instead of nil:
It is a bit hard to imagine why you would explicitly type "nil" as an argument, however if you have a helper function that passes down its arguments, then the nil that the helper function got might get passed down the one of the above functions.
8. Changed the way the mouse wheel works - now if the mouse is hovering over the output window, then the output window will scroll, even if the command window has the focus. Previously the command window would scroll, even if the mouse was over the output window.
And, vice-versa. If the focus is in the output window (eg. because you are clicking and dragging to make a selection), but you move the mouse over the command window and move the mouse wheel, then the command window will scroll.
9. The Info bar has been made slightly smaller vertically, so that text in it now looks more centered. [bug 481].
Gammon Software support
Forum RSS feed ( https://gammon.com.au/rss/forum.xml )