rendered paste bodyon $*:TEXT:/^[!@]pc */Si:#:{
if (?pc !iswm $1) halt
var %x 1
while ($sock($+(pc.,%x))) inc %x
if (!$cmbskill($2)) {
.notice $nick $c1(Please specify a combat skill.)
halt
}
if (#* iswm $3) && ($right($3,-1) isnum) {
set $+(%,pc.goal.,%x) $right($3,-1)
tokenize 32 $1-2 $4-
}
set $+(%,pc.target.,%x) $iif(@* iswm $1,msg $chan,notice $nick)
set $+(%,pc.skill.,%x) $cmbskill($2)
set $+(%,pc.user.,%x) $iif($3,$3,$iif($readini(DefRSN.ini,RSNs,$mask($fulladdress,3)),$ifmatch,$iif($readini(DefRSN.ini,RSNs,$nick),$ifmatch,$nick)))
sockopen $+(pc.,%x) o-ss.net 80
}
on *:SOCKOPEN:pc.*:{
sockwrite -nt $sockname GET /parsers/stats.php?user= $+ $($+(%,pc.user.,$gettok($sockname,2,46)),2) HTTP/1.1
sockwrite -nt $sockname Host: o-ss.net $+ $crlf $+ $crlf
}
on *:SOCKREAD:pc.*:{
var %x = $gettok($sockname,2,46), %target = $($+(%,pc.target.,%x),2), %skill = $($+(%,pc.skill.,%x),2), %user = $($+(%,pc.user.,%x),2), %goal = $($+(%,pc.goal.,%x),2)
if ($sockerr) {
%target $c1(*** Socket error:) $c2($sock($sockname).wsmsg)
halt
}
else {
var %read
sockread %read
tokenize 32 %read
if (*feature* iswm $1-) {
%target $c2(%user) $c1(does not appear in the hiscores.)
halt
}
elseif ($1 == %skill) {
if ($2 == Not) {
%target $c2(%user) $c1(does not appear in the hiscores for) $c2(%skill) $+ $c1(.)
halt
}
else {
var %expneeded = $calc($($+(%,$iif(%goal,%goal,$calc($3 + 1))),2) - $remove($4,$chr(44))), %expperpoint = $calc(($3 ^ 2) / $iif(%skill == Prayer,12,6)), %pointsneeded = $bytes($ceil($calc(%expneeded / %expperpoint)),b)
%target $c2(Single) $c1(points required by) $c2(%user) $c1(for) $c2($iif(%goal,%goal,$calc($3 + 1)) %skill) $+ $c1(:) $c2(%pointsneeded)
halt
}
}
}
}
on *:SOCKCLOSE:pc.*:{
unset $+(%,pc.*.,$gettok($sockname,2,46))
}
alias -l c1 { return $+(14,$1-,) }
alias -l c2 { return $+(07,$1-,) }
alias -l cmbskill {
if ($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
}