rendered paste body
/*
Coded by Pc_Dark
OSS Team - #OSS
IRC.SwiftIRC.net
!pest <Stat> <RSN>
@pest <stat> <rsn>
*/
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 <Skill> <RSN> - Alternative: !Pest <Skill> <Level To Get> <RSN>
/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 Pc_Darkness
}
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 (*</TITLE>* 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)
}