rendered paste bodyalias zs.reload {
reload -rs " $+ $scriptdirbase.txt $+ "
load -rs " $+ $scriptdircompare.txt $+ "
load -rs " $+ $scriptdirdeathmatch.txt $+ "
load -rs " $+ $scriptdiridle.txt $+ "
load -rs " $+ $scriptdirsimple-scripts.txt $+ "
load -rs " $+ $scriptdirstats.txt $+ "
load -rs " $+ $scriptdirtrivia.txt $+ "
load -rs " $+ $scriptdirmaxhit.txt $+ "
load -rs " $+ $scriptdirworlds.txt $+ "
msg $iif($1,$1,#zetaadmins) Code updated.
}
alias c1 { return 10 $+ $1- }
alias c2 { return 12 $+ $1- }
alias c3 { Return 2 $+ $1- }
alias c4 { Return 11 $+ $1- }
alias chankill {
set %channum 1
set %channum1 0
unset %channumn
while ($chan(%channum) != $null) {
if (($chan(%channum) == #zetasecure) || ($chan(%channum) == #zetaadmins) || ($chan(%channum) == #zetascript) || ($readini(WhiteList.ini,$network,$chan(%channum)))) {
inc %channum
}
elseif ($nick($chan(%channum),0) < 3) {
part $chan(%channum)
set %channumn %channumn $chan(%channum)
inc %channum
inc %channum1
}
else {
inc %channum
}
}
msg $1 Chankill reported %channum1 channels below 3 users ( $+ %channumn $+ ).
}
alias zetacheck {
set %nicknum 1
while ($nick($1,%nicknum) != $null) {
echo -a checking $nick($1,%nicknum)
if (($nick($1,%nicknum) != $me) && (*zetascript* iswm $nick($1,%nicknum)) && ($nick($1,%nicknum) ison #zetasecure)) {
echo -a checking2 $nick($1,%nicknum)
if (($1 != #zetasecure) && ($1 != #zetaadmins) && ($1 != #zetascript) && (!$readini(WhiteList.ini,$network,$1))) {
echo -a checking3 $nick($1,%nicknum)
part $1 Sorry it seems you already have a ZetaScript
msg #ZetaSecure Parting $1 - Found another zetascript
msg $$2 Zetacheck found another zeta.
halt
}
}
inc %nicknum
}
msg $$2 Zetacheck found no other zeta.
}
alias zetacheckall {
set %channum 1
set %channum1 0
unset %channumn
while ($chan(%channum) != $null) {
set %nicknum 1
while ($nick($chan(%channum),%nicknum) != $null) {
if (($nick($chan(%channum),%nicknum) != $me) && (*zetascript* iswm $nick($chan(%channum),%nicknum)) && ($nick($chan(%channum),%nicknum) ison #zetasecure)) {
if (($chan(%channum) != #zetasecure) && ($chan(%channum) != #zetaadmins) && ($chan(%channum) != #zetascript) && (!$readini(WhiteList.ini,$network,$chan(%channum)))) {
$iif(!$2,part $chan(%channum) Sorry it seems you already have a ZetaScript)
$iif(!$2,msg #ZetaSecure Parting $chan(%channum) - Found another zetascript)
inc %channum1
set %channumn %channumn $chan(%channum)
break
}
}
inc %nicknum
}
inc %channum
}
msg $1 Zetacheck reports %channum1 channels with more than one zeta ( $+ %channumn $+ ).
}
alias clearall {
set %clearall 1
while ($chan(%clearall) != $null) {
clear $chan(%clearall)
inc %clearall
}
}
alias Recover {
set %recover 2
while ($read(ChannelDB.ini,%recover)) {
if ((*#* iswm $gettok($read(ChannelDB.ini,%recover),1,61))) {
join $v2
}
inc %recover
}
}
alias resave {
remove ChannelDB.ini
if ($chan(0) < 1) { return 0 }
var %i = 1
while (%i <= $chan(0)) {
writeini -n ChannelDB.ini $zs(name) $chan(%i) Resave Command
inc %i
}
}
alias clearvars { unset %* }
alias showes {
if ($1 == 0) { return $1 $2 $+ $3 }
elseif ($1 == 1) { return $1 $2 }
else { return $1 $2 $+ $3 }
}
alias chanlist {
if ($chan(0) < 1) { return 0 }
var %chanlist $chan(1)
var %i = 2
while (%i <= $chan(0)) {
var %chanlist %chanlist $+ , $+ $chan(%i)
inc %i
}
return %chanlist
}
alias blist { writeini -n blacklist.ini users $$1 $iif($2- == $null,No Reason Specified,$2-) | Echo 4 $+ $$1 has been blacklisted }
alias unblist { remini blacklist.ini users $$1 | Echo 4 $+ $$1 has been unblacklisted }
alias htmlfree {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ), %x = $replace(%x,","), %x = $replace(%x,&,&)
return %x
}
alias setmelee { if ($1 == Attack) || ($1 == Defence) || ($1 == Strength) { return true } }
alias sethp { if ($1 == Hitpoints) { return true } }
alias xp {
var %x = 1, %level = $calc($1 - 1), %xp = 0
while (%x <= %level) {
var %TempXp = $calc($floor($calc(%x + 300 * 2 ^ (%x / 7))) / 4)
inc %xp %TempXp
inc %x
}
return $int(%xp)
}
alias xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) }
alias pest {
var %exp $iif($2 != Prayer,$calc(($1 ^2)/6),$calc(($1 ^2)/12)), %xp.nxtlvl $exp($3), %xp.diff $4, %point $calc(%xp.diff / %exp)
if (%point >= 100) { var %point $calc(%xp.diff / ((%exp * 0.1) + %exp)) }
if ($1 == 99) { return 0 }
else { return $bytes($gettok(%point,1,46),b) }
}
alias setpc {
if ($1 == 0) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack
elseif ($1 == 1) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
elseif ($1 == 2) || ($regex($1,/^str(ength)?$/Si)) return Strength
elseif ($1 == 3) || ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints
elseif ($1 == 4) || ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged
elseif ($1 == 5) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer
elseif ($1 == 6) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic
}
alias xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) }
alias setskill {
return $gettok($setskill0($1),1,32)
}
alias setskill2 {
return $gettok($setskill0($1),2,32)
}
alias setskill0 {
if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall 0
elseif ($1 == 1) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack 2
elseif ($1 == 2) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence 2
elseif ($1 == 3) || ($regex($1,/^str(ength)?$/Si)) return Strength 3
elseif ($1 == 4) || ($regex($1,/^(hp|hit)(s|points?)?$/Si)) return Hitpoints 4
elseif ($1 == 5) || ($regex($1,/^r(ng|ange|anged|angeing|anger)?$/Si)) return Ranged 5
elseif ($1 == 6) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer 6
elseif ($1 == 7) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic 7
elseif ($1 == 8) || ($regex($1,/^cook(ing)?$/Si)) return Cooking 8
elseif ($1 == 9) || ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting 9
elseif ($1 == 10) || ($regex($1,/^fletch(ing)?$/Si)) return Fletching 10
elseif ($1 == 11) || ($regex($1,/^fish(ing)?$/Si)) return Fishing 11
elseif ($1 == 12) || ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking 12
elseif ($1 == 13) || ($regex($1,/^craft(ing)?$/Si)) return Crafting 13
elseif ($1 == 14) || ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing 14
elseif ($1 == 15) || ($regex($1,/^min(e|eing|ing)?$/Si)) return Mining 15
elseif ($1 == 16) || ($regex($1,/^herb(law|lore)?$/Si)) return Herblore 16
elseif ($1 == 17) || ($regex($1,/^agil(ity)?$/Si)) return Agility 17
elseif ($1 == 18) || ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving 18
elseif ($1 == 19) || ($regex($1,/^slay(er|ing)?$/Si)) return Slayer 19
elseif ($1 == 20) || ($regex($1,/^farm(er|ing)?$/Si)) return Farming 20
elseif ($1 == 21) || ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecraft 21
elseif ($1 == 22) || ($regex($1,/^(con|construct)(ion|ing)?$/si)) return Construction 22
elseif ($1 == 23) || ($regex($1,/^(hunt)(er|ing)?$/si)) return Hunter 23
elseif ($1 == 24) || ($regex($1,/^c(mb|ombat)?$/si)) return Combat
}
alias striptags { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }
alias HPLevel {
if ($1 > 95) return 9,9...................
elseif ($1 > 90) return 9,9...................
elseif ($1 > 85) return 9,9..................4,4.
elseif ($1 > 80) return 9,9.................4,4..
elseif ($1 > 75) return 9,9................4,4...
elseif ($1 > 70) return 9,9...............4,4....
elseif ($1 > 65) return 9,9..............4,4.....
elseif ($1 > 60) return 9,9.............4,4......
elseif ($1 > 55) return 9,9............4,4.......
elseif ($1 > 50) return 9,9...........4,4........
elseif ($1 > 45) return 9,9..........4,4.........
elseif ($1 > 40) return 9,9.........4,4..........
elseif ($1 > 35) return 9,9........4,4...........
elseif ($1 > 30) return 9,9.......4,4............
elseif ($1 > 25) return 9,9......4,4.............
elseif ($1 > 20) return 9,9.....4,4..............
elseif ($1 > 15) return 9,9....4,4...............
elseif ($1 > 10) return 9,9...4,4................
elseif ($1 > 5) return 9,9..4,4.................
elseif ($1 > 0) return 9,9.4,4..................
elseif ($1 == 0) return 4,4...................
}
alias Idlestyle {
if ($regex($1,/^g(en|eneral)$/Si)) return General
elseif ($regex($1,/^v(erb|erbrose)$/Si)) return Verbrose
}
on $*:TEXT:/^[!.](Def|Set)(name|RSN)/Si:#: {
if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
if (* $+ $chr(36) $+ * iswm $2-) { halt }
if ($2) { writeini -n defrsn.ini RSNs $nick $replace($2-,$chr(32),-) | notice $nick $c1(We have saved) $c2($2-) $c1(as your DefRSN on) $c2($nick) }
elseif (!$2) { notice $nick $c1(You must Specify a) $c2(RSN) $c1(to set) }
}
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!@.](stats|rsstats))/Si):#: {
if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
if (* $+ $chr(36) $+ * iswm $2-) { halt }
inc %ID | set $+(%,stats.display.,%ID) $iif($left($iif($remove($1,$chr(44)) == $me,$iif($nick isop #ZetaAdmins,$2),$1),1) == @,$iif($remove($1,$chr(44)) != $me && $readini(Status2.ini,$network,$chan),.notice $nick,msg $chan),.notice $nick)
if (!$iif($remove($1,$chr(44)) == $me,$3,$2)) {
if ($readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$nick) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) all | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif (!$readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $nick | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) all | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
elseif ($iif($remove($1,$chr(44)) == $me,$3,$2)) {
if ($chr(37) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) {
if ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) { set $+(%,stats.rsn.,%ID) $iif($readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($3-,$chr(32),-),$replace($2-,$chr(32),-)),$chr(38),$chr(37))),$v1,$iif($remove($iif($remove($1,$chr(44)) == $me,$replace($3-,$chr(32),-),$replace($2-,$chr(32),-)),$chr(38),$chr(37)),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) percent | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif ($chr(38) !isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) { set $+(%,stats.rsn.,%ID) $iif($remove($iif($remove($1,$chr(44)) == $me,$replace($3-,$chr(32),-),$replace($2-,$chr(32),-)),$chr(37)),$v1,$iif($readini(defrsn.ini,RSNs,$nick),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) percent | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
elseif ($chr(60) isin $iif($remove($1,$chr(44)) == $me,$3,$2) || $chr(62) isin $iif($remove($1,$chr(44)) == $me,$3,$2)) { set $+(%,stats.rsn.,%ID) $iif($chr(38) isin $iif($remove($1,$chr(44)) == $me,$4-,$3-),$iif($readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$chr(38),$chr(60),$chr(62))),$readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$chr(38),$chr(60),$chr(62))),$nick),$remove($iif($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$iif($readini(defrsn.ini,RSNs,$nick),$readini(defrsn.ini,RSNs,$nick),$nick)),$chr(60),$chr(62)))
set $+(%,stats.level.,%ID) $remove($iif($remove($1,$chr(44)) == $me,$3,$2),$chr(60),$chr(62))
set $+(%,stats.gl.,%ID) $iif($chr(60) isin $iif($remove($1,$chr(44)) == $me,$3,$2),$chr(60),$chr(62))
set $+(%,stats.number.,%ID) 1
set $+(%,stats.number.2.,%ID) 1
set $+(%,stats.type.,%ID) glthan
sockopen $+(stats.,%ID) hiscore.runescape.com 80
}
elseif ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) {
if ($readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) all | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif (!$readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { notice $nick $c2($remove($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(38))) $c1(does not have a) $c2(RSN) $c1(saved in our DataBase) }
}
else { set $+(%,stats.rsn.,%ID) $replace($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(32),-) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) all | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
}
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!@.](pc|pest))/Si):#: {
if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
if (* $+ $chr(36) $+ * iswm $2-) { halt }
inc %ID | set $+(%,stats.display.,%ID) $iif($left($iif($remove($1,$chr(44)) == $me,$iif($nick isop #ZetaAdmins,$2),$1),1) == @,$iif($remove($1,$chr(44)) != $me && $readini(Status2.ini,$network,$chan),.notice $nick,msg $chan),.notice $nick)
if (!$iif($remove($1,$chr(44)) == $me,$3,$2)) {
if ($readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$nick) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) pcall | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif (!$readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $nick | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) pcall | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
elseif ($iif($remove($1,$chr(44)) == $me,$3,$2)) {
if ($setpc($iif($remove($1,$chr(44)) == $me,$3,$2))) {
if ($chr(35) isin $iif($remove($1,$chr(44)) == $me,$4,$3)) {
if ($remove($iif($remove($1,$chr(44)) == $me,$4,$3),$chr(35)) !isnum 1-99) { $($+(%,stats.display.,%ID),2) $c1(I'm sorry) $c2($nick) $c1(but you must specify a level between) $c2(1 and 99) }
else {
if ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$5-,$4-)) { set $+(%,stats.rsn.,%ID) $iif($readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($5-,$chr(32),-),$replace($4-,$chr(32),-)),$chr(38))),$v1,$iif($remove($iif($remove($1,$chr(44)) == $me,$replace($5-,$chr(32),-),$replace($4-,$chr(32),-)),$chr(38)),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.skill.,%ID) $setpc($iif($remove($1,$chr(44)) == $me,$3,$2)) | set $+(%,stats.level.,%ID) $iif($remove($iif($remove($1,$chr(44)) == $me,$4,$3),$chr(35)),$v1,99) | set $+(%,stats.type.,%ID) pclevelskill | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif ($chr(38) !isin $iif($remove($1,$chr(44)) == $me,$5-,$4-)) { set $+(%,stats.rsn.,%ID) $iif($iif($remove($1,$chr(44)) == $me,$replace($5-,$chr(32),-),$replace($4-,$chr(32),-)),$v1,$iif($readini(defRSN.ini,RSNs,$nick),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.skill.,%ID) $setpc($iif($remove($1,$chr(44)) == $me,$3,$2)) | set $+(%,stats.level.,%ID) $iif($remove($iif($remove($1,$chr(44)) == $me,$4,$3),$chr(35)),$v1,99) | set $+(%,stats.type.,%ID) pclevelskill | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
}
elseif ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$4-,$3-)) {
if ($readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($4-,$chr(38)),$remove($3-,$chr(38))),$chr(32),-))) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($4-,$chr(38)),$remove($3-,$chr(38))),$chr(32),-))) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.skill.,%ID) $setpc($iif($remove($1,$chr(44)) == $me,$3,$2)) | set $+(%,stats.type.,%ID) pcskill | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif (!$readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($4-,$chr(38)),$remove($3-,$chr(38))),$chr(32),-))) { notice $nick $c2($remove($iif($remove($1,$chr(44)) == $me,$4-,$3-),$chr(38))) $c1(does not have a) $c2(RSN) $c1(saved in our DataBase) }
}
else { set $+(%,stats.rsn.,%ID) $iif($replace($iif($remove($1,$chr(44)) == $me,$4-,$3-),$chr(32),-),$v1,$iif($readini(defRSN.ini,RSNs,$nick),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.skill.,%ID) $setpc($iif($remove($1,$chr(44)) == $me,$3,$2)) | set $+(%,stats.type.,%ID) pcskill | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
else { set $+(%,stats.rsn.,%ID) $iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(32),-),$remove($2-,$chr(32),-)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) pcall | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
}
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!@.](cmb|combat))/Si):#: {
if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
if (* $+ $chr(36) $+ * iswm $2-) { halt }
inc %ID | set $+(%,stats.display.,%ID) $iif($left($iif($remove($1,$chr(44)) == $me,$iif($nick isop #ZetaAdmins,$2),$1),1) == @,$iif($remove($1,$chr(44)) != $me && $readini(Status2.ini,$network,$chan),.notice $nick,msg $chan),.notice $nick)
if (!$iif($remove($1,$chr(44)) == $me,$3,$2)) {
if ($readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$nick) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) combat | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif (!$readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $nick | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) combat | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
elseif ($iif($remove($1,$chr(44)) == $me,$3,$2)) {
if ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) {
if ($readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) combat | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif (!$readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { notice $nick $c2($remove($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(38))) $c1(does not have a) $c2(RSN) $c1(saved in our DataBase) }
}
else { set $+(%,stats.rsn.,%ID) $replace($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(32),-) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) combat | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
}
on $*:TEXT:/^[!@]reqs (on|off)/Si:#: {
if ($readini(Status.ini,$me,$chan) == DChan) { halt }
if ($nick isop $chan) {
if ($2 == on) {
if ($readini(ChannelReq.ini,$chan,status)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but Req checker is already on!) }
elseif (!$readini(ChannelReq.ini,$chan,status)) { writeini -n ChannelReq.ini $chan status on | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(Channel Req enforcer is now online in) $c2($chan) }
}
elseif ($2 == off) {
if ($readini(ChannelReq.ini,$chan,status)) { remini ChannelReq.ini $chan status | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(Channel Req enforcer is now offline in) $c2($chan) }
elseif (!$readini(ChannelReq.ini,$chan,status)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but Req checker is already off!) }
}
}
}
on $*:TEXT:/^[!@]banreqs /Si:#: {
if ($readini(Status.ini,$me,$chan) == DChan) { halt }
if ($nick isop $chan) {
if ($2 == kick) {
if ($readini(ChannelReq.ini,$chan,kb)) { remini ChannelReq.ini $chan kb | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(Ban reqs are now set to kick for) $c2($chan) }
elseif (!$readini(ChannelReq.ini,$chan,kb)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but ban reqs are already set to kick!) }
}
elseif ($2 isnum 200-1000) { writeini -n ChannelReq.ini $chan kb $2 | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(Ban reqs have been set to $2 in) $c2($chan) }
else { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but there was an error processing your request) $c2(Syntax: !/@setbanreqs Time in Seconds $+ /off) }
}
}
on $*:TEXT:/^[!@]reqstat (on|off)/Si:#: {
if ($readini(Status.ini,$me,$chan) == DChan) { halt }
if ($nick isop $chan) {
if ($2 == on) {
if ($readini(ChannelReq.ini,$chan,msgstat)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but stats messager is already on!) }
elseif (!$readini(ChannelReq.ini,$chan,msgstat)) { writeini -n ChannelReq.ini $chan msgstat on | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(stats messager is now online in) $c2($chan) }
}
elseif ($2 == off) {
if ($readini(ChannelReq.ini,$chan,msgstat)) { remini ChannelReq.ini $chan msgstat | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(stats messager is now offline in) $c2($chan) }
elseif (!$readini(ChannelReq.ini,$chan,msgstat)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but stats messager is already off!) }
}
}
}
on $*:TEXT:/^[!@]resetreqs/Si:#: {
if ($readini(Status.ini,$me,$chan) == DChan) { halt }
if ($nick isop $chan) { remini ChannelReq.ini $chan | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(All Reqs for) $c2($chan) $c1(have been reset and the req enforcer has been turned off) }
}
on $*:TEXT:/^[!@]setreq /Si:#: {
if ($readini(Status.ini,$me,$chan) == DChan) { halt }
if ($nick isop $chan) {
if ($setskill($2)) && ($3 isnum) { writeini -n ChannelReq.ini $chan $setskill($2) $3 | set %x 0
while ($setskill(%x)) { set $+(%,stats.req.,$chan) $($+(%,stats.req.,$chan),2) $iif($readini(ChannelReq.ini,$chan,$setskill(%x)),$c1($setskill(%x)) $c2($readini(ChannelReq.ini,$chan,$setskill(%x))),$c1($setskill(%x)) $c2(0)) | inc %x }
$iif($left($1,1) == @,msg $chan,.notice $nick) $c1(We have saved) $c2($chan $+ 's) $c1(Requirements as:) | $iif($left($1,1) == @,msg $chan,.notice $nick) $($+(%,stats.req.,$chan),2) | unset $+(%,stats.req.,$chan)
}
elseif ($setskill($2)) && ($3 !isnum) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but a channel Requirement must be a number) }
else { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but a channel Requirement must specify a valid skill) }
}
}
on *:JOIN:#: {
if ($readini(Status.ini,$me,$chan) == DChan) || ($nick == $me) { halt }
if (!$readini(ChannelReq.ini,$chan,status)) { halt }
else { inc %ID | set $+(%,stats.chan.,%ID) $chan | set $+(%,stats.rsn.,%ID) $remove($nick,|,[,],) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) req | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!@.](.*))/Si):#: {
if ($setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),@,!))) && ($setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),@,!)) != Combat) {
if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
if (* $+ $chr(36) $+ * iswm $2-) { halt }
inc %ID | set $+(%,stats.display.,%ID) $iif($left($iif($remove($1,$chr(44)) == $me,$iif($nick isop #ZetaAdmins,$2),$1),1) == @,$iif($remove($1,$chr(44)) != $me && $readini(Status2.ini,$network,$chan),.notice $nick,msg $chan),.notice $nick) | set $+(%,stats.display.2.,%ID) .notice $nick
if (!$iif($remove($1,$chr(44)) == $me,$3,$2)) {
if ($readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$nick) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) skill | set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@)) | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif (!$readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $nick | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) skill | set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@)) | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
elseif ($iif($remove($1,$chr(44)) == $me,$3,$2)) {
if ($chr(35) isin $iif($remove($1,$chr(44)) == $me,$3,$2)) { set $+(%,stats.rsn.,%ID) $iif($chr(38) isin $iif($remove($1,$chr(44)) == $me,$4-,$3-),$iif($readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$chr(38),$chr(35))),$readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$chr(38),$chr(35))),$nick),$remove($iif($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$iif($readini(defrsn.ini,RSNs,$nick),$readini(defrsn.ini,RSNs,$nick),$nick)),$chr(35)))
set $+(%,stats.level.,%ID) $remove($iif($remove($1,$chr(44)) == $me,$3,$2),$chr(35))
set $+(%,stats.number.,%ID) 1
set $+(%,stats.number.2.,%ID) 1
set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@))
set $+(%,stats.type.,%ID) levelskill
sockopen $+(stats.,%ID) hiscore.runescape.com 80
}
elseif ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) {
if ($readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) skill | set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@)) | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
elseif (!$readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { notice $nick $c2($remove($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(38))) $c1(does not have a) $c2(RSN) $c1(saved in our DataBase) }
}
else { set $+(%,stats.rsn.,%ID) $replace($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(32),-) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) skill | set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@)) | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
}
}
on *:SOCKOPEN:stats.*: {
var %ID = $gettok($sockname,2,46)
sockwrite -nt $sockname GET /hiscorepersonal.ws?user1= $+ $($+(%,stats.rsn.,%ID),2) HTTP/1.1
sockwrite -nt $sockname Host: hiscore.runescape.com
sockwrite -nt $sockname $crlf $crlf
}
on *:SOCKREAD:stats.*: {
var %ID = $gettok($sockname,2,46)
if ($sockerr) { $($+(%,stats.display.,%ID),2) Error: $sockerr Please contact Ktravaglini | cleanup %ID }
else { var %templine | sockread %templine
if ($setskill(%templine)) { set $+(%,stats.skill.2.,%ID) %templine }
elseif (does not feature in the hiscores. You have to be in the top 1 million (for any skill) and have a minimum skill level of 30.</i> isin %templine) {
if ($($+(%,stats.type.,%ID),2) == req) { set %x 1
if (0 < $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),Combat),$v1,0)) { inc $+(%,stats.violate.,%ID) 1 }
while (%x < 25) {
if (0 < $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),$setskill(%x)),$v1,0) ) { inc $+(%,stats.violate.,%ID) 1 | inc %x }
else { inc %x }
}
msg $($+(%,stats.chan.,%ID),2) $c1($remove(%templine,</i>)) $c1($chr(40)) $+ $c2($iif($($+(%,stats.violate.,%ID),2),$v1,0)) $c1(Req Violations $+ $chr(41)) | $iif($($+(%,stats.violate.,%ID),2) >= 1,kick $($+(%,stats.chan.,%ID),2) $($+(%,stats.rsn.,%ID),2) You do not meet $($+(%,stats.violate.,%ID),2) of this $($+(%,stats.chan.,%ID),2) $+ 's requirements,noop) | cleanup %ID | sockclose $sockname }
else { $($+(%,stats.display.,%ID),2) $c1($remove(%templine,</i>)) | cleanup %ID | sockclose $sockname | halt }
}
elseif ($regex(%templine,<td align="right">(.*)</td>)) && (<img class= !isin $regml(1)) && (<b>Rank</b></td><td align="right"><b>Level</b></td><td align="right"><b>XP</b> !isin $regml(1)) {
if ($($+(%,stats.number.,%ID),2) == 3) { set $+(%,stats.,$($+(%,stats.skill.2.,%ID),2),.exp.,%ID) $regml(1) | inc $+(%,stats.number.,%ID) 1 }
if ($($+(%,stats.number.,%ID),2) == 2) { set $+(%,stats.,$($+(%,stats.skill.2.,%ID),2),.level.,%ID) $regml(1) | inc $+(%,stats.number.,%ID) 1 }
if ($($+(%,stats.number.,%ID),2) == 1) { set $+(%,stats.,$($+(%,stats.skill.2.,%ID),2),.rank.,%ID) $regml(1) | inc $+(%,stats.number.,%ID) 1 }
if ($($+(%,stats.number.,%ID),2) == 4) { set $+(%,stats.number.,%ID) 1 }
}
elseif ($regex(%templine,</table>)) {
if ($($+(%,stats.type.,%ID),2) == all) {
while ($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46)) $c2($($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2)) | inc $+(%,stats.number.2.,%ID) 1 }
if (!$var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:) | $($+(%,stats.display.,%ID),2) $($+(%,stats.statline.,%ID),2) | cleanup %ID | sockclose $sockname }
}
if ($($+(%,stats.type.,%ID),2) == glthan) {
while ($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) {
if ($($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2) $($+(%,stats.gl.,%ID),2) $($+(%,stats.level.,%ID),2)) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46)) $c2($($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2)) | inc $+(%,stats.number.2.,%ID) 1 }
else { inc $+(%,stats.number.2.,%ID) 1 }
}
if (!$var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) {
if (!$($+(%,stats.level.,%ID),2)) { $($+(%,stats.display.,%ID),2) $c1(I'm sorry but you must speicfy a) $c2(level) $c1(to lookup) | cleanup %ID | sockclose $sockname }
elseif ($($+(%,stats.level.,%ID),2) !isnum) { $($+(%,stats.display.,%ID),2) $c1(I'm sorry but) $c2(Runescape levels) $c1(have to be numbers) | cleanup %ID | sockclose $sockname }
else { $($+(%,stats.display.,%ID),2) $c1(Stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:) | $($+(%,stats.display.,%ID),2) $iif($($+(%,stats.statline.,%ID),2),$($+(%,stats.statline.,%ID),2),$c1(None of) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1('s skills are $iif($($+(%,stats.gl.,%ID),2) == >,greater than,less than)) $c2($iif($($+(%,stats.level.,%ID),2),$($+(%,stats.level.,%ID),2),nothing))) | cleanup %ID | sockclose $sockname }
}
}
if ($($+(%,stats.type.,%ID),2) == Percent) {
while ($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) {
if ($remove($bytes($iif($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46) != overall,$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / $xp(99)) * 100),$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / ($xp(99) * 23) * 100))),b),$chr(44)) < 101) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46)) $c2($bytes($iif($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46) != overall,$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / $xp(99)) * 100),$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / ($xp(99) * 23) * 100))),b) $+ %) | inc $+(%,stats.number.2.,%ID) 1 }
elseif ($remove($bytes($iif($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46) != overall,$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / $xp(99)) * 100),$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / ($xp(99) * 23) * 100))),b),$chr(44)) > 100) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46)) $c2($bytes($iif($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46) != overall,$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / 200000000) * 100),$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / 4600000000) * 100))) $+ %) | inc $+(%,stats.number.2.,%ID) 1 }
}
if (!$var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:) | $($+(%,stats.display.,%ID),2) $($+(%,stats.statline.,%ID),2) | cleanup %ID | sockclose $sockname }
}
if ($($+(%,stats.type.,%ID),2) == pcall) { set %x 0
while (%x <= 6) {
if ($setpc(%x) == Prayer) { set %xpperpointpray $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 12) | set %pointsneededpray $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointpray) | $iif(%pointsneededpray >= 100,set %pointsneededpray $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointpray * .10) + %xpperpointpray)),noop) | set %praylvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
elseif ($setpc(%x) == Attack) { set %xpperpointatt $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededatt $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointatt) | $iif(%pointsneededatt >= 100,set %pointsneededatt $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointatt * .10) + %xpperpointatt)),noop) | set %attlvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
elseif ($setpc(%x) == Defence) { set %xpperpointdef $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededdef $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointdef) | $iif(%pointsneededdef >= 100,set %pointsneededdef $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointdef * .10) + %xpperpointdef)),noop) | set %deflvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
elseif ($setpc(%x) == Strength) { set %xpperpointstr $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededstr $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointstr) | $iif(%pointsneededstr >= 100,set %pointsneededstr $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointstr * .10) + %xpperpointstr)),noop) | set %strlvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
elseif ($setpc(%x) == Hitpoints) { set %xpperpointhp $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededhp $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointhp) | $iif(%pointsneededhp >= 100,set %pointsneededhp $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointhp * .10) + %xpperpointhp)),noop) | set %hplvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
elseif ($setpc(%x) == Ranged) { set %xpperpointrange $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededrange $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointrange) | $iif(%pointsneededrange >= 100,set %pointsneededrange $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointrange * .10) + %xpperpointrange)),noop) | set %rangelvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
elseif ($setpc(%x) == Magic) { set %xpperpointmage $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededmage $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointmage) | $iif(%pointsneededmage >= 100,set %pointsneededmage $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointmage * .10) + %xpperpointmage)),noop) | set %magelvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
inc %x
}
$($+(%,stats.display.,%ID),2) $c1(Pest Control Points for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:)
set $+(%,stats.line.1.,%ID) $c1(Attack:) $c1($chr(123)) $+ $c2(%attlvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededatt,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointatt,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Defence:) $c1($chr(123)) $+ $c2(%deflvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededdef,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointdef,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Strength:) $c1($chr(123)) $+ $c2(%strlvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededstr,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointstr,b)) $+ $c1(xp/point $+ $chr(93))
set $+(%,stats.line.2.,%ID) $c1(Hitpoints:) $c1($chr(123)) $+ $c2(%hplvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededhp,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointhp,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Magic:) $c1($chr(123)) $+ $c2(%magelvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededmage,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointmage,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Ranged:) $c1($chr(123)) $+ $c2(%rangelvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededrange,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointrange,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Prayer:) $c1($chr(123)) $+ $c2(%praylvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededpray,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointpray,b)) $+ $c1(xp/point $+ $chr(93))
$($+(%,stats.display.,%ID),2) $($+(%,stats.line.1.,%ID),2) $($+(%,stats.line.2.,%ID),2) | cleanup %ID | sockclose $sockname
}
if ($($+(%,stats.type.,%ID),2) == skill) {
tokenize 32 $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.rank.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2) $xp2next($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2),$remove($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) + 1))
if ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2)) { $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.skill.,%ID),2)) $c1(stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:)
if ($($+(%,stats.skill.,%ID),2) != Overall) {
if ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) < 99) { set $+(%,stats.number.,%ID) 1
if ($setmelee($($+(%,stats.skill.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp to level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($4,b)) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $4) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($calc($2 + 1)),$c1($chr(41))) $c1(Damage To Deal For Level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($calc($4 / 4),b)) }
elseif ($sethp($($+(%,stats.skill.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp to level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($4,b)) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $4) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($calc($2 + 1)),$c1($chr(41))) $c1(Damage To Deal For Level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($calc($4 / (4 / 3)),b)) }
else { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp to level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($4,b)) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $4) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($calc($2 + 1)),$c1($chr(41))) }
while ($($+(%,stats.number.,%ID),2) <= 9) { set $+(%,stats.2next.,%ID) $($+(%,stats.2next.,%ID),2) $c1($replace($gettok($readini(exp.ini,$($+(%,stats.skill.,%ID),2),$($+(%,stats.number.,%ID),2)),2-,32),-,$chr(32)) $+ :) $c2($bytes($calc($4 / $gettok($readini(exp.ini,$($+(%,stats.skill.,%ID),2),$($+(%,stats.number.,%ID),2)),1,32)),b)) | inc $+(%,stats.number.,%ID) }
$($+(%,stats.display.2.,%ID),2) $c1(<For Level) $c2($calc($2 + 1)) $+ $c1(>) $($+(%,stats.2next.,%ID),2) | cleanup %ID | sockclose $sockname
}
elseif ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) >= 99) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) | cleanup %ID | sockclose $sockname }
}
elseif ($($+(%,stats.skill.,%ID),2) == Overall) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) | cleanup %ID | sockclose $sockname }
}
elseif (!$($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2)) { $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(does not feature in the hiscores for $($+(%,stats.skill.,%ID),2) $+ . You have to be in the top 1 million (for any skill) and have a minimum skill level of 30.) | cleanup %ID | sockclose $sockname }
}
if ($($+(%,stats.type.,%ID),2) == levelskill) {
tokenize 32 $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.rank.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2) $bytes($calc($xp($($+(%,stats.level.,%ID),2)) - $remove($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2),$chr(44))),b) $xp($($+(%,stats.level.,%ID),2))
if ($($+(%,stats.level.,%ID),2) > 99) { $($+(%,stats.display.,%ID),2) $c1(Runescape levels can only be between) $c2(1) $c1(and) $c2(99) | cleanup %ID | sockclose $sockname | halt }
elseif ($($+(%,stats.level.,%ID),2) < $2) { $($+(%,stats.display.,%ID),2) $c1(You cant specify a level lower than your own) $c2(Runescape) $c1(level in) $c2($($+(%,stats.skill.,%ID),2)) | cleanup %ID | sockclose $sockname | halt }
elseif ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2)) { $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.skill.,%ID),2)) $c1(stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:)
if ($($+(%,stats.skill.,%ID),2) != Overall) {
if ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) < 99) { set $+(%,stats.number.,%ID) 1
if ($setmelee($($+(%,stats.skill.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp To level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(:) $c2($4) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $remove($4,$chr(44))) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($($+(%,stats.level.,%ID),2)),$c1($chr(41))) $c1(Damage To Deal For Level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($calc($remove($4,$chr(44)) / 4),b)) }
elseif ($sethp($($+(%,stats.skill.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp To level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(:) $c2($4) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $remove($4,$chr(44))) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($($+(%,stats.level.,%ID),2)),$c1($chr(41))) $c1(Damage To Deal For Level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($calc($remove($4,$chr(44)) / (4 / 3)),b)) }
else { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp To level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(:) $c2($4) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $remove($4,$chr(44))) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($($+(%,stats.level.,%ID),2)),$c1($chr(41))) }
while ($($+(%,stats.number.,%ID),2) <= 9) { set $+(%,stats.2next.,%ID) $($+(%,stats.2next.,%ID),2) $c1($replace($gettok($readini(exp.ini,$($+(%,stats.skill.,%ID),2),$($+(%,stats.number.,%ID),2)),2-,32),-,$chr(32)) $+ :) $c2($bytes($calc($remove($4,$chr(44)) / $gettok($readini(exp.ini,$($+(%,stats.skill.,%ID),2),$($+(%,stats.number.,%ID),2)),1,32)),b)) | inc $+(%,stats.number.,%ID) }
$($+(%,stats.display.2.,%ID),2) $c1(<For Level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(>) $($+(%,stats.2next.,%ID),2) | cleanup %ID | sockclose $sockname
}
elseif ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) >= 99) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) | cleanup %ID | sockclose $sockname }
}
elseif ($($+(%,stats.skill.,%ID),2) == Overall) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) | cleanup %ID | sockclose $sockname }
}
elseif (!$($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2)) { $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(does not feature in the hiscores for $($+(%,stats.skill.,%ID),2) $+ . You have to be in the top 1 million (for any skill) and have a minimum skill level of 30.) | cleanup %ID | sockclose $sockname }
}
if ($($+(%,stats.type.,%ID),2) == pcskill) {
tokenize 32 $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.rank.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2) $xp2next($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2),$remove($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) + 1))
if ($2 < 99) { $iif($($+(%,stats.type.,%ID),2) == Prayer,set %xpperpoint $calc(($2 * $2) / 12),set %xpperpoint $calc(($2 * $2) / 6)) | $iif($calc($remove($4,$chr(44)) / %xpperpoint) < 100, set %pointsneeded $v1,set %pointsneeded $calc($remove($4,$chr(44)) / ((%xpperpoint * .10) + %xpperpoint))) | $($+(%,stats.display.,%ID),2) $c1(RSN:) $c2($($+(%,stats.rsn.,%ID),2)) $c1(Skill:) $c2($($+(%,stats.skill.,%ID),2)) $c1(Level:) $c2($bytes($2,b)) $c1(PC Points Needed for level) $c2($bytes($calc($2 + 1),b)) $+ $c1(:) $c2($bytes(%pointsneeded,b)) $c1(Exp/point:) $c2($bytes(%xpperpoint,b)) | cleanup %ID | sockclose $sockname }
elseif ($2 > 98) { $($+(%,stats.display.,%ID),2) $c1(I'm Sorry but) $c2(%rsn) $c1(has level 99 in) $c2(%skill) $c1(and can no longer level up) | cleanup %ID | sockclose $sockname }
}
elseif ($($+(%,stats.type.,%ID),2) == pclevelskill) {
tokenize 32 $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.rank.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2) $xp2next($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2),$remove($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) + 1))
if ($2 < 99) {
if ($($+(%,stats.level.,%ID),2) > $2) { $iif($($+(%,stats.skill.,%ID),2) == Prayer,set %xpperpoint $calc(((($($+(%,stats.level.,%ID),2) + $2) / 2) * (($($+(%,stats.level.,%ID),2) + $2) / 2)) / 12),set %xpperpoint $calc(((($($+(%,stats.level.,%ID),2) + $2) / 2) * (($($+(%,stats.level.,%ID),2) + $2) / 2)) / 6)) | $iif($calc(($xp($($+(%,stats.level.,%ID),2)) - $remove($3,$chr(44))) / %xpperpoint) < 100,set %pointsneeded $calc(($xp($($+(%,stats.level.,%ID),2)) - $remove($3,$chr(44))) / %xpperpoint),set %pointsneeded $calc(($xp($($+(%,stats.level.,%ID),2)) - $remove($3,$chr(44))) / ((%xpperpoint * .10) + %xpperpoint))))
$($+(%,stats.display.,%ID),2) $c1(RSN:) $c2($($+(%,stats.rsn.,%ID),2)) $c1(Skill:) $c2($($+(%,stats.skill.,%ID),2)) $c1(Level:) $c2($2) $c1(PC Points Needed for level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(:) $c2($bytes(%pointsneeded,b)) $c1(Exp/point:) $c2($bytes(%xpperpoint,b)) | cleanup %ID | sockclose $sockname
}
elseif ($($+(%,stats.level.,%ID),2) >= $2) { %display $c1(I'm sorry but) $c2($($+(%,stats.level.,%ID),2)) $c1(is greater than) $c2($($+(%,stats.rsn.,%ID),2) $+ 's) $c1(level in) $c2($($+(%,stats.skill.,%ID),2)) | cleanup %ID | sockclose $sockname }
}
elseif ($2 > 98) { $($+(%,stats.display.,%ID),2) $c1(I'm Sorry but) $c2($($+(%,stats.rsn.,%ID),2)) $c1(has level 99 in) $c2($($+(%,stats.skill.,%ID),2)) $c1(and can no longer level up) | cleanup %ID | sockclose $sockname }
}
if ($($+(%,stats.type.,%ID),2) == combat) {
var %a.mult = .32707, %s.mult = .324, %d.mult = .25, %h.mult = .25, %p.mult = .124, %r.mult = .487, %m.mult = .487
set %a $iif($($+(%,stats.Attack.level.,%ID),2),$v1,-) | set %s $iif($($+(%,stats.Strength.level.,%ID),2),$v1,-) | set %d $iif($($+(%,stats.Defence.level.,%ID),2),$v1,-) | set %h $iif($($+(%,stats.hitpoints.level.,%ID),2),$v1,-) | set %r $iif($($+(%,stats.ranged.level.,%ID),2),$v1,-) | set %m $iif($($+(%,stats.magic.level.,%ID),2),$v1,-) | set %p $iif($($+(%,stats.prayer.level.,%ID),2),$v1,-)
if (%a !isnum) && (%s !isnum) && (%d !isnum) && (%h !isnum) && (%h !isnum) && (%r !isnum) && (%p !isnum) { $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(does not appear in any combat skills) | halt }
set %meleecombat $calc(%a * %a.mult + %s * %s.mult + %d * %d.mult + %h * %h.mult + %p * %p.mult) | set %RangedCombat $calc(%r * %r.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult) | set %MagicCombat $calc(%m * %m.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult)
if (%MagicCombat == %RangedCombat) && (%MagicCombat == %RangedCombat) { var %cmbstyle = Balanced, %combat = %MeleeCombat }
elseif (%MagicCombat > %RangedCombat) && (%MagicCombat > %MeleeCombat) { var %cmbstyle = Magic, %Combat = %MagicCombat }
elseif (%RangedCombat > %MeleeCombat) { var %cmbstyle = Ranged, %Combat = %RangedCombat }
else { var %cmbstyle = Melee, %combat = %MeleeCombat }
set %cmb.temp $abs($calc($int($calc(%combat +1)) - %combat)) | set %a.2lvl $ceil($calc(%cmb.temp / %a.mult)) | set %s.2lvl $ceil($calc(%cmb.temp / %s.mult)) | set %d.2lvl $ceil($calc(%cmb.temp / %d.mult)) | set %m.2lvl $ceil($calc(%cmb.temp / %m.mult)) | set %r.2lvl $ceil($calc(%cmb.temp / %r.mult)) | set %p.2lvl $ceil($calc(%cmb.temp / %p.mult))
if (%cmbstyle == magic) { var %dynamic.2lvl = $c1(Magic:) $c2(%m.2lvl) }
elseif (%cmbstyle == Ranged) { var %dynamic.2lvl = $c1(Ranged:) $c2(%r.2lvl) }
else { var %dynamic.2lvl = $c1(Att:) $c2(%a.2lvl) $c1(Str:) $c2(%s.2lvl) }
set %combat $round(%combat,2)
$($+(%,stats.display.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(is level) $c2($bytes(%combat,5d)) $c1([) $+ $c2($bytes($calc((%combat / 126) * 100),b) $+ %) $+ $c1(]) $c1($chr(40)) $+ $c2(%cmbstyle style) $+ $c1($chr(41)) | $($+(%,stats.display.,%ID),2) $c1(Attack:) $c2(%a) $c1(Defence:) $c2(%d) $c1(Strength:) $c2(%s) $c1(Hits:) $c2(%h) $c1(Mage:) $c2(%m) $c1(Range:) $c2(%r) $c1(Pray:) $c2(%p)
if (%combat < 126) { $($+(%,stats.display.,%ID),2) $c1(Levels for) $c2($calc($int(%combat) + 1)) $+ $c1(:) %dynamic.2lvl $c1(Def/Hp:) $c2(%d.2lvl) $c1(Prayer:) $c2(%p.2lvl) | cleanup %ID | cleancmb %ID | sockclose $sockname }
elseif (%combat >= 127) { cleancmb %ID | sockclose $sockname }
}
if ($($+(%,stats.type.,%ID),2) == req) {
var %a.mult = .32707, %s.mult = .324, %d.mult = .25, %h.mult = .25, %p.mult = .124, %r.mult = .487, %m.mult = .487
set %a $iif($($+(%,stats.Attack.level.,%ID),2),$v1,-) | set %s $iif($($+(%,stats.Strength.level.,%ID),2),$v1,-) | set %d $iif($($+(%,stats.Defence.level.,%ID),2),$v1,-) | set %h $iif($($+(%,stats.hitpoints.level.,%ID),2),$v1,-) | set %r $iif($($+(%,stats.ranged.level.,%ID),2),$v1,-) | set %m $iif($($+(%,stats.magic.level.,%ID),2),$v1,-) | set %p $iif($($+(%,stats.prayer.level.,%ID),2),$v1,-)
set %meleecombat $calc(%a * %a.mult + %s * %s.mult + %d * %d.mult + %h * %h.mult + %p * %p.mult) | set %RangedCombat $calc(%r * %r.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult) | set %MagicCombat $calc(%m * %m.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult)
if (%MagicCombat == %RangedCombat) && (%MagicCombat == %RangedCombat) { var %cmbstyle = Balanced, %combat = %MeleeCombat }
elseif (%MagicCombat > %RangedCombat) && (%MagicCombat > %MeleeCombat) { var %cmbstyle = Magic, %Combat = %MagicCombat }
elseif (%RangedCombat > %MeleeCombat) { var %cmbstyle = Ranged, %Combat = %RangedCombat }
else { var %cmbstyle = Melee, %combat = %MeleeCombat }
set %combat $bytes(%combat,3d) | set %x 0
if ($iif(%combat,$v1,0) < $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),Combat),$v1,0)) { inc $+(%,stats.violate.,%ID) 1 }
while (%x < 25) {
if ($iif($($+(%,stats.,$setskill(%x),.level.,%ID),2),$v1,0) < $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),$setskill(%x)),$v1,0) ) { inc $+(%,stats.violate.,%ID) 1 | inc %x }
else { inc %x }
}
while ($($+(%,stats.number.2.,%ID),2) < 8) {
if ($($+(%,stats.,$setskill($($+(%,stats.number.2.,%ID),2)),.level.,%ID),2)) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($setskill($($+(%,stats.number.2.,%ID),2)) $+ :) $c2($($+(%,stats.,$setskill($($+(%,stats.number.2.,%ID),2)),.level.,%ID),2)) | inc $+(%,stats.number.2.,%ID) 1 }
else { inc $+(%,stats.number.2.,%ID) 1 }
}
msg $($+(%,stats.chan.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(has) $c2($iif($($+(%,stats.violate.,%ID),2),$v1,0)) $c1(Req Violations) | $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),msgstat),msg $($+(%,stats.chan.,%ID),2) $c1(Combat) $c2(%combat) $c1([) $+ $c2($bytes($calc((%combat / 126) * 100),b) $+ %) $+ $c1(]) $c1($chr(40)) $+ $c2(%cmbstyle style) $+ $c1($chr(41)) $($+(%,stats.statline.,%ID),2),noop) | $iif($($+(%,stats.violate.,%ID),2) >= 1,$iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),kb),ban -ku $+ $v1 $($+(%,stats.chan.,%ID),2) $($+(%,stats.rsn.,%ID),2) You do not meet $($+(%,stats.violate.,%ID),2) of this $($+(%,stats.chan.,%ID),2) $+ 's requirements,kick $($+(%,stats.chan.,%ID),2) $($+(%,stats.rsn.,%ID),2) You do not meet $($+(%,stats.violate.,%ID),2) of this $($+(%,stats.chan.,%ID),2) $+ 's requirements),noop) | sockclose $sockname
}
}
}
}
alias cleanup { unset $+(%,stats.*.,$1-) }
alias cleancmb { unset %a | unset %s | unset %d | unset %h | unset %r | unset %m | unset %p | unset %meleecombat | unset %RangedCombat | unset %MagicCombat | unset %cmb.temp | unset %a.2lvl | unset %s.2lvl | unset %d.2lvl | unset %m.2lvl | unset %r.2lvl | unset %p.2lvl }