alias -l c1 { return $+($chr(3),14,$1-) } alias -l c2 { return $+($chr(3),04,$1-) } on *:TEXT:*:#: { inc %ID 1 ;if !defname (you cant use $findfile w/ this); 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 ($setskill($right($1,-1))) && (!$3) { ;if its a !skill command; /hadd -m table. $+ %ID Style. $+ %ID stat /hadd -m table. $+ %ID Search. $+ %ID $setskill($remove($1,@,!,.)) /hadd -m table. $+ %ID target. $+ %ID $replace($2-,$chr(32),$chr(95)) /hadd -m table. $+ %ID display. $+ %ID $iif($left($1,1) == @,msg $chan,notice $nick) if ($len($2-) > 12) { $hget(table. $+ %ID,display. $+ %ID) $c1(The nickname) $c2($2-) $c1(is too long) | halt } if ($2) /hadd -m table. $+ %ID target. $+ %ID $replace($2-,$chr(32),$chr(95)) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) /hadd -m table. $+ %ID target. $+ %ID $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) /hadd -m table. $+ %ID target. $+ %ID $ifmatch else /hadd -m table. $+ %ID target. $+ %ID $nick sockopen $+(rs.,%ID) hiscore.runescape.com 80 } elseif ($right($1,-1) == stats) { ;if its !stats; /hadd -m table. $+ %ID Style. $+ %ID allstats /hadd -m table. $+ %ID target. $+ %ID $replace($2-,$chr(32),$chr(95)) /hadd -m table. $+ %ID display. $+ %ID $iif($left($1,1) == @,msg $chan,notice $nick) if ($len($2-) > 12) { $hget(table. $+ %ID,display. $+ %ID) $c1(The nickname) $c2($2-) $c1(is too long) | halt } if ($2) /hadd -m table. $+ %ID target. $+ %ID $replace($2-,$chr(32),$chr(95)) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) /hadd -m table. $+ %ID target. $+ %ID $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) /hadd -m table. $+ %ID target. $+ %ID $ifmatch else /hadd -m table. $+ %ID target. $+ %ID $nick sockopen $+(rs.,%ID) hiscore.runescape.com 80 halt } elseif ($regex($1,/co?mb(at)?/Si)) { ;if its !cmb; /hadd -m table. $+ %ID Style. $+ %ID combat /hadd -m table. $+ %ID target. $+ %ID $replace($2-,$chr(32),$chr(95)) /hadd -m table. $+ %ID display. $+ %ID $iif($left($1,1) == @,msg $chan,notice $nick) if ($len($2-) > 12) { $hget(table. $+ %ID,display. $+ %ID) $c1(The nickname) $c2($2-) $c1(is too long) | halt } if ($2) /hadd -m table. $+ %ID target. $+ %ID $replace($2-,$chr(32),$chr(95)) elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) /hadd -m table. $+ %ID target. $+ %ID $ifmatch elseif ($readini(DefRSN.ini,RSNs,$nick)) /hadd -m table. $+ %ID target. $+ %ID $ifmatch else /hadd -m table. $+ %ID target. $+ %ID $nick sockopen $+(rs.,%ID) hiscore.runescape.com 80 halt } else { halt } } on *:SOCKOPEN:rs.*:{ var %ID = $gettok($sockname,2,46) sockwrite -nt $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $hget(table. $+ %ID,target. $+ %ID) HTTP/1.1 sockwrite -nt $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf } on *:SOCKREAD:rs.*:{ var %ID = $gettok($sockname,2,46), $& %file = $hget(table. $+ %ID,search. $+ %ID), $& %style = $hget(table. $+ %ID,style. $+ %ID) if ($sockerr) { echo -a Error. halt } else { var %read sockread %read if (*feature* iswm %read) { ;if none of the skills for $nick is in highscores; $hget(table. $+ %ID,display. $+ %ID) $c1(The nickname:) $c2($hget(table. $+ %ID,target. $+ %ID)) $c1(did not feature in runescape highscores for any skill!) sockclose $sockname halt } elseif (%style == stat) { if (%file iswm %read) { ;get the rank/level/exp for certain skill; /hadd -m table. $+ %ID rank. $+ %ID $htmlfree($GetRank(%read)) /hadd -m table. $+ %ID Level. $+ %ID $htmlfree($ReadNextLine(%read)) /hadd -m table. $+ %ID exp. $+ %ID $htmlfree($ReadNextLine(%read)) if (!$hget(table. $+ %ID,level. $+ %ID)) { ;if skill isnt ranked; $hget(table. $+ %ID,display. $+ %ID) $c1(The nickname:) $c2($hget(table. $+ %ID,target. $+ %ID)) $c1(did not feature in runescape highscores for) $c2($hget(table. $+ %ID,search. $+ %ID)) sockclose $sockname halt } ;display the informations witch you got above; $hget(table. $+ %ID,display. $+ %ID) $c2(%file) $c1(stats for) $c2($hget(table. $+ %ID,target. $+ %ID)) $+ $c1(:) if (%file == overall) { $hget(table. $+ %ID,display. $+ %ID) $c1(Level:) $c2($hget(table. $+ %ID,level. $+ %ID)) $c1(Rank:) $c2($hget(table. $+ %id,rank. $+ %ID)) $c1(Exp:) $c2($hget(table. $+ %ID,Exp. $+ %ID)) sockclose $sockname halt } $hget(table. $+ %ID,display. $+ %ID) $c1(Level:) $c2($hget(table. $+ %ID,level. $+ %ID)) $c1(Rank:) $c2($hget(table. $+ %id,rank. $+ %ID)) $hget(table. $+ %ID,display. $+ %ID) $c1(Exp:) $c2($hget(table. $+ %ID,Exp. $+ %ID)) $c1(Exp for) $c2($calc($hget(table. $+ %ID,level. $+ %ID) + 1)) $c1(%file) $+ $c1(:) $c2($comma($xp2next($hget(table. $+ %ID,level. $+ %ID),$hget(table. $+ %ID,exp. $+ %ID)))) sockclose $sockname halt } } elseif (%style == allstats) { ;get information about every single stat,; if (Overall iswm %read) /hadd -m table. $+ %ID Hoverall. $+ %ID $c1(Overall:) $c2($htmlfree($GetLevel(%read))) if (Attack iswm %read) /hadd -m table. $+ %ID Hattack. $+ %ID $c1(Attack:) $c2($htmlfree($GetLevel(%read))) if (Defence iswm %read) /hadd -m table. $+ %ID Hdefence. $+ %ID $c1(Defence:) $c2($htmlfree($GetLevel(%read))) if (Strength iswm %read) /hadd -m table. $+ %ID Hstrength. $+ %ID $c1(Strength:) $c2($htmlfree($GetLevel(%read))) if (Hitpoints iswm %read) /hadd -m table. $+ %ID Hhitpoints. $+ %ID $c1(Hitpoints:) $c2($htmlfree($GetLevel(%read))) if (Ranged iswm %read) /hadd -m table. $+ %ID Hrange. $+ %ID $c1(Ranged:) $c2($htmlfree($GetLevel(%read))) if (Prayer iswm %read) /hadd -m table. $+ %ID Hprayer. $+ %ID $c1(Prayer:) $c2($htmlfree($GetLevel(%read))) if (Magic iswm %read) /hadd -m table. $+ %ID Hmagic. $+ %ID $c1(Magic:) $c2($htmlfree($GetLevel(%read))) if (cooking iswm %read) /hadd -m table. $+ %ID Hcook. $+ %ID $c1(Cooking:) $c2($htmlfree($GetLevel(%read))) if (woodcutting iswm %read) /hadd -m table. $+ %ID Hwc. $+ %ID $c1(Woodcutting:) $c2($htmlfree($GetLevel(%read))) if (fletching iswm %read) /hadd -m table. $+ %ID Hfletch. $+ %ID $c1(Fletching:) $c2($htmlfree($GetLevel(%read))) if (fishing iswm %read) /hadd -m table. $+ %ID Hfish. $+ %ID $c1(Fishing:) $c2($htmlfree($GetLevel(%read))) if (Firemaking iswm %read) /hadd -m table. $+ %ID Hfm. $+ %ID $c1(Firemaking:) $c2($htmlfree($GetLevel(%read))) if (Crafting iswm %read) /hadd -m table. $+ %ID Hcraft. $+ %ID $c1(Crafting:) $c2($htmlfree($GetLevel(%read))) if (Smithing iswm %read) /hadd -m table. $+ %ID Hsmith. $+ %ID $c1(Smithing:) $c2($htmlfree($GetLevel(%read))) if (Mining iswm %read) /hadd -m table. $+ %ID Hmining. $+ %ID $c1(Mining:) $c2($htmlfree($GetLevel(%read))) if (Herblore iswm %read) /hadd -m table. $+ %ID Hherb. $+ %ID $c1(Herblore:) $c2($htmlfree($GetLevel(%read))) if (Agility iswm %read) /hadd -m table. $+ %ID Hagility. $+ %ID $c1(Agility:) $c2($htmlfree($GetLevel(%read))) if (Thieving iswm %read) /hadd -m table. $+ %ID Hthieving. $+ %ID $c1(Thieving:) $c2($htmlfree($GetLevel(%read))) if (Slayer iswm %read) /hadd -m table. $+ %ID Hslayer. $+ %ID $c1(Slayer:) $c2($htmlfree($GetLevel(%read))) if (Farming iswm %read) /hadd -m table. $+ %ID Hfarming. $+ %ID $c1(Farming:) $c2($htmlfree($GetLevel(%read)))} if (Runecraft iswm %read) /hadd -m table. $+ %ID Hrunecraft. $+ %ID $c1(Runecraft:) $c2($htmlfree($GetLevel(%read))) if (Hunter iswm %read) /hadd -m table. $+ %ID Hhunter. $+ %ID $c1(Hunter:) $c2($htmlfree($GetLevel(%read)))) if (Construction iswm %read) /hadd -m table. $+ %ID Hcon. $+ %ID $c1(Construction:) $c2($htmlfree($GetLevel(%read))) } if (*class="mainscroll-bottom"* iswm %read) { ;display the information; $hget(table. $+ %ID,display. $+ %ID) $c1(stats for) $c2($hget(table. $+ %ID,target. $+ %ID)) $+ $c1(:) $hget(table. $+ %ID,display. $+ %ID) $hget(table. $+ %ID,hoverall. $+ %ID) $hget(table. $+ %ID,display. $+ %ID) $hget(table. $+ %ID,Hattack. $+ %ID) $hget(table. $+ %ID,Hstrength. $+ %ID) $hget(table. $+ %ID,Hdefence. $+ %ID) $hget(table. $+ %ID,Hhitpoints. $+ %ID) $hget(table. $+ %ID,HRange. $+ %ID) $hget(table. $+ %ID,Hprayer. $+ %ID) $hget(table. $+ %ID,Hmagic. $+ %ID) $hget(table. $+ %ID,Hcook. $+ %ID) $hget(table. $+ %ID,Hwc. $+ %ID) $hget(table. $+ %ID,Hfletch. $+ %ID) $hget(table. $+ %ID,Hfish. $+ %ID) $& $hget(table. $+ %ID,Hfm. $+ %ID) $hget(table. $+ %ID,Hsmith. $+ %ID) $hget(table. $+ %ID,Hmining. $+ %ID) $hget(table. $+ %ID,Hcraft. $+ %ID) $hget(table. $+ %ID,HAgility. $+ %ID) $hget(table. $+ %ID,HThieving. $+ %ID) $hget(table. $+ %ID,HSlayer. $+ %ID) $hget(table. $+ %ID,Hfarming. $+ %ID) $hget(table. $+ %ID,Hrunecarft. $+ %ID) $hget(table. $+ %ID,HHunter. $+ %ID) $hget(table. $+ %ID,Hcon. $+ %ID) sockclose $sockname halt } elseif (%style == combat) { ;Get the Combat skills information; if (Attack iswm %read) /hadd -m table. $+ %ID Hattack. $+ %ID $htmlfree($GetLevel(%read)) if (Defence iswm %read) /hadd -m table. $+ %ID Hdefence. $+ %ID $htmlfree($GetLevel(%read)) if (Strength iswm %read) /hadd -m table. $+ %ID Hstrength. $+ %ID $htmlfree($GetLevel(%read)) if (Hitpoints iswm %read) /hadd -m table. $+ %ID Hhitpoints. $+ %ID $htmlfree($GetLevel(%read)) if (Ranged iswm %read) /hadd -m table. $+ %ID Hrange. $+ %ID $htmlfree($GetLevel(%read)) if (Prayer iswm %read) /hadd -m table. $+ %ID Hprayer. $+ %ID $htmlfree($GetLevel(%read)) if (Magic iswm %read) /hadd -m table. $+ %ID Hmagic. $+ %ID $htmlfree($GetLevel(%read)) ;Calculate the combat level using the Skills, many thanks to steiner for showing me calculate syntax; var %a = $calc($hget(table. $+ %ID,Hdefence. $+ %ID) * 100), $& %b = $calc($hget(table. $+ %ID,Hhitpoints. $+ %ID) * 100), $& %c = $calc($hget(table. $+ %ID,Hprayer. $+ %ID) * 50), $& %base = $calc($calc(%a + %b + %c) / 400), $& %d = $calc($hget(table. $+ %ID,Hattack. $+ %ID) * 130), $& %e = $calc($hget(table. $+ %ID,Hstrength. $+ %ID) * 130) if ($and($hget(table. $+ %ID,Hrange. $+ %ID),1) == 0) var %f = $calc($calc($calc($hget(table. $+ %ID,Hrange. $+ %ID) - 1) + $calc($hget(table. $+ %ID,Hrange. $+ %ID) * 2)) * 65) elseif ($and($hget(table. $+ %ID,Hrange. $+ %ID),1) == 1) var %f = $calc($hget(table. $+ %ID,Hrange. $+ %ID) * 195) if ($and($hget(table. $+ %ID,Hmagic. $+ %ID),1) == 0) var %g = $calc($calc($calc($hget(table. $+ %ID,Hmagic. $+ %ID) - 1) + $calc($hget(table. $+ %ID,Hmagic. $+ %ID) * 2)) * 65) elseif ($and($hget(table. $+ %ID,Hmagic. $+ %ID),1) == 1) var %g = $calc($hget(table. $+ %ID,Hmagic. $+ %ID) * 195) var %mcombat = $calc($calc(%d + %e) / 400), $& %rcombat = $calc(%f / 400), $& %macombat = $calc(%g / 400) if (%mcombat > %rcombat) && (%mcombat > %macombat) { /hadd -m table. $+ %ID HCombat. $+ %id $calc(%mcombat + %base) /hadd -m table. $+ %ID HClass. $+ %id Melee Based } elseif (%rcombat > %mcombat) && (%rcombat > %macombat) { /hadd -m table. $+ %ID HCombat. $+ %id $calc(%rcombat + %base) /hadd -m table. $+ %ID HClass. $+ %id Ranged Based } elseif (%macombat > %mcombat) && (%macombat > %rcombat) { /hadd -m table. $+ %ID HCombat. $+ %id $calc(%macombat + %base) /hadd -m table. $+ %ID HClass. $+ %id Magic Based } var %temp = $abs($calc($int($calc($hget(table. $+ %ID,Hcombat. $+ %ID) +1)) - $hget(table. $+ %ID,Hcombat. $+ %ID))), $& %a.lvl = $ceil($calc(%temp / .32707)), %s.lvl = $ceil($calc(%temp / .324)), $& %d.lvl = $ceil($calc(%temp / .25)), $& %m.lvl = $ceil($calc(%temp / .487)), $& %r.lvl = $ceil($calc(%temp / .487)), $& %p.lvl = $ceil($calc(%temp / .124)) if ($hget(table. $+ %ID,Hclass. $+ %ID) == Magic Based) var %lvl.base = Magic: %m.lvl elseif ($hget(table. $+ %ID,Hclass. $+ %ID) == Ranged Based) var %lvl.base = Ranged: %r.lvl else var %lvl.base = $c1(Att:) $c2(%a.lvl) $c1(Str:) $c2(%s.lvl) ;Calculation end; if (Cooking iswm %read) { ;Message out combat information; $hget(table. $+ %ID,display. $+ %ID) $c1(Combat stats for) $hget(table. $+ %ID,target. $+ %ID) $+ 12: $hget(table. $+ %ID,display. $+ %ID) $c1(Level) $c2($hget(table. $+ %ID,Hcombat. $+ %ID) ( $+ $hget(table. $+ %ID,Hclass. $+ %ID) $+ )) $hget(table. $+ %ID,display. $+ %ID) $c1(Attack) $c2($hget(table. $+ %ID,Hattack. $+ %ID)) $c1(Strength) $c2($hget(table. $+ %ID,Hstrength. $+ %ID)) $c1(Defence) $c2($hget(table. $+ %ID,Hdefence. $+ %ID)) $c1(Hitpoints) $c2($hget(table. $+ %ID,Hhitpoints. $+ %ID)) $c1(Ranged) $c2($hget(table. $+ %ID,HRange. $+ %ID)) $c1(Prayer) $c2($hget(table. $+ %ID,Hprayer. $+ %ID)) $c1(Magic) $c2($hget(table. $+ %ID,Hmagic. $+ %ID)) $hget(table. $+ %ID,display. $+ %ID) $c1(Levels for) $c2($int($calc($hget(table. $+ %ID,Hcombat. $+ %ID) + 1)) combat) $+ $c1(:) %lvl.base $c1(def/hp:) $c2(%d.lvl) $c1(Prayer:) $c2(%p.lvl) sockclose $sockname halt } } } } ;my custom aliases; alias -l comma { Var %a, %b = $regsub($ticks,$$1,/\G([+-]?\d+?)(?=(?:\d{3})++(?=\.\d++$|$))/g,\1 $+ $chr(44),%a) | Return %a } alias -l htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&) | return %x } alias -l ReadNextLine { var %x = $1 | sockread %x | return %x } alias -l GetRank { var %x = $1 | sockread %x | var %y | sockread %y | return %y } alias -l GetLevel { var %x = $1 | sockread %x | var %z | sockread %z | var %y | sockread %y | return %y } alias -l xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) } alias -l xp { var %x = 1, %level = $calc($1 - 1), %xp = 0 | while (%x <= %level) { var %TempXp = $calc((%x + 300 * 2^(%x / 7)) /4) | inc %xp %TempXp | inc %x } | return $int(%xp) } alias -l setskill { if ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall elseif ($1 == 1) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack elseif ($1 == 2) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence elseif ($1 == 3) || ($regex($1,/^str(ength)?$/Si)) return Strength elseif ($1 == 4) || ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints elseif ($1 == 5) || ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged elseif ($1 == 6) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer elseif ($1 == 7) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic elseif ($1 == 8) || ($regex($1,/^cook(ing)?$/Si)) return Cooking elseif ($1 == 9) || ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting elseif ($1 == 10) || ($regex($1,/^fletch(ing)?$/Si)) return Fletching elseif ($1 == 11) || ($regex($1,/^fish(ing)?$/Si)) return Fishing elseif ($1 == 12) || ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking elseif ($1 == 13) || ($regex($1,/^craft(ing)?$/Si)) return Crafting elseif ($1 == 14) || ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing elseif ($1 == 15) || ($regex($1,/^mine(ing)?$/Si)) return Mining elseif ($1 == 16) || ($regex($1,/^herb(law|lore)?$/Si)) return Herblore elseif ($1 == 17) || ($regex($1,/^agil(ity)?$/Si)) return Agility elseif ($1 == 18) || ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving elseif ($1 == 19) || ($regex($1,/^slay(er|ing)?$/Si)) return Slayer elseif ($1 == 20) || ($regex($1,/^farm(er|ing)?$/Si)) return Farming elseif ($1 == 21) || ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecraft elseif ($1 == 22) || ($regex($1,/^(hunt)(er|ing)?$/si)) return Hunter elseif ($1 == 23) || ($regex($1,/^(con)(struc?tion)?$/si)) return Construction }