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.
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.
This would hopefully replace the code for Cyan with the code for White.
Note: Available in version 3.37 onwards.
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