rendered paste bodyon $*:text:/^[!@`]void */Si:#: {
if $sock(server) { /sockclose server }
/sockopen server hiscore.runescape.com 80
}
on *:Sockopen:void:{
//sockopen -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,stats.rsn.,%ID),2) HTTP/1.1
//sockopen -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
//sockopen -nt $sockname
}
on *:sockread:void.*: {
sockread &Incoming
bwrite $sockname -1 -1 &Incoming
if ($bfind(&Incoming, 1, </html>).text) makehash $sockname
elseif ($bfind(&Incoming, 1, does not feature in the hiscores.).text) {
$($+(%,stats.display.,%ID),2) $c1(The nick) $c2($($+(%,stats.rsn.,%ID),2)) $c1(Does not appear in the hiscores for Combat)
cleanup $gettok($sockname,2,46)
}
}
alias void {
var %att = $calc(%level * %level / 6)
var %def = $calc(%level * %level / 6)
var %str = $calc(%level * %level / 6)
var %range = $calc(%level * %level / 6)
var %mage = $calc(%level * %level / 6)
var %prayer = $calc($level * $level / 12)
}
alias -l makehash {
var %file = $1
bread %file 1 $file(%file).size &stats
var %currentstat, %x = 1
while (%x) {
var %x = $bfind(&stats,$calc(%x + 1),<a href="overall.ws?table=)
var %currentstat = $striptags($bvar(&stats,%x,200).text)
tokenize 32 %currentstat
hadd -m %file $1 $2 $3 $4 $xp2next($3,$4)
}
process %file
}
alias process {
var %table = $1, %id = $gettok($1,2,46), %x = 0, $&
%display = $($+(%,stats.display.,%ID),2), $&
%rsn = $($+(%,stats.rsn.,%ID),2), $&
%skill = $($+(%,stats.skill.,%ID),2), $&
%style = $($+(%,stats.style.,%ID),2
}
alias -1 void {
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,/^rang(e|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
}