Problème couleur et on text

Résolu
Signaler
Messages postés
7
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
10 juillet 2007
-
Messages postés
7
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
10 juillet 2007
-
Bonjour tout le monde,

Je vous serais très reconnaissant si vous pourriez m'aider avec mon problème.

Alors mon problème est le suivant , j'ai un "on text" qui sert de calculatrice, mon script marche bien
mais lorsque quelqu'un écrit la commande avec de la couleur ca ne marche plus.

on $*:text:/^[!@.](calc)/si:#:{
echo -a hello?
}

Lorsque la commande (!calc) est tappez avec de la couleur le "hello?" ne s'affiche pas .

J'ai aussi un autre problème semblable avec ma commande "!stat"

on $*:text:/^[!@.](stat|stats)/Si:#:{
echo -a hello?
 if ($left($1,1) == !) { echo -a notice }
  if ($left($1,1) == @) { echo -a public }
  if ($left($1,1) == .) { echo -a privé }
}

Et bien lorsque que la commande (!stat) est tappez avec de la couleur je vois juste le "hello?" .

Comment faire pour que même s'il y a de la couleur tout marche normalement ?

J'espère avoir été clair et précis

Merci de bien vouloir m'aider ca vous semble peut-être stupide comme problème , mais c'est très embêtant pour moi

Encore une fois , merci beaucoup

5 réponses

Messages postés
1804
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
22 septembre 2009
5
Tu as quelle version de mIRC ? Le support du switch S est supporté que dans les toutes dernières versions.

Sinon, le switch pour virer les codes couleur est "S", et dans ton premier exemple tu as mis "s", je ne crois pas que ca fonctionne.

PaDa
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Tiré de l'aide :

Le préfixe $
Indique que la section texte correspondant à une définition contient une expression régulière.
on $*:TEXT:m/expression régulière/paramètres:#:/echo message: $1-
Le 'm' et 'paramètres' sont optionnels. Les // sont requis. Si les 'paramètres' sont utilisés, ils doivent être des paramètres PCRE standard, autrement la correspondance échouera. Vous pouvez utiliser le paramètre 'S' pour enlever les codes de contrôle de $1-.

Ceci est valable depuis la version 6.1.

Isoka, le fait d'utilise /S dans le parametre du regex est censé strippé les codes couleurs, mais apparament, cela ce fait juste pour déclencher l'event, ça ne strip pas le texte dans l'event, plutot que de rajouter des $strip partout, il vaut mieux tokeznize :

on $*:text:/^[!@.](stat|stats)/Si:#:{
echo -a hello? | tokenize 32 $strip($1-)
 if ($left($1,1) == !) { echo -a notice }
  if ($left($1,1) == @) { echo -a public }
  if ($left($1,1) == .) { echo -a privé }
}
Messages postés
435
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
17 octobre 2008

pour ton premier probleme je croi que notre illustre PaDa ( :P ) a repondu à ta question, pour le second dans le stat transforme tes $left($1,1) en $left($strip($1),1) je pense, sinon je pense qu'il considere comme premier caractere le code couleur.

ISoKa
Messages postés
435
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
17 octobre 2008

Oui Wims je sai pour le /S :) c'est pk je me suis concentré sur les
 if ($left($1,1) == !) { echo -a notice }
  if ($left($1,1) == @) { echo -a public }
  if ($left($1,1) == .) { echo -a privé }
mais c'est vrai ke le tokenize c'est mieu et en passant aussi :

on $*:text:/^[!@.](stat|stats)/Si:#:{
echo -a hello? | tokenize 32 $strip($1-)
 if ($left($1,1) == !) { echo -a notice }
  elseif ($left($1,1) == @) { echo -a public }
  elseif ($left($1,1) == .) { echo -a privé }
}
ISoKa
Messages postés
7
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
10 juillet 2007

Bonjour,

Ca marche   merci tout le monde vous êtes une bonne équipe rapide et éfficace

C'est la 2ième fois je post un problème et vous êtes toujours aussi vite et bon
Merci encore