08-05-2010, 11:06 PM
Il est de retour! Avec une grande question! J'ai un script de jet de dés, qui me classe mes fuckin' jets comment que je fais pour qu'il classe plus du plus grand au plus petit ce con? Je vous colle tout le truc, parce que je suis sympa!
PS: je sais que c'est un truc avec le sorttok, mais ce qu'il faut modifier et comment, pas très sûr, le nr mais alors comment...
Quote:;$replace($2,d,-) = premier traitement créant le token ASCII:45 (- tiret)
;$gettok(...,1/2,45) = retourne le premier ou le second nombre
; 1 = nombre de dés = $gettok($replace($2,d,-),1,45)
; 2 = nombre de face par dé = $gettok($replace($2,d,-),2,45)
;syntaxe : !roll XdY
;%jets contient les résultats des dés
; $replacex(%jets,$chr(45),$chr(160)) = remplace tous les tirets du token par des espaces (ASCII:160)
; $sorttok(...,160,nr) = range les valeur par ordre décroissant en prennant l'ASCII de l'espace
;On a donc comme résultats des jets : $sorttok($replacex(%jets,$chr(45),$chr(160)),160,nr)
on *:TEXT:!roll*:*:{
var %limitX 45
; >> nombre de dés lancés maximum
var %limitY 100
; >> nombre de faces maximum
var %valid 0
if ($gettok($replace($2,d,-),1,45) > %limitX) {
.notice $nick Trop de dés, limité à %limitX
inc %valid 1
}
if ($gettok($replace($2,d,-),2,45) > %limitY) {
.notice $nick Maximum %limitY
inc %valid 1
}
if (%valid > 0) halt
; >> protections de rigueur.
if ($gettok($replace($2,d,-),1,45) > 1) var %dés dés
else var %dés dé
if ($gettok($replace($2,d,-),2,45) > 1) var %faces faces
else var %faces face
; >> Pluralité des termes
var %nbdés $gettok($replace($2,d,-),1,45)
; >> Stock du nombre de dés pour la boucle
while (%nbdés > 0) {
; >> Tant qu'il reste au moins un 1 dé à lancer dans le %nbdés ...
var %jets $instok(%jets,$rand(1,$gettok($replace($2,d,-),2,45)),0,45)
; >> On stock dans le token de %jets un nombre aléatoire entre 1 et le nombre de faces
dec %nbdés 1
; >> On n'oublie pas de comptabiliser ce dé lancé
}
msg $chan $nick lance $gettok($replace($2,d,-),1,45) %dés à $gettok($replace($2,d,-),2,45) %faces et obtient : $sorttok($replacex(%jets,$chr(45),$chr(160)),160,nr)
; >> Affichage des résultats
}
PS: je sais que c'est un truc avec le sorttok, mais ce qu'il faut modifier et comment, pas très sûr, le nr mais alors comment...