Is MUSHClient fully ANSI compliant, and if so...

Posted by Unregistered user on Tue 16 Jan 2001 12:00 AM — 5 posts, 20,955 views.

#0
How do I enable support?
Thanks,
Nick

- nrubenstein
Australia Forum Administrator #1
MUSHclient is partly ANSI compliant.

It implements:

* telnet negotiation
* ANSI colour codes (foreground, background colours)
* bold, underlink, blink (however blink displays as italic)

It does not implement cursor addressing, and some of the other more obscure features of ANSI compliance.

I made a conscious decision to not implement cursor addressing, particularly as I couldn't see how it would work with things like logging and colour changes etc.

For example, if you display lines 1 through 20, which are written to the log file, and then cursor-position the cursor back to line 15 and make some changes, how do you change the log file to reflect them?

I think that a full telnet ANSI-compliant implementation, and a MUD client, are different beasts.

I don't have any immediate plans to change this, it is not so much that I don't understand how to interpret ANSI codes, it is how I can make it work smoothly in the client that is the problem.
#2
I see no need for ANSI cursor support in a mud client, if for some reason this is desirable, you can use a telnet implementation. I don't want the sheer speed of MUSHclient threatened by this. Don't ever add it

Dave
Australia #3
Heya,
This was an old post but anyway,

With ansi cursor support and limiting the height/width of the scrolling area (i think the code is ESC[#;#r) would enable a split screen setup. I have used this on telmate.

This would enable nice scripts to be written like the setting the top bottom 4 lines used for chat messages or to display combat/experience/spell/ect.. analysis to be shown constantly on the screen.

I realise you can do something similar by opening a second world and using that to display information but the input area and the caption/close section of the MDI child take up too much screen space?

Zebulon
Australia Forum Administrator #4
I still think that trying to implement ANSI cursor support makes logging and trigger matching almost impossible.

What you can do to display experience, etc. continuously is one of two things ...

  • Use the status line, if the information will fit, and update that in a trigger or a script
  • Use a notepad window. By using a trigger to "send to notepad (replace)" the notepad can be updated when required, or you can do it from a script. I did a script a while ago that detected an inventory list, and recorded my current inventory in a notepad window, that I then resized, and kept on one side.