Quizz par socket

Description

Quizz qui se lance par socket , ba son nom l'indique , a noter que c mon premier addon en socket et que jdebute en socket

Source / Exemple :


alias xquizz { sockopen SockQuizz %sock-server %sock-port }
alias xstop { .timerq off | unset %Etat-Quizz | unset %xreponse | unset %X-noreponse
  sockwrite -tn SockQuizz PRIVMSG %chanquizz : $+ %xlogoquizz $+   $+ %couleurquizz  $+ %couleurquizz $+ Stop4 » $+ %couleurquizz Le quizz est stoper temporairement par4 $me  |  .timerq 1 30 xquestion2
  .timeretat 0 0 unset %Etat-Quizz | .timerxxx 5 0 .timerq off
}
alias xvidage { unset %xreponse | unset %question | unset %X-NOREPONSE | unset %etat-quizz }
alias stopnoreponse {
  .timerq off | unset %Etat-Quizz | unset %xreponse | unset %X-noreponse
  sockwrite -tn SockQuizz PRIVMSG %chanquizz : $+ %xlogoquizz $+   $+ %couleurquizz  $+ %couleurquizz $+ Stop4 » $+ %couleurquizz Le quizz est stopé temporairement car il y'a eu trop de reponse non répondu , pour le relancer tapez  %xReaction  |  .timerq 1 30 xquestion2
  .timeretat 0 0 unset %Etat-Quizz | .timerxxx 5 0 .timerq on
}
on *:sockopen:SockQuizz:{  unset %xreponse | unset %xuqestion | .timerq off | xvidage
  sockwrite -tn $sockname USER $rand(a,z) $rand(a,z) $rand(a,z) : $+ %quizzusername | unset %Etat-Quizz 
  sockwrite -tn $sockname NICK %nickQuizz | .timerxxjoin 0 3 sockwrite -tn $sockname JOIN %chanquizz | unset %Etat-Quizz  | unset %X-noreponse 
}
alias Xquestion  { $iif(%X-NOREPONSE == $null,set %X-NOREPONSE 0)
  if (%X-NOREPONSE => %X-NOREPONSE-limit) && (%no-reponse-etat == on) { .timerq off | unset %X-noreponse | stopnoreponse | halt }
  else {
    set %temp $read base.txt | set %Xquestion $gettok(%temp,1,92) | set %Xreponse $mid($gettok(%temp,2,92),2,999) | set %Etat-Quizz on
    sockwrite -tn SockQuizz PRIVMSG %chanquizz : $+ %xlogoquizz $+   $+ %couleurquizz  $+ %couleurquizz $+ Question4 » $+ %couleurquizz %Xquestion  
    .timerq 1 1 .timerq 1 30 xquestion2
    $iif(%reponse-echo == on,echo -a 14[4Réponse14]7 »12 %xreponse)
  }
}
alias Xquestion2  {
  sockwrite -tn SockQuizz PRIVMSG %chanquizz : $+ %xlogoquizz $+   $+ %couleurquizz  $+ %couleurquizz $+ Attention il reste 15secondes je repête ma question4 » $+ %couleurquizz %Xquestion 
  .timerq 1 15 Xquestion3 | set %Etat-Quizz on
}
alias Xquestion3  {
  sockwrite -tn SockQuizz PRIVMSG %chanquizz : $+ %xlogoquizz $+   $+ %couleurquizz  $+ %couleurquizz $+ Fin du temps réglementaire4 » $+ %couleurquizz  Trop tard ! Faites pas la tête prochaine question dans 10secondes :?  14[ La réponse été  $+ %Xreponse $+  14]
  unset %Xreponse | set %Etat-Quizz on
  .timerq 1 10 Xquestion | inc %X-noreponse
}
on *:SOCKREAD:SockQuizz:{ 
  sockread -f %xtemp
  if ($mid($gettok(%xtemp,1,33),2,999) == %nickquizz) && ($gettok(%xtemp,2,32) == JOIN) { 
    sockwrite -tn $sockname PRIVMSG %chanquizz : $+ %xlogoquizz $+   $+ %couleurquizz Pour lancé le quizz tapez4 %xReaction
  }
  if ($left(%xtemp,4) == PING) { sockwrite -n $sockname PONG : $+ $gettok(%xtemp,2,58) }
  if ($gettok(%xtemp,2,32) == PRIVMSG) && ($gettok(%xtemp,3,32) == %chanquizz) && (%Xreponse isin $strip($gettok(%xtemp,4-,32))) { 
    set %ntemp $mid($gettok(%xtemp,1,33),2,999) | var %x = %Xreponse | inc %s- [ $+ [ %ntemp ] ]
    sockwrite -tn $sockname PRIVMSG %chanquizz : $+ %xlogoquizz $+   $+ %couleurquizz  4Félicitation !  $+ %couleurquizz $+ Ce point est attribué à2 %ntemp ( $+ %s- [ $+ [ %ntemp ] ] $+ Points $+ )
    unset %Xreponse | .timerq 1 10 Xquestion | set %Etat-Quizz on | unset %X-noreponse | unset %X-noreponse
  }
  if ($gettok(%xtemp,2,32) == PRIVMSG) && ($gettok(%xtemp,3,32) == %chanquizz) && (!score isin $strip($gettok(%xtemp,4,32))) && (%Xsay- [ $+ [ $mid($gettok(%xtemp,1,33),2,999) ] ] == $null) { 
    set %ntemp $mid($gettok(%xtemp,1,33),2,999) 
    if (%Xsay- [ $+ [ $mid($gettok(%xtemp,1,33),2,999) ] ] == d) { halt }   
    if (%Xsay- [ $+ [ $mid($gettok(%xtemp,1,33),2,999) ] ] == premier) { 
      sockwrite -tn $sockname NOTICE %ntemp : $+ %xlogoquizz $+   $+ %couleurquizz  4Tu me prend pour un Cake ? !  $+ %couleurquizz $+ Eh ho je te l'ai dit y'a meme pas 5secondes! Pas de tentatives de flood , tu est ignorer pour 10secondes ! 
      .timerxt [ $+ [ %ntemp ] ] 1 5 unset %Xsay- [ $+ [ $mid($gettok(%xtemp,1,33),2,999) ] ]        
      set %Xsay- [ $+ [ $mid($gettok(%xtemp,1,33),2,999) ] ] d  | halt
    }
    if (%Xsay- [ $+ [ $mid($gettok(%xtemp,1,33),2,999) ] ] == $null) { 
      sockwrite -tn $sockname NOTICE %ntemp : $+ %xlogoquizz $+   $+ %couleurquizz  4Ton score !  $+ %couleurquizz $+ Tu à repondu correctement à4 %s- [ $+ [ %ntemp ] ] question(s) 
      set %Xsay- [ $+ [ $mid($gettok(%xtemp,1,33),2,999) ] ] premier
      .timerxt [ $+ [ %ntemp ] ] 1 5 unset %Xsay- [ $+ [ $mid($gettok(%xtemp,1,33),2,999) ] ]   | halt
    }
  }
  if ($gettok(%xtemp,2,32) == PRIVMSG) && ($gettok(%xtemp,3,32) == %chanquizz) && (%xReaction isin $strip($gettok(%xtemp,4-,32))) && (%Etat-Quizz != on) {
    sockwrite -tn SockQuizz PRIVMSG %chanquizz : $+ %xlogoquizz $+   $+ %couleurquizz  $+ %couleurquizz $+ Début4 » $+ %couleurquizz Allez on se motive ici le quizz y commence :] 
    .timer 1 1 xquestion | .timeretat off | set %Etat-Quizz on | unset %xquestion | unset %xreponse | unset %X-noreponse
  }
}
alias quizzpart { sockwrite -tn SockQuizz PART %chanquizz }
;----------------------------------------
;
;               DIALOG
;
;----------------------------------------
alias squizz dialog -md squizz squizz
on *:dialog:squizz:*:*:{
  if ($devent == init) { if (%no-reponse-etat == on) { did -c $dname 18 } | if (%reponse-echo == on) { did -c $dname 22 } | did $iif(%no-reponse-etat == on,-e,-b) $dname 19  }
  if ($DeVent == sclick)  {
    if ($did == 18) { set %no-reponse-etat $iif($did($did).state == 1,on,off) | did $iif($did($did).state == 1,-e,-b) $dname 19  }
    if ($did == 22) { set %reponse-echo $iif($did($did).state == 1,on,off)  }
  }
  if ($devent == edit) {
    if ($did == 3) { set %sock-server $did($did) } | if ($did == 5) { set %sock-port $did($did) }
    if ($did == 6) { set %chanquizz $did($did) } | if ($did == 10) { set %nickquizz $did($did) }
    if ($did == 13) { set %quizzusername $did($did) } | if ($did == 8) { set %couleurquizz $did($did) } | if ($did == 14) { set %xlogoquizz $did($did) }
    if ($did == 26) { set %xreaction $did($did) } |  if ($did == 19) { set %X-NOREPONSE-limit $did($did) } 
  }
}
dialog Squizz {
  title "SockQuizz » By PuMaZ"
  size -1 -1 108 163
  option dbu
  box "", 1, 1 0 105 61
  text "Server du Quizz", 2, 4 7 40 8, center
  edit %sock-server, 3, 46 7 58 10, autohs
  text "Port du Quizz", 4, 4 17 40 8, center
  edit %sock-port, 5, 46 17 58 10, autohs
  edit %chanquizz, 6, 46 27 58 10, autohs
  text "Salon du Quizz", 7, 3 28 41 8, center
  edit %couleurquizz , 8, 46 62 58 10, autohs
  text "Couleur principal", 9, 4 63 41 8, center
  edit %nickquizz , 10, 46 37 58 10, autohs
  text "Nick du Quizz", 11, 4 38 41 8, center
  text "Username", 12, 4 48 41 8, center
  edit %quizzusername , 13, 46 48 58 10, autohs
  edit  %xlogoquizz , 14, 46 72 58 10, autohs
  text "Logo du Quizz", 15, 4 73 41 8, center
  box "", 16, 1 57 105 45
  box "", 17, 1 98 105 32
  check "Stopage Automatique au bout de", 18, 5 104 96 10, flat
  edit %X-NOREPONSE-limit , 19, 3 116 21 10, limit 3
  text "Questions sans réponse", 20, 25 117 73 8
  box "", 21, 1 126 105 20
  check "Afficher les réponses sur ta fenêtre", 22, 4 131 98 10, flat
  button "Fermer", 23, 67 148 38 12, ok
  ;check "Relancer le quizz", 24, 4 148 56 10, flat
  text "Mot de lancement", 25, 4 84 41 15, center
  edit %xReaction , 26, 46 86 58 10, autohs
}
alias quitquizz { sockclose *quizz* }
alias xrelance { 
  quitquizz 
  xquizz
}
alias xreset { unset %s-* }
menu menubar,channel { 
  -
  » SockQuizz «
  .Configurer ( /squizz ) :squizz
  .Relancer le Quizz ( /Xrelance ):xrelance
  .-
  .Connecter le Quizz ( /xquizz ):xquizz
  .Deconnecter le Quizz ( /quitquizz ):sockclose *quizz*
  .-
  .Lancer le quizz ( /Xquestion ):xquestion
  .Stoper le quizz ( /xstop ):xstop
  .-
  .Reset Scores ( /xreset ):xreset
  -
}
on *:load: {
  set %sock-server chat1.voila.fr | set %sock-port 6667 | set %nickquizz SoCk-QuiZz | set %quizzusername 14.:2 SockQuizz By PuMaZ 14:. 
  set %X-NOREPONSE-limit 5 | set  %no-reponse-etat on | set %chanquizz #Chan- [ $+ [ $rand(1,999999) ] ] | set %xlogoquizz 12[QuiZz] | set %couleurquizz 12
  echo -a 4SockQuizz7 »12 Addon Chargé avec 4Succèss 14[2 /Squizz 14] | set %xreaction !quizz
}

Conclusion :


Pour connecter le quizz » /xquizz
Pour stoper le quizz » /xstop
Pour avoir son score » !score

Je n'ai rien à ajouter ...

PS: Le zip c'est la databass du Quizz à mettre dans mircdir tout comme Ce remote :]

Codes Sources

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.