我正在使用C#中的一个简单的irc bot,我无法弄清楚如何将粗体/颜色等典型的mirc控制代码嵌入到字符串文字中。
有人能指出我如何做到这一点吗?
答案 0 :(得分:19)
描述了here的mIRC颜色代码格式。我猜你问的是如何在字符串中嵌入 ^ C 。
这称为Caret notation。根据{{3}}, ^ C 是:
'\x03'
嵌入字符串:
"blabla \x035,12to be colored text and background\x03 blabla"
答案 1 :(得分:11)
我创建一个枚举并将控制代码的十六进制值分配给它们。
enum ColorCode {
White = 0, /**< White */
Black = 1, /**< Black */
DarkBlue = 2, /**< Dark blue */
DarkGreen = 3, /**< Dark green */
Red = 4, /**< Red */
DarkRed = 5, /**< Dark red */
DarkViolet = 6, /**< Dark violet */
Orange = 7, /**< Orange */
Yellow = 8, /**< Yellow */
LightGreen = 9, /**< Light green */
Cyan = 10, /**< Cornflower blue */
LightCyan = 11, /**< Light blue */
Blue = 12, /**< Blue */
Violet = 13, /**< Violet */
DarkGray = 14, /**< Dark gray */
LightGray = 15 /**< Light gray */
};
enum ControlCode {
Bold = 0x02, /**< Bold */
Color = 0x03, /**< Color */
Italic = 0x09, /**< Italic */
StrikeThrough = 0x13, /**< Strike-Through */
Reset = 0x0f, /**< Reset */
Underline = 0x15, /**< Underline */
Underline2 = 0x1f, /**< Underline */
Reverse = 0x16 /**< Reverse */
};
答案 2 :(得分:8)
在我的Python IRC机器人中,我可以使用\ x02sometext \ x02大胆地显示在irssi中,它显示如下:
this is \x02some text\x02
这是某些文字
至于颜色,我相信你正在寻找\ x03AA,BB,其中A是前景色,B是背景色(你在Ctrl + K后键入的内容)。不过,肯定不是100%。尝试使用telnet连接IRC客户端,并检查使用Ctrl + K时mIRC执行的操作。
您不太可能在IRC客户端之间获得标准的内聚行为...... ANSI转义码由更多像irssi这样的老式主流Unix客户端处理,而mIRC有时会做自己的事情。
答案 3 :(得分:0)
这可能取决于我正在使用的特定聊天库(ChatSharp),但我无法获得当前接受的工作答案。我最终得到的是:
channel.SendMessage((char)3 + "5,12hello");