inherit WWW_BASE; #define WIDTH 555 private string get_content( string, mapping args, class http_request req ); void setup() { set_title("Connecting to "+mud_name() ); set_content( (: get_content :) ); } /* setup() */ /** @ignore yes */ private string get_content( string, mapping args, class http_request req ) { string host; int port; if( !mapp(args) || !args["width"] && !args["height"] && !args["help"] ) return font()+"<h3>How To Connect To "+mud_name()+"</h3>\n" "<p>The address of "+mud_name()+" for connecting with a " "<a href=\"http://www.zuggsoft.com/zmud/zmudinfo.htm\" " "target=\"new\">mud client</a> is "+query_host_name()+", port "+ __PORT__+".<br>\n" "Alternatively, you can connect with " "<a href=\"telnet://"+query_host_name()+":"+__PORT__+"\">telnet</a>, " "or use our <a href=\"connect.c?width="+WIDTH+"&height=420\">" "online Java Telnet Client</a>.<br><br><font size=\"1\">\n" "If you have trouble connecting with the Java Telnet Client, and " "you are sure it is not because of a firewall or something similar, " "please send us a <a href=\"mailto:"+webmaster()+"\">mail</a>, " "and we will try to fix it.</font></p>\n" "</font>\n"; if( args["help"] ) return font()+"<h3>A Simple MUD Client v1.0</h3>\n" "<h3>What it is</h3>\n" "<p>This is a small telnet client, that can be used to connect " "to a MUD. It understands ANSI colour and it has a 500 line " "scrollback buffer. You can scroll through it with " "PageUp/PageDown, or with the mouse.</p>\n" "<p>Unlike the other ANSI applets I've seen, it also has a " "separate input line, so the text you type doesn't get mixed up " "with incoming text from the MUD. The command line has a history " "buffer, and remembers the last 32 commands entered. Use the up " "and down arrows to scroll through the remembered commands.</p>\n" "<p>Note that, to make the most out of this limited buffer, " "commands entered more than once are only stored once in the " "history buffer. E.g., if you enter the sequence of commands " "\"inventory\", \"look\", \"consider all\", and again \"look\", " "the first instance of \"look\" will be erased, to conserve " "buffer space. I.e., the history buffer will now look like: " "\"inventory\", \"consider all\" and \"look\". To put it " "otherwise, it tries to remember up to 32 _different_ commands, " "which hopefully should be more useful than if 20 of them were " "duplicates.</p>\n" "<p>Also, being specially designed for MUD's, the keypad acts as " "a direction pad. E.g., you can press '7' on the keypad and have " "'nw' sent to the MUD. It really makes walking around faster and " "easier (you must have NumLock ON for this to work).</p>\n" "<p>The function keys also produce some useful commands, although " "if you're not on Discworld or a derivative thereof, they may " "not match the commands understood by the MUD, and thus will be " "less useful. In a future release, I might make the program load " "the commands from a text file.</p>\n" "<p>Due to popular request it now wraps incoming text, and it " "does it by breaking the line at a space character. It turned " "out that you can't reliably expect the MUD to always do the " "wrapping for you. Note that, due to speed reasons, it only " "wraps incoming text, not lines of text already received. I.e., " "if you resize the screen or change the font size, the already " "received text isn't re-formatted to the new width, but any text " "you receive from now on is.</p>\n" "<h3>What it isn't</h3>\n" "<p>Briefly, it isn't a general purpose terminal emulation. It " "understands the ANSI colour codes, and the ANSI bright and " "reverse video commands. But that's all. It does NOT understand " "the cursor positioning commands, nor underline, nor italic, nor " "the rest of the ANSI standard, at least not for now.</p>\n" "<p>I.e., it should be ideal for connecting to most MUD's, but " "not for playing a telnet version of space invaders, because it " "lacks cursor positioning.</p>\n" "<p>Also, it doesn't have local scripting, aliases, timers or " "triggers. At least, not for now. Those would significantly " "inflate the size and number of classes downloaded, when used as " "an applet. I.e., it would make the applet load a whole lot " "slower. If you really need those, grab a copy of zMud or gMud " "instead.</p>\n" "<h3>The Buttons</h3>\n" "<dl>\n" "<dt><strong>Disconnect</strong>\n" "<dd>\n" "Disconnects you from the MUD. Note that this will make you " "net-dead, instead of properly logging you out, so it's " "generally bad practice.\n" "<dt><strong>Connect</strong>\n" "<dd>\n" "Connects you to the MUD. If you were connected already, it " "first disconnects you, and then connects again.\n" "<dt><strong>Large Font</strong>\n" "<dd>\n" "Use 14 pixel bold Courier for a font. You'll appreciate this " "if you're using very high resolution, like I do :) If your MUD " "auto-detects screen size, but it is NOT fully compliant with " "RFC 1073, you may need to reconnect to force it to notice the " "new screen size.\n" "<dt><strong>Small Font</strong>\n" "<dd>\n" "Use 12 pixel plain Courier for a font. Mainly there for those " "of you with 640x480 screens. If your MUD auto-detects screen " "size, but it is NOT fully compliant with RFC 1073, you may need " "to reconnect to force it to notice the new screen size.\n" "<dt><strong>Detach</strong>\n" "<dd>\n" "If it's used as an applet, detaches it from the html page and " "into a separate frame. I.e., now you can resize it freely, to " "suit your preferences. This button will only be visible if it's " "run as an applet, and it isn't detached already.\n" "<dt><strong>Attach</strong>\n" "<dd>\n" "Nukes the frame, and attaches the client back onto the html " "page. This button will only be visible if it's run as an " "applet, and it is currently detached.\n" "</dl>\n" "<h3>Hints</h3>" "<p>On Discworld or derivatives, use 'term network'. This will " "enable negotiating window size on the fly. I.e., when you " "change the window size or font size, the mud will automatically " "adjust its text wrapping and pausing.</p>\n" "<h3>Compatibility Considerations</h3>" "<p>The applet uses the 1.1 AWT event model, as opposed to the " "more simplistic 1.02. I.e., you'll need a browser that does " "understand Java 1.1 to use it as an applet, or a 1.1 or 1.2 " "compatible JDK or JRE to run it as a standalone application." "</p>\n" "<p>It has been extensively tested as an applet with Netscape " "4.51 and 4.6, and Internet Explorer 5.0. As an application it " "has been tested with Sun's JDK 1.2.1 with the HotSpot JVM, " "IBM's 1.1.7 JRE, and Microsoft's Virtual Machine build 3167 and " "3177.</p>\n" "<p>If you have Netscape Navigator 4.05 or earlier, it has a " "problem with understanding the 1.1 AWT event model. Allegedly, " "there is a patch for that. Or you can just get a newer version " "of Netscape.</p>\n" "<p>Also, I would recommend NOT using Internet Explorer or the " "Microsoft JVM to run it. They are buggy and slightly " "incompatible with the standard. Note that I'm not preaching " "anti-Microsoft theory, but it's based on actual testing. E.g., " "under my current Microsoft JVM, it doesn't seem to notice the " "PageUp and PageDown keys, so you're stuck with using a mouse to " "scroll back. Also, it doesn't seem to allow using ALT and the " "keypad to enter extended characters. Unless you enjoy wanton " "incompatibilities and headaches, avoid Microsoft's Java " "implementations. This may change in time though.</p>\n" "<hr align=\"left\" size=\"1\">\n" "<center><font size=\"-1\">Copyright © 1999 JagdTiger." "</font></center>\n"; host = HTTP_H->query_server_ip(); if( host == query_host_name() || host[0..9] == "192.168.0." || host == "127.0.0.1") if( sscanf( req->hostname, "%s:%d", host, port ) != 2 || host == "") host = req->hostname; return "<center>"+font()+"<!-- Here begins the applet code. -->\n" "<applet archive=\"java/classes.zip\" code=\"ANSI_Client.class\" " "width=\""+args["width"]+"\" height=\""+args["height"]+"\" " "vspace=\"2\">\n" " <param name=\"applet\" value=\"telnet\">\n" " <param name=\"host\" value=\""+host+"\">\n" " <param name=\"port\" value=\""+__PORT__+"\">\n" " <param name=\"buttons\" value=\"Y\">\n" " <b>Your Browser seems to have no " "<a href=\"http://java.sun.com/\">Java</a> support. " "Please get a new browser or enable Java to use this applet!</b>\n" "</applet><br>\n" "<a href=\"connect.c?help=me\" target=\"_new\">Help!</a><br>\n" "This applet was kindly supplied by JagdTiger. Copyright © 1999 " "JagdTiger.\n" "</font></center>\n"; } /* www_request() */