Tapez tout en couleur & reconnaissance pseudo (version totalement réécrite et sans bug !!)

Contenu du snippet

Voila, ben mon script est simple, vous tapez /couleur ou aller directement dans le menu Commandes/Configurer les couleurs et une boite de dialogue vous proposent de choisir la/les couleur(s) de votre texte. Cette version vous permet :

- de choisir 2 couleurs : la première lettre d'une, et le reste d'une autre
- de mettre automatiquement votre texte en gras
- de mettre la première lettre en majuscule
- d'alterner chaque lettre entre les 2 couleurs
- si vous tapez le nom d'un pseudo comme premier mot, il l'écrit comme ca : pseudo> Votre texte (pseudo sera en rouge, et le texte dans votre/vos couleur(s)

Une dernière chose, j'ai regler le problème qu'on pouvait rencontrer parfois, à savoir quand on tapais un chiffre comme 1er mot, maintenant, vous tapez ce-que-vous-voulez sans problème ^^

Je crois que j'ai tout dis. Si malgré tout, vous trouvez une erreur (mais je pense vraiment pas) faites le moi savoir.

MAJ (06/05/04) : 2 petite choses modifiée:
1) Lorsque vous tapez simplement un pseudo qui est dans un channel, il n'affiche plus en rouge pseudo> mais seulement le pseudo ds vos couleurs sans le >
2) Maintenant lorsque l'on tape en alterner les espaces ne compte plus (ex. la petite phrase ) si la couleur du 'a' de 'la' etait en rouge, la couleur de 'p' de 'petite' était aussi en rouge, maintenant plus :-)

Source / Exemple :


dialog couleur {
  title "Configuration Couleur"
  size -1 -1 186 61
  option dbu
  box "Configuration", 10, 5 2 103 37
  text "1ère couleur :", 50, 10 12 44 8
  combo 1, 61 10 41 36, size drop
  text "2ème couleur :", 60, 10 25 44 8
  combo 2, 61 23 41 36, size drop
  button "OK", 30, 5 43 37 12, default ok
  button "Annuler", 40, 52 43 37 12, cancel
  box "Options", 20, 111 2 70 37
  check "Gras", 3, 116 10 50 10
  check "1ère lettre majuscule", 4, 116 18 62 10
  check "Alterner", 5, 116 25 50 10
  button "Enlever tout", 80, 114 42 56 9
  text "© Silver Script. Tous droits réservés.", 70, 95 53 89 8
}

on *:dialog:couleur:init:*:{
  did -a couleur 1,2 Blanc
  did -a couleur 1,2 Noir
  did -a couleur 1,2 Bleu
  did -a couleur 1,2 Vert
  did -a couleur 1,2 Rouge Clair
  did -a couleur 1,2 Brun
  did -a couleur 1,2 Mauve
  did -a couleur 1,2 Orange
  did -a couleur 1,2 Jaune
  did -a couleur 1,2 Vert Clair
  did -a couleur 1,2 Cyan
  did -a couleur 1,2 Cyan Clair
  did -a couleur 1,2 Bleu Clair
  did -a couleur 1,2 Rose
  did -a couleur 1,2 Gris
  did -a couleur 1,2 Gris Clair

  did -c couleur 1 $calc(%fcolor + 1)
  did -c couleur 2 $calc(%scolor + 1)
  if ( %gras == 1 ) did -c couleur 3
  if ( %maj == 1 ) did -c couleur 4
  if ( %altern == 1 ) did -c couleur 5
}
on *:dialog:couleur:sclick:30:{
  if ( $calc($did(1).sel - 1) < 10 ) { set %fcolor 0 $+ $calc($did(1).sel - 1) }
  else { set %fcolor $calc($did(1).sel - 1) }
  if ( $calc($did(2).sel - 1) < 10 ) { set %scolor 0 $+ $calc($did(2).sel - 1) }
  else { set %scolor $calc($did(2).sel - 1) }
  set %gras $did(3).state
  set %altern $did(5).state
  set %maj $did(4).state 
}
on *:dialog:couleur:sclick:80:{
  set %fcolor 01
  set %scolor 01
  set %gras 0
  set %maj 0
  set %altern 0
  dialog -x couleur
}

on *:load:{ dialog -m couleur couleur }
alias couleur { dialog -m couleur couleur }

menu menubar {
  Configurer les couleurs: dialog -m couleur couleur
}
menu channel {
  Configurer les couleurs: dialog -m couleur couleur
}

on *:input:#:{
  if (( %altern == 1 ) && ( $left($1,1) != ! ) && ( $left($1,1) != / )) {
    if ( $1 ison $active ) {
      var %i 1
      var %couleur %scolor
      while ( %i <= $len($2-) ) {
        var %t = $mid($2-, %i , 1 )
        if ( %couleur ==  $+ %fcolor ) { %couleur =  $+ %scolor }
        else { %couleur =  $+ %fcolor }
        var %message = %message $+ %couleur $+ %t $+ 
        inc %i
      }
    }
    else {
      var %i 1
      var %couleur %scolor
      while ( %i <= $len($1-) ) {
        var %t = $mid($1-, %i , 1 )
        if ( %couleur ==  $+ %fcolor ) { %couleur =  $+ %scolor }
        else { %couleur =  $+ %fcolor }
        if ( %t == $chr(32) ) { 
          if ( %couleur ==  $+ %fcolor ) { %couleur =  $+ %scolor }
          else { %couleur =  $+ %fcolor }
        }
        var %message = %message $+ %couleur $+ %t $+ 
        inc %i
      }
    }        
    say $iif( $1 ison $active , 4 $+ $1 $+ > ) $iif( %gras == 1,  ) $+ $iif( %maj == 1, $upper( $left(%message,4) ), $left(%message, $iif( %fcolor < 10, 5, 4 )) ) $+ $right(%message, $iif( %fcolor < 10, -5, -4 ))
    halt
  }
  if (( %maj == 0 ) && ( %gras == 0 ) && ( %fcolor == 01 ) && ( %scolor == 01 )) goto fin
  if (( $left($1-,1) == / ) || ( $left($1-,1) == ! )) goto fin
  var %first.letter.text $left($1,1)
  var %rest.of.text $right($1-,-1)
  if (( $1 ison $active ) && ( $2 != $null )) { var %first.letter.text $left($2,1) | var %rest.of.text $right($2-,-1) | /say 4 $+ $1 $+ > $iif( %gras == 1,  ) $+  $+ %fcolor $+ $iif( %maj == 1, $upper(%first.letter.text), %first.letter.text) $+  $+ %scolor $+ %rest.of.text | halt }
  say $iif( %gras == 1,  ) $+  $+ %fcolor $+ $iif( %maj == 1, $upper(%first.letter.text), %first.letter.text) $+  $+ %scolor $+ %rest.of.text
  halt
  :fin
}
on *:input:?:{
  if (( %altern == 1 ) && ( $left($1,1) != ! ) && ( $left($1,1) != / )) {
    var %i 1
    var %couleur %scolor
    while ( %i <= $len($1-) ) {
      var %t = $mid($1-, %i , 1 )
      if ( %couleur ==  $+ %fcolor ) { %couleur =  $+ %scolor }
      else { %couleur =  $+ %fcolor }
      if ( %t == $chr(32) ) { 
        if ( %couleur ==  $+ %fcolor ) { %couleur =  $+ %scolor }
        else { %couleur =  $+ %fcolor }
      }
      var %message = %message $+ %couleur $+ %t $+ 
      inc %i
    }
    say $iif( %gras == 1,  ) $+ $iif( %maj == 1, $upper( $left(%message,4) ), $left(%message, $iif( %fcolor < 10, 5, 4 )) ) $+ $right(%message, $iif( %fcolor < 10, -5, -4 ))
    halt
  }
  if (( %maj == 0 ) && ( %gras == 0 ) && ( %fcolor == 01 ) && ( %scolor == 01 )) goto fin
  if (( $left($1-,1) == / ) || ( $left($1-,1) == ! )) goto fin
  var %first.letter.text $left($1,1)
  var %rest.of.text $right($1-,-1)
  say $iif( %gras == 1,  ) $+  $+ %fcolor $+ $iif( %maj == 1, $upper(%first.letter.text), %first.letter.text) $+  $+ %scolor $+ %rest.of.text
  halt
  :fin
}

Conclusion :


Je viens de commencer à apprendre à programmer en irc voila 2 mois maintenant, et à part ce script ci qui peut être utile à tout le monde, les autres sont personnalisés pour moi donc il n'y en a pas, mais si il me venait encore des idées, je vous les ferait paraître bien entendu :-)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (silver_the_paladin)