All pastes #285969 Raw Edit

Someone

public text v1 · immutable
#285969 ·published 2006-12-20 05:54 UTC
rendered paste body
on *:join:#g_unit: {
  if ($len($nick) > 13) {
    msg $chan $nick $+ 's nick 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 *:text:!check*:#g_unit: {
  if ($len($nick) > 13) {
    msg $chan $2 $+ 's is too long 
    halt
  }
  var %ID = 1
  while ($sock(stats. $+ %ID)) {
    inc %ID
  }
  set $+(%,statsc.chan.,%ID) $chan
  set $+(%,statsc.rsn.,%ID) $2
  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) ] ] 07does 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,-), $&
    %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,-)
  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 >= 124) {
    msg %statsc.chan. [ $+ [ %ID ] ] 04 $+ %statsc.rsn. [ $+ [ %ID ] ] 07meets the requirements (04 $+ %combat 7combat ¤ ) 
    cleanupc %id
  }
  elseif (%combat < 124) {
  msg %statsc.chan. [ $+ [ %ID ] ] 04 $+ %statsc.rsn. [ $+ [ %ID ] ] 07does not meet the requirements (04 $+ %combat 07combat ¤ }
  cleanupc %id