;
; radom integer
;
;nimmt per zufall eine Zahl aus %start bis %ende, wobei keine Zahl innerhalb
; eines Durchlaufs zwei mal auftaucht. Es dürfen alles nur Integer werte sein!
;
;
;Version: 1.0.2 - 14.06.2002 by Codeq
;Version: 1.0.4 - 15.06.2002 by Codeq
;Version: 2.0.0 - 09.09.2002 by Codeq
;
;
;
;Sytax: $randomint(<start> <ende> [p]<N>)
;wobei N angibt wie viele zahlen zurückgegeben werden sollen. Bei pN ist es ein Prozentwert.
;
;DONT MAKE CHANGES BELOW THIS LINE
;---------------------------------
alias randomint {
tokenize 32 $1-
var %randomint.start = $round($1,0)
var %randomint.ende = $round($2,0)
if (%randomint.start < %randomint.ende) {
if (p == $left($3,1)) { var %randomint.prozent = $remove($3,p) }
else { var %randomint.absolut = $round($3,0) }
if (%randomint.start <= %randomint.ende) {
var %randomint.i = 1
var %randomint.j = $calc($abs($calc((%randomint.ende * -1) + %randomint.start)) + 1)
if (%randomint.prozent) { var %randomint.absolut = $round($calc(($remove($3,p) * %randomint.j) / 100),0) }
if (%randomint.absolut > 0) {
var %randomint.string
var %randomint.output
while (%randomint.i <= %randomint.j) {
var %randomint.string $addtok(%randomint.string,$calc(%randomint.start + %randomint.i - 1),44)
inc %randomint.i
}
while (%randomint.absolut > 0) {
var %randomint.rand = $rand(1,$numtok(%randomint.string,44))
var %randomint.output = $addtok(%randomint.output,$gettok(%randomint.string,%randomint.rand,44),44)
var %randomint.string = $deltok(%randomint.string,%randomint.rand,44)
dec %randomint.absolut
}
return %randomint.output
}
else { return *** error: ausgabe muss grösser null sein. }
}
}
else { return *** error: start muss kleiner ende sein. }
}