Couleur system v4.4

Description

Couleur System V4.4 par aerith "contact@aerith.biz"
pour une utilisation partielle ou complete dans un script me prevenir svp

cette addon vous permet de configurer vos couleurs :
-text : couleur, gras, souligne, inverse, majuscule
-deco : gauche, droite, activable ou non
-1ere lettre : couleur, gras, souligne, inverse, majuscule
-pseudo : couleur, gras, souligne, inverse, majuscule, carractere de liason
-url : même coloration que les pseudo

-detection automatique de la configuration (mode auto)
-possibilité de forcer une configuration une seul fois (mode temp), ou toujour (mode manu)
-detection des modes pour chaque chan lors de masse commandes
-desactivation si la premiere lettre de la phrase est par exemple / ou ! (configurable)
-mode no-color sur le serveur (configurable)
-tout desactiver

-tout cela en msg, me, notice, amsg ou ame et sauvegardable

la config des couleurs reagit sur un masque configurer pour changer de couleur en fonction des chans,
serveurs, pv...

Source / Exemple :


;Couleur System V4.4 par aerith "contact@aerith.biz"
;pour une utilisation partielle ou complete dans un script me prevenir svp

;##########FENETRE##########
alias couleurs if (!$dialog(couleur)) dialog -m couleur couleur

;##########MENU##########
menu * {
  -
  Couleur: /couleurs
}

;##########CONFIG##########
dialog couleur {
  title "Couleur System V4.4"
  size $cl(r,fenetre,x) $cl(r,fenetre,y) 210 222
  option dbu

  box "Couleur ecriture", 1, 2 2 132 33
  text " Text :", 10, 5 10 30 10
  combo 11, 35 10 30 150, result drop
  text " Fond :", 12, 69 10 30 10
  combo 13, 101 10 30 150, result drop
  check "gras", 14, 5 21 30 10
  check "souligne", 15, 37 21 30 10
  check "inverser", 16, 69 21 30 10
  check "maj", 17, 101 21 30 10

  box "Deco gauche", 2, 2 35 65 23
  check "activer", 20, 5 43 27 10
  edit "", 21, 35 43 30 10, autohs
  box "Deco droite", 3, 66 35 68 23
  check "activer", 30, 70 43 27 10
  edit "", 31, 101 43 30 10, autohs

  box "Couleur 1ere Lettre", 4, 2 58 132 33
  text " Text :", 40, 5 67 30 10
  combo 41, 35 66 30 150, result drop
  text " Fond :", 42, 69 66 30 10
  combo 43, 101 66 30 150, result drop
  check "gras", 44, 5 78 30 10
  check "souligne", 45, 37 78 30 10
  check "inverser", 46, 69 78 30 10
  check "maj", 47, 101 78 30 10

  box "Couleur pseudo", 54, 2 91 132 46
  text "Separateur", 55, 4 99 94 10
  edit "", 56, 100 98 30 10, autohs center
  check "gras", 57, 4 124 30 10
  check "souligné", 58, 36 124 30 10
  check "inverser", 59, 68 124 30 10
  check "maj", 60, 100 124 30 10
  check "desactiver l'addon", 61, 6 166 60 10
  text " Text :", 62, 4 111 30 10
  combo 63, 34 111 30 150, result drop
  text " Fond :", 64, 68 111 30 10
  combo 65, 100 111 30 150, result drop

  box "Option", 5, 2 137 132 42
  text "desactive si la 1ere lettre de la phrase :", 50, 6 146 100 10
  edit "", 51, 106 146 25 10, autohs center
  text "mode no-color sur le serveur du chan :", 52, 6 156 100 10
  edit "", 53, 106 156 25 10, autohs center

  box "Modes", 100, 2 179 132 41
  text "commande pour le mode manuel :", 101, 4 187 90 10
  edit "", 102, 99 187 30 10, autohs center
  text "<mode> pour le mode, <config> pour la config", 103, 4 197 125 10
  check "Message", 104, 4 207 35 10
  edit "", 105, 39 207 90 10, autohs center

  box "Action", 7, 136 2 72 33
  text "Type :", 70, 139 10 25 10
  combo 71, 171 10 34 50, size drop
  text "commande :", 72, 139 21 30 10
  edit "", 73, 171 21 34 10, autohs center

  text "Nom", 80, 137 38 20 10
  edit "", 81, 160 38 48 10, autohs center
  text "Masque", 82, 137 48 20 10
  edit "", 83, 160 48 48 10, autohs center
  list 84, 137 60 71 99, size hsbar vsbar
  button "Ajouter", 85, 137 161 35 10
  button "Supprimer", 86, 137 172 35 10
  button "Monter", 87, 173 161 35 10
  button "Descendre", 88, 173 172 35 10
  button "Afficher l'aide", 89, 137 194 71 10
  button "Quitter", 90, 137 205 35 15, cancel
  button "Sauver comme defaut", 91, 137 183 71 10
  button "Prendre", 92, 173 205 35 15, ok
}
;##initialisation##
on *:dialog:couleur:init:*:{
  did -a couleur 11,13,41,43,63,65 Blanc
  did -a couleur 11,13,41,43,63,65 Noir
  did -a couleur 11,13,41,43,63,65 Bleu foncé
  did -a couleur 11,13,41,43,63,65 Vert foncé
  did -a couleur 11,13,41,43,63,65 Rouge
  did -a couleur 11,13,41,43,63,65 Brun
  did -a couleur 11,13,41,43,63,65 Violet
  did -a couleur 11,13,41,43,63,65 Orange
  did -a couleur 11,13,41,43,63,65 Jaune
  did -a couleur 11,13,41,43,63,65 Vert clair
  did -a couleur 11,13,41,43,63,65 Vert anglais
  did -a couleur 11,13,41,43,63,65 Bleu ciel
  did -a couleur 11,13,41,43,63,65 Bleu clair
  did -a couleur 11,13,41,43,63,65 Rose
  did -a couleur 11,13,41,43,63,65 Gris foncé
  did -a couleur 11,13,41,43,63,65 Gris clair
  did -a couleur 11,13,41,43,63,65 aucun
  did -a couleur 41,43,63,65 identique

  did -c couleur 11 $calc($cl(r,couleur,txt) + 1)
  did -c couleur 13 $calc($cl(r,couleur,fnd) + 1)
  if ($cl(r,couleur,gra) == 1) did -c couleur 14
  if ($cl(r,couleur,sou) == 1) did -c couleur 15
  if ($cl(r,couleur,inv) == 1) did -c couleur 16
  if ($cl(r,couleur,maj) == 1) did -c couleur 17

  if ($cl(r,gauche,actif) == 1) did -c couleur 20
  if ($cl(r,gauche,text)) did -a couleur 21 $cl(r,gauche,text)
  if ($cl(r,droite,actif) == 1) did -c couleur 30
  if ($cl(r,droite,text)) did -a couleur 31 $cl(r,droite,text)

  did -c couleur 41 $calc($cl(r,lettre,txt) + 1)
  did -c couleur 43 $calc($cl(r,lettre,fnd) + 1)
  if ($cl(r,lettre,gra) == 1) did -c couleur 44
  if ($cl(r,lettre,sou) == 1) did -c couleur 45
  if ($cl(r,lettre,inv) == 1) did -c couleur 46
  if ($cl(r,lettre,maj) == 1) did -c couleur 47

  if ($cl(r,config,strip)) did -a couleur 51 $cl(r,config,strip)
  if ($cl(r,config,nocolor)) did -a couleur 53 $cl(r,config,nocolor)
  did -c couleur 63 $calc($cl(r,pseudo,txt) + 1)
  did -c couleur 65 $calc($cl(r,pseudo,fnd) + 1)
  if ($cl(r,pseudo,car)) did -a couleur 56 $cl(r,pseudo,car)
  if ($cl(r,pseudo,gra) == 1) did -c couleur 57
  if ($cl(r,pseudo,sou) == 1) did -c couleur 58
  if ($cl(r,pseudo,inv) == 1) did -c couleur 59
  if ($cl(r,pseudo,maj) == 1) did -c couleur 60
  if ($cl(r,config,desactive)) did -a couleur 61 $cl(r,config,desactive)

  if ($cl(r,config,cmd)) did -a couleur 102 $cl(r,config,cmd)
  if ($cl(r,config,mode) == 1) did -c couleur 104
  if ($cl(r,config,cmode)) did -a couleur 105 $cl(r,config,cmode)

  did -a couleur 71 msg
  did -a couleur 71 me
  did -a couleur 71 notice
  did -a couleur 71 amsg
  did -a couleur 71 ame
  did -c couleur 71 1
  did -b couleur 73
  couleur.affiche msg
}
;##commande manuelle##
on *:dialog:couleur:edit:102: {
  cl w config cmd $did(102)
}
;##afficher les modes##
on *:dialog:couleur:sclick:104: {
  cl w config mode $did(104).state
}
;##couleur mode##
on *:dialog:couleur:edit:105: {
  cl w config cmode $did(105)
}
;##type action##
on *:dialog:couleur:*:71: {
  couleur.affiche $did(71).seltext
  if ($did(71).seltext == msg) did -rb couleur 73
  else did -era couleur 73 $cl(r,config,$did(71).seltext)
}
;##commande perso##
on *:dialog:couleur:edit:73: {
  if ($did(71).seltext != msg) cl w config $did(71).seltext $did(73)
}
;##ajoute une config##
on *:dialog:couleur:sclick:85: {
  if (!$did(81)) $iif($?!="veuillez spécifier un nom de config",halt,halt)
  if ($cv($did(71).seltext,r,$did(81),nom)) $iif($?!="remplacer $did(81) ?",$null,halt)
  couleur.ecrit $did(71).seltext $did(81)
  couleur.affiche $did(71).seltext
  couleur.aloue $cl(r,config,config)
}
;##supprime une config##
on *:dialog:couleur:sclick:86: {
  if ($did(84).seltext == defaut) $iif($?!="impossible de suprimer la configuration par defaut",halt,halt)
  if (!$did(84).seltext) $iif($?!="selectioner d'abord une config dans la liste",halt,halt)
  if ($cv($did(71).seltext,r,$did(84).seltext,nom)) $iif($?!="supprimer $did(84).seltext ?",$null,halt)
  cv $did(71).seltext d $did(84).seltext
  couleur.affiche $did(71).seltext
}
;##monter la config##
on *:dialog:couleur:sclick:87: {
  if (!$did(84).seltext) $iif($?!="selectioner d'abord une config dans la liste",halt,halt)
  if ($did(84).seltext == defaut) $iif($?!="deplacement interdi",halt,halt)
  var %i = $cv($did(71).seltext,r,listcmds,list)
  var %t = $findtok(%i,$did(84).seltext,1,32)
  if (%t == 1) $iif($?!="la config est toute en haut de la liste",halt,halt)
  cv $did(71).seltext w listcmds list $instok($deltok(%i,%t,32),$did(84).seltext,$calc(%t - 1),32)
  couleur.affiche $did(71).seltext
  did -c couleur 84 %t
}
;##descendre la config##
on *:dialog:couleur:sclick:88: {
  if (!$did(84).seltext) $iif($?!="selectioner d'abord une config dans la liste",halt,halt)
  if ($did(84).seltext == defaut) $iif($?!="deplacement interdi",halt,halt)
  var %i = $cv($did(71).seltext,r,listcmds,list)
  var %t = $findtok(%i,$did(84).seltext,1,32)
  if (%t == $numtok(%i,32)) $iif($?!="la config est toute en bas de la liste",halt,halt)
  cv $did(71).seltext w listcmds list $instok($deltok(%i,%t,32),$did(84).seltext,$calc(%t + 1),32)
  couleur.affiche $did(71).seltext
  did -c couleur 84 $calc(%t + 2)
}
;##affiche l'aide##
on *:dialog:couleur:sclick:89: {
  run $scriptdiraide.txt
}
;##sauvegarde du par defaut##
on *:dialog:couleur:sclick:91: {
  $iif($?!="confirmer defaut",$null,halt)
  couleur.ecrit $did(71).seltext defaut
  couleur.affiche $did(71).seltext
}
;##prendre la config##
on *:dialog:couleur:sclick:92: {
  if (!$did(84).seltext) $iif($?!="selectioner d'abord une config dans la liste",halt,halt)
  cl w config config $did(71).seltext $did(84).seltext
  cl w config manuel on $cl(r,config,config)
  couleur.aloue $cl(r,config,config)
  echo -a $replace($cl(r,config,cmode),<mode>,Mode Manu,<config>,$cl(r,config,config))
}
;##affiche la config##
on *:dialog:couleur:dclick:84: {
  var %m = $did(71).seltext
  var %s = $did(84).seltext
  did -c couleur 11 $calc($cv(%m,r,%s,couleur.couleur1) + 1)
  did -c couleur 13 $calc($cv(%m,r,%s,couleur.couleur2) + 1)
  if ($cv(%m,r,%s,couleur.gra) == 1) did -c couleur 14
  else did -u couleur 14
  if ($cv(%m,r,%s,couleur.sou) == 1) did -c couleur 15
  else did -u couleur 15
  if ($cv(%m,r,%s,couleur.inv) == 1) did -c couleur 16
  else did -u couleur 16
  if ($cv(%m,r,%s,couleur.maj) == 1) did -c couleur 17
  else did -u couleur 17

  if ($cv(%m,r,%s,couleur.gauche) == 1) did -c couleur 20
  else did -u couleur 20
  did -ra couleur 21 $crp($cv(%m,r,%s,couleur.gauche.text))
  if ($cv(%m,r,%s,couleur.droite) == 1) did -c couleur 30
  else did -u couleur 30
  did -ra couleur 31 $crp($cv(%m,r,%s,couleur.droite.text))

  did -c couleur 41 $calc($cv(%m,r,%s,couleur.lettre.couleur1) + 1)
  did -c couleur 43 $calc($cv(%m,r,%s,couleur.lettre.couleur2) + 1)
  if ($cv(%m,r,%s,couleur.lettre.gra) == 1) did -c couleur 44
  else did -u couleur 44
  if ($cv(%m,r,%s,couleur.lettre.sou) == 1) did -c couleur 45
  else did -u couleur 45
  if ($cv(%m,r,%s,couleur.lettre.inv) == 1) did -c couleur 46
  else did -u couleur 46
  if ($cv(%m,r,%s,couleur.lettre.maj) == 1) did -c couleur 47
  else did -u couleur 47

  did -ra couleur 51 $cv(%m,r,%s,couleur.strip)
  did -ra couleur 53 $cv(%m,r,%s,couleur.nocolor)
  did -c couleur 63 $calc($cv(%m,r,%s,couleur.pseudo.couleur1) + 1)
  did -c couleur 65 $calc($cv(%m,r,%s,couleur.pseudo.couleur2) + 1)
  did -ra couleur 56 $cv(%m,r,%s,couleur.pseudo)
  if ($cv(%m,r,%s,couleur.pseudo.gra) == 1) did -c couleur 57
  else did -u couleur 57
  if ($cv(%m,r,%s,couleur.pseudo.sou) == 1) did -c couleur 58
  else did -u couleur 58
  if ($cv(%m,r,%s,couleur.pseudo.inv) == 1) did -c couleur 59
  else did -u couleur 59
  if ($cv(%m,r,%s,couleur.pseudo.maj) == 1) did -c couleur 60
  else did -u couleur 60
  if ($cv(%m,r,%s,couleur.desactive) == 1) did -c couleur 61
  else did -u couleur 61

  did -ra couleur 81 $cv(%m,r,%s,nom)
  did -ra couleur 83 $cv(%m,r,%s,couleur.masque)
}
;##retien la position##
on *:dialog:couleur:close:*: {
  cl w fenetre x $dialog(couleur).x
  cl w fenetre y $dialog(couleur).y
}

;##########ALIAS##########
;##retourne une variable##
alias -l cv {
  var %rep = $+(",$scriptdir,$1,.ini,")
  if ($2 == d) remini %rep $3-
  elseif ($2 == r) return $crp($readini(%rep,$3,$4))
  elseif ($2 == w) writeini -n %rep $3 $4 $cp($5-)
}
alias -l cl {
  var %rep = $+(",$scriptdir,couleur.ini,")
  if ($1 == r) return $crp($readini(%rep,$2,$3))
  elseif ($1 == w) {
    if ($4) writeini -n %rep $2 $3 $cp($4-)
    else remini %rep $2 $3
  }
}
;##affiche dans le dialogue##
alias -l couleur.affiche {
  var %rep = $+(",$scriptdir,$1,.ini,")
  var %l = $cv($1,r,listcmds,list)
  var %a = 1
  while (%a <= $ini(%rep,0)) {
    var %i = $ini(%rep,%a)
    if ((%i != listcmds) && (%i != defaut) && (!$findtok(%l,%i,1,32))) var %l = %l %i
    inc %a 1
  }
  did -ra couleur 84 defaut
  if (%l) {
    var %a = 1
    while (%a <= $numtok(%l,32)) {
      if (!$cv($1,r,$gettok(%l,%a,32),nom)) var %l = $deltok(%l,%a,32)
      else did -za couleur 84 $gettok(%l,%a,32)
      inc %a 1
    }
    cv $1 w listcmds list %l
  }
  ;##remember position##
  cl w fenetre x $dialog(couleur).x
  cl w fenetre y $dialog(couleur).y
}
;##recherche de la config en suivant les regles de priorités##
alias -l couleur.find {
  var %rep = $scriptdir $+ $1 $+ .ini
  var %l = $cv($1,r,listcmds,list)
  var %a = 1
  while (%a <= $numtok(%l,32)) {
    var %m = $gettok(%l,%a,32)
    var %t = $cv($1,r,%m,couleur.masque)
    if ((%t) && (%t iswm $2-)) break
    inc %a 1
  }
  if (%a > $numtok(%l,32)) {
    var %a = 1
    while (%a <= $numtok(%l,32)) {
      var %m = $gettok(%l,%a,32)
      var %t = $cv($1,r,%m,couleur.masque)
      if ((%t) && (%t iswm $3)) break
      inc %a 1
    }
  }
  if (%a > $numtok(%l,32)) var %m = defaut
  return %m
}
;##set les variables##
alias -l couleur.aloue {
  cl w couleur txt $cv($1,r,$2,couleur.couleur1)
  cl w couleur fnd $cv($1,r,$2,couleur.couleur2)
  cl w couleur gra $cv($1,r,$2,couleur.gra)
  cl w couleur sou $cv($1,r,$2,couleur.sou)
  cl w couleur inv $cv($1,r,$2,couleur.inv)
  cl w couleur maj $cv($1,r,$2,couleur.maj)

  cl w gauche actif $cv($1,r,$2,couleur.gauche)
  cl w gauche text $crp($cv($1,r,$2,couleur.gauche.text))
  cl w droite actif $cv($1,r,$2,couleur.droite)
  cl w droite text $crp($cv($1,r,$2,couleur.droite.text))

  cl w lettre txt $cv($1,r,$2,couleur.lettre.couleur1)
  cl w lettre fnd $cv($1,r,$2,couleur.lettre.couleur2)
  cl w lettre gra $cv($1,r,$2,couleur.lettre.gra)
  cl w lettre sou $cv($1,r,$2,couleur.lettre.sou)
  cl w lettre inv $cv($1,r,$2,couleur.lettre.inv)
  cl w lettre maj $cv($1,r,$2,couleur.lettre.maj)

  cl w config strip $cv($1,r,$2,couleur.strip)
  cl w config nocolor $cv($1,r,$2,couleur.nocolor)
  cl w config desactive $cv($1,r,$2,couleur.desactive)

  cl w pseudo txt $cv($1,r,$2,couleur.pseudo.couleur1)
  cl w pseudo fnd $cv($1,r,$2,couleur.pseudo.couleur2)
  cl w pseudo car $cv($1,r,$2,couleur.pseudo)
  cl w pseudo gra $cv($1,r,$2,couleur.pseudo.gra)
  cl w pseudo sou $cv($1,r,$2,couleur.pseudo.sou)
  cl w pseudo inv $cv($1,r,$2,couleur.pseudo.inv)
  cl w pseudo maj $cv($1,r,$2,couleur.pseudo.maj)
}
;##ecrit dans la database##
alias -l couleur.ecrit {
  cv $1 w $2 nom $2
  if ($did(couleur,83)) cv $1 w $2 couleur.masque $did(couleur,83)
  else cv $1 d $2 couleur.masque
  cv $1 w $2 couleur.couleur1 $calc($did(couleur,11).sel - 1)
  cv $1 w $2 couleur.couleur2 $calc($did(couleur,13).sel - 1)
  cv $1 w $2 couleur.gra $did(couleur,14).state
  cv $1 w $2 couleur.sou $did(couleur,15).state
  cv $1 w $2 couleur.inv $did(couleur,16).state
  cv $1 w $2 couleur.maj $did(couleur,17).state

  cv $1 w $2 couleur.gauche $did(couleur,20).state
  if ($did(couleur,21)) cv $1 w $2 couleur.gauche.text $did(couleur,21)
  else cv $1 d $2 couleur.gauche.text
  cv $1 w $2 couleur.droite $did(couleur,30).state
  if ($did(couleur,31)) cv $1 w $2 couleur.droite.text $did(couleur,31)
  else cv $1 d $2 couleur.droite.text

  cv $1 w $2 couleur.lettre.couleur1 $calc($did(couleur,41).sel - 1)
  cv $1 w $2 couleur.lettre.couleur2 $calc($did(couleur,43).sel - 1)
  cv $1 w $2 couleur.lettre.gra $did(couleur,44).state
  cv $1 w $2 couleur.lettre.sou $did(couleur,45).state
  cv $1 w $2 couleur.lettre.inv $did(couleur,46).state
  cv $1 w $2 couleur.lettre.maj $did(couleur,47).state

  if ($did(couleur,51)) cv $1 w $2 couleur.strip $did(couleur,51)
  else cv $1 d $2 couleur.strip
  if ($did(couleur,53)) cv $1 w $2 couleur.nocolor $did(couleur,53)
  else cv $1 d $2 couleur.nocolor
  cv $1 w $2 couleur.pseudo.couleur1 $calc($did(couleur,63).sel - 1)
  cv $1 w $2 couleur.pseudo.couleur2 $calc($did(couleur,65).sel - 1)
  if ($did(couleur,56)) cv $1 w $2 couleur.pseudo $did(couleur,56)
  else cv $1 d $2 couleur.pseudo
  cv $1 w $2 couleur.pseudo.gra $did(couleur,57).state
  cv $1 w $2 couleur.pseudo.sou $did(couleur,58).state
  cv $1 w $2 couleur.pseudo.inv $did(couleur,59).state
  cv $1 w $2 couleur.pseudo.maj $did(couleur,60).state
  cv $1 w $2 couleur.desactive $did(couleur,61).state
  else cv $1 d $2 couleur.desactive
}
;##permet de lire les caracteres speciaux dans la database##
alias -l cp  return $replace($1-,,&o,,&b,,&u,,&c,,&r)
alias -l crp return $replace($1-,&o,,&b,,&u,,&c,,&r,)

;##########INSTALLATION##########
on *:load: {
  if (!$cl(r,fenetre,x)) cl w fenetre x -1
  if (!$cl(r,fenetre,y)) cl w fenetre y -1
  if (!$cl(r,config,manuel)) cl w config manuel off
  if (!$cl(r,config,cmd)) cl w config cmd /couleur
  if (!$cl(r,config,me)) cl w config me /me
  if (!$cl(r,config,notice)) cl w config notice /n
  if (!$cl(r,config,amsg)) cl w config amsg /amsg
  if (!$cl(r,config,ame)) cl w config ame /ame
  if (!$cl(r,config,mode)) cl w config mode 1
  if (!$cl(r,config,cmode)) cl w config cmode 7(Couleur) 4[<mode>] 2config <config> activée
  couleur.aloue msg defaut
  dialog -m couleur couleur
}

;##########PUB##########
ctcp *:VERSION:*:{
  ctcpreply $nick VERSION 12 addon : 4 $+ Couleur System V4.4 12 $+ crée par 13 $+ A $+ 6 $+ erith
}

;##########NOYAU##########
on *:input:*: {
  if (!$server) goto fin

  ;mode manuel
  if ($1 == $cl(r,config,cmd)) {
    if (!$2) {
      if ($gettok($cl(r,config,manuel),1,32) == on) {
        cl w config config $gettok($cl(r,config,manuel),2-3,32)
        couleur.aloue $cl(r,config,config)
        cl w config manuel off
        echo -a $replace($cl(r,config,cmode),<mode>,Mode Auto,<config>,$cl(r,config,config))
        goto fin2
      }
    }
    elseif ($2 == -s) {
      if ($cv($iif($4,$4,msg),r,$3,nom)) {
        cl w config manuel say $cl(r,config,config) $cl(r,config,manuel)
        cl w config config $iif($4,$4,msg) $3
        couleur.aloue $cl(r,config,config)
        echo -a $replace($cl(r,config,cmode),<mode>,Mode Temp,<config>,$cl(r,config,config))
        goto fin2
      }
    }
    elseif ($cv($iif($3,$3,msg),r,$2,nom)) {
      cl w config config $iif($3,$3,msg) $2
      cl w config manuel on $cl(r,config,config)
      couleur.aloue $cl(r,config,config)
      echo -a $replace($cl(r,config,cmode),<mode>,Mode Manu,<config>,$cl(r,config,config))
      goto fin2
    }
  }

  ;desactivation de l'addon et recherche le type
  if ($1 == $cl(r,config,me)) {
    if (($left($2,1) isin $cl(r,config,strip) ) || ($cl(r,config,desactive) == 1)) goto fin
    else var %type = me
  }
  elseif ($1 == $cl(r,config,notice)) {
    if (($left($3,1) isin $cl(r,config,strip) ) || ($cl(r,config,desactive) == 1)) goto fin
    else var %type = notice
  }
  elseif ($1 == $cl(r,config,amsg)) {
    if (($left($2,1) isin $cl(r,config,strip) ) || ($cl(r,config,desactive) == 1)) goto fin
    else var %type = amsg
  }
  elseif ($1 == $cl(r,config,ame)) {
    if (($left($2,1) isin $cl(r,config,strip) ) || ($cl(r,config,desactive) == 1)) goto fin
    else var %type = ame
  }
  else {
    if (($left($1,1) isin $cl(r,config,strip) ) || ($cl(r,config,desactive) == 1)) goto fin
    else var %type = msg
  }

  ;set les variables en fonction de la fenetre active
  ;$cl(r,config,config) et $cl(r,config,config) permettent de ne pas faire des operations inutile si la config n'a pas a changé
  if ($cl(r,config,manuel) == off) {
    var %a = %type $couleur.find(%type,$iif($address($active,5),$address($active,5),$active),$network $+ $server)
    if (%a != $cl(r,config,config)) {
      cl w config config %a
      couleur.aloue $cl(r,config,config)
      if ($cl(r,config,mode) == 1) echo -a $replace($cl(r,config,cmode),<mode>,Mode Auto,<config>,$cl(r,config,config))
    }
  }

  ;sauvegarde la chaine q travailler et qui sera envoyer
  if ((%type == me) || (%type == amsg) || (%type == ame)) var %out = $2-
  elseif (%type == notice) var %out = $3-
  else var %out = $1-
  var %out = $chr(32) $+ %out

  ;creation de la couleur du text
  var %cg = $iif($cl(r,couleur,gra) == 1,)
  var %cs = $iif($cl(r,couleur,sou) == 1,)
  var %ci = $iif($cl(r,couleur,inv) == 1,)
  set %couleur $iif($cl(r,couleur,txt) < 16, $+ $cl(r,couleur,txt) $+ $iif($cl(r,couleur,fnd) < 16,$chr(44) $+ $cl(r,couleur,fnd))) $+ %cg $+ %cs $+ %ci

  ;creation de la couleur premiere lettre
  var %clg = $iif($cl(r,lettre,gra) == 1,)
  var %cls = $iif($cl(r,lettre,sou) == 1,)
  var %cli = $iif($cl(r,lettre,inv) == 1,)
  cl w lettre outtxt $iif($cl(r,lettre,txt) == 17,$cl(r,couleur,txt),$cl(r,lettre,txt))
  cl w lettre outfnd $iif($cl(r,lettre,fnd) == 17,$cl(r,couleur,fnd),$cl(r,lettre,fnd))
  cl w lettre out $iif($cl(r,lettre,outtxt) < 16, $+ $cl(r,lettre,outtxt) $+ $iif($cl(r,lettre,outfnd) < 16,$chr(44) $+ $cl(r,lettre,outfnd))) $+ %clg $+ %cls $+ %cli

  ;creation du pseudo
  var %cpg = $iif($cl(r,pseudo,gra) == 1,)
  var %cps = $iif($cl(r,pseudo,sou) == 1,)
  var %cpi = $iif($cl(r,pseudo,inv) == 1,)
  cl w pseudo outtxt $iif($cl(r,pseudo,txt) == 17,$cl(r,lettre,outtxt),$cl(r,pseudo,txt))
  cl w pseudo outfnd $iif($cl(r,pseudo,fnd) == 17,$cl(r,lettre,outfnd),$cl(r,pseudo,fnd))
  cl w pseudo out $iif($cl(r,pseudo,outtxt) < 16, $+ $cl(r,pseudo,outtxt) $+ $iif($cl(r,pseudo,outfnd) < 16,$chr(44) $+ $cl(r,pseudo,outfnd))) $+ %cpg $+ %cps $+ %cpi
  var %i = 1
  while (%i <= $numtok(%out,32)) {
    if ($gettok(%out,%i,32) ison $active) %out = $replace(%out,$gettok(%out,%i,32),$cl(r,pseudo,out) $+ $gettok(%out,%i,32) $+ $cl(r,pseudo,out) $+ %couleur)
    ;coloration url
    if ((http:// isin $gettok(%out,%i,32)) || (www. isin $gettok(%out,%i,32))) %out = $replace(%out,$gettok(%out,%i,32),$cl(r,pseudo,out) $+  $+ $gettok(%out,%i,32) $+  $+ $cl(r,pseudo,out) $+ %couleur)
    inc %i 1
  }

  if (($strip($gettok(%out,1,32)) ison $active) || (http:// isin $gettok(%out,1,32)) || (www. isin $gettok(%out,1,32))) {
    %out = $gettok(%out,1,32) $iif($gettok(%out,2,32),$cl(r,pseudo,car),) $gettok(%out,2-,32)

    ;creation premiere lettre
    if (($left($gettok(%out,3,32),1) !isnum) && ($mid($gettok(%out,3,32),2,1) !isnum)) {
      %out = $gettok(%out,1-2,32) $replace($gettok(%out,3,32),$gettok(%out,3,32),$cl(r,lettre,out) $+ $iif($cl(r,lettre,maj) == 1,$upper($left($gettok(%out,3,32),1)),$left($gettok(%out,3,32),1)) $+ %couleur $+ $right($gettok(%out,3,32),-1))) $gettok(%out,4-,32)
    }
    else var %out = %couleur $+ %out
  }
  else {
    ;creation premiere lettre
    if (($left($gettok(%out,1,32),1) !isnum) && ($mid($gettok(%out,1,32),2,1) !isnum)) {
      %out = $replace($gettok(%out,1,32),$gettok(%out,1,32),$cl(r,lettre,out) $+ $iif($cl(r,lettre,maj) == 1,$upper($left($gettok(%out,1,32),1)),$left($gettok(%out,1,32),1)) $+ %couleur $+ $right($gettok(%out,1,32),-1))) $gettok(%out,2-,32)
    }
    else var %out = %couleur $+ %out
  }

  ;creation des decos
  if ($cl(r,gauche,actif) == 1) var %out = $cl(r,gauche,text) %out
  if ($cl(r,droite,actif) == 1) var %out = %out $+  $cl(r,droite,text)

  ;supprime les couleurs si interdite sur le chan
  if ((%type isin amsg ame) && ($me ison $active) && ($right($cl(r,config,nocolor),1) isincs $chan($active).mode)) var %out $strip(%out, co)

  ;affiche le resultat
  if (%type == me) describe $active %out
  elseif (%type == notice) notice $2 %out
  elseif (%type == amsg) {
    var %a = 1
    while (%a <= $chan(0)) {
      if ($right($cl(r,config,nocolor),1) isincs $chan(%a).mode) msg $chan(%a) $strip(%out)
      else msg $chan(%a) %out
      inc %a 1
    }
  }
  elseif (%type == ame) {
    var %a = 1
    while (%a <= $chan(0)) {
      if ($right($cl(r,config,nocolor),1) isincs $chan(%a).mode) describe $chan(%a) $strip(%out)
      else describe $chan(%a) %out
      inc %a 1
    }
  }
  else msg $active %out

  ;remet ancienne config si mode couleur say
  if ($gettok($cl(r,config,manuel),1,32) == say) {
    cl w config config $gettok($cl(r,config,manuel),2-3,32)
    cl w config manuel $gettok($cl(r,config,manuel),4-,32)
    couleur.aloue $cl(r,config,config)
  }

  ;quit l'addon
  :fin2
  halt
  :fin
}

Conclusion :


Dans le zip il y a un exemple.

Cette addon couleur n'a aucun équivalent !

Codes Sources

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.