Systeme de votes

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 458 fois - Téléchargée 25 fois

Contenu du snippet

C'est un systeme de vote avec plusieurs possibilitées ( oui/non, vrai/faux ou choix multiple ).
ça m'a pris un certain temps pour le faire mais, avec l'aide de quelqu'un et beaucoup de persévérence, j'ai réussi a le finir. Je viens de découvrir ce site donc je le met ici pour voir ce qu'il vaut :)

Source / Exemple :


;Systeme de Vote

menu channel {
  . »»» Faire un vote ««« : dialog -m vote vote
}

dialog vote {
  title "Option des Votes"
  size -1 -1 252 217
  option pixels
  combo 2, 133 48 112 152, drop
  edit "", 3, 10 22 231 21, autohs limit 100
  combo 4, 134 79 112 196, drop
  list 5, 5 118 122 110, disable
  button "Ajouter", 6, 133 120 108 22, disable
  button "Supprimer", 7, 133 143 108 22, disable
  button "Fermer", 8, 133 166 108 22, cancel
  button "Lancer", 9, 133 189 108 22, disable ok
  text "Type de vote:", 1, 60 55 71 19
  text "Temps:", 10, 93 83 42 16
  text "Tapez votre question ici ", 11, 51 3 156 17
  text " Reponses au choix :", 12, 15 103 105 16
}

ON *:DIALOG:vote:init:0:{
  unset %Vote.*
  %Vote.Canal = $active
  did -ac vote 2 Oui/Non
  did -a vote 2 Vrai/Faux
  did -a vote 2 Choix multiples
  did -a vote 4 15 secondes
  did -a vote 4 30 secondes
  did -a vote 4 45 secondes
  did -a vote 4 60 secondes
  did -a vote 4 90 secondes
  did -ac vote 4 120 secondes
  did -a vote 4 150 secondes
  did -a vote 4 180 secondes
  did -a vote 4 240 secondes
  did -a vote 4 300 secondes
  %Vote.Type = 1
}

ON *:DIALOG:vote:sclick:2:{
  %Vote.Type = $did(2).sel
  VotePret
}

ON *:DIALOG:vote:edit:3:{
  VotePret
}

ON *:DIALOG:vote:sclick:6:{
  did -a vote 5 $$?="Entrez le nouveau choix de vote"
  VotePret
}

ON *:DIALOG:vote:sclick:7:{
  var %index
  %index = $did(5).sel
  if (%index != $null) {
    did -d vote 5 %index
    VotePret
  }
}

ON *:DIALOG:vote:sclick:8:{
  unset %Vote.*
}

ON *:DIALOG:vote:sclick:9:{
  var %i 1
  var %message
  %Vote.Temps = $int($did(4, ($did(4).sel).text))
  %Vote.Question = $did(3).text
  if (%Vote.Type == 1) {
    %Vote.Oui = 0
    %Vote.Non = 0
    msg %Vote.Canal 4L14a question de Vote est 10 %Vote.Question
    msg %Vote.Canal 4P14our répondre a ce vote, tapez 7 !oui 14ou 7 !non 14(durée du vote :10 %Vote.Temps secondes 14)
  }
  elseif (%Vote.Type == 2) {
    %Vote.Vrai = 0
    %Vote.Faux = 0
    msg %Vote.Canal 4L14a question de Vote est 8 %Vote.Question
    msg %Vote.Canal 4P14our répondre a ce vote, tapez 7 !vrai 14ou 7 !faux (durée du vote :10 %Vote.Temps secondes)
  }
  elseif (%Vote.Type == 3) {
    %Vote.Choix.Total = $did(5).lines
    %message = 4T14apez
    while (%i < %Vote.Choix.Total) {
      %message = %message !v %i pour $did(5, %i).text $+ , $+ $chr(32)
      %Vote.Choix. [ $+ [ %i ] $+ .Votes ] = 0
      %Vote.Choix. [ $+ [ %i ] $+ .Description ] = $did(5, %i).text
      inc %i
    }
    %message = %message 14et !v %i pour $did(5, %i).text
    %Vote.Choix. [ $+ [ %i ] $+ .Votes ] = 0
    %Vote.Choix. [ $+ [ %i ] $+ .Description ] = $did(5, %i).text
    msg %Vote.Canal 4V14ote :10 %Vote.Question
    msg %Vote.Canal %message 14(durée du vote :10 %Vote.Temps secondes 14)
  }
  %Vote.Actif = $true
  .timerVote 1 %Vote.Temps VoteFini
}

alias -l VotePret {
  did -b vote 9
  if (%Vote.Type != 3) {
    did -b vote 5,6,7
    if ($supprespace($did(vote, 3).text) != $null) {
      did -e vote 9
    }
  }
  else {
    did -e vote 5,6,7
    if (%Vote.Type = 3) {
      if ($supprespace($did(vote, 3).text) != $null) {
        did -e vote 9
      }
    }
  }
}

alias -l VoteFini {
  var %message
  var %i 1
  var %pourcent
  msg %Vote.Canal 4L14a question pour le vote était :10 %Vote.Question
  if (%Vote.Type == 1) {
    %pourcent = $calc(100 / (%Vote.Oui + %Vote.Non))
    msg %Vote.Canal 4I14l y a eu10 %Vote.Oui ( $+ $int($calc(%Vote.Oui * %pourcent)) $+ $chr(37) $+ ) 14vote(s) pour 10Oui14 et10 %Vote.Non ( $+ $int($calc(%Vote.Non * %pourcent)) $+ $chr(37) $+ ) 14vote(s) pour 10Non14.
  }
  elseif (%Vote.Type == 2) {
    %pourcent = $calc(100 / (%Vote.Vrai + %Vote.Faux))
    msg %Vote.Canal 4I14l y a eu10 %Vote.Vrai ( $+ $int($calc(%Vote.Vrai * %pourcent)) $+ $chr(37) $+ ) 14vote(s) pour 10Vrai14 et10 %Vote.Faux ( $+ $int($calc(%Vote.Faux * %pourcent)) $+ $chr(37) $+ ) 14vote(s) pour 10Faux14.

  }
  else if (%Vote.Type == 3) {
    %message =  $+ %FFWS.Options.Couleur.Vote $+ 4I14l y a eu
    while (%i < %Vote.Choix.Total) {
      %message = %message  $+ %Vote.Choix. [ $+ [ %i ] $+ .Votes ] pour %Vote.Choix. [ $+ [ %i ] $+ .Description ] ,
      inc %i
    }
    %message = %message et  $+ %Vote.Choix. [ $+ [ %i ] $+ .Votes ] pour %Vote.Choix. [ $+ [ %i ] $+ .Description ]
    msg %Vote.Canal %message
  }
  unset %Vote.*
}

ON *:TEXT:!oui*:%Vote.Canal:{
  if (%Vote.Actif) {
    if (%Vote.Type == 1) {
      if (%Vote.Perso. [ $+ [ $nick ] ] == 1) {
        .notice $nick 4T14u as déja voté !
      }
      else {
        %Vote.Perso. [ $+ [ $nick ] ] = 1
        %Vote.Oui = %Vote.Oui + 1
        .notice $nick 4M14erci d'avoir voté !
      } 
    }
  }
}

ON *:TEXT:!non*:%Vote.Canal:{
  if (%Vote.Actif) {
    if (%Vote.Type == 1) {
      if (%Vote.Perso. [ $+ [ $nick ] ] == 1) {
        .notice $nick 4T14u as déja voté !
      }
      else {
        %Vote.Perso. [ $+ [ $nick ] ] = 1
        %Vote.Non = %Vote.Non + 1
        .notice $nick 4M14erci d'avoir voté !
      }  
    }
  }
}

ON *:TEXT:!vrai*:%Vote.Canal:{
  if (%Vote.Actif) {
    if (%Vote.Type == 2) {
      if (%Vote.Perso. [ $+ [ $nick ] ] == 1) {
        .notice $nick 4T14u as déja voté !
      }
      else {
        %Vote.Perso. [ $+ [ $nick ] ] = 1
        %Vote.Vrai = %Vote.Vrai + 1
        .notice $nick 4M14erci d'avoir voté !
      } 
    }
  }
}

ON *:TEXT:!faux*:%Vote.Canal:{
  if (%Vote.Actif) {
    if (%Vote.Type == 2) {
      if (%Vote.Perso. [ $+ [ $nick ] ] == 1) {
        .notice $nick 4T14u as déja voté !
      }
      else {
        %Vote.Perso. [ $+ [ $nick ] ] = 1
        %Vote.Faux = %Vote.Faux + 1
        .notice $nick 4M14erci d'avoir voté !
      }  
    }
  }
}

ON *:TEXT:!v *:%Vote.Canal:{
  if (%Vote.Actif) {
    if (%Vote.Type == 3) {
      if ($2 != $null) {
        if (%Vote.Perso. [ $+ [ $nick ] ] == 1) {
          .notice $nick 4T14u as déja voté !
        }
        else {
          if ($int($2) <= %Vote.Choix.Total) {
            %Vote.Perso. [ $+ [ $nick ] ] = 1
            %Vote.Choix. [ $+ [ $2 ] $+ .Votes ] = %Vote.Choix. [ $+ [ $2 ] $+ .Votes ] + 1
            .notice $nick 4M14erci d'avoir voté !
          }
        }
      }
    }
  }
}

alias supprespace {
  if ($1 == $null) {
    return $null
  }
  else {
    return $1-
  }
}

Conclusion :


Vous copiez la source dans remote, et c'est tout :)

A voir également

Ajouter un commentaire Commentaires
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
commment on fé pour le faire marcher ?
j'ai copier le tex ds la remote
et apré ? comment l'activer ?
donner moi des détails svp
merci d'avance
Messages postés
2
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
11 mars 2004

Ah, ben finalement, j'ai trouvé... En mettant un * avant la chaîne à trouver dans les on text , ça marche chez moi : ( ON *:TEXT:*!oui*:%Vote.Canal, etc....)
Messages postés
2
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
11 mars 2004

Je trouve ce script de sondage très bien et très fonctionnel, mais je n'arrive pas à le faire fonctionner.

Créer un sondage et en voir le résultat ne pose pas de problème, ça marche très bien. Mais, chez moi, les votes ne sont pas pris en compte (les notice ne fonctionnent pas, et le résultat du vote est zero). Je ne sais pas pourquoi.

Merci de m'aider si c'est possible :-)
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

ya du boulot rien a dire.
Messages postés
1
Date d'inscription
samedi 6 mars 2004
Statut
Membre
Dernière intervention
7 mars 2004

J'écris vos remarques et je le changerai quand j'aurai le temps, c'est a dire je sais pas quand :)
Afficher les 8 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.