on $*: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 }