All pastes #1078676 Raw Edit

Own3D

public text v1 · immutable
#1078676 ·published 2008-07-21 19:18 UTC
rendered paste body
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
  }
}