Naheulbeuk dans votre bot ! :)

Description

Ce script permet de faire dire a votre bot les citations de la fameuse saga du "Donjon de Naheulbeuk" vu les paroles loufoques des personnages c'est assez sympa. :)

[Mise a jour : Les deux premiers episodes de la saga Survivaure sont egalement integrer a present!! :) ]

Ces citations sont dites de differentes manieres:

1er : le bot reagit seul sans aucune commande donnee par un utilisateur. lors d'un "On text" le bot choisit un nombre entre 1 et 122 ce qui peut donner un caractère ascii. Si ce caractere est dans le nick de la personne qui a parler le bot reagit sinon il reste silencieux.J'ai choisit de 1 a 122 pour eviter quer le bot ne reagissent trop souvent a vous de mettre une marge plus grande ou meme plus petite ( de 97 a 122 pour uniquement l'alphabet (pas de reconnaissance de "casse" donc pas d'inquietude pour les majuscule/minuscule)). ou alors meme rajouter une condition afin qu'il faille deux lettres dans le nick pour qu il reagissent mais la c est fort improbable :) bref a vous de jouer :)

Ensuite le bot peut reagir a toute commande comportant : "parle $me " a ce moment le bot donnera cinq phrase d un episode au hasard ( 14 tout de meme :) ) Si la commande est entree dans les 20 secondes le bot prend les 5 phrases suivante sinon il change d episode (au hasard) et reprend cinq ligne.
Lorsqu'il dit une citation au hasard toute une procedure est mise en place afin que le nom des personnages devant la citation soit supprime (evidemment comme la syntaxe est differente d'un episode a l'autre...)

PS. Mise à jour du script afin de remedié à quelque bug mineur. On était heureux.... on l'est encore plus! ;)

Source / Exemple :


; ---------------------------------------------------
; ---------- Bot script Naheulbeuk sentence ---------
; ---------------------------------------------------

on *:LOAD:{
  /echo 12 Botscript Naheulbeuk sentence Enjoy!! :)
  /echo Pour faire parler le bot taper !naheul !survivaure
  /set %nyctimer off
  /set %Surtimer off
}

On *:TeXT:*:#:{
  If ($me == Nyctalope) {
    If ($me isin $$1-) {
      If (salope isin $$1-) { /msg # Et meme pas je suis pas une salope!! Je suis $me je vois In ze Night!... | /halt }
    }
  }
  if (!naheul isin $$1-) {
    if (%nyctimer == off) {
      /set %episode $rand(1,15)
      /set %nycligne $rand(1,$lines(c:/nyctalope/Pen of Chaos_Le Donjon de Naheulbeuk $+ %episode $+ .txt))
      /set %nyclignetest $lines(c:/nyctalope/Pen of Chaos_Le Donjon de Naheulbeuk $+ %episode $+ .txt)
      if (%nycligne > %nyclignetest - 5) { %nycligne = %nycligne - 5 } 
      /set %nycsay %nycligne + 5
      while ( %nycligne < %nycsay) {
        /msg # $read(Pen of Chaos_Le Donjon de Naheulbeuk $+ %episode $+ .txt,%nycligne) $+ $chr(32) $+ 12 episode %episode
        /inc %nycligne
      }
      /set %nyctimer on
      /timernyc 1 25 /set %nyctimer off
      /halt
    }
    else {
      /timernyc off
      /set %nycsay %nycligne + 5
      while ( %nycligne < %nycsay) {
        if (%nycligne == %nyclignetest) { /msg # episode %episode finit!<djingle de fin> | /set %nyctimer off | /halt }
        /msg # $read(Pen of Chaos_Le Donjon de Naheulbeuk $+ %episode $+ .txt,%nycligne) $+ $chr(32) $+ 12 episode %episode
        /inc %nycligne
      }
      /timernyc 1 25 /set %nyctimer off
      /halt
    }
  }
  if (!survivaure isin $$1-) {
    if (%Surtimer == off) {
      set %Surepisode $rand(1,2)
      set %Surligne $rand(1,$lines(c:/nyctalope/episode0 $+ %Surepisode $+ .txt))
      set %Surlignetest $lines(c:/nyctalope/episode0 $+ %Surepisode $+ .txt)
      if (%Surligne > %Surlignetest - 5) %Surligne = %Surligne - 5 
      set %Sursay %Surligne + 5
      while ( %Surligne < %Sursay) {
        /msg # $read(episode0 $+ %Surepisode $+ .txt,%Surligne) $+ $chr(32) $+ 12 episode %Surepisode
        inc %Surligne
      }
      set %Surtimer on
      /timerSur 1 25 /set %Surtimer off
      /halt
    }
    else {
      /timerSur off
      set %Sursay %Surligne + 5
      while ( %Surligne < %Sursay) {
        if (%Surligne == %Surlignetest) { /msg # episode %Surepisode finit!<djingle de fin> | /set %surtimer off | /halt }
        /msg # $read(episode0 $+ %Surepisode $+ .txt,%Surligne) $+ $chr(32) $+ 12 episode %Surepisode
        inc %Surligne
      }
      /timerSur 1 25 /set %Surtimer off
      /halt
    }
  }

  ;if (parle moi $me isin $$1-) {
  ; set %episode $rand(1,14)
  ;set %nycsay %nycligne + 5
  ;while ( %nycligne < %nycsay) {
  ; /msg $nick $read(Pen of Chaos_Le Donjon de Naheulbeuk $+ %episode $+ .txt,%nycligne) $+ $chr(32) $+ 12 episode %episode
  ; inc %nycligne
  ;}
  ;/halt
  ;}
  set %nychasard $chr($rand(1,122))
  set %nychasard2 $chr($rand(1,122))
  set %episodehasard $rand(1,15) 
  set %nyclignehasard $rand(1,$lines(c:/nyctalope/Pen of Chaos_Le Donjon de Naheulbeuk $+ %episode $+ .txt))
  set %Surlignehasard $rand(1,$lines(c:/nyctalope/episode0 $+ %Surepisode $+ .txt))
  set %nycouSurv $rand(1,2)
  if (%nychasard isin $nick) { 
    If ($len($nick) > 5 ) {
      if (%nychasard2 isin $nick) { 
        if (%episodehasard > 2) /nycrem
        else /survrem 
      }   
    }
    else {
      if (%episodehasard > 2) /nycrem
      else /survrem
    } 
  }
}

alias nycrem {
  set %nycphrase $read(Pen of Chaos_Le Donjon de Naheulbeuk $+ %episode $+ .txt,%nyclignehasard)
  if (Le Nain : isin %nycphrase) %nycphrase = $remove(%nycphrase,Le Nain :)
  elseif (Nain    : isin %nycphrase) %nycphrase = $remove(%nycphrase,Nain :)
  elseif (Nain : isin %nycphrase) %nycphrase = $remove(%nycphrase,Nain :)
  if (Le barbare : isin %nycphrase) %nycphrase = $remove(%nycphrase,Le Barbare :)
  elseif (Barbare : isin %nycphrase) %nycphrase = $remove(%nycphrase,Barbare  :)
  elseif (Barbare : isin %nycphrase) %nycphrase = $remove(%nycphrase,barbare : )
  if (Le ranger : isin %nycphrase) %nycphrase = $remove(%nycphrase,Le ranger :)
  elseif (Ranger  : isin %nycphrase) %nycphrase = $remove(%nycphrase,Ranger   :)
  elseif (ranger : isin %nycphrase) %nycphrase = $remove(%nycphrase,Ranger :)
  if (La Magicienne : isin %nycphrase) %nycphrase = $remove(%nycphrase,La Magicienne :)
  elseif (magicienne : isin %nycphrase) %nycphrase = $remove(%nycphrase,Magicienne :)
  if (Le Voleur : isin %nycphrase) %nycphrase = $remove(%nycphrase,Le Voleur :)
  elseif (voleur : isin %nycphrase) %nycphrase = $remove(%nycphrase,Voleur :)
  if (aventurier : isin %nycphrase) %nycphrase = $remove(%nycphrase,Aventurier :)
  if (L'Elfe : isin %nycphrase) %nycphrase = $remove(%nycphrase,L'Elfe :)
  elseif (Elfe    : isin %nycphrase) %nycphrase = $remove(%nycphrase,Elfe :)
  elseif (elfe : isin %nycphrase) %nycphrase = $remove(%nycphrase,Elfe :)
  if (L'Ogre : isin %nycphrase) %nycphrase = $remove(%nycphrase,L'Ogre :)
  elseif (ogre : isin %nycphrase) %nycphrase = $remove(%nycphrase,ogre :)
  elseif (Ogre    : isin %nycphrase) %nycphrase = $remove(%nycphrase,Ogre :)
  if (mago : isin %nycphrase) %nycphrase = $remove(%nycphrase,Mago :)
  elseif (Mago    : isin %nycphrase) %nycphrase = $remove(%nycphrase,Mago :)
  if (zangdar : isin %nycphrase) %nycphrase = $remove(%nycphrase,zangdar :)
  if (Reivax  : isin %nycphrase) %nycphrase = $remove(%nycphrase,Reivax   :)
  if ( Démon  : isin %nycphrase) %nycphrase = $remove(%nycphrase,Démon    :)
  if (Le Serviteur : isin %nycphrase) %nycphrase = $remove(%nycphrase,Le Serviteur :)
  if (Menestrel   : isin %nycphrase) %nycphrase = $remove(%nycphrase,Menestrel    :)
  if (La vendeuse : isin %nycphrase) %nycphrase = $remove(%nycphrase,La vendeuse :)
  if (L'ange : isin %nycphrase) %nycphrase = $remove(%nycphrase,L'ange :)
  if (Le groupe : isin %nycphrase) %nycphrase = $remove(%nycphrase,Le groupe :)
  if ( <Tous en même temps> : isin %nycphrase) msg # $remove(%nycphrase,<Tous en même temps> :)
  if ( Le Troll : isin %nycphrase) msg # $remove(%nycphrase,Le Troll :)
  if (    Une Lyche : isin %nycphrase) %nycphrase = $remove(%nycphrase,La lyche :)
  if ( <echo> : isin %nycphrase) msg # $remove(%nycphrase,<echo> :)
  else msg # %nycphrase
}
alias Survrem {
  set %Surphrase $read(episode0 $+ %Surepisode $+ .txt,%Surlignehasard)
  if (Bleûten : isin %Surphrase) %Surphrase = $remove(%Surphrase,Bleûten :)
  if (Johnson : isin %Surphrase) %Surphrase = $remove(%Surphrase,Johnson :)
  if (Ordinateur : isin %Surphrase) %Surphrase = $remove(%Surphrase,Ordinateur :)
  if (Mac Gregor : isin %Surphrase) %Surphrase = $remove(%Surphrase,Mac Gregor :)
  if (Tout l'équipage : isin %Surphrase) %Surphrase = $remove(%Surphrase,Tout l'équipage :)
  if (Sabrovitch : isin %Surphrase) %Surphrase = $remove(%Surphrase,Sabrovitch :)
  if (Eagle : isin %Surphrase) %Surphrase = $remove(%Surphrase,Eagle :)
  if (Hans : isin %Surphrase) %Surphrase = $remove(%Surphrase,Hans :)
  if (Droïde : isin %Surphrase) %Surphrase = $remove(%Surphrase,Droïde :)
  if (Extra-terrestre : isin %Surphrase) %Surphrase = $remove(%Surphrase,Extra-terrestre :)
  else msg # %Surphrase
}

; --------------------------------------------------------------------
; ------------ EOF Botscript Naheulbeuk sentence by Womby ------
; -------------------------------------------------- -----------------

Conclusion :


Pour des questions(ou meme des bugs! :) ) ou autre jonthewombat@hotmail.com j'y repondrai dans la mesure du possible.
je join les episodes au zip comme ca pas besoin de chercher ;)

Si vous voulez voir ce que donne le script avant de le mettre en place n'hesitez pas a venir faire un petit tour sur undernet channel #drogenbos c'est Nyctalope :)

Les episodes et le script doivent etre dans le dossier de l'executable du Mircbot :)

Voila bon amusement :)

[Modification majeur]
Un bug a été supprimer grace a Nawak ;) ce dernier rendait impossible la recuperation des lignes dans les fichiers textes. je vous conseille donc de modifier votre script et vos fichiers texte par la meme occasion (changement des noms de fichiers)

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.