All pastes #464270 Raw Edit

Mine

public text v1 · immutable
#464270 ·published 2007-04-29 12:29 UTC
rendered paste body
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 ] ] 12Pest control points needed to get level04 $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc(($2)+1)) 12in04 %skill. [ $+ [ %x ] ] $+ 12:04 $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)
}