Nickliste

Soprano71 Messages postés 107 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 6 janvier 2009 - 5 janv. 2009 à 13:22
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011 - 6 janv. 2009 à 17:06
bonjour,
voila je souhaiterai savoir si il est possible de réduire ma liste qui met d'une couleur les pseudos qui ont une extension ?

voici un bout de ma liste:
    If ($right($3,4) == Away) return $rgb(196,200,178)
    If ($right($3,11) == [Auto-Away]) return $rgb(196,200,178)
    If ($right($3,3) == Out) return $rgb(123,135,234)
    If ($right($3,3) == Aw-) return $rgb(196,200,178)
    If ($right($3,7) == Aw-Taff) return $rgb(196,200,178)
    If ($right($3,2) == Aw) return $rgb(196,200,178)
    If ($right($3,3) == [w]) return $rgb(196,200,178)
    If ($right($3,4) == [Aw]) return $rgb(196,200,178)

était possible de mettre les extensions dans un fichier .txt et qu'il soit détecté ?
Comment faire svp ?
cordialement

10 réponses

uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
5 janv. 2009 à 15:27
Je ne sais plus exactement mais je pense que tu peux faire un truc de ce style :
var %a 1, %b $lines(fichier.txt)
while (%a <= %b) {
    var %ext $gettok($read(fichier.txt,%a),1,32)
    if (%ext == $right($3,$len(%ext))) return $gettok($read(fichier.txt,%a),2,32)
    inc %a
}
Pas testé, mais ça devrait marcher.
Pour cela, il faut organiser ton fichier comme ceci :
Away $rgb(196,200,178)
[Auto-Away] $rgb(196,200,178)
Out $rgb(123,135,234)
Aw- $rgb(196,200,178)
Aw-Taff $rgb(196,200,178)
Aw $rgb(196,200,178)
[w] $rgb(196,200,178)
[Aw] $rgb(196,200,178)

Je ne sais plus si les valeurs RGB seront interprétées au return ou pas. Sinon tu les écris come ceci "000 000 000" dans le fichier et tu récupères $2, $3 et $4. Mais normalement il n'y a pas besoin.
Cette fois-ci, je pense que la commande /fiter ne convient pas car si j'ai bien compris, elle ne fonctionne que sur les fichiers et windows (je dis ça pour Wims )

Cordialement, uaip.
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
6 janv. 2009 à 11:01
Elle sert surtout a filtré, là on veut rien filtré :]
Les valeurs rgb seront évalués (rien avoir avec le return en revanche) parce que tu lui dis de le faire, c'est le comportement par defaut de $read
C'est dommage que le code de base utilise déja un $3, sinon tu aurait pu /tokenizé et ça aurait simplifié les $gettok en $1 et $2, il y a surement quand même moyen mais bon on connait pas le reste du code.
Sinon j'aurais fait la même chose mais avec une ou deux variable(s).

Juste pour cassé les couilles, il manque un = sur la variable %ext, qui donnera une erreur sur les versions inferieurs a la 6.21 !
0
Soprano71 Messages postés 107 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 6 janvier 2009
6 janv. 2009 à 12:11
merci uaip je vais testé ceci  et je vous dit ce qu'il en es . 
0
Soprano71 Messages postés 107 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 6 janvier 2009
6 janv. 2009 à 12:30
oula après avoir ajouté les code de ouaip disons que sa ma fait totalement beugué mon script (rire) avec une erreur de "/iif "
voici le code pour wims:

ON ^1:JOIN:#: { If ($nick == $me) { nicklust } }
;underlinehot BorderSelect flatSb NoSortHeader balloon
alias nicklust {
  .enable #who
  var %a = menu\dlls\nicklust.dll
  dll %a Mark # > nicklust2 autoarrange hottrack underlinehot flatsb balloon
  dll %a SetColor # op $rgb(123,135,223)
  dll %a SetColor # normal $rgb(123,135,223)
  dll %a SetColor # voice $rgb(123,135,223)
  If (%[FondColor] == OFF) { dll %a SetBKImage # %SetBKImage > %[FondImage] }
  If (%[FondColor] == ON) { dll %a SetColor # bkg $rgb( $+ %[FondListe1]  $+ , $+ %[FondListe2] $+ , $+ %[FondListe3] $+ ) }
  dll %a SetFont # tooltips %ibulles.taille 700 > %nl.ibulles
  dll %a SetFont # nicks %pseudos.taille 400 > %nl.pseudo
  dll %a SetTipTitle # 1 > Info
  If (%[Header] == ON) { dll %a SetFont # header %entete.taille 700 > %nl.entete }
  dll %a SetView # report
  If (%[Header] != ON) { dll %a ShowHeader # false }
  If (%[Header] == ON) { dll %a ShowHeader # true | dll %a SetHeaderText # > # }
  dll %a SetIcon # op > %icone.op
  dll %a SetIcon # halfop > %icone.half
  dll %a SetIcon # voice > %icone.voice
  dll %a SetIcon # normal > %icone.normal
  dll %a SetTipColor # text $rgb(155,155,155)
  dll %a SetTipColor # bkg $rgb(0,0,0)
  .who #
  .disable #who
}
 :underline bold italic
  If ($1 == textstyle) { If (%textstyle != $null) return bold }
  If ($1 == color) {
    If ($istok(%ircop,$3,44)) return $rgb(153,135,223)
    If ($regex($3,/^Niubot[0-9][0-9]$/))  return $rgb(153,135,223)
    If ($3 == $me) return $rgb(158,155,233)
    If ($right($3,4) == Away) return $rgb(196,200,178)
    If ($right($3,11) == [Auto-Away]) return $rgb(196,200,178)
    If ($right($3,3) == Out) return $rgb(123,135,234)
    If ($right($3,3) == dow) return $rgb(123,135,234)
    If ($right($3,3) == Aw-) return $rgb(196,200,178)
    If ($right($3,7) == Aw-Taff) return $rgb(196,200,178)
    If ($right($3,2) == Aw) return $rgb(196,200,178)
    If ($right($3,3) == [w]) return $rgb(196,200,178)
}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
6 janv. 2009 à 13:11
Pourquoi pour moi ? Les autres sont aussi apte a t'aider hein.

Bon donc le code que tu as posté ne comporte déja pas le code de Uaip, il y a un probleme de { }, il y a un goto qui devrait être un commentaire (je pense que le : est un ;), toute la partie après ce *faux* goto est dans le *vide*, çad tout les if en cascade là.
Il n'y a pas non plus de command /iif, qui de toute façon n'existe pas, $iif en revanche existe, c'est p-e ça que tu voulais dire mais j'en ai pas vu non plus ds ton code...
0
Soprano71 Messages postés 107 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 6 janvier 2009
6 janv. 2009 à 13:53
aprés avoir essayé le code de ouaip sa ma tellement fait beugé le script que j'ai du l'enlevai . j'pouvais plus rien faire la le code que j'ai mit c'est le code normal sans avoir ajouté le code de ouaip .
maintenant voici les ereurs que j'ai :

�1F;[�1F;#NICKLIST]�1F; Cette commande n'existe pas.

et quand je déconnecte le script du serveur la ça me flood avec cet phrase ci :

* /who: not connected to server (line 491, Nicklist_Channel.mrc)
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
6 janv. 2009 à 14:00
On ne peut pas deviné ce qu'est ton code ou la ligne 491 nous.Tu as lu les remarques que je t'avais dis ? Ton code a quelque petit problème, si mirc te flood avec * /who: not connected to server, c'est bien parce que tu fait des /who avec ton code... essaye de corrigé les problèmes et repost le code entier que tu as lié a ça.
0
Soprano71 Messages postés 107 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 6 janvier 2009
6 janv. 2009 à 14:06
ON ^1:JOIN:#: { If ($nick == $me) { nicklust } }
;underlinehot BorderSelect flatSb NoSortHeader balloon
alias nicklust {
  .enable #who
  var %a = menu\dlls\nicklust.dll
  dll %a Mark # > nicklust2 autoarrange hottrack underlinehot flatsb balloon
  dll %a SetColor # op $rgb(123,135,223)
  dll %a SetColor # normal $rgb(123,135,223)
  dll %a SetColor # voice $rgb(123,135,223)
  If (%[FondColor] == OFF) { dll %a SetBKImage # %SetBKImage > %[FondImage] }
  If (%[FondColor] == ON) { dll %a SetColor # bkg $rgb( $+ %[FondListe1]  $+ , $+ %[FondListe2] $+ , $+ %[FondListe3] $+ ) }
  dll %a SetFont # tooltips %ibulles.taille 700 > %nl.ibulles
  dll %a SetFont # nicks %pseudos.taille 400 > %nl.pseudo
  dll %a SetTipTitle # 1 > Info
  If (%[Header] == ON) { dll %a SetFont # header %entete.taille 700 > %nl.entete }
  dll %a SetView # report
  If (%[Header] != ON) { dll %a ShowHeader # false }
  If (%[Header] == ON) { dll %a ShowHeader # true | dll %a SetHeaderText # > # }
  dll %a SetIcon # op > %icone.op
  dll %a SetIcon # halfop > %icone.half
  dll %a SetIcon # voice > %icone.voice
  dll %a SetIcon # normal > %icone.normal
  dll %a SetTipColor # text $rgb(155,155,155)
  dll %a SetTipColor # bkg $rgb(0,0,0)
  .who #
  .disable #who
}
 :underline bold italic
  If ($1 == textstyle) { If (%textstyle != $null) return bold }
  If ($1 == color) {
  var %a 1, %b $lines(extension.txt)
  while (%a <= %b) {
    var %ext $gettok($read(extension.txt,%a),1,32)
    if (%ext == $right($3,$len(%ext))) return $gettok($read(extension.txt,%a),2,32)
    If ($istok(%ircop,$3,44)) return $rgb(153,135,223)

    If ($regex($3,/^Niubot[0-9][0-9]$/))  return $rgb(153,135,223)
inc %a
}
}

j'pense que la variable %a étant déjà utilisé pour le chemin de la dll nicklust doit posé souci non ?
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
6 janv. 2009 à 17:04
D'une part, Wims j'avais aussi pensé à tokenizer, mais comme tu dis, le $3 m'en empêchait (quant au = manquant, merci de l'avoir précisé)
D'autre part, Soprano71, mon pseudo, c'est UAIP et pas OUAIP.
Ensuite, tu as demandé un code, je te l'ai donné, et (d'après ton dernier post) tu as rajouté 2 if dedans.
Qui t'a dit de le faire ?
Tu voulais un code qui justement permette d'enlever tous ces if, et tu en rajoutes à mon code...
Faisons plus simple :
alias color {
    var %a 1, %b $lines(fichier.txt)
    while (%a <= %b) {
        var %ext = $gettok($read(fichier.txt,%a),1,32)
        if (%ext == $right($1,$len(%ext))) return $gettok($read(fichier.txt,%a),2,32)
        inc %a
    }
    return $rgb(0,0,0)
}

Maintenant, tu as juste à insérer ceci dans ton code :
if ($1 == color) return $color($3)

La par contre, vu que c'est utilisé comme simple alias, on peut, comme l'avait dit Wims, "sauvegarder" le paramètre ($1) dans une var, puis tokenizer la ligne du ficheir lue.
Genre ceci (à vérifier) :
alias color {
    var %a 1, %b $lines(fichier.txt), %param $1
    while (%a <= %b) {
        var %line = $read(fichier.txt,%a)
        tokenize 32 %line
        if ($1 == $right(%param,$len(%ext))) return $2
        inc %a
    }

    return $rgb(0,0,0)

}
Essaye quand même de comprendre les codes qu'on te file, car si tu as rajouté des if, c'est que tu n'as pas compris le code donné (poses des questions sur les points qui te paraissent louches).

Cordialement, uaip.
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
6 janv. 2009 à 17:06
Zut, malgré la relecture, je me suis trompé, je corrige la dernière alias :
alias color {
    var %a 1, %b $lines(fichier.txt), %param $1
    while (%a <= %b) {
        var %line = $read(fichier.txt,%a)
        tokenize 32 %line
        if ($1 == $right(%param,$len($1))) return $2
        inc %a
    }
    return $rgb(0,0,0)
}

Cordialement, uaip.
0
Rejoignez-nous