on $*:TEXT:/^[!@]top5 .*/Si:#:{ var %x 1 while ($sock($+(top5.,%x))) inc %x set $+(%,top5.target.,%x) $iif(@* iswm $1,msg $chan,.notice $nick) if ($2) { if (!$tableno($2)) { .notice $nick $c1(Please specify a RS skill.) halt } else { set $+(%,top5.table.,%x) $tableno($2) } } else { set $+(%,top5.table.,%x) lol.0 } set $+(%,top5.z1.,%x) 1 set $+(%,top5.z2.,%x) 1 set $+(%,top5.z3.,%x) 1 sockopen $+(top5.,%x) hiscore.runescape.com 80 } on *:SOCKOPEN:top5.*:{ sockwrite -nt $sockname GET /lang/en/aff/runescape/overall.ws?table= $+ $gettok($($+(%,top5.table.,$gettok($sockname,2,46)),2),2,46) HTTP/1.1 sockwrite -nt $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf } on *:SOCKREAD:top5.*:{ var %x = $gettok($sockname,2,46), %target = $($+(%,top5.target.,%x),2) if ($sockerr) { %target $c1(*** Socket error:) $c2($sock($sockname).wsmsg) halt } else { var %read sockread %read if (*personal* iswm %read) { if ($($+(%,top5.z1.,%x),2) <= 5) { set $+(%,top5.,$ord($($+(%,top5.z1.,%x),2)),.user.,%x) $striptags(%read) inc $+(%,top5.z1.,%x) } } elseif ($len($remove(%read,$chr(44))) isnum 2-4) && ($remove(%read,$chr(44)) isnum) { if ($($+(%,top5.z2.,%x),2) <= 5) { set $+(%,top5.,$ord($($+(%,top5.z2.,%x),2)),.lvl.,%x) %read inc $+(%,top5.z2.,%x) } } elseif ($len($remove(%read,$chr(44))) isnum 8-9) && ($remove(%read,$chr(44)) isnum) { if ($($+(%,top5.z3.,%x),2) <= 5) { set $+(%,top5.,$ord($($+(%,top5.z3.,%x),2)),.exp.,%x) %read inc $+(%,top5.z3.,%x) } } } } on *:SOCKCLOSE:top5.*:{ var %x = $gettok($sockname,2,46), %target = $($+(%,top5.target.,%x),2) %target $c1(1 $+ .) $c2($($+(%,top5.,$ord(1),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,top5.,$ord(1),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,top5.,$ord(1),.exp.,%x),2)) %target $c1(2 $+ .) $c2($($+(%,top5.,$ord(2),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,top5.,$ord(2),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,top5.,$ord(2),.exp.,%x),2)) %target $c1(3 $+ .) $c2($($+(%,top5.,$ord(3),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,top5.,$ord(3),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,top5.,$ord(3),.exp.,%x),2)) %target $c1(4 $+ .) $c2($($+(%,top5.,$ord(4),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,top5.,$ord(4),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,top5.,$ord(4),.exp.,%x),2)) %target $c1(5 $+ .) $c2($($+(%,top5.,$ord(5),.user.,%x),2)) $c1( $+ $chr(124) $+  Level:) $c2($($+(%,top5.,$ord(5),.lvl.,%x),2)) $c1( $+ $chr(124) $+  Exp:) $c2($($+(%,top5.,$ord(5),.exp.,%x),2)) cleanup %x } alias -l cleanup { unset $+(%,top5.*.,$1) } alias -l striptags { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x } alias -l tableno { if ($regex($1,/^(st|(skill)?total|overall)$/Si)) return lol.0 elseif ($regex($1,/^at(t|k|tack)$/Si)) return lol.1 elseif ($regex($1,/^def(en[cs]e)?$$/Si)) return lol.2 elseif ($regex($1,/^str(ength)?$/Si)) return lol.3 elseif ($regex($1,/^hp|hit(s|points?)?$/Si)) return lol.4 elseif ($regex($1,/^range(r|d|ing)?$/Si)) return lol.5 elseif ($regex($1,/^Pray(er)?$$/Si)) return lol.6 elseif ($regex($1,/^mag(e|ic)$$/Si)) return lol.7 elseif ($regex($1,/^cook(ing)?$/Si)) return lol.8 elseif ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return lol.9 elseif ($regex($1,/^fletch(ing)?$/Si)) return lol.10 elseif ($regex($1,/^fish(ing)?$/Si)) return lol.11 elseif ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return lol.12 elseif ($regex($1,/^craft(ing)?$/Si)) return lol.13 elseif ($regex($1,/^(smith|smelt)(ing)?$/Si)) return lol.14 elseif ($regex($1,/^min(e|ing)?$/Si)) return lol.15 elseif ($regex($1,/^herb(law|lore)?$/Si)) return lol.16 elseif ($regex($1,/^agil(ity)?$/Si)) return lol.17 elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return lol.18 elseif ($regex($1,/^slay(er|ing)?$/Si)) return lol.19 elseif ($regex($1,/^farm(er|ing)?$/Si)) return lol.20 elseif ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return lol.21 elseif ($regex($1,/^hunt(er|ing)?$/Si)) return lol.22 elseif ($regex($1,/^(construct)(ion|ing)?$/Si)) return lol.23 } alias -l c1 { return $+(14,$1-,) } alias -l c2 { return $+(07,$1-,) }