begin process at 2012 02 11 14:49:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

AddOns

 > UNE COMMANDE POUR AJOUTER VOS BLAGUE

UNE COMMANDE POUR AJOUTER VOS BLAGUE


 Information sur la source

Note :
Aucune note
Catégorie :AddOns Classé sous :Addblagues, Ajout-de blague, Commande-de blague, Blague, Blagues Niveau :Débutant Date de création :27/10/2007 Date de mise à jour :28/10/2007 18:44:56 Vu / téléchargé :3 949 / 47

Auteur : minerbe

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Une commande pour ajouter des blagues. Bon je sais c'est le truc banal mais ce code est entierement modifiable. Il peut aussi bien servir pour des news, ou pour des autres idées.

Source

  • On *:TEXT:*:#salon:{
  • If ($strip($1) == !blagues) { var %o 1 | While (%o <= $lines(blagues.txt)) { $+(.,timer,.,$nick,.,%o) 1 1 .notice $nick 4n° $+ %o $+ : $read(blagues.txt,%o) | inc %o } }
  • Elseif ($strip($1) == !del) { if $nick isop $chan { Write -dl $+ $2 blagues.txt | msg $chan 14[13B14lague 13E14ffacée13] } }
  • Elseif ($strip($1) == !add) { Write blagues.txt le $date(dd/mm/yy) $+ , $+ a $time $+ 12 $2- 4[ $+ $nick $+ ] | msg $chan 14[13B14lague 13A14joutée13] }
  • elseif ($strip($1) == !blague-aide) {
  • notice $nick 1Pour lire les blagues: 4!blagues
  • notice $nick 1Pour ajouter une blagues: 4!add [message] 1(sans crochets)
  • notice $nick 1Pour effacer une blagues (seulement pour les op): 4!del [numero du news a effacer]
  • notice $nick 1Cette commande a était mise a votre disposition pour vous distraire. 4Merci de ne pas en abuser et merci de ne pas flooder le bot.
  • }
  • }
On *:TEXT:*:#salon:{
  If ($strip($1) == !blagues) { var %o 1 | While (%o <= $lines(blagues.txt)) { $+(.,timer,.,$nick,.,%o) 1 1 .notice $nick 4n° $+ %o $+ : $read(blagues.txt,%o) | inc %o } }
  Elseif ($strip($1) == !del) { if $nick isop $chan { Write -dl $+ $2 blagues.txt | msg $chan 14[13B14lague 13E14ffacée13] } }
  Elseif ($strip($1) == !add) { Write blagues.txt le $date(dd/mm/yy) $+ ,  $+ a $time $+ 12 $2- 4[ $+ $nick $+ ] | msg $chan 14[13B14lague 13A14joutée13] }
  elseif ($strip($1) == !blague-aide) {
    notice $nick 1Pour lire les blagues: 4!blagues
    notice $nick 1Pour ajouter une blagues: 4!add [message] 1(sans crochets)
    notice $nick 1Pour effacer une blagues (seulement pour les op): 4!del [numero du news a effacer]
    notice $nick 1Cette commande a était mise a votre disposition pour vous distraire. 4Merci de ne pas en abuser et merci de ne pas flooder le bot.
  }
}

 Conclusion

J'espère que sa aidera aumoin une personne ^^.

Je vous ai mit tout sa dans une petite remote ^^

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

28 octobre 2007 18:44:56 :
J'ai changer le On *:TEXT:*:#tchat-online:{ par On *:TEXT:*:#salon:{ vue que sa n'avait pas plus, pour le reste je le ferais un peux plutard, merci

 Sources du même auteur

S'ENREGISTRER AUPRÈS DE SON BOT
SYSTEM DE NEWS
COMMANDE DE PING POUR BOT

 Sources de la même categorie

PACMAN MULTI-JOUEUR EN LIGNE par wims
PROXY&SOCKS SCANNER+LEECHER par independentt
GESTIONNAIRE DE HIGHLIGHT AVANCÉ AVEC IGNORE SALON OU PSEUDO par doob666
AUTOJOIN HTABLE MULTISERVER par doob666
TCL - AJOUT SUPPRESSION DE LOGS par Atok

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ANTI -INSULTES, BLAGUES ET AUTO-REPONSES DIVERSES par J4Gu4R

Commentaires et avis

Commentaire de RCA ArKanis le 28/10/2007 00:35:36

bon, je fais le boulet mais bon ...

ça marche comment ? aucune aide ...
je tape !blagues, !add, !blgue-aide, rien ne se passe, comment ça se fait ?!

TOUT SIMPLEMENT PARCE QUE JE NE SUIS PAS SUR TCHAT-ONLINE !!!

le nom du fichier dans le .zip est script14.ini, tu n'aurais pas pu nous choissir un nom un peu mieux ?! visiblement non

si je tape !blague-aide , ton bot risque très fortement de partir en excess flood (oui j'ai dit TON bot, car qui voudrait d'un bot codé comme ça ?). "Merci de ne pas flooder le bot", c'est à toi et non à nous de gérer ça :/ A partir d'une bonne dizaine de blagues les chances sont grandes ... le nom du timer est très mal adapté : un "$+(.timerblague.,%o)" aurait été largement plus adapté pour ne pas flooder.

pour ta première boucle, fix une variable contenant le nombre de lignes du fichier, histoire de ne pas devoir le réévaluer à chaque fois ...

En plus d'être mal codé, il y a des fautes de grammaire/orthographe : "une blagues", mais tu plaisantes là ou quoi ?

u lieu de metre 150 fois ton $strip($1-), mets ce bout de code dès la 2e ligne :
tokenize 32 $strip($1-)

bonne continuation, en espérant que tu aies le temps de lire ce message avant la suppression de la source

Commentaire de Doudis le 28/10/2007 01:11:44

Ton code on voit que tu ne la pas relu deux fois avant de poster ; tu oublie les cases pour définir la couleur a plusieurs reprises (ctrl+k).

Pourquoi tu définit un canal particulier (#tchat-online)

tu aurai pu mettre sa : On *:TEXT:*:#:  

Ou tu aurais pu crée une variable pour définir le salon  , au lieu de chercher dans son script le code a modifier.

Et je ne vois pas la grande utilité de crée un fichier zip pour un si petit code !!! :-o

Commentaire de uaip le 28/10/2007 01:13:31

erf... j'avoue c'est pas cool comme commentaire... m'enfin, faut quand même préciser que minerbe code depuis très peu de temps, donc comparé à ce qu'il me demandait ya quelques semaines, je suis plutot surpris. arkanis, je comprends que comparé a tes codes (sockets, binvars, etc) ceci est un peu ridicule, mais il faut laisser sa chance aux nouveaux. [et je précise que ce n'est pas minerbe qui m'envoie, jsuis venu faire mon ptit tour habituel du site ^^].
bref, comme l'a dit arkanis, c'est a toi (minerbe) de gérer l'excess flood. fait en sorte que la commande !blague-aide ne puisse etre faite que toutes les 2min par exemple.

<quote>
ça marche comment ? aucune aide ...
je tape !blagues, !add, !blgue-aide, rien ne se passe, comment ça se fait ?!

TOUT SIMPLEMENT PARCE QUE JE NE SUIS PAS SUR TCHAT-ONLINE !!!
</quote>

MDR ! c'est vrai que ce n'est qu'un détail, mais quand on poste sur un site, il faut penser a tout. enfin voila... arkanis a tout dit en fait, je venais juste rajouter mon grain de sel.
bonne continuation

Commentaire de wims le 28/10/2007 01:32:58

Moi aussi je vais poster pour poster vous allez voir

Commentaire de TropNul le 28/10/2007 10:41:02

Juste pour t'aider un peu:

On $*:Text:/^(!(blague|del(?:\s\d{1,})|add(?:\s[^$]{150,})|blague-aide)$)/Si:*:{
  Var %e = $regml(2)
  If (!%busy) {
    Set -u7 %busy 1
    If (%e == blague) {
      .Timer 1 2 .Notice $nick $read(blagues.txt)
    }
    ElseIf (%e == del) {
      If ($nick isop $chan) && ($strip($2) <= $lines(blagues.txt)) {
        Write -dl $+ $v1 blagues.txt
        Msg $chan [Blague Effacée]
      }
    }
    ElseIf (%e == add) {
      Write blagues.txt Le $date(dd/mm/yy) a $time : $2- [ $+ $nick $+ ]
      Msg $chan [Blague Ajoutée]
    }
    ElseIf (%e == blague-aide) {
      Var %com = .Notice $nick
      .Timer 1 1 %com Pour lire une blague au hasard: !blague
      .Timer 1 2 %com Pour ajouter une blague: !add [message] (sans crochets)
      .Timer 1 4 %com Pour effacer une blague (seulement pour les op): !del [numero]
      .Timer 1 5 %com Cette commande a ete mise a votre disposition pour vous distraire.
      .Timer 1 7 %com Merci de ne pas en abuser et merci de ne pas flooder le bot.
    }
  }
  Else {
    .Notice $nick Veuillez patienter quelques secondes et reessayez ...
  }
}

Je ne l'ai pas commente volontairement afin que tu fasses l'effort de recherche/comprehension des differentes techniques d'optimisations dont j'ai fait usage. Dans le meilleur des cas, j'aurais aussi inclus un chti dialog pour plus d'interaction utilisateur/source. Maintenant, a toi de jouer :p.

Par contre, la prochaine fois, utilises un tagX pour demander un/plusieurs conseils sur comment ameliorer ta source avant de la poster en tant que source. Le forum de ce site est un tres bon endroit d'ailleurs.

Commentaire de RCA ArKanis le 28/10/2007 11:14:16

je ne compare(rai) jamais une source à l'une des miennes, parce que le bilan serait très largement faussé.

En niveau débutant, tous les codes devraient tendre vers celui-ci :
http://www.ircfr.com/codes/RANDOM-REPLACE_44231.aspx

j'attends juste d'un code qu'il soit FINI, relativement bien codé, qu'il fonctionne, et qu'il soit un minimum bien présenté, si possible avec de l'aide pour savoir comment il faut s'y prendre
j'ai beau relire cette page, je ne trouve rien de tout ça

Sinon, tu as testé ton regex TropNul ?
moi oui, il fonctionne pas (essaye !add par exemple)
essaye directement ça : /^(!(blague|del(\s\d{1,})|add(\s.{1,150})|blague-aide)$)/Si
le ?: est inutile ici, non ? après par contre tu dois faire var %e = $gettok($regml(1),1,32)
et au passage, je pense que tu pourrais monter le 150 jusqu'à 800-900, limite de caractères qui peuvent être contenus dans une variable. Si tu as le temps, cherche la limite de caractères imprimable en une fois sur un salon et prends cette limite :)

Commentaire de TropNul le 28/10/2007 12:00:42

Pour ce pattern:

/^(!(blague|del(?:\s\d{1,})|add(?:\s[^$]{150,})|blague-aide)$)/Si

de taper seulement '!add par exemple' ne fonctionnera evidement pas etant donne la limite de caractere imposee a 150. Donc il faut faire quelque chose de la sorte '!add un truc plus long que cent cinquante caractere' pour que ca match.

J'ai mis le (?:) car je n'ai pas besoin de capturer la suite. Ainsi, avec simplement $regml(2) on retrouve la commande voulue. Bien sur, de ne pas mettre de (?:) et par la suite de faire var %e = $gettok($regml(1),1,32) fonctionnera tout aussi bien :).

Je vais meme aller plus loin a present en proposant ce pattern pour palier aux scripts ayant des addons de couleurs chiants !

/^((?:\s*?)!(blague|del(?:\s\d{1,})|add(?:\s[^$]{150,})|blague-aide)$)/Si

Ceci fait, meme si un script d'input fait cela: '<quelques.espace.ici>!blague', le pattern matchera.

Pour en revenir a la limite de caractere, on pourrait mettre de 150 a 920 mais etant donne que le serveur lui meme tronquera le texte recu par le bot, j'ai donc impose que la limite inferieur.

:)

Commentaire de TropNul le 28/10/2007 12:10:27

Oula, voila une chose bizarre:

//echo -a $regex(     !add super,/^((?:\s*?)!(blague|del(?:\s\d{1,})|add(?:\s[^$]{5,})|blague-aide)$)/i) | //echo -a $regml(2)

renvoit:
1
add super

Damned!

Donc, en effet, il ne faut pas mettre de (?:) si ensuite on fait ceci (pattern(?:pattern)pattern) ! lol, honte a moi !

Du coup, le pattern devient:

/^((?:\s*?)!(blague|del(\s\d{1,})|add(\s[^$]{150,})|blague-aide)$)/Si)

et faudra bien sur mettre var %e = $gettok($regml(2),1,32) par la suite.

donc le code devient:

On $*:Text:/^((?:\s*?)!(blague|del(\s\d{1,})|add(\s[^$]{150,})|blague-aide)$)/Si:*:{
  Var %e = $gettok($regml(2),1,32)
  If (!%busy) {
    Set -u7 %busy 1
    If (%e == blague) {
      .Timer 1 2 .Notice $nick $read(blagues.txt)
    }
    ElseIf (%e == del) {
      If ($nick isop $chan) && ($strip($2) <= $lines(blagues.txt)) {
        Write -dl $+ $v1 blagues.txt
        Msg $chan [Blague Effacée]
      }
    }
    ElseIf (%e == add) {
      Write blagues.txt Le $date(dd/mm/yy) a $time : $2- [ $+ $nick $+ ]
      Msg $chan [Blague Ajoutée]
    }
    ElseIf (%e == blague-aide) {
      Var %com = .Notice $nick
      .Timer 1 1 %com Pour lire une blague au hasard: !blague
      .Timer 1 2 %com Pour ajouter une blague: !add [message] (sans crochets)
      .Timer 1 4 %com Pour effacer une blague (seulement pour les op): !del [numero]
      .Timer 1 5 %com Cette commande a ete mise a votre disposition pour vous distraire.
      .Timer 1 7 %com Merci de ne pas en abuser et merci de ne pas flooder le bot.
    }
  }
  Else {
    .Notice $nick Veuillez patienter quelques secondes et reessayez ...
  }
}

encore desole :s

Commentaire de TropNul le 28/10/2007 12:11:59

Tiens une remarque qui me taraude ...

Ce serait bien qu'on puisse editer un de nos commentaires :D

Commentaire de RCA ArKanis le 28/10/2007 12:28:23

Encore un détail :
si le bot déco pendant les 7 secondes, il ne te sera plus jamais possible de taper !blague ou tout autre commande
tu devrais donc par exemple passer par des hash tables ou implémenter un système qui vide %busy 7 sec après la fois qu'une personne ait tapé !add, busy ou pas

quand il n'y a qu'une action, tu devrais mettre tout en une ligne
exemple avec le dernier else :
else .notice $nick Veuillez patienter ...
tu peux le faire 2 fois dans le code, et tu gagnes 4 lignes

Commentaire de minerbe le 28/10/2007 18:43:36

Euh franchement merci:

-Déjà arkanis je te comprend pas -_- comme a dit uaip je commence deja depuis peux en plus quand tu dit:
ça marche comment ? aucune aide ...
je tape !blagues, !add, !blgue-aide, rien ne se passe, comment ça se fait ?!

TOUT SIMPLEMENT PARCE QUE JE NE SUIS PAS SUR TCHAT-ONLINE !!!

Faut pas etre boulet pour savoir que tchat-online c'est le salon et je m'excuse pour l'avoir laisser je l'ai pas vue.

Et merci TropNul, je vais pouvoir améliorer tout sa =].

Commentaire de minerbe le 28/10/2007 19:24:14

On $*:Text:/^((?:\s*?)!(blague|del(\s\d{1,})|add(\s[^$]{150,})|blague-aide)$)/Si:*:{
  Var %e = $gettok($regml(2),1,32)
  If (!%busy) {
    Set -u7 %busy 1
    If (%e == blague) {
      .Timer 1 2 .Notice $nick $read(blagues.txt)
    }
    ElseIf (%e == del) {
      If ($nick isop $chan) && ($strip($2) <= $lines(blagues.txt)) {
        Write -dl $+ $v1 blagues.txt
        Msg $chan [Blague Effacée]
      }
    }
    ElseIf (%e == add) {
      Write blagues.txt Le $date(dd/mm/yy) a $time : $2- [ $+ $nick $+ ]
      Msg $chan [Blague Ajoutée]
    }
    ElseIf (%e == blague-aide) {
      Var %com = .Notice $nick
      .Timer 1 1 %com Pour lire une blague au hasard: !blague
      .Timer 1 2 %com Pour ajouter une blague: !add [message] (sans crochets)
      .Timer 1 4 %com Pour effacer une blague (seulement pour les op): !del [numero]
      .Timer 1 5 %com Cette commande a ete mise a votre disposition pour vous distraire.
      .Timer 1 7 %com Merci de ne pas en abuser et merci de ne pas flooder le bot.
    }
  }
  Else {
    .Notice $nick Veuillez patienter quelques secondes et reessayez ...
  }
}

Euh je crois que sa a un petit probleme je l'ai tester sa ne marche pas. J'ai un leger doute sur le $*:Text:/^((?:\s*?)!(blague|del(\s\d{1,})|add(\s[^$]{150,})|blague-aide)$)/Si:*:{
et sur les (%e == add) (%e == del) ...

Désolé si c'est évidant pour vous sa ne l'est pas pour moi ...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

probleme fichier.txt [ par Bioxyd ] Bonsoir tout le monde   <p class="


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,633 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales