All pastes #639041 Raw Edit

Anonymous

public text v1 · immutable
#639041 ·published 2007-07-30 09:08 UTC
rendered paste body
on *:join:#thieving: {
  if ($len($nick) > 13) {
    msg $chan $nick $+ 's is too long
    halt
  }
  var %ID = 1
  while ($sock(stats. $+ %ID)) {
    inc %ID
  }
  set $+(%,statsc.chan.,%ID) $chan
  set $+(%,statsc.rsn.,%ID) $nick
  set $+(%,statsc.time.,%ID) $ctime
  sockopen $+(statsc.,%ID) hiscore.runescape.com 80
}
on *:sockopen:statsc.*: {
  var %id = $gettok($sockname,2,46)
  sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,statsc.rsn.,%ID),2) HTTP/1.1
  sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
on *:sockread:statsc.*: {
  sockread &Incoming
  bwrite $sockname -1 -1 &Incoming
  if ($bfind(&Incoming, 1, </html>).text) makehashc $sockname
  elseif ($bfind(&Incoming, 1,does not feature in the hiscores).text) {
    msg %statsc.chan. [ $+ [ $gettok($sockname,2,46) ] ] 04 $+ %statsc.rsn. [ $+ [ $gettok($sockname,2,46) ] ] 04does not appear on the highscores.
    cleanupc $gettok($sockname,2,46)
    sockclose $sockname
  }
}
alias -l makehashc {
  var %file = $1
  bread %file 1 $file(%file).size &stats
  var %currentstat, %x = 1
  while (%x) {
    var %x = $bfind(&stats,$calc(%x + 1),<a href="overall.ws?table=)
    var %currentstat = $striptags($bvar(&stats,%x,200).text)
    tokenize 10 %currentstat
    hadd -m %file $1 $2 $3 $4 $xp2next($3,$4)
  }
  processc %file
}
alias processc {
  var %table = $1, %id = $gettok($1,2,46), %x = 0, $&
    %rsn = $($+(%,statsc.rsn.,%ID),2)
  var %a.mult = .32707, %s.mult = .324, %d.mult = .25, %h.mult = .25, %p.mult = .124, %r.mult = .487, %m.mult = .487
  var %a = $iif($gettok($hget(%table,attack),2,32),$v1,-), $&
    %o = $iif($gettok($hget(%table,overall),2,32),$v1,-), $&
    %s = $iif($gettok($hget(%table,strength),2,32),$v1,-), $&
    %d = $iif($gettok($hget(%table,defence),2,32),$v1,-), $&
    %h = $iif($gettok($hget(%table,hitpoints),2,32),$v1,-), $&
    %r = $iif($gettok($hget(%table,ranged),2,32),$v1,-), $&
    %m = $iif($gettok($hget(%table,magic),2,32),$v1,-), $&
    %p = $iif($gettok($hget(%table,prayer),2,32),$v1,-)
  %c = $iif($gettok($hget(%table,cooking),2,32),$v1,-), $&
    %w = $iif($gettok($hget(%table,woodcutting),2,32),$v1,-), $&
    %fl = $iif($gettok($hget(%table,fletching),2,32),$v1,-), $&
    %f = $iif($gettok($hget(%table,fishing),2,32),$v1,-), $&
    %fi = $iif($gettok($hget(%table,firemaking),2,32),$v1,-), $&
    %cr = $iif($gettok($hget(%table,crafting),2,32),$v1,-), $&
    %sm = $iif($gettok($hget(%table,smithing),2,32),$v1,-), $&
    %mi = $iif($gettok($hget(%table,mining),2,32),$v1,-), $&
    %he = $iif($gettok($hget(%table,herblore),2,32),$v1,-), $&
    %ag = $iif($gettok($hget(%table,agility),2,32),$v1,-), $&
    %t = $iif($gettok($hget(%table,thieving),2,32),$v1,-), $&
    %sl = $iif($gettok($hget(%table,slayer),2,32),$v1,-), $&
    %fa = $iif($gettok($hget(%table,farming),2,32),$v1,-), $&
    %rc = $iif($gettok($hget(%table,runecrafting),2,32),$v1,-), $&
    %hu = $iif($gettok($hget(%table,hunter),2,32),$v1,-), $&
    %co = $iif($gettok($hget(%table,construction),2,32),$v1,-), $&

  var %meleecombat  = $calc(%a * %a.mult + %s * %s.mult + %d * %d.mult + %h * %h.mult + %p * %p.mult), $&
    %RangedCombat = $calc(%r * %r.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult), $&
    %MagicCombat  = $calc(%m * %m.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult)

  if (%MagicCombat > %RangedCombat) && (%MagicCombat > %MeleeCombat) var %cmbstyle = Magic, %Combat = %MagicCombat
  elseif (%RangedCombat > %MeleeCombat) var %cmbstyle = Ranged, %Combat = %RangedCombat
  else var %cmbstyle = melee, %combat = %MeleeCombat
  var %combat = $round(%combat,2)
  if (%combat >= 95) || ($eval($calc(%a + %s)) >= 160) {
    msg %statsc.chan. [ $+ [ %ID ] ] 4 $+ %statsc.rsn. [ $+ [ %ID ] ] 12Overall:4 %o 12Combat:4 %combat 12Attack:04 %a 12Defence:4 %d 12Strength:4 %s 12Hitpoints:4 %h 12Ranged:4 %r 12Prayer:4 %p 12Magic:4 %m 
    msg %statsc.chan. [ $+ [ %ID ] ] 4 $+ %statsc.rsn. [ $+ [ %ID ] ] 12Cooking:4 %c 12Woodcutting:4 %w 12Fletching:4 %fl 12Fishing:4 %f 12Firemaking:4 %fi 12Crafting:4 %cr 
    cleanupc %id
  }
  elseif (%combat < 95) && ($eval($calc(%a + 5)) < 160) {
    msg %statsc.chan. [ $+ [ %ID ] ] 04 $+ %statsc.rsn. [ $+ [ %ID ] ] 07does not meet the requirements Overall %o 04 $+ %combat 12combat 04 %a 12attack 04 %s 12strength (04 $+ $calc(%a + %s) Attack + Strength $+ )
    cleanupc %id
  }
  else { echo -a Error }
}
alias cleanupc {
  if ($1 == all) {
    unset %statsc.*
    var %s = 1
    while ($sock(statsc. $+ %s)) {
      sockclose $+(statsc.,%s)
      .remove $+(statsc.,$1)
      if ($hget($+(statsc.,%s))) { .hfree $+(statsc.,%s) }
      inc %s
    }
  }
  else {
    unset $+(%,statsc.*.,$1)
    sockclose $+(statsc.,$1)
    .remove $+(statsc.,$1)
    if ($hget($+(statsc.,$1))) {
      .hfree $+(statsc.,$1)
    }
  }
}
alias -l striptags { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }