Petit jeu du + ou - assé avancé (top10 etc...)

Contenu du snippet

Voila un petit jeu que j'avais fais pour passer le temps...
c un jeu tout con (a la flood en plus lol) mais ya pas mal de truc interressant
si qqn a un moyen de faire un "top10" de façon plus pratique merci de me le dire :)

Source / Exemple :


;Remote made in Delirium
;IRC Server: irc.EsprY.org

on *:Text:*:#Vote-Chan: {
if ($1 == !top10) { topcool }

if ($1 == !reset) {
  if ($nick isop $chan) {
    /write -c top.txt
    /msg $chan 15,14 Les scores on été effacé !
  }
}

if ($1 == !score) {
  if ($2 == $null) {
    if ($read(top.txt, w,$+(*,$nick,*)) != $null) {
      /msg $chan 15,14 ton score 0,14 $nick 15,14 est de: 0,14 $gettok($read(top.txt, w,$+(*,$nick,*)),2,32) 15,14 15,14pts !
    }
    else {
      /msg $chan 15,14 ton score 0,14 $nick 15,14 est de: 0,14 015,14 15,14pts !
    }
  }
  else {
    if ($read(top.txt, w,$+(*,$2,*)) != $null) {
      /msg $chan 15,14 le score de 0,14 $2 15,14 est de: 0,14 $gettok($read(top.txt, w,$+(*,$2,*)),2,32) 15,14 15,14pts !
    }
    else {
      /msg $chan 15,14 le score de 0,14 $2 15,14 est de: 0,14 015,14 15,14pts !
    }
  }
}

if ($1 == !cmd) {
  /notice $nick 15,14Salut ! mes commandes sont:0,14 !go 15,14(lance le jeu)0,14 !stop 15,14(stop le jeu (selement les ops)) 0,14!score <nick> 15,14(affiche le score de nick)0,14 !top10 15,14(affiche le top10) 0,14 !reset 15,14(efface les score (selement les ops)) ... 7,14 made in 14,1 D15,1el0,1iri15,1u14,1m 7,14-> #XzK2@Olympe.ZeFunChat.NET
}

if ($1 == !go) {
  if (%go == go) {
    /msg %chan 15,14heuu... le jeux est deja lancé !
  }
  else {
    set %go go 
    set %nb $rand(1,100)
    set %chan $chan
    /msg %chan 15,14 allé tlm c'est parti !! dites un nombre entre0,14 0 15,14et0,14 100 15,14 ! ... ( 0,14!cmd 15,14pour les commandes )
    /timerdi 1 30 /msg %chan 15,14 ??? alors personne ne joue ?
  }
}

if ($chan == %chan) {

  if ($1 == !stop) {

    if ($nick isop $chan) {
      if (%go == go) {
        /msg %chan 15,14c terminé !
        unset %go
        unset %nb
        unset %chan
        /timerjeux off
        ;/timerdi off
      }
    }
    else {
      /msg %chan 15,14dsl $nick il faut être op !
    }

  }

  if (($int($1) < 101) && ($int($1) > 0) && ($int($1) == $1)) {
    if (%go == go) {
      ;/timerdi 1 30 /msg %chan 15,14 ??? alors personne ne joue ?

      if ($1 < %nb) {
        /msg %chan 15,14dsl0,14 $nick 15,14c'est plus grand que0,14 $1  15,14! ...( + )
      }

      if ($1 > %nb) {
        /msg %chan 15,14dsl0,14 $nick 15,14c'est plus petit que 0,14 $1 15,14! ...( - )
      }

      if ($1 == %nb) {
        unset %go
        timer 1 5 go
        timer 1 3 /msg %chan 15,14Début dans0,14 215,14 sec !
        set %ptsj $gettok($read(top.txt, w,$+(*,$nick,*)),2,32)
        inc %ptsj
        /write -ds $+ $nick top.txt
        /write top.txt $nick %ptsj
        /msg %chan 15,14Ouaiii0,14 $nick 15,14 !! tu a gagné !! ton score est de: 0,14 $gettok($read(top.txt, w,$+(*,$nick,*)),2,32) 15,14pts, le nombre êtais:0,14 %nb 15,14!! sa repare dans 5 sec !
        if (%oucom >= 5) { topcool | unset %oucom }
      }
    }
  }
}
}

alias go {
unset %nb   
set %go go    
set %nb $rand(1,100) 
/msg %chan 15,14 et c'est reparti !! dites un nombre entre0,14 0 15,14et0,14 100 15,14 ! (!stop pour arrêter) 
inc %oucom  
}

on *:join:#: {
if (%go == go) {
  if ($chan == %chan) {
    /notice $nick 15,14 Salut $nick ! le jeux du + ou - est en cour sur %chan ! tape: 0,14 !cmd 15,14 pour avoir mes commandes !
  }
}
}

alias topcool {   
set %lines $lines(top.txt) 
unset %list
var %v = 1
while (%v <= %lines) {
  set %list %list $gettok($read(top.txt,%v),2,32)
  inc %v
}
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
set %listordre $sorttok(%list,32,nr)
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
unset %top
var %c = 1
while (%c <= %v) {
  if (%veri == $gettok(%listordre,%c,32)) {
    set %top %top $findtok(%list,$gettok(%listordre,%c,32),2,32)
  }
  else {
    set %top %top $findtok(%list,$gettok(%listordre,%c,32),1,32)
  }
  set %veri $gettok(%listordre,%c,32)
  inc %c
}
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
unset %vtop
var %t = 1
set %vtop 15,14Le classement top10 est:
;$numtok(%top,32)
while (%t <= 10) {
  set %oko $gettok(%top,%t,32)

  if ($gettok($read(top.txt,%oko),1,32) == $null) {
    set %vtop %vtop $chr(32) 1,14 %t $+ . 0,14 Personne 15,14avec0,14 0 15,14pts,
  }
  else {
    set %vtop %vtop $chr(32) 1,14 %t $+ . 0,14 $gettok($read(top.txt,%oko),1,32) 15,14avec0,14 $gettok($read(top.txt,%oko),2,32) 15,14pts,
  }
  inc %t
}
/msg $chan %vtop
unset %vtop
}

;ligne 152

Conclusion :


valla le seul inconvégnant, c que vous ne pouvez pas i jouer si vs le mettez dans vos remotes ! (a moin de mettre un on input mais vu la taille du script...)
alors c plutot pour les bot.
vous pouvez le modifier a votre guise mais merci, si vs l'améliorer de me le montrer :)
bonne journée a tous !

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.