begin process at 2012 02 12 03:36:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Bots

 > SONDAGE: NOMBRE DE RÉPONSES ILLIMITÉ!

SONDAGE: NOMBRE DE RÉPONSES ILLIMITÉ!


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Bots Niveau :Débutant Date de création :15/07/2004 Date de mise à jour :16/07/2004 11:56:07 Vu :4 024

Auteur : calopsfr

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

 Description

voici le tout premier sondage (du moins je n'en ai pas vu ici, pardonnez moi si j'ai mal cherché) avec un nombre de réponses disponnibles illimité! au programme:
- nombre de reponses illimité
- temps imparti à definir
- un petit titre pour le fun

bientôt:
- les archives du sondage! chaque sondage restera en memoire dans la base de dnnées (pas en variables lol), avec son titre, son  auteur, la question et la réponse gagnante avec ses résultats et:
- les pourcentages!

euh par contre je 'nai aps pu tester ce sondage étant en vacances et n'ayant que le bloc notes à ma disposition, mais je suis presque sur de son bon fonctionnement. un seul detail que 'jai oublié... quand je fais les timers, je ne sais pas si je fais [timer temps repetition] ou [timer repetition temps]... j'ai opté pour la derniere sollution étant la plus logiue à mes yeux... testez le pour moi! (soyez indulgents, c'est que ma 4eme source et la plus approfondie)

au fait: je peux pas mettre de zip, y'a pas moyen sur cet ordi pourri ^^ plus tard peut etre, en attendant, tapez voius le code pour les interessés.

Source

  • on *:text:!sondage:#: {
  • if (%sond.start) { notice $nick Impossible de préparer un sondage, un est déjà en cours. }
  • else {
  • msg $nick Bien, $nick $+ , nous allons commencer le sondage. Si ca prend du temps, ne perds pas patience, nous enregistrons les données.
  • set %sond.nick $nick
  • set %sond.nick.host $address($nick, 5)
  • set %sond.start off
  • timer1 1 5 /question
  • }
  • }
  • alias question {
  • msg %sond.nick Pour commencer, tape la question à laquelle les personnes présentes dans le channel répondront.
  • set %sond.text question
  • }
  • on %sond.nick:text:*:?: {
  • if (%sond.text == question) validQuestion $1-
  • if (%sond.text == timer) validTimer $1
  • if (%sond.text == nbrep) validNbrep $1
  • if (%sond.text == reponse) validReponse $1-
  • if (%sond.text == titre) validTitre $1-
  • }
  • alias validQuestion {
  • set %sond.param.question $1-
  • msg %sond.nick Bien, la question est: $1-
  • msg %sond.nick Tape maintenant le temps en secondes au cours duquel les chatteurs devront répondre
  • set %sond.text timer
  • }
  • alias validTimer {
  • set %sond.param.timer $1
  • msg %sond.nick Parfait, le temps imparti est donc: $1
  • msg %sond.nick nous allons passer maintenant au nombre de réponses. Combien en veux-tu?
  • set %sond.text nbrep
  • }
  • alias validNbrep {
  • set %sond.param.nbquest $1
  • if ($1 == 1) msg %sond.nick Tu veux donc 1 réponse.
  • else msg %sond.nick Tu veux donc $1 réponses.
  • msg %sond.nick Tape donc ta première réponse.
  • set %sond.text reponse
  • }
  • alias validReponse {
  • inc %sond.numrep
  • set %sond.param.reponse. $+ %sond.numrep $1-
  • if (%sond.numrep == %sond.param.nbquest) {
  • msg %sond.nick C'était la dernière réponse à donner. Donne un titre à ton sondage.
  • set %sond.text titre
  • }
  • else {
  • msg %sond.nick Bien. Tape maintenant la réponse suivante. Il en reste $calc(%sond.param.nbquest-%sond.numrep) $+ .
  • }
  • }
  • alias validTitre {
  • set %sond.param.titre $1-
  • msg %sond.nick Tadaaaaaaaaaaaa!!!! Le questionnaire est maintenant fini, je n'attend plus que ton commandement pour lancer le sondage. Pour ce faire, tape !go sur le channel. Mais ne tarde pas, au bout de deux minutes, j'efface toutes les données si le sondage n'est pas commencé. 120... 119... 118...
  • set %sond.go ok
  • timer2 1 120 timeEnd
  • }
  • alias timeEnd {
  • notice %sond.nick Je t'avais prévenu, les deux minutes se sont écoulées. A pu les jolies données de %sond.nick !!!
  • unset %sond*
  • }
  • on %sond.nick:text:!go:#: {
  • set %sond.chan $chan
  • timer2 off
  • notice $nick Le sondage va commencer. Surtout, soit patient, le temps d'initialiser les données.
  • msg $chan Un sondage va bientôt commencer. Patientez un petit instant.
  • timer3 1 10 sondStart
  • }
  • alias sondStart {
  • msg %sond.chan %sond.nick $+ ( $+ %sond.nick.host $+ ) vous propose un petit sondage comportant 1 question et %sond.param.nbrep réponse(s).
  • msg %sond.chan Le sondage s'intitule: %sond.param.titre
  • msg %sond.chan La question est: %sond.param.question
  • msg %sond.chan Les réponses sont (veuillez patienter si chargement il y a):
  • questionListe
  • }
  • alias questionListe {
  • inc %i
  • msg %sond.chan %1 $+ ) %sond.param.reponse. $+ %i (tapez !sond %i $+ )
  • if (%i == sond.param.nbrep) {
  • msg %sond.chan Vous avez %sond.param.timer secondes pour répondre.
  • timer00 1 %sond.param.timer FinDuSondage
  • }
  • else {
  • questionListe
  • }
  • }
  • on *:text:!sond*:%sond.chan: {
  • if ($nick != %sond.nick) && (!%sond.avote. $+ $address($nick, 2)) {
  • set %sond.avote. $+ $address($nick, 4) a voté
  • notice $nick Merci d'avoir voté (ne pas recommencer, de toutes facons, c'est impossible).
  • inc %sond.param.reponse. $+ $2 $+ .vote
  • inc %sond.total
  • pourcentages
  • }
  • }
  • alias FinDuSondage {
  • msg %sond.chan Le sondage: %sond.param.titre est terminé!
  • msg %sond.chan Il était proposé par %sond.nick $+ ( $+ %sond.nick.host $+ )
  • msg %sond.chan La question était: %sond.param.question
  • msg %sond.chan Vous aviez %sond.param.timer secondes pour y répondre.
  • msg %sond.chan Voici les résultats (merci de patienter si chargement il y a)
  • resultats
  • }
  • alias resultats {
  • inc %a
  • msg %sond.chan %sond.param.reponse. $+ %a $+ .vote votes pour: %sond.param.reponse. $+ %a ( %sond.param.reponse. $+ %a $+ .pourcent
  • if (%sond.param.reponse. $+ %a $+ .vote > %sond.derniere.vote) {
  • set %sond.gagnante %a
  • }
  • set %sond.derniere.vote %sond.param.reponse. $+ %a $+ .vote
  • if (%a == %sond.param.nbrep) {
  • msg %sond.chan Avec %sond.param.reponse. $+ %sond.gagnante $+ .vote votes sur un total de %sond.total $+ ( $+ %sond.param.reponse. $+ %sond.gagnante $+ .pourcent $+ ) , la réponse: %sond.param.reponse. $+ %sond.derniere.vote l'emporte!
  • unset %sond.*
  • unset %a
  • unset %i
  • unset %b
  • }
  • else {
  • resultats
  • }
  • }
  • alias pourcentages {
  • inc %b
  • set %sond.param.reponse. $+ %b $+ .pourcent $calc($calc(%sond.param.reponse. $+ %b $+ .vote*100)/%sond.total)
  • if (%b != %sond.param.nbrep) {
  • pourcentages
  • }
  • }
on *:text:!sondage:#: {
  if (%sond.start) { notice $nick Impossible de préparer un sondage, un est déjà en cours. }
  else {
    msg $nick Bien, $nick $+ , nous allons commencer le sondage. Si ca prend du temps, ne perds pas patience, nous enregistrons les données.
    set %sond.nick $nick
    set %sond.nick.host $address($nick, 5)
    set %sond.start off
    timer1 1 5 /question
  }
}

alias question {
  msg %sond.nick Pour commencer, tape la question à laquelle les personnes présentes dans le channel répondront.
  set %sond.text question
}

on %sond.nick:text:*:?: {
  if (%sond.text == question) validQuestion $1-
  if (%sond.text == timer) validTimer $1
  if (%sond.text == nbrep) validNbrep $1
  if (%sond.text == reponse) validReponse $1-
  if (%sond.text == titre) validTitre $1-
}

alias validQuestion {
  set %sond.param.question $1-
  msg %sond.nick Bien, la question est: $1-
  msg %sond.nick Tape maintenant le temps en secondes au cours duquel les chatteurs devront répondre 
  set %sond.text timer
}

alias validTimer {
  set %sond.param.timer $1
  msg %sond.nick Parfait, le temps imparti est donc: $1
  msg %sond.nick nous allons passer maintenant au nombre de réponses. Combien en veux-tu?
  set %sond.text nbrep
}

alias validNbrep {
  set %sond.param.nbquest $1
  if ($1 == 1) msg %sond.nick Tu veux donc 1 réponse.
  else msg %sond.nick Tu veux donc $1 réponses.
  msg %sond.nick Tape donc ta première réponse.
  set %sond.text reponse
}

alias validReponse {
  inc %sond.numrep
  set %sond.param.reponse. $+ %sond.numrep $1-
  if (%sond.numrep == %sond.param.nbquest) {
    msg %sond.nick C'était la dernière réponse à donner. Donne un titre à ton sondage.
    set %sond.text titre
  }
  else {
    msg %sond.nick Bien. Tape maintenant la réponse suivante. Il en reste $calc(%sond.param.nbquest-%sond.numrep) $+ .
  }
}

alias validTitre {
  set %sond.param.titre $1-
  msg %sond.nick Tadaaaaaaaaaaaa!!!! Le questionnaire est maintenant fini, je n'attend plus que ton commandement pour lancer le sondage. Pour ce faire, tape !go sur le channel. Mais ne tarde pas, au bout de deux minutes, j'efface toutes les données si le sondage n'est pas commencé. 120... 119... 118...
  set %sond.go ok
  timer2 1 120 timeEnd
}

alias timeEnd {
  notice %sond.nick Je t'avais prévenu, les deux minutes se sont écoulées. A pu les jolies données de %sond.nick !!!
  unset %sond*
}

on %sond.nick:text:!go:#: {
  set %sond.chan $chan
  timer2 off
  notice $nick Le sondage va commencer. Surtout, soit patient, le temps d'initialiser les données.
  msg $chan Un sondage va bientôt commencer. Patientez un petit instant.
  timer3 1 10 sondStart
}

alias sondStart {
  msg %sond.chan %sond.nick $+ ( $+ %sond.nick.host $+ ) vous propose un petit sondage comportant 1 question et %sond.param.nbrep réponse(s).
  msg %sond.chan Le sondage s'intitule: %sond.param.titre
  msg %sond.chan La question est: %sond.param.question
  msg %sond.chan Les réponses sont (veuillez patienter si chargement il y a):
  questionListe
}

alias questionListe {
  inc %i
  msg %sond.chan %1 $+ ) %sond.param.reponse. $+ %i (tapez !sond %i $+ )
  if (%i == sond.param.nbrep) {
    msg %sond.chan Vous avez %sond.param.timer secondes pour répondre.
    timer00 1 %sond.param.timer FinDuSondage
  }
  else {
    questionListe
  }
}

on *:text:!sond*:%sond.chan: {
  if ($nick != %sond.nick) && (!%sond.avote. $+ $address($nick, 2)) {
    set %sond.avote. $+ $address($nick, 4) a voté
    notice $nick Merci d'avoir voté (ne pas recommencer, de toutes facons, c'est impossible).
    inc %sond.param.reponse. $+ $2 $+ .vote
    inc %sond.total
    pourcentages
  }
}

alias FinDuSondage {
  msg %sond.chan Le sondage: %sond.param.titre est terminé!
  msg %sond.chan Il était proposé par %sond.nick $+ ( $+ %sond.nick.host $+ )
  msg %sond.chan La question était: %sond.param.question
  msg %sond.chan Vous aviez %sond.param.timer secondes pour y répondre.
  msg %sond.chan Voici les résultats (merci de patienter si chargement il y a)
  resultats
}

alias resultats {
  inc %a
  msg %sond.chan %sond.param.reponse. $+ %a $+ .vote votes pour: %sond.param.reponse. $+ %a ( %sond.param.reponse. $+ %a $+ .pourcent
  if (%sond.param.reponse. $+ %a $+ .vote > %sond.derniere.vote) {
    set %sond.gagnante %a
  }
  set %sond.derniere.vote %sond.param.reponse. $+ %a $+ .vote
  if (%a == %sond.param.nbrep) {
    msg %sond.chan Avec %sond.param.reponse. $+ %sond.gagnante $+ .vote votes sur un total de %sond.total $+ ( $+ %sond.param.reponse. $+ %sond.gagnante $+ .pourcent $+ ) , la réponse: %sond.param.reponse. $+ %sond.derniere.vote l'emporte!
    unset %sond.*
    unset %a
    unset %i
    unset %b
  }
  else {
    resultats
  }
}

alias pourcentages {
  inc %b
  set %sond.param.reponse. $+ %b $+ .pourcent $calc($calc(%sond.param.reponse. $+ %b $+ .vote*100)/%sond.total)
  if (%b != %sond.param.nbrep) {
    pourcentages
  }
}

 Conclusion

si vous avez trouvé des erreurs, des oublis, ou des fautes de syntaxe, prevenez moi... si vous voyez que j'ai confindu question avec reponse ca m'arive souvent, dites moi ou et je rectifierai... sinon tout m'a l'air parfait.

(je sais qu'on aurait pu abreger la liste des reponses disponnibles avec un for, mais j'ai oublié la syntaxe... ^^ bete hein)

alors pour le fonctionnement:
on lance , si y'en a pas deja un enc orus ou en preparation avec !sondage
le bot comence le formulaire en privé, demande la question, le nombre de reponses, le timer, puis les reponses, et enfin le titre.
on donne sa voix avec !sond <num de la reponse>
inutile d'essayer de voter plusieurs fois, l'host est enregistré et le createur du sondage n'a pas le droit non plus.

PS: si j'ai mis des trucs comme quoi y'a un chargement, ca depend du serveur, si il met du temps à faire ca ou pas... perso, sur le mien (pas celui ou je suis hein, l'autre) ca devrait ramer un peud e temps ent emps... pis ca fait fun, "patientez pendant le chargement"... ca fait serieux. bon, assez de blabla, passons aux commentaires.


 Historique

16 juillet 2004 11:36:23 :
correction d'un petit bug sur la variable %sond.start
16 juillet 2004 11:56:07 :
rajout des pourcentages et correction de bugs

 Sources du même auteur

Source avec une capture EXPLOITATION D'UN DIALOG, EXEMPLE : RECHERCHER AVEC GOOGLE
Source avec Zip CREATION, GESTION ET EXPLOITATION D'UN SYSTEME DE SCORES AVE...
LIVRE D'OR EN HASHTABLES, MES PREMIERES
POUR BOTS: SONDAGE COMPLET AVEC CHOIX DU NOMBRE DE QUESTIONS
MA SECONDE SOURCE: JEU POUR BOT: DEVINEZ L'ANIMAL!!

 Sources de la même categorie

Source avec Zip GESTION.BOT V2.0 FINAL par aliassangelius
EXEMPLE DE TCL EN DCC par aliassangelius
Source avec Zip SERVICE GEOFRONT (PERL) par iZyTeHPariaH
Source avec Zip TCL EGGDROP par aliassangelius
ANIMATION POUR BOT par michounou

Commentaires et avis

Commentaire de calopsfr le 15/07/2004 13:09:48

au fait: mon autre source avec choix du nombre de questions est un fiasco total, je 'lavais completement oublié, celle la... scusez moi ^^ en plus j'ai encore confondu questiosn et reponses... halala...

Commentaire de PaDa le 15/07/2004 15:15:47

pas testé j'avoue... ca m'a l'air codé correctement même si vaut mieux mettre ".timer" au lieu de "timer" pour ne pas avoir des affichages de timer dans tous les sens ...
tu peux remplacer ceci :
    if ($1 == 1) msg %sond.nick Tu veux donc 1 réponse.
    else msg %sond.nick Tu veux donc $1 réponses.
par ceci :
  msg %sond.nick Tu veux donc $1 réponse $+ $iif($1 > 1,s) $+ .
Je te dirai le reste si je teste :)

Commentaire de calopsfr le 15/07/2004 16:21:04

hum je ne connaissait pas la fonction $iif()... merci du renseignement, j'ne prend note!

Commentaire de winwarrior le 15/07/2004 17:20:04

Et ben c'est du déja vu =]
Utilise les hash table plutot que plein de /set
Sinon le reste m'a l'air correct ... un petit dialogue sertait super!!

Bonne continuation.

Commentaire de tempusus le 15/07/2004 17:32:49 administrateur CS

j'avoue, pas testé non plus pour le moment :p

Il m'a aussi l'air correct cependant il n'est pas commenté :/ rappellez vous que certains n'ont pas votre niveau et aimeraient pouvoir comprendre la source sans devoir chercher des heures :). Bon ok, j'accorde qu'il y a beaucoup detexte dans ta source ce qui la rend assez comprehensible mais bon...

7/10 pour le moment, j'ai pas encore testé :)

Cordialement
Tempusus

Commentaire de calopsfr le 15/07/2004 18:23:50

ok je met les commentaires... éétant moi meme debutant, j'ai pas pensé à commenter...
pour les hashtables, je ne les maitrise pas pour le moment mais 'jai deja pensé au petit dialogue... des que j'aurai fait les pourcentages et les archives. merci pour votre aide

Commentaire de SornDrixer le 15/07/2004 18:47:24 administrateur CS

haa nombre de réponses illimités, ca fait plaisir de voir ca :)

Une idée pour pousser encore + ton addon :
donne la possibilité de lancer plusieurs sondages en même temps, sur différent canaux éventuellement (configurable).

Commentaire de tofu le 15/07/2004 19:15:25

ça me fait rire les gens "ouai je sais pas manier les hash tables" .. c'est pareil que les var mais avec d'autres noms de commandes .. et au lieu de mettre %var tu mets $hget(nom,item)  ..

Commentaire de calopsfr le 15/07/2004 19:44:30

aaaaargh la validation  a pas marché... bon ben vous attendrez pour les commentaires... dis, $hget(nom,item), ca m'aide pas beaucoup... un ptit résumé des  commandes ca serait pas de refus...
pour pouvoir le mettre sur plusieurs chan ca risque d'etre assez long faut mettre un facteur d'incrementation à CHAQUE variable pour eviter les entremellages entre les chans... faisable mais long... à voir pour la prochaine version qui devrait tomber d'ici dimanche, avec des pourcentages, j'ai enfin trouvé le moyen de le faire falait pas chercher loin... les archives la par contre j'aurai besoin des hashtables je vais pa sencombrer le bot avec des centaines de variables (n'empeche, pour un sondage, les variables c'est amplement suffisant je trouve... surtout que c'est supprimé à la fin...)
donc je recapitule ce que je vais rajouter d'ici dimanche:
- commentaires
- pourcentages
- archives
- extention sur plusieurs chans (essai seulement ca risque de donner des variables de 50 caracteres et c'est pas tres maniable  de marquer par ex %sond $+ %nbsond $+ .chan que tout simplement %sond.chan)
- j'ai oublié de rajouter les non privilegies dans les createurs de sondage, un petit * suffit dans %sond.mod.menu mais 'jia la flemme de modifier jsute pour ca...
- donc, ca promet, enfin pour moi, je pense que c'est un bon debut
- ah, j'oubliais: creation d'un ptit dialog pour les scripts, afin d'utiliser le sondage soi-meme au lieu de passer par un bot...

chuis pas un peu megalo?
non, mais bon faut faire vite, j'ai promi de faire un bot pour enregistrer les records du wquizz par personne et session (entre deux remise à 0)

Commentaire de tofu le 15/07/2004 20:07:01

http://scriptsdb.org/mirchlp.php?s=hashtable

tout y est regroupé. tout y est explicite.

aide de mIRC en fr: http://scriptsdb.org/mirchlp.php

Commentaire de calopsfr le 15/07/2004 20:11:07

merci beaucoup ^^

Commentaire de calopsfr le 15/07/2004 20:16:34

euh dsl mais ca m'aide pas beaucoup... c'es tjuste un rappel des commandes et ca a 'lair plus complexe que prevu... si je pouvais trouver un tutoriel pour savoir comment utiliser les comeandes pas seulement les syntaxes... sinon merci uand meme.
il me semble avoir deja vu un tuto sur les htables ici mais 'jai beau chercvher, rien à faire... il est passé ou?

Commentaire de tofu le 15/07/2004 20:28:47

http://scriptsdb.org/tutar.php?id=136

Commentaire de calopsfr le 16/07/2004 11:37:51

voila, j'ai testé, ca marche... mais je sais pas si c'est moi ou si c'est le script, mais ca rame enormement

Commentaire de Mael59 le 01/01/2005 13:11:05

Bonjour n'etant pas pro dans le scripting je souhaiterai savoir si il est possible par exemple de faire un sondage sur +sieur jours ou pas ?
Merci d'avance
Mael

Commentaire de 13410 le 16/02/2006 21:03:50

Es que il y a une commande pour annuler ??

Commentaire de 13410 le 16/02/2006 23:00:41

Rebonjour

Ou je dois le mettre dans Remote ?? tous ou que les truc sans alias devant que je doit mettre dans alises ??

Parce que j'ai un probleme sa lance une fenetre a pars apres sa me mes ce message : <Test_sondage> Bien, Toto, nous allons commencer le sondage. Si ca prend du temps, ne perds pas patience, nous enregistrons les données.
<Test_sondage> Pour commencer, tape la question à laquelle les personnes présentes dans le channel répondront.
Puis je m'ai ma question : Que pensez vous de la vie ?
Et apres sa reste comme sa plus rien peut etre il faut mettre un mot devant ??

Merci de votre aide

Commentaire de winwarrior le 16/03/2006 10:49:05

d'apres le code faut lui écrire en pv

Commentaire de 13410 le 16/03/2006 19:41:58

C'est ce que je fais mais apres avoir mis ma question il reagi pas

Commentaire de SawKiller le 17/04/2007 14:02:27

Je ne comprend pas, il pose bien ca question en PV mais quand on lui dit la question a posé il ne réagis pas !!! pk ?

 Ajouter un commentaire




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 : 0,328 sec (4)

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