Released on 16 Apr 2003
1. Bug fixed where under certain circumstances, the "translate German characters" option was not working.
2. When "translate German characters" is active the S-zet (ß) is now a double "s" ("ss") not "sz".
3. Fixed bug where world.getinfo (107) returned the wrong information (the flag "is the world currently connecting"). This is used by the reconnector plugin.
4. Fixed problem where if a plugin added a timer, trigger, etc. (or did something similar like modify a trigger option) the world file was marked "changed" (and thus you were prompted to save it) when really nothing had changed in the world file.
5. Changed the "send to URL" code to allow for a 512 byte URL (up from 128 bytes) and to allow for other protocols (eg. https://, file://, ftp://, etc.). Now instead of checking for http:// it looks for "://" in the first 15 characters of the URL. If it is found, it uses the supplied URL literally, otherwise it prepends http://
6. Fixed problem where "send to URL" would not work properly if the URL had an imbedded quote, like this:
7. Tightened up the check for "world is not connected - do you want to reconnect" - which is currently sent when you type things into the command window. Now the check is done only for commands that actually need to send to the MUD (eg. an alias that sends to the world, or does a speedwalk, but not one that sends to the script engine or a notepad). Thus, for example, you can use scripts without being prompted to reconnect.
8. When a trigger or alias sends matching text to a script, it automatically "escapes" quotes and backslashes in any wildcards, so the script will still work.
eg. wildcard 1 = John says, "hello"
Send text = world.note ("%1")
Send to = script
Depending on the script language in use the quotes will be turned into double-quotes or escaped quotes, like this:
world.note ("John says, ""hello""")
9. Fixed bug where if a trigger, alias or timer in a plugin had the send text as "send to script" it was sent to the main world's script, and not the plugin script. Now, the "send to" text is sent to the plugin's script parser.
10. Changed the command parser to warn you if you have scripting active, but a script cannot execute because of a parse error in the script file. Otherwise you might sit there typing:
... and wonder why nothing was happening.
11. Fixed bug where if you typed a command that was an alias, it would not be echoed on the output window, regardless of the "echo my input" settings.
12. Added chat capability. A detailed description is in:
In brief, the chat features lets you do peer-to-peer chatting. That is, talk to other players without going through the MUD server. This could be useful for:
* privacy (your conversation cannot be listened to or logged by the MUD)
* if the MUD is down you can still chat
* talking when you normally can't (eg. in a silent room, if stunned, etc.)
* automating interaction between people in a group (eg. PK groups)
The chat features has detailed support in the MUSHclient scripting language. The follow new script routines have been added:
ChatCall(BSTR Server, long Port);
ChatEverybody(BSTR Message, BOOL Emote);
ChatGroup(BSTR Group, BSTR Message, BOOL Emote);
ChatID(long ID, BSTR Message, BOOL Emote);
ChatMessage(long ID, short Message, BSTR Text);
ChatNote(short NoteType, BSTR Message);
ChatPersonal(BSTR Who, BSTR Message, BOOL Emote);
ChatSendFile(long ID, BSTR FileName);
The following routine retrieves a list of the current chat sessions:
You can use the chat "ID"s (identifiers) returned from the above to find out more about a particular chat session, or set chat options:
GetChatInfo(long ChatID, short InfoType);
GetChatOption(long ID, BSTR OptionName);
SetChatOption(long ID, BSTR OptionName, BSTR Value);
The following routines have been added to improve handling of ANSI codes, because incoming and outgoing chat messages are supposed to be coloured using standard ANSI sequences:
ANSI(short Code); // make an ANSI sequence
AnsiNote(BSTR Text); // do a "note" using ANSI codes
StripANSI(BSTR Message); // remove ANSI codes from a string
There is a new plugin supplied with this version "Chat.xml" - this provides an interface between the chat routines and the player. Install that plugin and then type "chat:help" to see the various commands you can use.
New plugin callback routines have been added to let plugins interface with the chat system:
Function OnPluginChatAccept (sText)
Function OnPluginChatMessage (id, message, sText)
Function OnPluginChatDisplay (message, sText)
Sub OnPluginChatNewUser (id, name)
Sub OnPluginChatUserDisconnect (id, name)
These routines let you automate things like whether callers are accepted, process or disgregard certain chat message types, display incoming messages in the default way, or customise it. You are also notified of new players joining the chat system, and ones that leave it.
Quick start guide ....
1. Install the chat plugin
2. To receive calls from other players, type: #accept
3. To call another player, type: #call ip
eg. #call myfriend.hisdomain.com
(both of the above can have an optional port number - the default is 4050).
4. To see who is connected, type: #chats
5. To talk to everyone, type: #chatall hello
6. To talk to one person (eg. Nick), type: #chat Nick Hello
You can also #emote or #emoteall to do emotes rather than says. eg.
7. To drop a call (eg. the call to Jane), type: #hangup Jane
8. To drop all calls, type: #hangupall
9. To stop accepting calls, type: #nocalls
You can do other things, like snoop their connection, send files, send commands, see who else is connected, but the above will get you started. See the detailed web page for more information.
Despite this considerable extra functionality, the size of the MUSHclient installer has only increased from 1.17 Mb to 1.19 Mb, making it one of the most compact clients for the number of features built-in. :)
Gammon Software support
Forum RSS feed ( https://gammon.com.au/rss/forum.xml )