rendered paste bodyon *:input:*:{
if ($left($1,1) isin /~ && ?compare iswm $1) && ($setskill($2)) && ($3) {
set %compare.rsn.1 $3
set %compare.rsn.2 $iif($4,$v1,$iif(%defname,$v1,$$?="What is your rsn?"))
set %compare.style $iif($left($1,1) == $chr(47),echo -at,msg $target)
set %compare.stat $setskill($2).num
$iif(!%defname && %compare.rsn.2,set %defname %compare.rsn.2)
sockopen compare.1 hiscore.runescape.com 80
set %id.1 1
sockopen compare.2 hiscore.runescape.com 80
set %id.2 1
haltdef
}
}
on *:sockopen:compare.*:{
var %compare.rsn = $($+($(%compare.rsn.,0),$right($sockname,1)),2)
sockwrite -nt $sockname GET $+(/index_lite.ws?player=,%compare.rsn) HTTP/1.1
sockwrite -nt $sockname Host: hiscore.runescape.com
sockwrite -nt $sockname $crlf
}
on *:sockread:compare.*:{
if ($sockerr) halt
else {
var %compare = $right($sockname,1), $&
%compare.rsn = $($+($(%compare.rsn.,0),%compare),2), $&
%sockreader
sockread %sockreader
if (*404 Not found iswm %sockreader) {
%compare.style $c1(The nick) $c2(%compare.rsn) $c1(does not appear in the highscores for any skills.)
unset %compare.* %id.1 %id.2
sockclose compare.?
}
else {
if ($($+($(%id.,0),%compare),2) == %compare.stat) {
set $+($(%compare.stats.,0),%compare) %sockreader
}
}
if (%compare.stats.1 && %compare.stats.2) {
var %stat = $setskill(%compare.stat), $&
%rsn.1 = %compare.rsn.1, %rsn.2 = %compare.rsn.2, $&
%rank.1 = $gettok(%compare.stats.1,1,44), %rank.2 = $gettok(%compare.stats.2,1,44), $&
%level.1 = $gettok(%compare.stats.1,2,44), %level.2 = $gettok(%compare.stats.2,2,44), $&
%exp.1 = $gettok(%compare.stats.1,3,44), %exp.2 = $gettok(%compare.stats.2,3,44), $&
%compare.intro, %compare.stats
if (%rank.1 == -1 || %rank.2 == -1) {
var %rsn = $iif(%rank.1 == -1,%rsn.1,%rsn.2)
if (%rank.1 == -1) {
%compare.style $c2(%rsn) $c1(does not appear in the highscores for) $c2(%stat)
unset %compare.* %id.1 %id.2
sockclose compare.?
halt
}
}
if (%level.1 != %level.2) {
%compare.intro = $c2(%rsn.1) $c1(is level) $c2($bytes(%level.1,b)) $c1(and) $c2(%rsn.2) $c1(is level) $c2($bytes(%level.2,b)) $+($c1($chr(40)),$c2(%stat),$c1($chr(41)))
if (%level.1 > %level.2) && (%exp.1 > %exp.2) {
%compare.stats = $c2(%rsn.1) $c1(is) $c2($bytes($abs($calc(%level.1 - %level.2)),b)) $c1($+($iif($abs($calc(%level.1 - %level.2)) > 1,levels,level),$chr(44))) $c2($bytes($abs($calc(%rank.1 - %rank.2)),b)) $c1($iif($abs($calc(%rank.1 - %rank.2)) > 1,ranks,rank) and) $c2($bytes($calc(%exp.1 - %exp.2),b)) $c1(exp above) $c2(%rsn.2)
}
if (%level.2 > %level.1) && (%exp.2 > %exp.1) {
%compare.stats = $c2(%rsn.1) $c1(is) $c2($bytes($abs($calc(%level.1 - %level.2)),b)) $c1($+($iif($abs($calc(%level.1 - %level.2)) > 1,levels,level),$chr(44))) $c2($bytes($abs($calc(%rank.1 - %rank.2)),b)) $c1($iif($abs($calc(%rank.1 - %rank.2)) > 1,ranks,rank) and) $c2($bytes($calc(%exp.2 - %exp.1),b)) $c1(exp below) $c2(%rsn.2)
}
if (%level.1 > %level.2) && (%exp.2 > %exp.1) {
%compare.stats = $c2(%rsn.1) $c1(is) $c2($bytes($abs($calc(%level.1 - %level.2)),b)) $c1($iif($abs($calc(%level.1 - %level.2)) > 1,levels,level) and) $c2($bytes($abs($calc(%rank.1 - %rank.2)),b)) $c1($iif($abs($calc(%rank.1 - %rank.2)) > 1,ranks,rank) $+(above,$chr(44)) but) $c2($bytes($calc(%exp.2 - %exp.1),b)) $c1(exp below) $c1(%rsn.2)
}
if (%level.2 > %level.1) && (%exp.1 > %exp.2) {
%compare.stats = $c2(%rsn.1) $c1(is) $c2($bytes($abs($calc(%level.1 - %level.2)),b)) $c1($iif($abs($calc(%level.1 - %level.2)) > 1,levels,level) and) $c2($bytes($abs($calc(%rank.1 - %rank.2)),b)) $c1($iif($abs($calc(%rank.1 - %rank.2)) > 1,ranks,rank) $+(below,$chr(44)) but) $c2($bytes($calc(%exp.1 - %exp.2),b)) $c1(exp above) $c2(%rsn.2)
}
}
else {
if (%exp.1 > %exp.2) {
%compare.intro = $c2(%rsn.1) $c1(and) $c2(%rsn.2) $c1(are both level) $+($c2($bytes(%level.1,b)),$c1($chr(44))) $c1(but) $c2(%rsn.1) $c1(has) $c2($bytes($calc(%exp.1 - %exp.2),b)) $c1(exp more) $+($c1($chr(40)),$c2(%stat),$c1($chr(41)))
}
else {
%compare.intro = $c2(%rsn.1) $c1(and) $c2(%rsn.2) $c1(are both level) $+($c2($bytes(%level.1,b)),$c1($chr(44))) $c1(but) $c2(%rsn.1) $c1(has) $c2($bytes($calc(%exp.2 - %exp.1),b)) $c1(exp less) $+($c1($chr(40)),$c2(%stat),$c1($chr(41)))
}
}
%compare.style %compare.intro
$iif(%compare.stats,%compare.style $v1)
unset %compare.* %id.1 %id.2
sockclose compare.?
halt
}
}
inc $+($(%id.,0),%compare)
}