alias -l c1 { return $+($chr(3),06,$1-) } alias -l c2 { return $+($chr(3),04,$1-) } alias -l c3 { return $+($chr(3),07,$1-) } on *:TEXT:*:*: { if ($left($strip($1),1) !isin @!.) || ($regex($strip($1),/(=|[^<]*>|<[^>]*>|<[^>]|[0-9]|$chr(95))/Si)) { halt } if ($right($1,-1) == defname) && ($2-) && ($len($2-) <= 12) { writeini DefRSN.ini RSNs $mask($fulladdress,3) $replace($2-,$chr(32),-) notice $nick $c1(your nickname for the adress) $c2($mask($fulladdress,3)) $c1(has been set to) $c2($2-) halt } if ($right($strip($1),-1) == stats) { inc %ID 1 set $+(%,rs.style.,%ID) stats if ($len($2-) > 12) { $iif($left($1,1) == @,msg $chan,notice $nick) $c1(The nickname) $c2($2-) $c1(is too long) | halt } elseif ($2-) set $+(%,rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95)) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,rs.rsn.,%ID) $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,rs.rsn.,%ID) $ifmatch else set $+(%,rs.rsn.,%ID) $nick set $+(%,rs.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) sockopen $+(rsh.,%ID) hiscore.runescape.com 80 } elseif ($regex($strip($1),/co?mb(at)?/Si)) { inc %ID 1 set $+(%,rs.style.,%ID) combat if ($len($2-) > 12) { $iif($left($1,1) == @,msg $chan,notice $nick) $c1(The nickname) $c2($2-) $c1(is too long) | halt } elseif ($2-) set $+(%,rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95)) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,rs.rsn.,%ID) $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,rs.rsn.,%ID) $ifmatch else set $+(%,rs.rsn.,%ID) $nick set $+(%,rs.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) sockopen $+(rsh.,%ID) hiscore.runescape.com 80 } elseif ($right($strip($1),-1) == pest) { inc %ID 1 if (!$4) && ($len($3-) > 12) || ($3 isnum) && ($len($4-) > 12) { $iif($left($1,1) == @,msg $chan,notice $nick) $c1(The nickname) $c2($3-) $c1(is too long) | halt } elseif ($pcskill($strip($2))) && ($3 !isnum) { set $+(%,rs.rsn.,%ID) $replace($3-,$chr(32),$chr(95)) } elseif ($4-) && ($3 isnum 1-99) { set $+(%,rs.rsn.,%ID) $replace($4-,$chr(32),$chr(95)) } elseif (!$pcskill($strip($2))) && ($len($2-) <= 12) { set $+(%,rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95)) } if ($($+(%,rs.rsn.,%ID),2) == $null) { if ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,rs.rsn.,%ID) $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,rs.rsn.,%ID) $ifmatch else set $+(%,rs.rsn.,%ID) $nick } if ($pcskill($strip($2))) set $+(%,rs.skill.,%ID) $pcskill($strip($2)) if ($3 isnum 1-99) set $+(%,rs.level.,%ID) $3 set $+(%,rs.style.,%ID) pest set $+(%,rs.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) sockopen $+(rsh.,%ID) hiscore.runescape.com 80 } elseif ($setskill($remove($strip($1),@,!,.))) { inc %ID 1 if ($len($3-) > 12) || (!$3) && ($len($2-) > 12) { $iif($left($1,1) == @,msg $chan,notice $nick) $c1(The nickname) $c2($3-) $c1(is too long) | halt } elseif ($2 isnum) { set $+(%,rs.level.,%ID) $2 if ($3) set $+(%,rs.rsn.,%ID) $replace($3-,$chr(32),$chr(95)) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,rs.rsn.,%ID) $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,rs.rsn.,%ID) $ifmatch else set $+(%,rs.rsn.,%ID) $nick } else { if ($2) set $+(%,rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95)) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,rs.rsn.,%ID) $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,rs.rsn.,%ID) $ifmatch else set $+(%,rs.rsn.,%ID) $nick } set $+(%,rs.style.,%ID) single set $+(%,rs.skill.,%ID) $setskill($remove($strip($1),@,!,.)) set $+(%,rs.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) sockopen $+(rsh.,%ID) hiscore.runescape.com 80 } else halt } on *:SOCKOPEN:rsh.*:{ var %ID = $gettok($sockname,2,46) sockwrite -nt $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,rs.rsn.,%ID),2) HTTP/1.0 sockwrite -nt $sockname Host: hiscore.runescape.com $+ $str($crlf,2) } on *:SOCKREAD:rsh.*:{ var %ID = $gettok($sockname,2,46) if ($sockerr) { echo -a Error. | halt } var %ID = $gettok($sockname,2,46), $& %style = $($+(%,rs.style.,%ID),2), $& %target = $($+(%,rs.rsn.,%ID),2), $& %display = $($+(%,rs.return.,%ID),2), $& %skill = $($+(%,rs.skill.,%ID),2), $& %level = $($+(%,rs.level.,%ID),2) sockread &source bwrite $sockname -1 -1 &source if ($bfind(&source,1,does not feature in the hiscores).text) { %display $c1(The nickname:) $c2(%target) $c1(did not feature in runescape highscores for any skill!) | sockclose $sockname | halt } bread $sockname 1 $file($sockname).size $+(&,$sockname) var %stat, %x = 1 while (%x) { var %x = $bfind($+(&,$sockname),$calc(%x + 1),