All pastes #1858406 Raw Edit

Something

public text v1 · immutable
#1858406 ·published 2010-04-08 01:39 UTC
rendered paste body
alias statsx { return $gettok(Overall: Attack: Defence: Strength: Hitpoints: Ranged: Prayer: Magic: Cooking: Woodcutting: Fletching: Fishing: Firemaking: Crafting: Smithing: Mining: Herblore: Agility: Thieving: Slayer: Farming: Runecraft: Hunter: Construction: Summoning: Dueling: Bounty Hunter: Bounty Hunter Rogue: Fist Of Guthix:,$1,58) }
alias stats {
  if ($sock(stats22)) .sockclose stats22
  if ($var(%rsn)) .unset %rsn
  if ($var(%stats)) .unset %stats
  %rsn = $1-
  sockopen stats22 hiscore.runescape.com 80
}
on *:SOCKOPEN:stats22:{
  sockwrite -nt $sockname GET /index_lite.ws?player= $+ %rsn HTTP/1.1
  sockwrite -nt $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:stats22:{
  var %ee
  $event %ee
  var %x 0
  while (%x <= 28) {
    if ($regex(%ee,/(-)?\d+\x2C(-)?(\d+)(.*)?/g)) {
      var %stats %stats $statsc1($statsx($calc(%x +1)) $+ :) $statsc2($bytes($regml(1),b))
      sockread %ee
    }
    inc %x
  }
  if (%x == 29) && (%stats != $null) {
    tokenize 32 $strip(%stats)
    noop $regex(stats,%stats,/(?:Attack|Defence|Strength|Hitpoints|Ranged|Prayer|Magic|Summoning): \-?(\d+)\s/gSi)
    var %z $left($regsubex($str(~,$regml(stats,0)),/~/g,$iif(0 != $regml(stats,\n),$regml(stats,\n),1) $+ $chr(44)),-1)
    var %sss $regsubex(%stats,/(?: $replace($statsx(1-),: $+ $chr(32) ,|) $+ ) $+ \E: 0/giS,)
    tokenize 32 $regsubex(%sss,/([a-zA-Z\s]+:) (\d+\x2C?(?:\d+)?)/g,$statsc1(\1) $statsc2(\2))
    echo -a $statsc1([) $+ $statsc2(Stats) $statsc1(for) $statsc2(%rsn) $statsc1($chr(40)) $+ $statsc2($cmbp2p( [ %z ] )) $+ $statsc1($chr(41) $+ $chr(93)) $1-
  }
}
alias statsc1 return $+($chr(3),14,$1-,$chr(3))
alias statsc2 return $+($chr(3),04,$1-,$chr(3))
alias cmbp2p {
  ;$cmb(attack,defence,strength,hitpoints,ranged,prayer,magic,summoning)
  var %a = $calc($2 * 100), %b = $calc($4 * 100), %e = $calc($1 * 130), %f = $calc($3 * 130)
  var %c = $iif($and($6,1) == 1,$calc($calc($6 - 1) * 50),$calc($6 * 50)), %d = $iif($and($8,1) == 1,$calc($calc($8 - 1) * 50),$calc($8 * 50))
  var %g = $iif($and($5,1) == 1,$calc($calc($calc($5 - 1) + $calc($5 * 2)) * 65),$calc($5 * 195)), %h = $iif($and($7,1) == 1,$calc($calc($calc($7 - 1) + $calc($7 * 2)) * 65),$calc($7 * 195))
  var %base = $calc($calc(%a + %b + %c + %d) / 400), %mclass = $calc($calc(%e + %f) / 400), %rclass = $calc(%g / 400), %maclass = $calc(%h / 400)
  if ((%mclass > %rclass) && (%mclass > %maclass)) { return $calc(%mclass + %base) Melee Based }
  elseif ((%rclass > %mclass) && (%rclass > %maclass)) { return $calc(%rclass + %base) Ranged Based }
  elseif ((%maclass > %mclass) && (%maclass > %rclass)) { return $calc(%maclass + %base) Magic Based }
}