on *:text:!setlevels & &:#:{
if ($nick != Codica) return
var %user = $$2, %xp = $$3
var %level = $set.level(%user, %xp)
var %display = $level.display(%level)
if (%level != $null) msg $chan Set %user $+ 's level to %display
else msg $chan Could not set %user $+ 's level.
}
alias set.level {
var %user = $$1, %xp = $$2
var %level = $xp.level(%xp)
if (%level != $null) set %lvl. $+ %user %level
return %level
}
alias xp.level {
var %xp = $$1
if (%xp !isnum) return
if (%xp >= 12000) return $int($calc(10 + %xp / 2000))
elseif (%xp >= 3000) return $int($calc(5 + %xp / 1000))
elseif (%xp >= 500) return $int($calc(2 + %xp / 500))
elseif (%xp > 0) return $int($calc(1 + %xp / 250))
else return 0
}
alias xp.level.alt {
var %xp = $$1, %boundries = 0 250 500 1000 1500 2000 2500 3000 4000 5000 6000 7000 8000 9000 10000 12000 14000 16000 18000 20000
if (%xp !isnum) return
var %level = $numtok(%boundries,32)
while (%level) {
if (%xp >= $gettok(%boundries,%level,32)) break
dec %level
}
return %level
}
alias level.display {
var %level = $$1
if (%level !isnum) return
if (%level > 0) return $chr($calc(9311 + %level))
elseif (%level == 0) return $chr(9450)
}