Naheulbeuk dans votre bot ! :)

Soyez le premier à donner votre avis sur cette source.

Vue 9 158 fois - Téléchargée 687 fois

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

Ajouter un commentaire

Commentaires

Messages postés
5
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
7 octobre 2006

Bref ca work pas Encore lol


[07:00] <|on|> !survivaure
[07:00] <@Jkid3456> episode 1
[07:00] <@Jkid3456> episode 1
[07:00] <@Jkid3456> episode 1
[07:00] <|on|> !naheul
[07:00] <|on|> [06:42] <@Jkid3456> epis
[07:00] <@Jkid3456> episode 1
[07:00] <@Jkid3456> episode 1
[07:01] <@Jkid3456> episode 14
[07:01] <@Jkid3456> episode 14
[07:01] <@Jkid3456> episode 14
[07:01] <@Jkid3456> episode 14
Messages postés
1
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
21 juin 2006

Tu aurais pu préciser d'où venait l'idée et le mode de sélection des phrases... Tout cela vient du bot que j'ai écrit en Python et qui se trouve sur le site officiel du Donjon : http://art.naheulbeuk.com/divers.php Le code d'origine étant en GPL je trouve cela assez moyen que tu omettes ce genre de détail. D'autant plus que ta version est datée d'un an après la mienne.
Messages postés
126
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
6 janvier 2008

Les épisodes de Raflet d'acide (même auteurs) sont éxélent ossi :)
Messages postés
1
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
17 août 2005

idem pour moi en tapant !naheul 5fois sur 5 lignes episode 1 etc etc :( dommage ca avai l'air sympa
Messages postés
1
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
10 mai 2005

salut je dois etre tres nul parce que je n'arrive pas a le faire aller quand je tape !naheul il me met episode1 sur plusieur ligne , j'ai du faire un connerie alors si quelqu un peut me dire commant faire ce serait cool
Afficher les 27 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.