on *:TEXT:?*:#:{ if ($istok(Overall|Attack|Defence|Strength|Hitpoints|Ranged|Magic|Fletching|Smithing|Mining|Construction|Farming|Slayer|Woodcutting|Firemaking|Cooking|Fishing|Crafting|Runecrafting|Agility|Theiving|Herblore|Prayer,$remove($1,$left($1,1)),124) == $true) { inc %skillsid 1 set %skill [ $+ [ %skillsid ] ] $remove($1,$left($1,1)) set %skillschar [ $+ [ %skillsid ] ] $left($1,1) set %skillsnick [ $+ [ %skillsid ] ] $nick if (!$2) { set %skillsname [ $+ [ %skillsid ] ] $nick } else { set %skillsname [ $+ [ %skillsid ] ] $2 } set %skillschan [ $+ [ %skillsid ] ] $chan sockopen skills [ $+ [ %skillsid ] ] altscripts.trap17.com 80 } } on *:SOCKOPEN:skills*:{ sockwrite -nt $sockname GET /rsparsers/highscores.php?rsn= $+ %skillsname [ $+ [ $right($sockname,-6) ] ] HTTP/1.1 sockwrite -nt $sockname Host: altscripts.trap17.com sockwrite -nt $sockname $crlf } on *:SOCKREAD:skills*:{ if ($sockerr) { msg %skillschan [ $+ [ $right($sockname,-6) ] ] There has been a socket error. This could mean RuneScape have changed their highscore page. } else { var %read sockread -f %read if (!$sockbr) { break } if ((%skill [ $+ [ $right($sockname,-6) ] ] $+ :* iswm %read) && (*-* !iswm %read)) { set %skillsdone [ $+ [ $right($sockname,-6) ] ] isranked set %skilllevel [ $+ [ $right($sockname,-6) ] ] $remove($gettok(%read,2,58),
) set %skillname [ $+ [ $right($sockname,-6) ] ] $remove($gettok(%read,1,58),
) var %skillrank $remove($gettok(%read,4,58),
) set %skillrank2 [ $+ [ $right($sockname,-6) ] ] $remove(%skillrank,$chr(44)) var %skillexpcurrent $remove($gettok(%read,3,58),
,$chr(44)) var %skillexpnext $getxp($calc(%skilllevel [ $+ [ $right($sockname,-6) ] ] + 1)) set %skillexp2next [ $+ [ $right($sockname,-6) ] ] $calc(%skillexpnext - %skillexpcurrent) set %skillexpcurrent [ $+ [ $right($sockname,-6) ] ] $remove($gettok(%read,3,58),
,$chr(44)) } if ((*
* iswm %read) && (%skillsdone [ $+ [ $right($sockname,-6) ] ] == isranked)) { if (%skillschar [ $+ [ $right($sockname,-6) ] ] == @) { msg %skillschan [ $+ [ $right($sockname,-6) ] ] 5 $+ %skillname [ $+ [ $right($sockname,-6) ] ] info for2 %skillsname [ $+ [ $right($sockname,-6) ] ] $+ 5: msg %skillschan [ $+ [ $right($sockname,-6) ] ] 5Level:2 %skilllevel [ $+ [ $right($sockname,-6) ] ] 5Current exp:2 $bytes(%skillexpcurrent [ $+ [ $right($sockname,-6) ] ],bd) 5Exp till next level:2 $bytes($iif(%skilllevel [ $+ [ $right($sockname,-6) ] ] => 127,N/A, $+ %skillexp2next [ $+ [ $right($sockname,-6) ] ] $+ ),bd) 5Ranked:2 $ord( $+ $bytes(%skillrank2 [ $+ [ $right($sockname,-6) ] ],bd) $+ ) $+  } if (%skillschar [ $+ [ $right($sockname,-6) ] ] == !) { notice %skillsnick [ $+ [ $right($sockname,-6) ] ] 5 $+ %skillname [ $+ [ $right($sockname,-6) ] ] info for2 %skillsname [ $+ [ $right($sockname,-6) ] ] $+ 5: notice %skillsnick [ $+ [ $right($sockname,-6) ] ] 5Level:2 %skilllevel [ $+ [ $right($sockname,-6) ] ] 5Current exp:2 $bytes(%skillexpcurrent [ $+ [ $right($sockname,-6) ] ],bd) 5Exp till next level:2 $bytes($iif(%skilllevel [ $+ [ $right($sockname,-6) ] ] => 127,N/A, $+ %skillexp2next [ $+ [ $right($sockname,-6) ] ] $+ ),bd) 5Ranked:2 $ord( $+ $bytes(%skillrank2 [ $+ [ $right($sockname,-6) ] ],bd) $+ ) $+  } } elseif ((*
* iswm %read) && (%skillsdone [ $+ [ $right($sockname,-6) ] ] != isranked)) { if (%skillschar [ $+ [ $right($sockname,-6) ] ] == @) { msg %skillschan [ $+ [ $right($sockname,-6) ] ] 2 $+ %skillsname [ $+ [ $right($sockname,-6) ] ] $+ 's5 %skill [ $+ [ $right($sockname,-6) ] ] isn't ranked. } if (%skillschar [ $+ [ $right($sockname,-6) ] ] == !) { notice %skillsnick [ $+ [ $right($sockname,-6) ] ] 2 $+ %skillsname [ $+ [ $right($sockname,-6) ] ] $+ 's5 %skill [ $+ [ $right($sockname,-6) ] ] isn't ranked. } } } } alias getxp { 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) }