rendered paste bodyon *: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),<br />)
set %skillname [ $+ [ $right($sockname,-6) ] ] $remove($gettok(%read,1,58),<br />)
var %skillrank $remove($gettok(%read,4,58),<br>)
set %skillrank2 [ $+ [ $right($sockname,-6) ] ] $remove(%skillrank,$chr(44))
var %skillexpcurrent $remove($gettok(%read,3,58),<br />,$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),<br />,$chr(44))
}
if ((*<br />* 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 ((*<br />* 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)
}