rendered paste bodyon *: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 }