Systeme de votes

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

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.