world.ANSI

MUSHclient script function (Method) — introduced in version 3.37

Generates an ANSI colour sequence

Prototype

BSTR ANSI(short Code);

Data type meanings

Description

This generates an ANSI colour sequence, like this:

ESC [ code m

The code number is supplied as an argument.

This is intended to be used with the ANSINote function - which lets you write to the output window with ANSI formatting, or to send to other clients via the chat system.

Useful numbers to use would be:

Miscellaneous

0: reset
1: bold
3: blink (is rendered as italic)
4: underline
7: inverse

22: cancel bold
23: cancel blink
24: cancel underline
27: cancel inverse

Foreground (text) colour

30: Black
31: Red
32: Green
33: Yellow
34: Blue
35: Magenta
36: Cyan
37: White

Background colour

40: Black
41: Red
42: Green
43: Yellow
44: Blue
45: Magenta
46: Cyan
47: White

// 256 colour ANSI foreground
38;5;n where n is 0 to 255

// 256 colour ANSI background
48;5;n where n is 0 to 255

Suggestion - you could conceivably replace colours in incoming chat messages by doing a world.Replace using ANSI, providing the incoming ANSI codes conform exactly to the rendering used here.

For example:

mymessage = world.Replace (incoming_message, ANSI (36), ANSI (37))

This would hopefully replace the code for Cyan with the code for White.

VBscript example

ANSINote "This is normal" & ANSI (33) & " and this is yellow"

Jscript example

ANSINote ("This is normal" + ANSI (33) + " and this is yellow");

PerlScript example

ANSINote ("This is normal" . ANSI (33) . " and this is yellow");

Python example

world.ANSINote ("This is normal", 
world.ANSI (33, 47), " and this is yellow")

Lua example

AnsiNote ("This is normal ",
          ANSI (33, 47),
          "and this is yellow on white")

Lua notes

You can supply multiple arguments, as in the above example.
Each one will generate its own ANSI code, so you can easily do multiple changes

(eg. foreground, background, bold) in a single call to ANSI.

If you supply multiple arguments they will be placed into the same ANSI sequence, like this:

ANSI (33, 47) --> ESC[33;47m

Return value

A string consisting of: ESC "[" Code "m"

Related topic

Colour management

See also

FunctionDescription
AnsiNoteMake a note in the output window from text with ANSI colour codes imbedded
ChatMessageSends a message to a chat user (raw format)
ChatNoteDoes a note using ANSI codes for the chat system
StripANSIStrips ANSI colour sequences from a string