All pastes #296105 Raw Edit

Stuff

public text v1 · immutable
#296105 ·published 2006-12-29 23:22 UTC
rendered paste body
on $*:TEXT:/^[!@.]pc .*/Si:#:{
  if ($chan == #RSPC) halt
  var %x 1
  while ($sock($+(pc.,%x))) inc %x
  if (!$cmbskill($2)) {
    .notice $nick $pc1(Please specify a combat skill.)
    halt
  }
  if (#* iswm $3) && ($right($3,-1) isnum) {
    set $+(%,pc.goal.,%x) $right($3,-1)
    tokenize 32 $1-2 $iif($4-,$4-)
  }
  set $+(%,pc.target.,%x) $iif(@* iswm $1,.msg $chan,.notice $nick)
  set $+(%,pc.skill.,%x) $cmbskill($2)
  set $+(%,pc.user.,%x) $iif($3,$replace($3-,$chr(32),_),$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 $pc1(*** Socket error:) $pc2($sock($sockname).wsmsg)
    halt
  }
  else {
    var %read
    sockread %read
    tokenize 32 %read
    if (*feature* iswm $1-) {
      %target $pc2(%user) $pc1(does not appear in the hiscores.)
      halt
    }
    elseif ($1 == %skill) {
      if ($2 == Not) {
        %target $pc2(%user) $pc1(does not appear in the hiscores for) $pc2(%skill) $+ $pc1(.)
        halt
      }
      else {
        %target $pc2(Single) $pc1(points required by) $pc2(%user) $pc1(for) $pc2($iif(%goal,%goal,$calc($3 + 1)) %skill) $+ $pc1(:) $pc2($bytes($ceil($calc(($experience($iif(%goal,%goal,$calc($3 + 1))) - $remove($4,$chr(44))) / (($3 ^ 2) / $iif(%skill == Prayer,12,6)))),b))
        halt
      }
    }
  }
}
on *:SOCKCLOSE:pc.*:{
  unset $+(%,pc.*.,$gettok($sockname,2,46))
}
alias -l pc1 { return $+(14,$1-,) }
alias -l pc2 { 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
}
alias experience {
  var %outputnum = 0, %points = 0, %lvl = 1
  while (%lvl < $$1) {
    var %points = $int($calc(%points + %lvl + 300 * 2 ^ (%lvl / 7.0))), %outputnum = $int($calc(%points / 4))
    inc %lvl 1
  }
  return $int(%outputnum)
}