on *:TEXT:*:#:{ elseif ($regex($1,/^[!@]compare/Si)) { if (!$StatsID(! $+ $2)) $iif($left($1,1) == @,msg $chan,notice $nick) $+($c1,[,$2 $c2,isn't a valid skill,$c1,]) else { inc %sc var %name = $+(compare.,%sc) hadd -m %name sendway $iif($left($1,1) == @,msg $chan,notice $nick) hadd -m %name skill $StatsID(! $+ $2) hadd -m %name user1 $3 hadd -m %name user2 $4 sockopen %name hiscore-web.runescape.com 80 } } } on *:SOCKOPEN:compare.*:{ sockwrite -nt $sockname GET /aff/runescape/compare.ws?user1= $+ $hr($hget($sockname,user1)) $+ &user2= $+ $hr($hget($sockname,user2)) $+ &submit=Compare HTTP/1.0 sockwrite -nt $sockname Host: $+(hiscore-web.runescape.com,$str($crlf,2)) } on *:SOCKREAD:compare.*:{ while ($sock($sockname).rq) { sockread &compare bwrite $sockname -1 -1 &compare } bread $sockname 0 $file($sockname).size &compare if ($bfind(&compare,1,)) { if (($bfind(&compare,1,does not feature in the hiscores)) && ($bfind(&compare,$calc($v1 + 50),does not feature in the hiscores))) { $hget($sockname,sendway) $+($c1,[,$c2,None of these players are in the $c1,RuneScape Highscores]) } else { hadd -m $sockname rp $bfind(&compare,$bfind(&compare,1,$regsubex($hget($sockname,skill),/(.)/g,$+($asc(\1),$chr(32)))),) hadd -m $sockname result $htmlfree($replace($bvar(&compare,$hget($sockname,rp),300).text,$chr(10),$chr(32))) hadd -m $sockname result2 $htmlfree($replace($bvar(&compare,$bfind(&compare,$bfind(&compare,$calc($hget($sockname,rp) + 10),$regsubex($right($hget($sockname,skill),-2),/(.)/g,$+($asc(\1),$chr(32)))),),300).text,$chr(10),$chr(32))) $hget($sockname,sendway) $iif(Not Ranked * iswm $hget($sockname,result),$+($c1,[,$c2,User,$c1 $flc($hget($sockname,user1)) $c2,is not ranked,$c1,]),$+($c1,[,$c2,$hget($sockname,skill) for,$c1 $flc($hget($sockname,user1)),] [,$c2,Level:,$c1 $gettok($hget($sockname,result),2,32) |,$c2 Rank:,$c1 $gettok($hget($sockname,result),1,32) |,$c2 Exp:,$c1 $gettok($hget($sockname,result),3,32),])) $hget($sockname,sendway) $iif(Not Ranked * iswm $hget($sockname,result2),$+($c1,[,$c2,User,$c1 $flc($hget($sockname,user2)) $c2,is not ranked,$c1,]),$+($c1,[,$c2,$hget($sockname,skill) for,$c1 $flc($hget($sockname,user2)),] [,$c2,Level:,$c1 $gettok($hget($sockname,result2),2,32) |,$c2 Rank:,$c1 $gettok($hget($sockname,result2),1,32) |,$c2 Exp:,$c1 $gettok($hget($sockname,result2),3,32),])) if ($remove($gettok($hget($sockname,result),3,32),$chr(44)) !isnum) hadd -m $sockname lose 1 elseif ($remove($gettok($hget($sockname,result2),3,32),$chr(44)) !isnum) hadd -m $sockname lose 2 else hadd -m $sockname lose $iif($remove($gettok($hget($sockname,result),3,32),$chr(44)) > $remove($gettok($hget($sockname,result2),3,32),$chr(44)),2,1) $hget($sockname,sendway) $+($c1,[,$c2,Winner:,$c1 $flc($hget($sockname,$iif($hget($sockname,lose) == 1,user2,user1))),] [,$c2,Levels:,$c1 $iif($calc($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result2,result)),2,32) - $gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result,result2)),2,32)),$v1,None) |,$c2 Ranks:,$c1 $iif($bytes($calc($remove($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result,result2)),1,32),$chr(44)) - $remove($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result2,result)),1,32),$chr(44))),b),$v1,None) |,$c2 Ranks:,$c1 $iif($bytes($calc($remove($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result2,result)),3,32),$chr(44)) - $remove($gettok($hget($sockname,$iif($hget($sockname,lose) == 1,result,result2)),3,32),$chr(44))),b),$v1,None),]) } .hdel -sw $sockname * ;.remove $sockname sockclose $sockname } }