rendered paste bodyon *:TEXT:*:#: {
inc %ID 1
if ($setskill($remove($1,@,!,.))) {
/hadd -m table. $+ %ID Hskill. $+ %ID $setskill($remove($1,@,!,.))
/hadd -m table. $+ %ID Hnick. $+ %ID $nick
/hadd -m table. $+ %ID Htarget. $+ %ID $replace($2-,$chr(32),$chr(37) $+ 20)
/hadd -m table. $+ %ID Hdisplay. $+ %ID $iif($left($1,1) == @,msg $chan,notice $nick)
if ($len($2-) > 12) { $hget(table. $+ %ID,Hdisplay. $+ %ID) 14The nickname4 $2- 14is too long | halt }
if ($2) /hadd -m table. $+ %ID Htarget. $+ %ID $replace($2-,$chr(32),$chr(95))
elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) /hadd -m table. $+ %ID Htarget. $+ %ID $ifmatch
elseif ($readini(DefRSN.ini,RSNs,$nick)) /hadd -m table. $+ %ID Htarget. $+ %ID $ifmatch
else /hadd -m table. $+ %ID Htarget. $+ %ID $nick
sockopen $+(skill.,%ID) www.o-ss.net 80
}
else { halt }
}
on *:SOCKOPEN:skill.*:{
var %ID = $gettok($sockname,2,46)
sockwrite -nt $sockname GET /parsers/skills.php?user= $+ $hget(table. $+ %ID,Htarget. $+ %ID) $+ &skill= $+ $hget(table. $+ %ID,Hskill. $+ %ID) HTTP/1.1
sockwrite -nt $sockname Host: www.o-ss.net $+ $crlf $+ $crlf
}
on *:SOCKREAD:skill.*:{
var %ID = $gettok($sockname,2,46), %file = $hget(table. $+ %ID)
if ($sockerr) {
echo -a Error.
halt
}
else {
var %read
sockread %read
if (*END* iswm %read) {
var %read $remove(%read,end)
tokenize 32 %read
/hadd -m %file Hrank. $+ %ID $1
/hadd -m %file Hlevel. $+ %ID $2
/hadd -m %file Hexp. $+ %ID $3
if (!$hget(%file,Hlevel. $+ %ID)) { $hget(table. $+ %ID,Hdisplay. $+ %ID) 14The nickname:4 $hget(table. $+ %ID,Htarget. $+ %ID) 14did not feature in runescape highscores for4 $hget(table. $+ %ID,Hskill. $+ %ID) | sockclose $sockname | halt }
$hget(table. $+ %ID,Hdisplay. $+ %ID) 4 $+ $hget(table. $+ %ID,Hskill. $+ %ID) 14stats for4 $hget(table. $+ %ID,Htarget. $+ %ID) $+ 14:
$hget(table. $+ %ID,Hdisplay. $+ %ID) 14Level:4 $hget(%file,Hlevel. $+ %ID) 14Rank:4 $hget(%file,Hrank. $+ %ID)
if ($hget(table. $+ %ID,Hskill. $+ %ID) == overall) { $hget(table. $+ %ID,Hdisplay. $+ %ID) 14Exp:4 $hget(%file,HExp. $+ %ID) | $hget(table. $+ %ID,Hdisplay. $+ %ID) %logo | sockclose $sockname | halt }
$hget(table. $+ %ID,Hdisplay. $+ %ID) 14Exp:4 $hget(%file,HExp. $+ %ID) 14Exp for4 $calc($hget(%file,Hlevel. $+ %ID) + 1) 14 $+ $hget(table. $+ %ID,Htarget. $+ %ID) $+ 14:4 $comma($xp2next($hget(%file,Hlevel. $+ %ID),$hget(%file,HExp. $+ %ID))))
$hget(table. $+ %ID,Hdisplay. $+ %ID) %logo
sockclose $sockname
}
}
}
Alias -l comma { Var %a, %b = $regsub($ticks,$$1,/\G([+-]?\d+?)(?=(?:\d{3})++(?=\.\d++$|$))/g,\1 $+ $chr(44),%a) | Return %a }
alias -l xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) }
alias -l setskill {
if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall
elseif ($regex($1,/^at(t|k|tack)$/Si)) return Attack
elseif ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
elseif ($regex($1,/^str(ength)?$/Si)) return Strength
elseif ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints
elseif ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged
elseif ($regex($1,/^Pray(er)?$$/Si)) return Prayer
elseif ($regex($1,/^mag(e|ic)$$/Si)) return Magic
elseif ($regex($1,/^cook(ing)?$/Si)) return Cooking
elseif ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting
elseif ($regex($1,/^fletch(ing)?$/Si)) return Fletching
elseif ($regex($1,/^fish(ing)?$/Si)) return Fishing
elseif ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking
elseif ($regex($1,/^craft(ing)?$/Si)) return Crafting
elseif ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing
elseif ($regex($1,/^mine(ing)?$/Si)) return Mining
elseif ($regex($1,/^herb(law|lore)?$/Si)) return Herblore
elseif ($regex($1,/^agil(ity)?$/Si)) return Agility
elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving
elseif ($regex($1,/^slay(er|ing)?$/Si)) return Slayer
elseif ($regex($1,/^farm(er|ing)?$/Si)) return Farming
elseif ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecrafting
elseif ($regex($1,/^(hunt)(er|ing)?$/si)) return Hunter
elseif ($regex($1,/^(con)(ion|ing)?$/si)) return Construction
}