on $*:TEXT:/^[!@]pest|^[!@]pc/Si:#:{ if (!$pskill($2)) { .notice $nick Please enter a valid skill and try again. } else { inc %_pest 1 if (!$3) { if (!$hget(defname,$nick)) { .notice $nick You have no defname set, type !defname name to set one, or include a username in your pest control lookup. } else { set $+(%,pest.rsn,.,%_pest) $replace($hget(defname,$nick),$chr(32),+) set $+(%,pest.target,.,%_pest) $iif($left($1,1) == @,msg $chan,notice $nick) set $+(%,pest.skill,.,%_pest) $pskill($2) sockopen $+(pest,.,%_pest) altscripts.trap17.com 80 } } else { if ($len($3-) > 12) { .notice $nick The requested username is too long. } else { set $+(%,pest.rsn,.,%_pest) $replace($3-,$chr(32),+) set $+(%,pest.target,.,%_pest) $iif($left($1,1) == @,msg $chan,notice $nick) set $+(%,pest.skill,.,%_pest) $pskill($2) sockopen $+(pest,.,%_pest) altscripts.trap17.com 80 } } } } on *:SOCKOPEN:pest.*:{ var %_pest.id = $right($sockname,-5) sockwrite -nt $sockname GET /rsparsers/highscores.php?rsn= $+ $eval($+(%,pest.rsn,.,%_pest.id),2) HTTP/1.0 sockwrite -nt $sockname Host: altscripts.trap17.com $+ $crlf $+ $crlf } on *:SOCKREAD:pest.*:{ var %_pest.id = $right($sockname,-5) if ($sockerr) { $eval($+(%,pest.target,.,%_pest.id),2) Socket error, please try again. pcleanup %_pest.id } else { var %username = $replace($eval($+(%,pest.rsn,.,%_pest.id),2),+,$chr(32)) var %target = $eval($+(%,pest.target,.,%_pest.id),2) var %skill = $eval($+(%,pest.skill,.,%_pest.id),2) var %read while (1) { sockread -f %read if (!$sockbr) { break } if (%skill $+ :* iswm %read) { var %1 = $remove($gettok(%read,2,58),
) var %2 = $remove($gettok(%read,3,58),
) } } var %3 = $calc(%1 + 1) var %4 = $calc($readini(xp.ini,xp,%3) - $remove(%2,$chr(44))) %target $color1(Username:) $+ $color2($+($chr(32),%username)) $color1(Skill:) $+ $color2($+($chr(32),%skill)) $color1(Level:) $+ $color2($+($chr(32),%1)) %target $color1(Commendations needed for) $+ $color2($+($chr(32),$bytes(%4,b))) $color1(xp:) $+ $color2($+($chr(32),$pcalc(%skill %1 %4))) pcleanup %_pest.id } } alias -l pcleanup { unset $+(%,pest.,*,.,$1) } alias -l pskill { 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 } alias pcalc { tokenize 32 $gettok($1-,1-,32) if ($1 == Prayer) { var %1 = $int($calc($2 * $2 / 12)) return $ceil($calc($3 / %1)) } else { var %1 = $int($calc($2 * $2 / 6)) return $ceil($calc($3 / %1)) } } alias color1 { return $+(2,$1-,) } alias color2 { return $+(4,$1-,) }