Question

Je travaille sur un simple bot irc en C #, et je ne peux pas comprendre comment intégrer les codes de contrôle de mIRC typiques pour le gras / couleur etc dans les chaînes littérales.

Quelqu'un peut-il me diriger vers la façon de le faire?

Était-ce utile?

La solution

Le format de code couleur mIRC est décrit . Je suppose que vous vous demandez comment intégrer un ^ C dans une chaîne.

Ceci est connu comme notation Caret . Selon C0 et C1 des codes de commande , ^ C est:

'\x03'

Embarqué dans une chaîne:

"blabla \x035,12to be colored text and background\x03 blabla"

Autres conseils

Je crée une ENUM et assigner les valeurs hexagonales pour les codes de contrôle pour eux.

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 */
};

Dans mon bot IRC Python, je peux obtenir gras à apparaître dans irssi \ x02sometext \ x02, qui apparaît comme:

this is \x02some text\x02

texte

Quant aux couleurs, je crois que vous cherchez \ x03AA, BB où A est la couleur de premier plan et B la couleur d'arrière-plan (ce que vous tapez après Ctrl + K). Pas 100% sûr, cependant. Essayez de vous connecter en utilisant un client IRC telnet, et vérifier ce que mIRC fait lorsque vous utilisez Ctrl + K.

Vous n'êtes pas susceptible d'obtenir un comportement standard de cohésion entre les clients IRC ... codes d'échappement ANSI sont traités par plus de l'ancien tarif base clients Unix comme irssi, et mIRC fait parfois sa propre chose.

Cela peut être réduit à la bibliothèque de chat spécifique que j'utilisais (ChatSharp), mais je ne pouvais pas obtenir la réponse acceptée actuelle de travailler. Ce que j'ai fini avec était:

channel.SendMessage((char)3 + "5,12hello");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top