rendered paste bodyon $*:TEXT:/^[!@]stats/Si:#: {
if ($2 == $null) && ($readini(botinfo.ini,n,defname,$address($nick,3)) == $null) {
$iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** [ $+ $c1($nick,Error) $+ ]: $c2($nick,You must specify a player or default name.)
halt
}
var %x 1
while ($sock(stats. $+ %x)) {
inc %x
}
var %y 1
while (%y <= $numtok($2-,32)) {
if ($remove($gettok($2-,%y,32),$chr(95),$chr(45)) isalnum) {
}
elseif ($chr(62) isin $gettok($2-,%y,32)) || ($chr(60) isin $gettok($2-,%y,32)) {
var %ep $gettok($2-,%y,32)
}
elseif ($chr(38) isin $gettok($2-,%y,32)) {
if ($readini(botinfo.ini,n,defname,$address($left($gettok($2-,%y,32),-1),3))) {
var %name $readini(botinfo.ini,n,defname,$address($left($gettok($2-,%y,32),-1),3))
}
else {
$iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93)) $c2($nick,The name) $qt($c1($nick,$left($gettok($2-,%y,32),-1))) $c2($nick,does not have a defname set OR is not on the channel.)
halt
}
}
inc %y
}
if (!%name) && ($readini(botinfo.ini,n,defname,$address($nick,3))) {
var %name $readini(botinfo.ini,n,defname,$address($nick,3))
}
elseif (!%name) && (!$readini(botinfo.ini,n,defname,$address($nick,3))) {
$iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93)) $c2($nick,You must specify a name to lookup or set a default name.)
halt
}
sockopen $+(stats.,%x) hiscore.runescape.com 80
sockmark $+(stats.,%x) -1 $+ ~ $+ $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) $+ ~ $+ %name $+ ~ $+ $nick $+ ~ $+ $iif(%ep,%ep)
}
on *:SOCKOPEN:stats.*: {
sockwrite -n $sockname GET /index_lite.ws?player= $+ $gettok($sock($sockname).mark,3,126) HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com
sockwrite -n $sockname $crlf
}
on *:SOCKREAD:stats.*: {
var %read
sockread %read
if (404 - Page isin %read) {
$gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $c2($gettok($sock($sockname).mark,4,126),does not appear in the high scores list.)
sockclose $sockname
}
if (*,*,* iswm %read) {
var %x $gettok($sock($sockname).mark,1,126)
inc %x
if (-1 !isin %read) {
if ($gettok($sock($sockname).mark,5,126)) {
if ($chr(60) isin $gettok($sock($sockname).mark,5,126)) {
if ($gettok(%read,2,44) < $remove($gettok($sock($sockname).mark,5,126),$chr(60),$chr(62))) {
sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124)
}
else {
sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126)
}
}
else {
if ($gettok(%read,2,44) > $remove($gettok($sock($sockname).mark,5,126),<,>)) {
sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124)
}
else {
sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126)
}
}
}
else {
sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124)
}
}
else {
sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126)
}
if (%x == 23) {
if ($numtok($gettok($sock($sockname).mark,4-,126),32) <= 65) {
$gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,5-,126),~),-1)
}
else {
$gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,5-23,126),~),-1)
$gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,24-,126),~),-1)
}
}
}
}
on $*:TEXT:/^[!@]pc (att|attack|str|strength|def|defence|hp|hitpoints|range|ranged|ranging|pray|prayer|praying|magic|mage)/Si:#: {
var %x 1
while ($gettok($2-,%x,32)) {
if ($chr(35) isin $gettok($2-,%x,32)) && ($remove($gettok($2-,%x,32),$chr(35)) isnum 31-99) {
var %level $remove($gettok($2-,%x,32),$chr(35))
}
elseif ($chr(38) isin $gettok($2-,%x,32)) {
if ($readini(botinfo.ini,n,defname,$address($left($gettok($2-,%x,32),-1),3)) != $null) {
var %name $v1
}
else {
$iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93),:) $c2($nick,The name) $qt($c1($nick,$left($gettok($2-,%x,32),-1))) $c2($nick,does not have a defname set OR is not on the channel.)
halt
}
}
elseif ($gettok($remove($2-,$chr(95)),%x,32) isalnum) && ($gettok($2-,%x,32) != $2) {
var %name %name $gettok($2-,%x,32)
}
if (%name == $null) {
var %name $readini(botinfo.ini,n,defname,$address($nick,3))
}
if (%level == $null) {
var %level null
}
inc %x
}
if (%name != $null) {
var %name $replace(%name,$chr(32),$chr(95))
if ($numtok(%name,95) > 1) {
var %name $gettok(%name,2-,95)
}
}
if (%name == $null) {
$iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93),:) $c2($nick,You must specify a player or default name.)
halt
}
var %x 1
while ($sock(pc. $+ %x)) {
inc %x
}
sockopen $+(pc.,%x) hiscore.runescape.com 80
sockmark $+(pc.,%x) $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) $+ ~ $+ %name $+ ~ $+ %level $+ ~ $+ $skill2($2) $+ ~ $+ $nick
}
on *:SOCKOPEN:pc.*: {
sockwrite -n $sockname GET /index_lite.ws?player= $gettok($sock($sockname).mark,2,126) HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com 80
sockwrite -n $sockname $crlf
}
on *:SOCKREAD:pc.*: {
var %overall,%attack,%defence,%strength,%hitpoints,%ranged,%prayer,%magic
sockread %overall
if (*404 - page not* iswm %overall) {
$gettok($sock($sockname).mark,1,126) *** $+($chr(91),$c1($gettok($sock($sockname).mark,5,126),Error),$chr(93),:) $c2($gettok($sock($sockname).mark,5,126),The name) $qt($c1($gettok($sock($sockname).mark,5,126),$gettok($sock($sockname).mark,2,126))) $c2($gettok($sock($sockname).mark,5,126),does not appear in the hiscores.)
sockclose $sockname
halt
}
if (*,*,* iswm %overall) {
var %name $gettok($sock($sockname).mark,5,126)
sockread %attack
sockread %defence
sockread %strength
sockread %hitpoints
sockread %ranged
sockread %prayer
sockread %magic
if ($gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44) == 99) {
$gettok($sock($sockname).mark,1,126) *** $+($chr(91),$c1(%name,Error),$chr(93),:) $c2(%name,The name) $qt($c1(%name,$gettok($sock($sockname).mark,2,126))) $c2(%name, is already level 99) $c1(%name,$gettok($sock($sockname).mark,4,126)) $+ $c2(%name,!)
sockclose $sockname
halt
}
if ($gettok($sock($sockname).mark,3,126) <= $gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44)) && ($gettok($sock($sockname).mark,3,126) != null) {
$gettok($sock($sockname).mark,1,126) *** $+($chr(91),$c1(%name,Error),$chr(93),:) $c2(%name,You must pick a level greater than your current level.)
sockclose $sockname
halt
}
var %x $iif($gettok($sock($sockname).mark,3,126) == null,$calc($gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44) + 1),$v1)
var %y $gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44)
var %single 0,%100 0,%10 0
while (%y < %x) {
var %exp $calc($floor($calc(%y * %y / 600)) * 35)
if (%y == $gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44)) {
var %xpneeded $calc($xpforlevel($calc(%y + 1)) - $gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],3,44))
}
else {
var %xpneeded $calc($xpforlevel($calc(%y + 1)) - $xpforlevel(%y))
}
inc %single $calc(%xpneeded / %exp)
inc %10 $calc(%xpneeded / $calc($calc($calc(%exp * 10) * .01) + $calc(%exp * 10)))
inc %100 $calc(%xpneeded / $calc($calc($calc(%exp * 100) * .1) + $calc(%exp * 100)))
inc %y
}
$gettok($sock($sockname).mark,1,126) *** $+($chr(91),$c1(%name,$upper($gettok($sock($sockname).mark,2,126))),$chr(93),:) $c1(%name,$ceil(%single)) $c2(%name,single points $+ $chr(44)) $c1(%name,$ceil(%10)) $c2(%name,sets of 10) $+($chr(40),$c1(%name,$calc($ceil(%10) * 10)),$chr(32) $+ $c2(%name,points),$chr(41))) $+ $c2(%name,$chr(44) or) $c1(%name,$ceil(%100)) $c2(%name,sets of 100 points) $+($chr(40),$c1(%name,$calc($ceil(%100) * 100)),$c2(%name,$chr(160) $+ points),$chr(41)) $c2(%name,needed for level) $c1(%name,%x $gettok($sock($sockname).mark,4,126)) $+ $c2(%name,.)
sockclose $sockname
}
}