Jeu : deviner un nombre (pour bot)

Description

Ma fois, ceci est mon deuxième jeu que j'ai crée. Il consiste à deviner un nombre choisi au hasard parmi un intervalle que l'on détermine.
On peut aussi bien jouer sur un Channel contre tous, que seul en PV

Le script est à installer sur le mIRC du bot.

Source / Exemple :


;********* MENU *********

menu * {
  Jeu NOMBRE
  . pour channels
  ..ACTIVATION DU JEU:/enable #nombre
  ..DEACTIVATION DU JEU:/disable #nombre
  .en PV
  ..ACTIVATION DU JEU:/enable #pvnombre
  ..DEACTIVATION DU JEU:/disable #pvnombre
}

;* AVERTISSEMENT CHARGEMENT *

ON *:LOAD:echo -a Installation de mon jeu terminé! Amusez vous bien !
ON *:UNLOAD:echo -a Désinstallation de mon jeu terminée, à bientôt !

;***** JEU DE SALON *****

#nombre on
on *:text:*:#:{
  if (!$hget(nombre,essai) && $hget(nombre,commencer)) { hadd -m nombre essai 0 }
  if ($1 == !nombre && !$hget(nombre,commencer)) { 
    hadd -m nombre commencer 1
    msg $chan 6Pour connaître les règles du jeu, tapez 4!helpn
    msg $chan 6NOMBRE PROGRAMME PAR 7 SHIRYA 6, CHANNEL MASTER DE 7 #gothiks
    msg $chan 6TROUVER UN NOMBRE ENTRE 1 ET LE NIVEAU DE DIFFICULTE CHOISI!
    hadd -m nombre master $address($nick,4)
    hadd -m Stage 1 10 | hadd -m Stage 2 50 | hadd -m Stage 3 100
    hadd -m Stage 4 250 | hadd -m Stage 5 500 | hadd -m Stage 6 1000
    hadd -m Stage 7 5000 | hadd -m Stage 8 10000 | hadd -m Stage 9 15000
    hadd -m Stage 10 100000
  }
  elseif ($1- == !suite) {
    if ($hget(nombre,stage) == 10) { timer 1 3 msg $chan 7 $+ $nick $+  : 6 OMFG... Ben j peu pas faire plus dur... =P Plus dur que ça, c'est le mariage... ^^
      hfree nombre | hfree stage
    msg $chan 6 Jeu des nombres programmé par 7 SHIRYA ! 6Merci d'avoir joué ! A bientôt :) RAPPEL: pour jouer en PV, faire:  4!pvnombre  6en privé. }
    else { timer 1 3 msg $chan 7 $+ $nick $+  : 6 On change de stage maintenant :)
      hinc nombre stage
      if ($hget(nombre,stage) isnum 2-10) {
        hadd -m nombre essai 0 | hadd -m nombre intervalle $hget(Stage,$v1)
        timer 1 5 msg $chan  7 $+ $nick $+ :6 Stage $v1 SELECTIONNÉ (1 à $hget(Stage,$v1) $+ )
      hdel nombre nombredevine }
      else { hadd -m nombre essai 0 | hadd -m nombre intervalle 10 | timer 1 5 msg $chan 7 $+ $nick $+ : 6 Stage 1 SELECTIONNE (1 à 10) | hdel nombre nombredevine }
      timer 1 9 hdel nombre trouver
    }
  }
  elseif ($1 == !stage && $hget(nombre,commencer) && !$hget(nombre,trouver)) {  
    if ($2 == perso && $3- isnum && $3 > 10 && $3 != $hget(nombre,stage)) { hadd -m nombre stage $3 | hadd -m nombre essai 0 | hadd -m nombre intervalle $3 | msg $chan 7 $+ $nick $+ : 6 Stage perso SELECTIONNE (1 à $3) | hdel nombre nombredevine }
    elseif ($hget(nombre,master) == $address($nick,4) && $2 isnum 1-10 && $2 != $hget(nombre,stage)) { hadd -m nombre stage $2
    hadd -m nombre essai 0 | hadd -m nombre intervalle $token(10.50.100.250.500.1000.5000.10000.15000.100000,$2,46) | msg $chan 7 $+ $nick $+ : 6 Stage $2 SELECTIONNE (1 à $hget(nombre,intervalle $+ ) $+ )  | hdel nombre nombredevine }
    else { msg $chan 7 $+ $nick $+ : 6 Ce stage est déjà sélectionné ou mal tapé. }
  }
  elseif ($1 == !stopnombre && $hget(nombre,commencer)) {
    if ($hget(nombre,master) == $address($nick,4)) { 
      hfree nombre | hfree stage
      msg $chan 6 Jeu des nombres programmé par 7 SHIRYA ! 6Merci d'avoir joué ! A bientôt :) RAPPEL: pour jouer en PV, faire:  4!pvnombre  6en privé.
    }
    else { msg # 6 Seul celui qui a lancé la partie peut l'arrêter. Ou alors demander a Shirya. }
  }
  elseif ($1 == !helpn && $hget(nombre,commencer)) { 
    notice $nick   6 tapez:7!stage <1 à 10>  6pour régler la difficulté
    timer 1 1 notice $nick 7!stage 1 6----> entre 1 et 10, 7!stage 2 6----> entre 1 et 50, 
    timer 1 3 notice $nick 7!stage 3 6----> entre 1 et 100, 7!stage 4 6----> entre 1 et 250, 
    timer 1 5 notice $nick 7!stage 5 6----> entre 1 et 500, 7!stage 6 6----> entre 1 et 1000, 
    timer 1 7 notice $nick 7!stage 7 6----> entre 1 et 5000, 7!stage 8 6----> entre 1 et 10000, 
    timer 1 9 notice $nick 7!stage 9 6----> entre 1 et 15000, 7!stage 10 6----> entre 1 et 100000.
    timer 1 11 notice $nick 7!stage perso <max> 6----> entre 1 et le nombre max déterminé.
    timer 1 13 notice $nick 7!scorenombre 6pour connaître le nombre d'essai, 7!resetn  6pour recommencer la partie. 7!stopnombre 6pour arrêter le jeu. Amusez vous bien =) 12By Shirya
    timer 1 15 notice $nick 6Le jeu commence dès lors que vous entrez un nombre. Si aucun stage n'est sélectionné, le stage par défaut sera activé, soit le stage 1. 4SEUL CELUI QUI A LANCE LE JEU PEU MODIFIER LES PARAMETRES OU ARRETER LA PARTIE. VOUS POUVEZ EGALEMENT JOUER SEUL EN PV
  }
  elseif ($1 == !scorenombre && $hget(nombre,commencer)) { msg $chan 7 $+ $nick $+  : 6 Nombre de tentativess: 4 $hget(nombre,essai)
    msg $chan 7 $+ $nick $+  : 6 Stage : 4 $hget(nombre,stage) 6 Intervalle (1 à $hget(nombre,intervalle $+ ) $+ )
  }
  elseif ($1- isalnum  && $hget(nombre,commencer) && !$hget(nombre,trouver)) { hadd -m nombre propose $1 | nombre }
  elseif ($1 == !resetn && $hget(nombre,commencer)) {
    if ($read(kickbanauto\authscriptmasteruser.txt,w,[ [ $address($nick,4) ] ])) { hadd -m nombre essai 0 | hdel nombre nombredevine | msg $chan 7 $+ $nick $+ : 6 Réinitialisation de votre partie. }
    elseif ($hget(nombre,master) == $address($nick,4)) { hadd -m nombre essai 0 | hdel nombre nombredevine | msg $chan 7 $+ $nick $+ : 6 Réinitialisation de votre partie. }
    else { msg $chan 6 Seul celui qui a lancé la partie peut la réinitialiser. Ou alors demander a Shirya. }
  }
}
#nombre end
alias nombre {
  if (!$hget(nombre,trouver)) {
    if (!$hget(nombre,intervalle $+ )) { hadd -m nombre essai 0 | hadd -m nombre stage 1 | hadd -m nombre intervalle 10 | msg $chan 7 $+ $nick $+  : 6 Stage 1 SELECTIONNE (1 à 10) }
    if (!$hget(nombre,nombredevine)) hadd -m nombre nombredevine $rand(1, $hget(nombre,intervalle $+ ) )
    if ($hget(nombre,propose) <= $hget(nombre,intervalle $+ )) {
      if ($hget(nombre,propose) == 0) { timer 1 1 msg $chan 7 $+ $nick $+  : 4 uh? Dis donc, tu connais les règles? }
      if ($hget(nombre,propose) > $hget(nombre,nombredevine)) { hinc nombre essai | timer 1 1 msg $chan 7 $+ $nick $+ : 6 Le nombre est plus  9petit! }
      if ($hget(nombre,propose) < $hget(nombre,nombredevine)) { hinc nombre essai | timer 1 1 msg $chan 7 $+ $nick $+ : 6 Le nombre est plus  4grand! }
      if ($hget(nombre,propose) == $hget(nombre,nombredevine)) { hadd -m nombre trouver 1 | disable #nombrebegin | hinc nombre essai | timer 1 1 msg $chan 7 $+ $nick $+ : 12 $hget(nombre,nombredevine)  6BRAVO!! 6Nombre de tentativess: 4 $hget(nombre,essai)  6 Stage : 9 $hget(nombre,stage)
        timer 1 5 msg $chan 6Tapez 4!suite 6pour continuer le jeu.
      }
    }
  }
}

;***** JEU EN PRIVE *****

#pvnombre on
on *:text:*:?:{
  if ($1 == !pvnombre) {
    hadd -m pvStage 1 10 | hadd -m pvStage 2 50 | hadd -m pvStage 3 100
    hadd -m pvStage 4 250 | hadd -m pvStage 5 500 | hadd -m pvStage 6 1000
    hadd -m pvStage 7 5000 | hadd -m pvStage 8 10000 | hadd -m pvStage 9 15000
    hadd -m pvStage 10 100000
    msg $nick 6Pour connaître les règles du jeu, tapez  4!pvhelp
    msg $nick 6 NOMBRE PROGRAMME PAR7 SHIRYA  6, CHANNEL MASTER DE 7 #gothiks
  }
  if ($1 == !pvstage) {
    if ($2 == perso && $3- isnum && $3 > 10 && $3 != $hget(pvnombre,$nick $+ stage)) { hadd -m pvnombre $nick $+ essai 0 | hadd -m pvnombre $nick $+ stage $3 | hadd -m pvnombre $nick $+ intervalle $3 | msg $nick 6 Stage perso SELECTIONNE (1 à $3) | hdel pvnombre $nick $+ nombredevine }
    elseif ($2 != $hget(pvnombre,$nick $+ stage) && $2 isnum 1-10) {
    hadd -m pvnombre $nick $+ essai 0 | hadd -m pvnombre $nick $+ stage $2 | hadd -m pvnombre $nick $+ intervalle $token(10.50.100.250.500.1000.5000.10000.15000.100000,$2,46) | msg $nick 6 Stage $2 SELECTIONNE (1 à $hget(pvnombre,$nick $+ intervalle $+ ) $+ ) | hdel pvnombre $nick $+ nombredevine }
    else { msg $nick 6 Ce stage est déjà sélectionné ou mal tapé. }
  }
  if (!$hget(pvnombre,$nick $+ essai)) hadd -m pvnombre $nick $+ essai 0
  if ($1 == !pvhelp) { 
    msg $nick   6 tapez: 7!pvstage <1 à 10>  6pour régler la difficulté
    timer 1 1 msg $nick 7!pvstage 1  6----> entre 1 et 10,  7!pvstage 2  6----> entre 1 et 50, 
    timer 1 3 msg $nick 7!pvstage 3  6----> entre 1 et 100,  7!pvstage 4  6----> entre 1 et 250, 
    timer 1 5 msg $nick 7!pvstage 5  6----> entre 1 et 500,  7!pvstage 6  6----> entre 1 et 1000, 
    timer 1 7 msg $nick 7!pvstage 7  6----> entre 1 et 5000,  7!pvstage 8  6----> entre 1 et 10000, 
    timer 1 9 msg $nick 7!pvstage 9  6----> entre 1 et 15000,  7!pvstage 10  6----> entre 1 et 100000.
    timer 1 11 msg $nick 7!stage perso <max>  6----> entre 1 et le nombre max déterminé.
    timer 1 13 msg $nick 7!scorepvnombre  6pour connaître le nombre d'essai, 7!pvreset  6pour recommencer la partie. Amusez vous bien =)  12By Shirya
  timer 1 15 msg $nick 6Le jeu commence dès lors que vous entrez un nombre. Si aucun stage n'est sélectionné, le stage par défaut sera activé, soit le stage 1 }
  if ($1 == !scorepvnombre) { msg $nick 6 nombre de tentatives: 4 $hget(pvnombre,$nick $+ essai)
    msg $nick 6 Stage : 4 $hget(pvnombre,$nick $+ stage) 6Intervalle 1 à $hget(pvnombre,$nick $+ intervalle $+ )
  }
  if ($1 isalnum ) { hadd -m pvnombre $nick $+ propose $1
    if (!$hget(pvnombre,$nick $+ intervalle)) { hadd -m pvnombre $nick $+ essai 0 | hadd -m pvnombre $nick $+ stage 1 | hadd -m pvnombre $nick $+ intervalle 10 | msg $nick 7 $+ $nick $+  : 6 Stage 1 SELECTIONNE (1 à 10) }
    if (!$hget(pvnombre,$nick $+ pvnombredevine)) hadd -m pvnombre $nick $+ pvnombredevine $rand(1, $hget(pvnombre,$nick $+ intervalle) )
    if ($hget(pvnombre,$nick $+ propose) <= $hget(pvnombre,$nick $+ intervalle)) {
      if ($hget(pvnombre,$nick $+ propose) == 0) { timer 1 1 msg $nick 7 $+ $nick $+  : 4 uh? Dis donc, tu connais les règles? }
      if ($hget(pvnombre,$nick $+ propose) > $hget(pvnombre,$nick $+ pvnombredevine)) { hinc pvnombre $nick $+ essai | timer 1 1 msg $nick 6 Le nombre à trouver est plus  9 petit! 6 Nombre de tentatives: 4 $hget(pvnombre,$nick $+ essai) }
      if ($hget(pvnombre,$nick $+ propose) < $hget(pvnombre,$nick $+ pvnombredevine)) { hinc pvnombre $nick $+ essai | timer 1 1 msg $nick 6 Le nombre à trouver est plus  4 grand! 6 Nombre de tentatives: 4 $hget(pvnombre,$nick $+ essai) }
      if ($hget(pvnombre,$nick $+ propose) == $hget(pvnombre,$nick $+ pvnombredevine)) { hinc pvnombre $nick $+ essai | timer 1 1 msg $nick 12 UHUH ! AND THE WINNER IIIIIIIIIIIIIIIIS ? hehe 6 nombre de tentatives: 4 $hget(pvnombre,$nick $+ essai)  6 Stage : 9 $hget(pvnombre,$nick $+ stage)
        if ($hget(pvnombre,$nick $+ stage) == 10) { timer 1 3 msg $nick 6 OMFG... Ben j peu pas faire plus dur... =P Plus dur que ça, c'est le mariage... ^^
          hfree pvnombre | hfree pvstage
        msg $nick 6 Jeu des nombres programmé par 7 SHIRYA ! 6Merci d'avoir joué ! A bientôt :) RAPPEL: pour jouer sur le channel, faire:  4!nombre }
        else { timer 1 3 msg $nick 6 On change de stage maintenant :)
          hinc pvnombre $nick $+ stage
          if ($hget(pvnombre,$nick $+ stage) isnum 2-10) {
            hadd -m pvnombre $nick $+ essai 0 | hadd -m pvnombre $nick $+ intervalle $hget(pvStage,$v1)
            timer 1 5 msg $nick 6 Stage $v1 SELECTIONNÉ (1 à $hget(pvStage,$v1) $+ )
          hdel pvnombre $nick $+ pvnombredevine }
          else { hadd -m pvnombre $nick $+ essai 0 | hadd -m pvnombre $nick $+ intervalle 10 | timer 1 5 msg $nick 6 Stage 1 SELECTIONNE (1 à 10) | hdel pvnombre $nick $+ nombredevine }
          timer 1 9 hdel pvnombre $nick $+ trouver
        }
      }
    }
  }
  if ($1 == !pvreset) { hadd -m pvnombre $nick $+ essai 0 | hdel pvnombre $nick $+ pvnombredevine | msg $nick 6 Réinitialisation de votre partie. }
}
#pvnombre end

Conclusion :


Copier le fichier.mrc dans votre dossier mIRC du bot
Entrer dans le IRC du bot:

/load -rs nombrebotgame.mrc

Pour jouer sur le channel:
!nombre

pour jouer en PV:
!pvnombre (ecrire ceci directement dans la fenetre PV du bot)

Codes Sources

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.