It's been a while since the last version of the snippet, and I've since been working on other things. But a few issues came up recently, so over the week I decided to create a new version with a few updates. You can grab the latest version from here (or from MudBytes once they accept the latest submission).
• Tyche pointed out that the snippet didn't correctly respond to client-initiated negotiation. This has now been corrected.
• A side-effect of the above change is that ECHO is now handled through the snippet.
• MSDP and ATCP could be used without negotiation. Although this wouldn't really cause any problems, it was sloppy, and has now been fixed.
• I noticed most people didn't use the colours, instead preferring to use their existing Lopes-style implementations. The snippet can now emulate that style of colour system, and includes an extended selection of default colours.
• MUSHclient wouldn't fully negotiate if it was set to autoconnect, and the same may be true of other clients. The snippet will now attempt to renegotiate in such cases.
• Someone complained that "public domain" isn't always legally recognised, so I've clarified that the snippet can be used for any purpose without any conditions.
If you're updating from an older version of the snippet, please don't forget to make a backup of your MSSP and MSDP variables before copying the latest version, and update the appropriate literals for your mud name, MCCP, etc (in fact I'd recommend doing a diff just to make sure you don't miss anything). You'll need to update to use the new ProtocolNoEcho() function (instructions are in the installation text files), but other than that you shouldn't need to make any additional changes to the rest of your mud.
Showing posts with label snippet. Show all posts
Showing posts with label snippet. Show all posts
Wednesday, 22 August 2012
Saturday, 19 November 2011
GUI snippet version 6
Version 6 is now available from MudBytes, and contains the following minor changes:
The "if ( !pProtocol->bMSDP );" statement had a semicolon at the end, which should be removed. This bug has very little impact, as MSDP already overrides ATCP, but it does mean that if the user's client supports both MSDP and ATCP, they will be sent the SERVER_ID variable twice.
Quite a few muds already support MCCP, and had trouble getting it working with the snippet - particularly if they were using copyover as well. So I've improved the documentation and made it easier to integrate.
The INSTALL_MERC.TXT had actually been written for GodWars rather than Merc, and relied on a couple of GodWars-specific changes. It's been updated to work with both, and now also defines MSDP_CLASS. The INSTALL_TBA.TXT instructions now define MSDP_CLASS as well.
Although the ROM instructions are very similar to Merc, there are a few minor differences, and someone had trouble adding it to their ROM derivative. So I added another set of installation instructions.
- Removed a stray semicolon.
The "if ( !pProtocol->bMSDP );" statement had a semicolon at the end, which should be removed. This bug has very little impact, as MSDP already overrides ATCP, but it does mean that if the user's client supports both MSDP and ATCP, they will be sent the SERVER_ID variable twice.
- Made it easier to add MCCP support.
Quite a few muds already support MCCP, and had trouble getting it working with the snippet - particularly if they were using copyover as well. So I've improved the documentation and made it easier to integrate.
- Made several minor updates to the installation instructions.
The INSTALL_MERC.TXT had actually been written for GodWars rather than Merc, and relied on a couple of GodWars-specific changes. It's been updated to work with both, and now also defines MSDP_CLASS. The INSTALL_TBA.TXT instructions now define MSDP_CLASS as well.
- Added an INSTALL_ROM.TXT.
Although the ROM instructions are very similar to Merc, there are a few minor differences, and someone had trouble adding it to their ROM derivative. So I added another set of installation instructions.
Thursday, 13 October 2011
GUI snippet version 5
Version 4 was just a tiny update to fix a memory allocation problem, but this version has more changes.
While helping Splork get the snippet working in SlothMUD, we came across an interesting problem - it seems that the MXP specification doesn't actually define whether the server should initiate negotiation with IAC WILL MXP or IAC DO MXP. While some clients therefore support both, others support only one or the other. I've therefore updated the snippet to support both (it attempts one if the other fails).
There was also a complaint from another user about the MSSP table being cumbersome to update for non-static fields such as players and uptime. I've therefore changed the table to use function pointers, which should make it much easier to update in future.
Scandum also asked me to change LIST to use an array, as per the latest specification, which I've done.
Other than that there were a couple of bugfixes, but nothing serious. Here's the list of changes:
Or from the MudBytes code repository: http://www.mudbytes.net/file-2811
While helping Splork get the snippet working in SlothMUD, we came across an interesting problem - it seems that the MXP specification doesn't actually define whether the server should initiate negotiation with IAC WILL MXP or IAC DO MXP. While some clients therefore support both, others support only one or the other. I've therefore updated the snippet to support both (it attempts one if the other fails).
There was also a complaint from another user about the MSSP table being cumbersome to update for non-static fields such as players and uptime. I've therefore changed the table to use function pointers, which should make it much easier to update in future.
Scandum also asked me to change LIST to use an array, as per the latest specification, which I've done.
Other than that there were a couple of bugfixes, but nothing serious. Here's the list of changes:
- Added symbolic constants for MSDP_TABLE_OPEN/CLOSE and MSDP_ARRAY_OPEN/CLOSE.
- MSDPSetArray() was using table values rather than the array values. Fixed.
- Added MSDPSendList(), used for the MSDP LIST command (updated to an array in the spec).
- Doubled MAX_VARIABLE_LENGTH for the list variables.
- Some of the LISTs had no separators between values when sent using ATCP. Fixed.
- The MSSP table now uses function pointers, making it easier to update dynamic fields.
- Added support for both variants of MXP negotiation.
Or from the MudBytes code repository: http://www.mudbytes.net/file-2811
Sunday, 28 August 2011
GUI snippet version 3
There was a small update to the snippet on 13th June, to fix a cyclic TTYPE issue, add some extra MSSP variables, and add support for broken packets. But this update (version 3) is somewhat bigger, primarily due to some changes that were made to the MSDP specification since the snippet was released:
You can download it from here: http://www.godwars2.org/download/protocol.tgz
If you're already using the snippet, the README.TXT has some information about updating.
The plugin doesn't handle fully nested data, but it does handle basic tables and arrays, as used in the installation instructions.
- Added an AllocString() wrapper function, as strdup() isn't standard C.
- Added support for the new MSDP tables and arrays.
- Added support for the new UNREPORT and RESET MSDP commands.
- Added a new REPORTED_VARIABLES list, as described in the latest MSDP spec.
- Renamed VARIABLES to SENDABLE_VARIABLES as described in the latest MDSP spec.
- Cleaned up the code, adding consts and fixing -ansi and -pedantic warnings.
- Added support for the new Mudlet GUI autoinstaller.
- Added an MCCP flag to make integration with the snippet easier.
- Updated CopyoverGet() and CopyoverSet() to include TTYPE, MCCP and CHARSET.
- Added an MSDPFlush() function for variables that need to be sent immediately.
- ProtocolOutput() now lets you send tabs.
- The snippet now recognises that DecafMUD supports 256 colours.
- Updated the TBA instructions with a fix for strfrmt().
- Updated the Merc, SMAUG and TBA instructions to use MSDP tables.
You can download it from here: http://www.godwars2.org/download/protocol.tgz
If you're already using the snippet, the README.TXT has some information about updating.
The generic plugin has also been updated: http://www.godwars2.org/download/Generic_Plugin.zip
The plugin doesn't handle fully nested data, but it does handle basic tables and arrays, as used in the installation instructions.
Friday, 1 April 2011
GUI snippet released
After some more testing and refinement, I've decided my snippet is ready to be released into the wild. I really need to get back to working on God Wars II anyway.
Tijer's mud, the Realm of War, is already using the snippet - so I decided to create a quick and simple demo GUI for it, by adapting the plugin I'd created for Realms of Despair:
I also spent a few minutes creating another version to release with the snippet:
You can download the snippet from here: http://www.godwars2.org/download/protocol.tgz
And the plugin from here: http://www.godwars2.org/download/Generic_Plugin.zip
Tijer's mud, the Realm of War, is already using the snippet - so I decided to create a quick and simple demo GUI for it, by adapting the plugin I'd created for Realms of Despair:
(click image to enlarge)
I also spent a few minutes creating another version to release with the snippet:
(click image to enlarge)
You can download the snippet from here: http://www.godwars2.org/download/protocol.tgz
And the plugin from here: http://www.godwars2.org/download/Generic_Plugin.zip
Subscribe to:
Posts (Atom)