Those extended characters, for boxes, etc. are *only* supported via either a font like "Terminal", which has them, and has sadly never been converted to TTF, so can't be used in a truely scalable way, like the rest, or through unicode/UTF-8, in fonts that support the range they are in, like Lucida Console. Other fonts do not include the characters. But, if you are using a mud where they are used as part of the standard set, I.e., they expect you to be using Terminal, then they are unavailable when using any other font either.
This personally bugs the heck out of me, since the font layouts for most are imho incompletely and not always a 100% match from font to font. Since Terminal isn't truely scalable (it has fixed sizes, not the "any size you want" of TTF) people abandoned it in favor of others, so you never really know what the guy on the other end is using, or if it will display "anything" the same way as your client, unless its the standard set of symbols, numbers and letters. Any support for the extended characters that are in Terminal requires a) use of the effectively broken non-TTF Terminal font *or* a client that remaps that range into the Unicode characters that match it. Mushclient doesn't do the later, though its possible, using packet interception, that one "might" be able to do so through scripting.
Looking at google, this basically appears to be what people are talking about. Resurrecting the characters from x80 to xFF, which in the PC video cards and in terminal, as well as in the lower range, include things like smilly faces, box lines, hatch patterns, etc. For example, the only site specifically mentioning it as part of a client is:
http://www.moosh.net/mush/List/soc.shtml
At one time people use the hatch patterns and a mix of colors to produce pretty good mimics of pictures. If properly scalable, a client that wrapped at the window edge, instead of a specific column, could use something like a 6 point font, to produce a decent 160x120 image using the trick, for example. Mostly though, it was just used to draw boxes around things and stuff like that.
So, Mushclient supports it "with the right font" or through some scripting tricks (maybe), but not natively, since that would require the client to have a setting for "Remap extended characters to FANSI.", and do substitution of the right font to have it work. Mushclient currently only allows one output font, so if you used something like Times Roman, which I don't think has those characters, it couldn't remap to Lucida Console when it needed those characters anyway.
Hope that clears things up for everyone involved.
*NOTE*: I have no idea if these clients are adding in something like MXP, where they go: "<fansi>abcdef</fansi>", instead of just doing a direct font mapping or even adding something new to the ANSI commands that activates the translation, then shuts it off. While it would possibly make more sense to do it that way, since you don't lose what ever the font already has in that range, if that is what is going on, then Mushclient "definitely" doesn't support it, again, unless you maybe did some scripting tricks to fake it and the font you use already had those characters hiding someplace in the unicode ranges.
In theory, the "fix" would work something like this (though its probably not what Nick intended when he made the command):
function OnPluginPacketRecieved(packet)
if getvariable("sim") = "y" then
setvariable "sim", "n"
OnPluginPacketRecieved = vbTrue
else
for x = 1 to len(packet)
if mid$(packet,x,7) = "<fansi>" then
for y = x to len(packet)
if mid$(packet,y,8) = "</fansi>" then
x = y + 9
exit for
end if
rpac = mid$(packet,y,1)
select case rpac
case ... 'Remap characters to the UTF-8 characters you need.
npac = ... 'UTF-8 must be "on" for this to work.
...
end select
fpac = fpac + npac
next y
else
fpac = fpac + mid$(packet,x,1)
end if
next x
simulate fpac
OnPluginPacketRecieved = vbFalse
end if
end function
Note, I haven't ever used this function, so forgive me if I got its name or other things wrong about it (such as wether "simulate" triggers it). If "simulate" doesn't, then one of the if/then statements can be removed.
---Made a minor fix. Was using 'rmap', but figured that might be confusing since people elsewhere are working on mappers, but forgot to change one of the 'rmap' to 'rpac'. The code isn't complete anyway, but figured it was a good idea to fix it. |