Un pendu sur irc pour jouer à plusieur !

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 650 fois - Téléchargée 25 fois

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

Ajouter un commentaire

Commentaires

bonjour impecable ce truc marche nikel juste quelque fautes d'orthographe qui l'empêche de fonctionné mais sinon 10/10 pour moi merci a l'auteur
Messages postés
3
Date d'inscription
lundi 21 novembre 2011
Statut
Membre
Dernière intervention
22 novembre 2011

Pour ma part il fonctionne qu'à moitié, si je ne trouve pas le mot, il me marque "le mot était:" et rien d'autre. Sinon quant on ne donne pas la bonne lettre rien ne l'indique, ça serait pas mal ;)
La commande !pendu ne fonctionne pas, je dois toujours moi-même le lancer, ce qui n'est pas pratique en cas d'absence.

Sinon très bon script et merci tout de même ! J'espère que vous pourrez résoudre ces p'tits problèmes.
Messages postés
8
Date d'inscription
mardi 10 novembre 2009
Statut
Membre
Dernière intervention
2 mai 2010

allo
jais installer le pendu comme est supposer mais je tappe !pendu mais ya rien qui marche j'aimerais qu'on m'aide S.V.P parce-que ya l'air pas pir :)
Messages postés
1
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
21 juin 2008

bonjour
je n arrive pas a le faire fonctionnais le jeu du pendu multi joueur pourrais t on maider svp je suis assez nul merci
Messages postés
217
Date d'inscription
dimanche 17 juin 2007
Statut
Membre
Dernière intervention
13 février 2012

Sa aurait été mieu que tu mette la source dans une remote et que tu la poste sous zip ... 251 ligne ou il faut enlever les # devant

Exemple:

# 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

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

N'est pas indispensable. Tu peut l'enlever

on 1:KICK:%chandujeu: {

Hein ???
on *:join:#salon:{
Sa n'aurait pas été plus simple =o
Afficher les 15 commentaires

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.