Un pendu sur irc pour jouer à plusieur !

Contenu du snippet

Il s'agit d'un autre pendu IRC excepté que sur celui là il n'y a pas de limite de joueur, ni de temps ni de lettre à donnez. Vous choisissez un mot, chacun écrit une lettre à son tour, celui qui trouve gagne un point et choisi le prochain mot. Pour le lancer il suffit de taper "/pendu + mot" si vous êtes celui qui détient le script, sinon, il faut taper "!pendu". Celui qui détient le script ne peut pas jouer par contre.

Il y a une partie du code à copier dans un REMOTE et une autre dans un ALIASES

Source / Exemple :


###############################
###                         ###
### A COPIER DANS UN REMOTE ###
###                         ###
###############################

on 1:KICK:%chandujeu: {
  if (%pendu == on && $knick == %nom && %m == off) {
    msg %chandujeu 3,15 Dommage, le pendu est fini. Pour relancer, tapez 4!pendu
    unset %pendu
    unset %lettrecite*
    unset %m
    unset %nom
    unset %score*
    unset %warn*
    unset %chandujeu
    unset %scorependu
    unset %soluce
    unset %mot
  }
}

on 1:PART:%chandujeu: {
  if (%pendu == on && $knick == %nom && %m == off) {
    msg %chandujeu 3,15 Dommage, le pendu est fini. Pour relancer, tapez 4!pendu
    unset %pendu
    unset %m
    unset %nom
    unset %score*
    unset %warn*
    unset %chandujeu
    unset %scorependu
    unset %soluce
    unset %mot
    unset %lettrecite*
  }
}

on 1:QUIT: {
  if (%pendu == on && $knick == %nom && %m == off) {
    msg %chandujeu 3,15 Dommage, le pendu est fini. Pour relancer, tapez 4!pendu
    unset %pendu
    unset %m
    unset %nom
    unset %score*
    unset %warn*
    unset %chandujeu
    unset %scorependu
    unset %soluce
    unset %mot
    unset %lettrecite*
  }
}

ON 1:NICK: {
  if (%pendu == on && %score. [ $+ [ $nick ] ] && %scorependu) {
    set %scorependu $reptok(%scorependu,score. [ $+ [ $nick ] ] $+ ; $+ $nick,score. [ $+ [ nick ] ] $+ ; $+ $newnick,45)
    set %score. [ $+ [ $newnick ] ] %score. [ $+ [ $nick ] ]
    unset %score. [ $+ [ $nick ] ]
  }
  if (%nom == $nick) set %nom $newnick
}

on 1:TEXT:*:?:{
  if (%pendu == on && $nick == %nom && %m == off) {
    if ($len($$1) < 26 && $len($$1) > 1) {
      set %charcourrant 1
      set %bon true
      while (%charcourrant <= $len($$1)) {
        if ($mid($lower($$1),%charcourrant,1) < a || $mid($lower($$1),%charcourrant,1) > z) {
          set %bon false
        }
        inc %charcourrant
      }
      if (%bon == true) {
        set %mot $lower($$1)
        msg $nick 3,15 le mot sera donc4 %mot
        msg %chandujeu 3,15 début du pendu :4 $str(-,$len(%mot))
        msg %chandujeu 3,15 vous pouvez donner une lettre ou un mot.        
        set %m on
        set %soluce $str(-,$len(%mot))
      }
      else msg $nick 3le mot entré est éronné.
    }
    else msg $nick 3le mot entré est trop long ou trop court.
  }
  unset %bon
  unset %charcourrant
}

on 1:TEXT:*:#:{
  if ($$1 == !pendu && %penduactive == on && %motusactive != on) {
    if (%pendu == on) msg $chan 3le jeu est déjà lancé.
    else {
      set %chandujeu $chan      
      set %pendu on
      set %nom $nick
      set %m off
      msg %chandujeu 3,15 9P8E4N7D11U 3(créé par 4Barsy3)
      msg %chandujeu 3,15 pour avoir les scores tapez 4!scorpendu
      msg %chandujeu 3,15 Patientez le temps que4 %nom 3donne un mot ...
      msg $nick 3,15 donne un mot.
      msg $nick 3,15 sa taille ne doit pas dépasser 25 caractères et être inférieure à 2 caractères, des lettres uniquement et sans espaces.
      msg $nick 3,15 Pour arreter le jeu, tape 4!finpendu 3sur %chandujeu
    }
  }
  if ($$1 == !finpendu && $nick == %nom && %pendu == on && $chan == %chandujeu) {
    msg %chandujeu 3,15 Dommage, le pendu est fini. Pour relancer, tapez 4!pendu
    unset %pendu
    unset %lettrecite*
    unset %m
    unset %nom
    unset %score*
    unset %warn*
    unset %chandujeu
    unset %scorependu
    unset %soluce
    unset %mot
  }
  if (%pendu == on && $nick != %nom && %m == on && $chan == %chandujeu) {
    if ($lower($$1) == %mot) {
      msg $chan 3,15 Bravo $nick le mot était bien %mot
      msg $nick 3,15 donne un mot. 
      msg $nick 3,15 sa taille ne doit pas dépasser 25 caractères et être inférieure à 2 caractères, des lettres uniquement et sans espaces.
      msg $nick 3,15 Pour arreter le jeu, tape 4!finpendu 3sur %chandujeu      
      set %nom $nick
      set %m off
      unset %lettrecite*
      unset %characite      
      if (%score. [ $+ [ $nick ] ]) {      
        set %sc %score. [ $+ [ $nick ] ]
        inc %score. [ $+ [ $nick ] ]
        set %scorependu $reptok(%scorependu,%sc $+ ; $+ $nick,%score. [ $+ [ $nick ] ] $+ ; $+ $nick,45)
        unset %sc
      }
      else {
        set %score. [ $+ [ $nick ] ] 1
        set %scorependu $addtok(%scorependu,1 $+ ; $+ $nick,45)
      }
    }
    if ($len($$1) == 1 && %lettrecite. [ $+ [ $lower($$1) ] ] != on && $lower($$1) >= a && $lower($$1) <= z) {       
      set %lettrecite. [ $+ [ $lower($$1) ] ] on
      set %characite %characite $+ , $+ $lower($$1)
      if ($count(%mot,$lower($$1)) > 0) {
        set %charcourrant 1
        while (%charcourrant <= $len(%mot)) {
          set %ch %charcourrant
          dec %ch
          if ($mid(%mot,%charcourrant,1) == $lower($$1)) {
            if (%charcourrant == 1) set %soluce $lower($$1) $+ $right(%soluce,-1)
            elseif (%charcourrant == $len(%mot)) set %soluce $left(%soluce,%ch) $+ $lower($$1)
            else set %soluce $left(%soluce,%ch) $+ $lower($$1) $+ $right(%soluce,- $+ %charcourrant)
          }
          inc %charcourrant
        }
        if ($count(%soluce,-) == 0) {
          msg $chan 3,15 Bravo $nick le mot était bien %mot
          msg $nick 3,15 donne un mot. 
          msg $nick 3,15 sa taille ne doit pas dépasser 25 caractères et être inférieure à 2 caractères, des lettres uniquement et sans espaces.
          msg $nick 3,15 Pour arreter le jeu, tape 4!finpendu 3sur %chandujeu
          set %nom $nick
          set %m off
          unset %lettrecite*
          unset %characite
          if (%score. [ $+ [ $nick ] ]) {      
            set %sc %score. [ $+ [ $nick ] ]
            inc %score. [ $+ [ $nick ] ]
            set %scorependu $reptok(%scorependu,%sc $+ ; $+ $nick,%score. [ $+ [ $nick ] ] $+ ; $+ $nick,45)
            unset %sc
          }
          else {
            set %score. [ $+ [ $nick ] ] 1
            set %scorependu $addtok(%scorependu,1 $+ ; $+ $nick,45)
          }  
        }
        if (m != off) {
          msg $chan 3,15 la lettre4 $$1 3est présente dans le mot :4 %soluce 3; les lettres déjà cités sont : %characite
        }
      }
    }
    unset %ch
    unset %charcourrant
  }
  if (%pendu == on && $$1 == !scorpendu && %scorependu && $chan == %chandujeu) {
    set %cmpt 0
    set %nbrmax 9999999
    set %rang %cmpt
    inc %rang
    while (%cmpt != $numtok(%scorependu,45)) {
      set %max 0
      set %cp 0
      while (%cp != $numtok(%scorependu,45)) {
        inc %cp     
        if ($gettok($gettok(%scorependu,%cp,45),1,59) > %max && $gettok($gettok(%scorependu,%cp,45),1,59) < %nbrmax) {
          set %max $gettok($gettok(%scorependu,%cp,45),1,59)
        }
      }
      set %cp 0
      set %nbrmax %max
      unset %listnom
      while (%cp != $numtok(%scorependu,45)) {
        inc %cp      
        if ($gettok($gettok(%scorependu,%cp,45),1,59) == %max) {
          set %listnom %listnom $gettok($gettok(%scorependu,%cp,45),2,59)
          inc %cmpt
        }
      }
      msg $chan 3,15 %rang : %listnom avec %max pts
      set %rang %cmpt
      inc %rang
    }
    unset %max
    unset %rang
    unset %cmpt
    unset %cp
    unset %nbrmax
    unset %listnom
  }

#############################
###                       ###
### A COPIER DANS ALIASES ###
###                       ###
#############################

/pendu {
  set %chandujeu $chan      
  set %pendu on
  set %nom $me
  set %m on
  set %mot $$1
  unset %soluce
  unset %lettrecite*
  set %soluce $str(-,$len(%mot))
  msg %chandujeu 3,15 9P8E4N7D11U 3(créé par 4Barsy3)
  msg %chandujeu 3,15 pour avoir les scores tapez 4!scorpendu
  msg %chandujeu 3,15 début du pendu :4 $str(-,$len(%mot))
  msg %chandujeu 3,15 vous pouvez donner une lettre ou un mot.  
}
/finpendu {
  msg %chandujeu 3,15 Dommage, le pendu est fini. Pour relancer, tapez 4!pendu
  unset %pendu
  unset %m
  unset %nom
  unset %score*
  unset %lettrecite*
  unset %warn*
  unset %chandujeu
  unset %scorependu
}

Conclusion :


Si vous découvrez un bug, ou si vous souhaitez ajouter une modification, contactez moi à mecatamago4@hotmail.com

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.