What the script does is answer on !lexp <from-level> <to-level> <optional: exp per item> with experience between from-level and to-level, and, if stated, calculates amount of items needed for that amount of experience. (It's for a game called runescape.)
I know that this may be too much to ask for, but it would be greatly appreciated. Some lines is in swedish, so ask if you don't understand. I have never worked with tcl, but have some basic knowledge in c++ and some other languages, so any hints and things like that is welcome.
Here's the code:
Code: Select all
alias levelexp {
var %outputnum = 0
var %points = 0
var %lvl = 1
while (%lvl < $$1) {
%points = $int($calc(%points + %lvl + 300 * 2 ^ (%lvl / 7.0)))
%outputnum = $int($calc(%points / 4))
inc %lvl 1
}
return $int(%outputnum)
}
alias tusen {
var %word = $null
var %length = $len($$1)
var %i = 0
var %left = 0
while (%i < %length) {
var %pos = $calc(%length - %i - 2)
if (%pos <= 0) { %left = $left($$1, $calc(%length - %i)) }
else { %left = $mid($$1, %pos, 3) }
%word = %left %word
inc %i 3
}
return %word
}
alias lexp {
if ($nick != $null) var %nick = $nick
else %nick = $me
if ($$1 !isnum 1-1000) {
.notice %nick Syntax error! Använd !lexp <level> <level> utan streck
halt
}
if ($1 > 150 || $2 > 150) {
.notice %nick För hög högsta level! Max är 150!
halt
}
else if ($2) {
var %expsak = $3
var %lvls = $calc($$2 - $$1)
var %expkvar = $calc($levelexp($$2) - $levelexp($$1))
if ($3) {
msg # Level $$1 $+ - $+ $$2 $+ : $tusen(%expkvar) exp - Antal "Saker": $tusen($int($calc(%expkvar / %expsak)))
}
else {
msg # Level $$1 $+ - $+ $$2 $+ : $tusen(%expkvar) exp
}
}
else {
msg # Level 1 $+ - $+ $$1 $+ : $tusen($levelexp($$1)) exp
}
}
on *:TEXT:!lexp*:#runescape.se:{ $lexp($$2, $3, $4) }