on $*:TEXT:/^[!@]compare*/Si:*: { if (!$2) || (!$3) || ($len($3) > 12) || ($len($4) > 12) { inc %ID 1 set $+(%,compare.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) $($+(%,compare.return.,%ID),2) syntax: $1 halt } inc %id 1 if ($3 != $null) && ($4 == $null) { set $+(%,compare.nick2.,%ID) $nick } elseif ($3 != $null) && ($4 != $null) { set $+(%,compare.nick2.,%ID) $4 } elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) { set $+(%,compare.nick2.,%ID) $ifmatch } elseif ($readini(DefRSN.ini,RSNs,$nick)) { set $+(%,compare.nick2.,%ID) $ifmatch } set $+(%,compare.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) set $+(%,compare.nick1.,%ID) $3 set $+(%,compare.target.,%ID) $skill($remove($2,@,!)) sockopen $+(compare.,%ID) www.parsers.o-ss.net 80 } on *:SOCKOPEN:compare.*:{ var %id = $gettok($sockname,2,46) sockwrite -n $sockname GET /compare.php?user1= $+ $($+(%,compare.nick1.,%ID),2) $+ &user2= $+ $($+(%,compare.nick2.,%ID),2) $+ &skill= $+ $($+(%,compare.target.,%ID),2) HTTP/1.1 sockwrite -n $sockname Host: www.parsers.o-ss.net sockwrite -n $sockname $crlf } on *:sockread:compare.*:{ var %id = $gettok($sockname,2,46) if ($sockerr) { echo -a Error. halt } else { var %read sockread %read tokenize 32 %read if (*is* iswm %read) { $($+(%,compare.return.,%ID),2) $+ $1 did not feature in highscores for $($+(%,compare.target.,%ID),2) | sockclose $sockname | halt } if (*end* iswm %read) { set $+(%,compare.skill.1.,%ID) $+ $($+(%,compare.nick1.,%ID),2) is lvl $1 $+ $($+(%,compare.target.,%ID),2) $+ , set $+(%,compare.skill.2.,%ID) and $($+(%,compare.nick2.,%ID),2) is lvl $2 $+ $($+(%,compare.target.,%ID),2) $+ . } if ($4 isnum) { set $+(%,compare.diff.,%ID) The deffirence between $1 and $2 is $4 levels! } if ($5 isnum) { set $+(%,compare.exp.,%ID) The exp deffirence between $($+(%,compare.nick1.,%ID),2) and $($+(%,compare.nick2.,%ID),2) $+ : $comma($5) $($+(%,compare.return.,%ID),2) $($+(%,compare.skill.1.,%ID),2) $($+(%,compare.skill.2.,%ID),2) $($+(%,compare.return.,%ID),2) $($+(%,compare.diff.,%ID),2) $($+(%,compare.return.,%ID),2) $($+(%,compare.exp.,%ID),2) unset $+(%,compare.*) sockclose $sockname halt } if ($2 == $1) { $($+(%,compare.return.,%ID),2) $($+(%,compare.skill.1.,%ID),2) $($+(%,compare.skill.2.,%ID),2) $($+(%,compare.return.,%ID),2) $+ $($+(%,compare.nick1.,%ID),2) and $($+(%,compare.nick2.,%ID),2) both got lvl $1 $+ $($+(%,compare.target.,%ID),2) $+ ! unset $+(%,compare.*) sockclose $sockname } } } Alias -l comma { Var %a, %b = $regsub($ticks,$$1,/\G([+-]?\d+?)(?=(?:\d{3})++(?=\.\d++$|$))/g,\1 $+ $chr(44),%a) Return %a } alias -l skill { if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall elseif ($regex($1,/^at(t|k|tack)$/Si)) return Attack elseif ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence elseif ($regex($1,/^str(ength)?$/Si)) return Strength elseif ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints elseif ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged elseif ($regex($1,/^Pray(er)?$$/Si)) return Prayer elseif ($regex($1,/^mag(e|ic)$$/Si)) return Magic elseif ($regex($1,/^cook(ing)?$/Si)) return Cooking elseif ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting elseif ($regex($1,/^fletch(ing)?$/Si)) return Fletching elseif ($regex($1,/^fish(ing)?$/Si)) return Fishing elseif ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking elseif ($regex($1,/^craft(ing)?$/Si)) return Crafting elseif ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing elseif ($regex($1,/^mine(ing)?$/Si)) return Mining elseif ($regex($1,/^herb(law|lore)?$/Si)) return Herblore elseif ($regex($1,/^agil(ity)?$/Si)) return Agility elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving elseif ($regex($1,/^slay(er|ing)?$/Si)) return Slayer elseif ($regex($1,/^farm(er|ing)?$/Si)) return Farming elseif ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecrafting elseif ($regex($1,/^(hunt)(er|ing)?$/si)) return Hunter elseif ($regex($1,/^(con)(ion|ing)?$/si)) return Construction }