on $*:TEXT:/^[!@.](pc|pest) */Si:#: { ;;; Check if it's a valid skill, sockopen, and set vars. ;;; if ($getskill($2)) { /var %x = 1 /while ($sock(pc. $+ %x)) { /inc %x } if (#* iswm $4) { /notice $nick Syntax: !Pest - Alternative: !Pest /halt } if (#* iswm $3) { /set %level. $+ %x $right($3,-1) } ;;; Set Vars ;;; /set %target. $+ %x $iif($left($1,1) == @,msg $chan,.notice $nick) /set %rsn. $+ %x $iif(*#* !iswm $3,$replace($3-,$chr(32),+),$replace($4-,$chr(32),+)) /set %skill. $+ %x $getskill($2) /sockopen pc. $+ %x www.o-ss.net 80 /halt } /notice $nick Specify a valid skill to look up. EX: !pest attack Chezo } alias -l cleanup { ;;; Clean up the socket, unset vars, close it ;;; /sockclose $1 /unset %level. $+ $right($1,1) /unset %target. $+ $right($1,1) /unset %rsn. $+ $right($1,1) /unset %skill. $+ $right($1,1) } on *:sockopen:pc.*: { ;;; Go to the file ;;; /var %x = $right($sockname,1) if ($sockerr > 0) /return /sockwrite -nt $sockname GET $+(/parsers/skills.php?user=,%rsn. [ $+ [ %x ] ],&skill=,%skill. [ $+ [ %x ] ]) HTTP/1.1 /sockwrite -nt $sockname Host: www.o-ss.net /sockwrite -nt $sockname $crlf $crlf } on *:sockread:pc.*: { ;;; Get the data, tokenize, and do checks to output. ;;; if ($sockerr) /return /var %x = $right($sockname,1) /var %read | /sockread %read /tokenize 32 %read if (** iswm $1-) { %target. [ $+ [ %x ] ] $replace(%rsn. [ $+ [ %x ] ],+,$chr(32)) Does Not Feature in the Hi-Scores for %skill. [ $+ [ %x ] ] $+ . | /cleanup $sockname | /halt } if ($3 == does) { %target. [ $+ [ %x ] ] $replace(%rsn. [ $+ [ %x ] ],+,$chr(32)) Does Not feature in the Hi-Scores. | /cleanup $sockname | /halt } if ($0 == 4) { %target. [ $+ [ %x ] ] Pest control points needed to get level $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc(($2)+1)) in %skill. [ $+ [ %x ] ] $+ : $iif(%level. [ $+ [ %x ] ],$pestget(%skill. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($xp(%level. [ $+ [ %x ] ])-($remove($3,$chr(44))))),$pestget(%skill. [ $+ [ %x ] ],$calc(($2)+1),$calc($xp($calc($2 + 1))- $remove($3,$chr(44))))) | /cleanup $sockname } } alias -l /getskill { ;;; Regex to return skills ;;; if ($regex($1,/^over(all)?/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,/^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,/^str(ength)?/Si)) return strength } alias /pest { ;;; Pest alias to retrive skill points per ticket ;;; /var %type = $iif($1 == prayer,12,6) /return $ceil($calc(($2)*($2)/(%type))) } alias /pestget { ;;; Gets amount of tickets. ;;; /var %skill = $1 /var %exp = $remove($3,$chr(44)) /var %level = $2 /var %gstring = $pest(%skill,%level) /return $bytes($ceil($calc((%exp)/(%gstring))),b) } alias /xp { ;;; Calculates XP to level ;;; /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) } on *:ACTION:*slaps*trout*:#:{ inc %tcount describe $chan jumps in front of the trout, and grabs the trout from $nick $+ 's hand. describe $chan puts the trout back in the river. I've saved %tcount trouts. } alias c1 { return $+(<1>, $1-,) } alias c2 { return $+(<4>, $1-,) } on *:text:*:#: { tokenize 32 $strip($1-) if ($left($1,1) !isin @!.) halt if ($right($1,-1) == stats) var %style = astats elseif ($regex($1,/co?mb(at)?/Si)) var %style = combat elseif ($setskill($remove($1,@,!,.))) var %style = istat, %skill = $setskill($remove($1,@,!,.)) elseif ($right($1,-1) == defname) && ($2) { writeini DefRSN.ini RSNs $mask($fulladdress,3) $replace($2-,$chr(32),-) .notice $nick You're default RSN for the host $mask($fulladdress,3) has been set to $2- halt } else halt inc %ID if ($len($2-) > 12) { $($+(%,stats.display.,%ID),2) $c1(The nick) $c2($2-) $c1(is too long) cleanup %ID halt } elseif ($2) set $+(%,stats.rsn.,%ID) $replace($2-,$chr(32),-) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,stats.rsn.,%ID) $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,stats.rsn.,%ID) $ifmatch else set $+(%,stats.rsn.,%ID) $nick set $+(%,stats.style.,%ID) %style set $+(%,stats.skill.,%ID) %skill set $+(%,stats.display.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) sockopen $+(stats.,%ID) hiscore.runescape.com 80 } on *:sockopen:stats.*: { var %id = $gettok($sockname,2,46) sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,stats.rsn.,%ID),2) HTTP/1.1 sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf } on *:sockread:stats.*: { sockread &Incoming bwrite $sockname -1 -1 &Incoming if ($bfind(&Incoming, 1, ).text) makehash $sockname elseif ($bfind(&Incoming, 1, does not feature in the hiscores.).text) { $($+(%,stats.display.,%ID),2) $c1(The nick) $c2($($+(%,stats.rsn.,%ID),2)) $c1(Does not appear in the hiscores) cleanup $gettok($sockname,2,46) } } alias -l makehash { var %file = $1 bread %file 1 $file(%file).size &stats var %currentstat, %x = 1 while (%x) { var %x = $bfind(&stats,$calc(%x + 1),