Comment n'autoriser qu'un nick

Résolu
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008 - 9 oct. 2004 à 15:14
tidds Messages postés 246 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 9 janvier 2006 - 9 oct. 2004 à 20:06
je fais un truc ou chaque personne peut rentrer un message qui pars dans un .sys

de la il sert a mettre des topic qui sont alleatoire
chaque personne du salon peut rajouter son topic

ils sont stocké en fonction du nom
le probleme c'est que quand le pseudo est _Kish ca enregistre en tant que _Kish
mais si le pseudo est _Kish|oqped ca enreistre en tant que _Kish|oqped
comment faire pour que le $nick sois depioté et que tout ce qui a a pres le | sois supprimer ainsi ca enregistrerai le truc sous la forme _Kish quelque sois les truc apres |
ca me permettrai de n'avoir qu'un topic par personne
(bien sur si ils changent de pseudo ils peuvent en remettre ^^)

;Commmande logfoly
if ($hget(logfoly) != logfoly) { hmake -s logfoly 200 | if ($exists(logfoly.sys)) { hload -s logfoly logfoly.sys } }
if ($strip($1) == !logfoly) && ($2) && ($nick isop #barback) {
if ($hget(logfoly,$nick) = $null) { .hadd logfoly $nick $2- 12( $nick $asctime(dd/mm/yy) ) | msg $nick 12,0Ca y est ton logfoly 4,0° $2- °12,0est enregistré | halt }
else { .msg $nick 12,0Desole on a deja ton logfoly efface le et mes en un autre }
}
elseif ($strip($1) == !logfoly) && ($2) && ($nick !isop #barback) { msg $nick 12,0Vous n'avez pas le grade pour mettre votre logfoly }
if ($strip($1) == !dellog) && (!$2) && ($hget(logfoly,$nick) != $null) && ($nick isop #barback) { .hdel logfoly $nick | msg $nick 12,0Ton logfoly a été oublié } elseif ($strip($1) !dellog) && (!$2) && ($hget(logfoly,$nick) $null) && ($nick isop #barback) { msg $nick 12,0T'as pas encore de logfoly fais en un !! }
elseif ($strip($1) == !dellog) && (!$2) && ($nick !isop #barback) { msg $nick 12,0Vous n'avez pas le grade pour gerer les logfoly }
}

voila ca marche au poil mais le probleme c'est quand ya un |kelkchoze

en fait il faudrait initializer au debut un %n
et %n = $nick - le truc apres le |
apres je remplace $nick par %n et ca marchera
mais je sais pas faire pour prendre que la partie 'entiere du pseudo
des idées ???

_Marikou

6 réponses

cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
9 oct. 2004 à 18:39
Bonsoir,

Je ne suis pas sûr de tout avoir suivis, mais pour retourner uniquement Pseudo dans Pseudo|bleh, tu peux utiliser les tokens.

Exemple :
$gettok(Pseudo|bleh,1,124) > va retourner Pseudo
$gettok(Pseudo,1,124) > va retourner Pseudo (là l'identifieur ne touche à rien)
124 étant la valeur ascii du caractère "|"
-<gras>[ Sorn_Drixer ]-</gras>
-
:question) Vous pouvez me retrouver sur irc.rs2i.net:6667

:question) Mon site : Sorn-Creation
3
tidds Messages postés 246 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 9 janvier 2006
9 oct. 2004 à 20:06
Il te suffit d'utiliser l'identifieur $read pour retourner une ligne au hazard d'un fichier.

//echo -a $read(logfoly.sys)
3
tidds Messages postés 246 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 9 janvier 2006
9 oct. 2004 à 16:18
Voilà ce que je te propose :

;Commmande logfoly
on *:text:*:*: {
  if ($strip($1) == !logfoly) {
    if (!$hget(logfoly)) { 
      hmake -s logfoly 200
      if ($exists(logfoly.sys)) { hload -s logfoly logfoly.sys }
    }
    if ($2) && ($nick isop #barback) {      var %i 1, %lnick $len($nick)
      while  (%i <= %lnick) {
        if ($mid($nick,%i,1) == $chr(124)) {
          if (!$hget(logfoly, $mid(%nick,1,$calc(%i - 1)))) {
            hadd logfoly $mid(%nick,1,$calc(%i - 1)) $2- 12( $nick $asctime(dd/mm/yy) )
            msg $nick 12,0Ca y est ton logfoly 4,0° $2- °12,0est enregistré
            halt
          }
          else { msg $nick 12,0Desole on a deja ton logfoly efface le et mes en un autre }
        }
        if (%i == %lnick) {
          if (!$hget(logfoly, $nick)) {
            hadd logfoly $nick $2- 12( $nick $asctime(dd/mm/yy) )
            msg $nick 12,0Ca y est ton logfoly 4,0° $2- °12,0est enregistré
          }
          else { msg $nick 12,0Desole on a deja ton logfoly efface le et mes en un autre }
        }
        inc %i
      }
    }
    elseif ($2) && ($nick !isop #barback) {
      msg $nick 12,0Vous n'avez pas le grade pour mettre votre logfoly
    }
  }
  if ($strip($1) == !dellog) {    var %i 1, %lnick $len($nick)
    while  (%i <= %lnick) {
      if ($mid($nick,%i,1) == $chr(124)) {
        if ($hget(logfoly, $mid(%nick,1,$calc(%i - 1))) && $nick isop #barback) {
          hdel logfoly $mid(%nick,1,$calc(%i - 1))
          msg $nick 12,0Ton logfoly a été oublié
          halt
        }
        elseif (!$hget(logfoly, $mid(%nick,1,$calc(%i - 1))) && ($nick isop #barback)) {
          msg $nick 12,0T'as pas encore de logfoly fais en un !!
          halt
        }
      }
      if (%i == %lnick) {
        if ($hget(logfoly, $nick) && $nick isop #barback) {
          hdel logfoly $nick
          msg $nick 12,0Ton logfoly a été oublié
        }
        elseif (!$hget(logfoly, $nick) && ($nick isop #barback)) { msg $nick 12,0T'as pas encore de logfoly fais en un !! }
      }
      inc %i
    }
    if ($nick !isop #barback) {
      msg $nick 12,0Vous n'avez pas le grade pour gerer les logfoly
    }
  }
}


Je n'ai pas testé le code, mais à priori ça devrait fonctionner.
0
tidds Messages postés 246 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 9 janvier 2006
9 oct. 2004 à 18:45
Erf, pourquoi n'y avais-je pas pensé ?!
C'est sur qu'utiliser les tokens est beaucoup plus simple que d'utiliser une boucle avec un $mid. :)
0

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

Posez votre question
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
9 oct. 2004 à 19:23
a ba merci pour la nouvelle commande les token je viens de voir dans l'aide de mirc je pense que j'arriverai a me debrouillé merci a vous deux , et surtout a toi tidds qui reponds si souvent et si rapidement a mes questios ^^

_Marikou
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
9 oct. 2004 à 19:35
tant que j'y suis j'ai un souci mais un petit souci et l'aide de mirc doit pouvoir m'aider mais je sais pas du tout ou chercher de plus même en francais je comprends pas tout

je stocke tout les topic proposé par les membres dans un .sys

j'aimerai prendre une des ligne au hazard
j'ai testé

msg $chan $hget(logfoly,$rand(1,$lines(logfoly.sys))
mais ca marche pas du tout
je sai spas comment faire
_Marikou
0
Rejoignez-nous