Quizz très perforemant

Contenu du snippet

Voila c un de mais premier dialog que j'ai très bien fait. Sesi est un quizz simple que vous pouver amélioré. Je vous laisse découvrir la source :) :) :)

Source / Exemple :


dialog quizz {
  title "Menu Quizz"
  size -1 -1 400 530
  option pixels
  tab "Gestion du Quizz",1,-1 -1 515 610
  tab "Questions - Réponses",2
  button "Fermer",3,10 500 380 25,ok
  button "Commencer le quizz sur le salon :",4,30 30 200 23,tab 1
  button "Terminer le quizz",5,30 30 200 23,tab 1
  edit "",6,240 30 100 23,autohs,tab 1
  box "",7,5 60 390 30,tab 1
  text "Question en cours : ",8,5 70 370 15,center,tab 1
  text "",9,240 71 20 15,tab 1
  button "Prec. 10",10,7 68 60 20,tab 1
  button "Prec.",11,67 68 40 20,tab 1
  button "Suiv.",12,293 68 40 20,tab 1
  button "Suiv. 10",13,333 68 60 20,tab 1
  box "Question",14,5 95 390 65,tab 1
  edit "",15,15 115 375 20,autohs,read,tab 1
  button "Modifier",16,15 140 50 15,tab 1
  box "Réponse",17,5 170 390 65,tab 1
  edit "",18,15 190 375 20,autohs,read,tab 1
  button "Modifier",19,15 215 50 15,tab 1
  text "Scores",20,295 247 100 15,tab 1
  list 21,240 265 110 210,tab 1
  list 22,345 265 42 210,tab 1
  button "+ 1",23,240 460 26 23,tab 1
  button "- 1",24,266 460 26 23,tab 1
  button "Ajout.",25,292 460 50 23,tab 1
  button "Suppr.",26,342 460 50 23,tab 1
  button "=> Afficher la Question <=",27,20 255 190 25,tab 1
  button "=> Afficher Réponse + Gagnant <=",28,20 280 190 25,tab 1
  text "Gagnant :",29,20 315 50 15,tab 1
  combo 30,75 312 135 200,drop,edit,tab 1
  button "=> Afficher les Points <=",31,20 342 190 23,tab 1
  text "",32,20 373 190 20,center,tab 1
  box "Options",33,10 405 220 80,tab 1
  check "",34,20 425 18 18,tab 1
  text "Sélectionner le gagnant manuellement dans la liste du salon",35,40 420 180 40,tab 1
  check "",36,20 455 18 18,tab 1
  text "Annoncer qu'un quizz est en cours à chaque arrivant (en notice)",37,40 450 180 40,tab 1
  box "Questions",38,5 30 390 200,tab 2
  box "Réponses",39,5 245 390 200,tab 2
  combo 40,15 50 370 180,tab 2
  combo 41,15 265 370 180,tab 2
  button "Ajouter",42,95 455 100 25,tab 2
  button "Supprimer",43,205 455 100 25,tab 2
}
on 1:dialog:quizz:init:0:{
  unset %quizz.br
  .disable #Quizz.CheckReponse
  .disable #Quizz.Annonce
  set %quizz.qmodif $true
  set %quizz.rmodif $true
  if (%quiz.selectwinner) { did -c quizz 34 | did -b quizz 30 }
  if (%quizz.encours != on) {
    did -h quizz 5
    did -b quizz 10,11,12,13,16,19,21,22,23,24,25,26,27,28,30,31
    did -a quizz 32 Attente du début d'un Quizz
  }
  else {
    if ($me !ison %quizz.chan) { if ($input(Vous n'êtes pas sur %quizz.chan alors qu'un quizz est commencé dessus. Voulez-vous joindre le salon maintenant ?,136,Quizz)) { join %quizz.chan } }
    if (%quizz.nb != $null) { did -a quizz 9 %quizz.nb }
    else { did -a quizz 9 1 }
    if (%quizz.chan != $null) { did -o quizz 6 1 %quizz.chan | did -m quizz 6 | did -v quizz 5 | did -h quizz 4 }
    else { did -h quizz 5 }
    did -b quizz 28
    did -a quizz 32 Attente de l'affichage d'une Question
    quizz.quest
    affichescores
  }
  var %i 1
  while ($readini(Quizz.ini,questions,n $+ %i) != $null) { did -a quizz 40 $readini(Quizz.ini,questions,n $+ %i) | did -a quizz 41 $readini(Quizz.ini,reponses,n $+ %i) | inc %i }
}
on 1:dialog:quizz:sclick:1:quizz.quest
on 1:dialog:quizz:sclick:2:did -r quizz 40,41 | var %i 1 | while ($readini(Quizz.ini,questions,n $+ %i) != $null) { did -a quizz 40 $readini(Quizz.ini,questions,n $+ %i) | did -a quizz 41 $readini(Quizz.ini,reponses,n $+ %i) | inc %i }
on 1:dialog:quizz:sclick:40:did -c quizz 41 $did(quizz,40).sel
on 1:dialog:quizz:sclick:41:did -c quizz 40 $did(quizz,41).sel
on 1:dialog:quizz:sclick:42:{
  if (($did(quizz,40,0) != $null) && ($did(quizz,41,0) != $null)) { 
    did -a quizz 40 $did(quizz,40,0)
    did -a quizz 41 $did(quizz,41,0) 
    var %i 1 | while ($readini(Quizz.ini,questions,n $+ %i) != $null) { inc %i }
    writeini -n Quizz.ini questions n $+ %i $did(quizz,40,0)
    writeini -n Quizz.ini reponses n $+ %i $did(quizz,41,0)
    did -c quizz 40,41 %i
  }
}
on 1:dialog:quizz:sclick:43:{
  if ($did(quizz,40).sel != $null) { 
    var %j $did(quizz,40).sel
    remini Quizz.ini questions 
    remini Quizz.ini reponses
    did -d quizz 40,41 %j
    var %i 1
    while ($did(quizz,40,%i) != $null) { writeini -n Quizz.ini questions n $+ %i $did(quizz,40,%i) | writeini -n Quizz.ini reponses n $+ %i $did(quizz,41,%i) | inc %i }
  }
  did -c quizz 40,41 %j
}
on 1:dialog:quizz:sclick:36: {
  if ($did(quizz,36).state == 1) { 
    if ($left(%quizz.chan,2) == $chr(35) $+ $chr(33)) { echo -a 1*14*15* 4Cette option ne peut être engagée sur un salon public | did -u quizz 36 | halt } 
    .enable #Quizz.Annonce 
  } 
  else { .disable #Quizz.Annonce }
}

on 1:dialog:quizz:sclick:34:if ($did(quizz,34).state == 1) { set %quiz.selectwinner $true | did -b quizz 30 | if ($input(Pour définir le gagnant vous devez maintenant sélectionner un pseudo dans la liste du salon puis cliquer sur le bouton 'Afficher Réponse + Ganant'. $+ $crlf $+ $crlf $+ Si personne ne trouve la bonne réponse sélectionnez votre propre pseudo,68,Quizz)) { } } | else { set %quiz.selectwinner $false | did -e quizz 30 }
on 1:dialog:quizz:sclick:3:.disable #Quizz.CheckReponse | .disable #Quizz.Annonce
on 1:dialog:quizz:sclick:4:{
  if ($did(quizz,6) != $null) {
    if ($left($did(quizz,6),1) == $chr(35)) { set %quizz.chan $did(quizz,6) }
    else { did -o quizz 6 1 $chr(35) $+ $did(quizz,6) | set %quizz.chan $did(quizz,6) }
    if ($me !ison %quizz.chan) { 
      if ($input(Vous n'êtes pas sur %quizz.chan $+ . Voulez-vous joindre le salon maintenant ? (sinon le quizz ne sera pas commencé),136,Quizz)) { join %quizz.chan }
      else { halt }
    }    
    did -h quizz 4
    did -v quizz 5
    did -m quizz 6
    set %quizz.nb 1
    did -a quizz 9 %quizz.nb
    set %quizz.encours on
    quizz.quest
    if ($input(Annoncer le début du Quizz sur %quizz.chan ?,136,Quizz)) { quizz.annonce }
    did -e quizz 10,11,12,13,16,19,21,22,23,24,25,26,27,30,31
    did -a quizz 32 Attente de l'affichage d'une Question
  }
  else { echo -a 1*14*15* 4Vous n'avez pas spécifié le salon }

}
on 1:dialog:quizz:sclick:5:{
  var %i
  while ( %i == $null) { set %i $input(Voulez-vous réellement terminer le quizz ?,168,Quizz) }
  if (%i == $no) { halt }
  else {
    .disable #Quizz.Annonce
    did -n quizz 6
    did -h quizz 5
    did -v quizz 4
    set %quizz.encours off
    did -b quizz 10,11,12,13,16,19,21,22,23,24,25,26,27,28,30,31
    did -r quizz 15,18,9
    unset %quizz*
    did -r quizz 21,22,30
    did -u quizz 36
    .remove Qpoints.ini
    did -a quizz 32 Attente du début d'un Quizz
  }
}
on 1:dialog:quizz:sclick:10:{
  if (%quizz.encours == on) {
    if (%quizz.nb != $null) { set %quizz.nb $iif($calc(%quizz.nb -10) < 1,%quizz.nb,$calc(%quizz.nb -10)) }
    else { set %quizz.nb 1 }
    did -a quizz 9 %quizz.nb
    quizz.quest
    did -b quizz 28
  }
}
on 1:dialog:quizz:sclick:11:{
  if (%quizz.encours == on) {
    if (%quizz.nb != $null) { set %quizz.nb $iif($calc(%quizz.nb -1) < 1,%quizz.nb,$calc(%quizz.nb -1)) }
    else { set %quizz.nb 1 }
    did -a quizz 9 %quizz.nb
    quizz.quest
    did -b quizz 28
  }
}
on 1:dialog:quizz:sclick:12:{
  if (%quizz.encours == on) {
    if (%quizz.nb != $null) { set %quizz.nb $calc(%quizz.nb +1) }
    else { set %quizz.nb 1 }
    did -a quizz 9 %quizz.nb
    quizz.quest
    did -b quizz 28
  }
}
on 1:dialog:quizz:sclick:13:{
  if (%quizz.encours == on) {
    if (%quizz.nb != $null) { set %quizz.nb $calc(%quizz.nb +10) }
    else { set %quizz.nb 1 }
    did -a quizz 9 %quizz.nb
    quizz.quest
    did -b quizz 28
  }
}
on 1:dialog:quizz:sclick:16:{
  if (%quizz.qmodif) { did -n quizz 15 | set %quizz.qmodif $false }
  else { did -m quizz 15 | set %quizz.qmodif $true }
  did -f quizz 15
}
on 1:dialog:quizz:sclick:19:{
  if (%quizz.rmodif) { did -n quizz 18 | set %quizz.rmodif $false }
  else { did -m quizz 18 | set %quizz.rmodif $true }
  did -f quizz 18
}
on 1:dialog:quizz:edit:15:if (%quizz.nb != $null) { writeini -n quizz.ini questions n $+ %quizz.nb $did(quizz,15) }
on 1:dialog:quizz:edit:18:if (%quizz.nb != $null) { writeini -n quizz.ini reponses n $+ %quizz.nb $did(quizz,18) }
on 1:dialog:quizz:sclick:27:{
  if ($me !ison %quizz.chan) {
    if ($input(Vous n'êtes pas sur %quizz.chan $+ . Voulez-vous joindre le salon maintenant ?,136,Quizz)) { join %quizz.chan }
    halt
  }
  if ($did(quizz,15) != $null) { /msg %quizz.chan 8,1Recopier le plus rapidement le mot $+ %quizz.nb :9 $did(quizz,15) 
    did -r quizz 30
    if (<Personne> !isin $didtok(quizz,30)) { did -a quizz 30 <Personne> } 
    .enable #Quizz.CheckReponse
    did -e quizz 28
    did -a quizz 32 Attente d'une bonne réponse...
  }
}
on 1:dialog:quizz:sclick:28:{
  if ($me !ison %quizz.chan) {
    if ($input(Vous n'êtes pas sur %quizz.chan $+ . Voulez-vous joindre le salon maintenant ?,136,Quizz)) { join %quizz.chan }
    halt
  }
  if (%quiz.selectwinner) {
    if ($sline(%quizz.chan,1) == $null) { echo -a 1*14*15* 4Veuillez sélectionner le Gagnant dans la liste du salon (ou sélectionner votre propre pseudo si personne n'a trouvé) }
    elseif ($sline(%quizz.chan,1) == $me) { /msg %quizz.chan 8,1Personne n'a trouvé la bonne réponse. Il fallait répondre :9 $did(quizz,18) | halt }
    else { /msg %quizz.chan 9,1 $+ $sline(%quizz.chan,1) 8a été le plus rapide à recopier le mot :9 $did(quizz,18) 
      var %nick $sline(%quizz.chan,1)
      var %mask $address(%nick,1)
      writeini -n Qpoints.ini %mask Nick %nick
      if ($readini(Qpoints.ini, %mask ,Points) == $null ) { writeini -n Qpoints.ini %mask Points 1 }
      else { writeini -n Qpoints.ini %mask Points $calc($readini(Qpoints.ini,%mask,Points)+1) }
      affichescores 
    }
  }
  else {
    if (($did(quizz,30) != $null) && ($did(quizz,30) != <Personne>) && ($did(quizz,30) ison %quizz.chan)) {
      /msg %quizz.chan 9,1 $+ $did(quizz,30) 8a été le plus rapide à trouver la bonne réponse. Il fallait répondre :9 $did(quizz,18) 
      var %nick $did(quizz,30)
      var %mask $address($did(quizz,30),1)
      writeini -n Qpoints.ini %mask Nick %nick
      if ($readini(Qpoints.ini, %mask ,Points) == $null ) { writeini -n Qpoints.ini %mask Points 1 }
      else { writeini -n Qpoints.ini %mask Points $calc($readini(Qpoints.ini,%mask,Points)+1) }
      affichescores
    }
    elseif ($did(quizz,30) == <Personne>) { /msg %quizz.chan 8,1Personne n'a trouvé la bonne réponse. Il fallait répondre :9 $did(quizz,18) }
    elseif ($did(quizz,30) == $null) { echo -a 1*14*15* 4Veuillez sélectionner/écrire le nom du Gagnant dans la case 'Gagnant' (ou sélectionner '<Personne>' si personne n'a trouvé) | halt }
    elseif ($did(quizz,30) !ison %quizz.chan) { echo -a 1*14*15*12 $did(quizz,30) 4ne se trouve pas sur %quizz.chan (ou vient de changer de pseudo) | halt }
  }
  .disable #Quizz.CheckReponse
  did -a quizz 32 Attente de l'affichage d'une Question
  unset %quizz.br
}
on 1:dialog:quizz:sclick:31:{
  var %i 1
  var %points 8,1Scores :
  while ($did(quizz,21,%i) != $null) {
    set %points %points 9,1 $+ $did(quizz,21,%i) 8:9 $did(quizz,22,%i) 4|
    inc %i
  }
  if (%points == 8,1Scores :) { /msg %quizz.chan 8,1Personne ne possède de points pour le moment. }
  else { /msg %quizz.chan $left( %points ,-2) }
}
on 1:dialog:quizz:sclick:21:did -c quizz 22 $did(quizz,21).sel
on 1:dialog:quizz:sclick:22:did -c quizz 21 $did(quizz,22).sel
on 1:dialog:quizz:sclick:23:{
  set %sel $did(quizz,21).sel
  if (%sel == $null) { halt }
  var %nick $gettok($didtok(quizz,21,32),$did(quizz,21).sel,32)
  if (%nick !ison %quizz.chan) { 
    var %i 1
    while ($ini(Qpoints.ini,%i) != $null) { if (%nick == $readini(Qpoints.ini,$ini(Qpoints.ini,%i),Nick)) { writeini -n Qpoints.ini $ini(Qpoints.ini,%i) Points $calc($readini(Qpoints.ini,$ini(Qpoints.ini,%i),Points)+1) | break } | inc %i }
    affichescores | did -c quizz 21,22 %sel | halt
  }
  if ($address(%nick,1) != $null) { writeini -n Qpoints.ini $address(%nick,1) Points $calc($readini(Qpoints.ini,$address(%nick,1),Points)+1) | affichescores }
}
on 1:dialog:quizz:sclick:24:{
  set %sel $did(quizz,21).sel
  if (%sel == $null) { halt }
  var %nick $gettok($didtok(quizz,21,32),$did(quizz,21).sel,32)
  if (%nick !ison %quizz.chan) { 
    var %i 1
    while ($ini(Qpoints.ini,%i) != $null) { if (%nick == $readini(Qpoints.ini,$ini(Qpoints.ini,%i),Nick)) { writeini -n Qpoints.ini $ini(Qpoints.ini,%i) Points $calc($readini(Qpoints.ini,$ini(Qpoints.ini,%i),Points)-1) | break } | inc %i }
    if ($readini(Qpoints.ini,$ini(Qpoints.ini,%i),Points) == 0) { remini Qpoints.ini $ini(Qpoints.ini,%i) }
    affichescores | did -c quizz 21,22 %sel | halt
  }
  if ($address(%nick,1) != $null) { writeini -n Qpoints.ini $address(%nick,1) Points $calc($readini(Qpoints.ini,$address(%nick,1),Points)-1) 
    if ($readini(Qpoints.ini,$address(%nick,1),Points) == 0) { remini Qpoints.ini $address(%nick,1) }
    affichescores
  }
}
on 1:dialog:quizz:sclick:25:{
  if (%quiz.selectwinner) { 
    if ($sline(%quizz.chan,1) == $null) { echo -a 1*14*15* 4Sélectionnez d'abord un pseudo dans la liste du salon | halt }
    var %nick $sline(%quizz.chan,1)
  }
  else { 
    if ($did(quizz,30) == $null) { echo -a 1*14*15* 4Ecrivez d'abord un pseudo dans la case 'Gagnant' | halt }
    var %nick $did(quizz,30)
  }
  if ($address(%nick,1) == $null) { .who %nick }
  if (($readini(Qpoints.ini,$address(%nick,1),Nick) != $null) && ($readini(Qpoints.ini,$address(%nick,1),Nick) != $did(quizz,30))) { echo -a 1*14*15*12 %nick 4possède déjà des points (son pseudo était12 $readini(Qpoints.ini,$address(%nick,1),Nick) 4et vient d'être remis à jour) | writeini -n Qpoints.ini $address(%nick,1) Nick %nick | affichescores | halt }
  if (%nick !ison %quizz.chan) { echo -a 1*14*15*12 $did(quizz,30) 4ne se trouve pas sur %quizz.chan (ou vient juste de changer de pseudo) | halt }
  if ($istok($didtok(quizz,21,32),%nick,32)) { echo -a 1*14*15*12 %nick 4possède déjà des points | halt }
  writeini -n Qpoints.ini $address(%nick,1) Nick %nick
  writeini -n Qpoints.ini $address(%nick,1) Points 1
  affichescores
}
on 1:dialog:quizz:sclick:26:{
  var %sel $did(quizz,21).sel
  var %nick $gettok($didtok(quizz,21,32),$did(quizz,21).sel,32)
  if (%nick !ison %quizz.chan) { 
    var %i 1
    while ($ini(Qpoints.ini,%i) != $null) { if (%nick == $readini(Qpoints.ini,$ini(Qpoints.ini,%i),Nick)) { break } | inc %i }
    remini Qpoints.ini $ini(Qpoints.ini,%i)  | affichescores
  }
  if ($address(%nick,1) != $null) { remini Qpoints.ini $address(%nick,1) | affichescores }
}
alias quizz.quest {
  did -o quizz 15 1 $readini(quizz.ini,questions,n $+ %quizz.nb)
  did -o quizz 18 1 $readini(quizz.ini,reponses,n $+ %quizz.nb)
  did -r quizz 30
}
alias quizz.annonce {
  /msg %quizz.chan 8,1 Salut à tous ! Un 9Quizz8 va commencer dans moins d'une minute. Je vous rappelle quelques règles pour que nous passions tous un bon moment.
  .timer 1 8 /msg %quizz.chan 8,1 Tout d'abord, vous n'avez 9pas le droit à plus de 3 réponses par personne8 et il est bien sûr interdit de répéter plusieurs fois la même chose.
  .timer 1 16 /msg %quizz.chan 8,1 Les questions seront posées et les scores comptabilisés par 9moi-même8 : si vous avez des réclamations à faire, faites-les 9en public8 tout de suite. La règle est de recopier le mot le plus rapidement possible avant tout les autres.
  var %i $input(Le(s) thème(s) des questions ?,133,Quizz)
  .timer 1 20 /msg %quizz.chan 8,1 $iif(%i == $null,9Pas de thème particulier 8pour les questions aujourd'hui,Les questions de ce soir seront sur le(s) thème(s) :9 %i)
  .timer 1 32 /msg %quizz.chan 8,1 Sur ce, que le meilleur gagne !!! 9Le Quizz commence maintenant :)
}

#Quizz.CheckReponse off
on *:text:*:%quizz.chan:{
  var %text $quizz.stripcodes($1-)
  var %answer $quizz.stripcodes($readini(quizz.ini,reponses,n $+ %quizz.nb))
  if ((%text == %answer) && ($istok($didtok(quizz,30,32),$nick,32) == $false)) { 
    did -a quizz 30 $nick
    inc %quizz.br
    did -a quizz 32 %quizz.br $iif(%quizz.br == 1,bonne réponse trouvée,bonnes réponses trouvées)...
  }
}
#Quizz.CheckReponse end
#Quizz.Annonce off
#Quizz.Annonce end
alias quizz.stripcodes {
  var %txt $strip($1-,burc)
  set %txt $replace(%txt,€,,<,,>,,.,,:,,\,,/,,&#8226;,,§,,©,,®,,&#8482;,,¥,,&#8224;,,&#8225;,,¤,,*,,^,,~,,é,e,è,e,ê,e,ë,e,È,e,É,e,Ê,e,Ë,e,à,a,á,a,â,a,ã,a,ä,a,À,a,Â,a,Ä,a,î,i,ï,i,Ï,i,Î,i,ù,u,û,u,ü,u,ö,o,ô,o,-,$chr(32))
  if ($left(%txt,3) == le $+ $chr(32)) { set %txt $right(%txt,-3) }
  elseif ($left(%txt,3) == la $+ $chr(32))  { set %txt $right(%txt,-3) }
  elseif ($left(%txt,4) == les $+ $chr(32)) { set %txt $right(%txt,-4) }
  elseif ($left(%txt,2) == l') { set %txt $right(%txt,-2) }
  elseif ($left(%txt,3) == de $+ $chr(32)) { set %txt $right(%txt,-3) }
  elseif ($left(%txt,3) == du $+ $chr(32)) { set %txt $right(%txt,-3) }
  elseif ($left(%txt,4) == des $+ $chr(32)) { set %txt $right(%txt,-4) }
  elseif ($left(%txt,2) == d') { set %txt $right(%txt,-2) }
  elseif ($left(%txt,5) == dans $+ $chr(32)) { set %txt $right(%txt,-5) }
  elseif ($left(%txt,4) == par $+ $chr(32)) { set %txt $right(%txt,-4) }
  elseif ($left(%txt,3) == un $+ $chr(32)) { set %txt $right(%txt,-3 }
  elseif ($left(%txt,4) == une $+ $chr(32)) { set %txt $right(%txt,-4) }
  elseif ($left(%txt,3) == en $+ $chr(32)) { set %txt $right(%txt,-3) }
  elseif ($left(%txt,3) == au $+ $chr(32)) { set %txt $right(%txt,-3) }
  elseif ($left(%txt,4) == aux $+ $chr(32)) { set %txt $right(%txt,-4) }
  elseif ($left(%txt,2) == a $+ $chr(32)) { set %txt $right(%txt,-2) }
  elseif ($left(%txt,5) == avec $+ $chr(32)) { set %txt $right(%txt,-5) }
  return %txt
}

alias affichescores {
  if ($did(quizz,21,%sel) != $null) { set %selectednick $did(quizz,21,%sel) }
  did -r quizz 21
  did -r quizz 22
  var %i 1
  while ($ini(Qpoints.ini,%i) != $null) {
    var %j 1
    while ($readini(Qpoints.ini,$ini(Qpoints.ini,%i),Points) < $did(quizz,22,%j)) { inc %j }
    did -i quizz 21 %j $readini(Qpoints.ini,$ini(Qpoints.ini,%i),Nick) 
    did -i quizz 22 %j $readini(Qpoints.ini,$ini(Qpoints.ini,%i),Points)
    inc %i
  }
  if (%selectednick != $null) { did -c quizz 21,22 $didwm(quizz,21,%selectednick) }
  unset %sel
  unset %selectednick
}

alias quizz { dialog -m quizz quizz }

Conclusion :


Il ne vous reste que a taper /quizz pour tout configurer ( nnoublier as de copier la source dans les remote de votre mirc )

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.

Du même auteur (cs_In0x)