All pastes #756277 Raw Edit

Miscellany

public text v1 · immutable
#756277 ·published 2007-10-31 10:55 UTC
rendered paste body
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!.@])/Si):#:{
  tokenize 32 $iif($me isin $1,$deltok($1-,1,32),$1-) 
  if ($right($1,-1) == rank) {
    if ($3) {
      if ($skill($2)) {
        hadd -m $+(rank.,$nick) skill $skill($2)
      }
      else { $iif(@ isin $1,msg $chan,notice $nick) $c1([!@]Rank SKILL 1-1000000) | halt
      }
      if ($3 isnum 1-1000000) {
        hadd -m $+(rank.,$nick) rank $3
      }
      else { $iif(@ isin $1,msg $chan,notice $nick) $c1([!@]Rank SKILL 1-1000000) | halt
      }
    }
    else { $iif(@ isin $1,msg $chan,notice $nick) $c1([!@]Rank SKILL 1-1000000) | halt
    }
    hadd -m $+(rank.,$nick) disp $iif($globs($chan),notice $nick,$iif(@ isin $left($1,1),msg $chan,notice $nick))
    sockopen $+(rank.,$nick) hiscore.runescape.com 80
  }
  elseif ($regex($1,/^[!@](combatonjoin|cmbonjoin|checkcmb|checkreq|joinreq)/Si)) {
    if ($nick isop $chan) {
      if ($2 == on) { writeini cmbj.ini $network $chan on | notice $nick $c1(Combat check) $c2(on join is) 9ON }
      if ($2 == off) { writeini cmbj.ini $network $chan off | notice $nick $c1(Combat check) $c2(on join is) 4OFF }
    }
  }
  elseif ($rstyle($right($1,-1))) { 
    unset %full
    hadd -m $+(rsh.,$nick) disp $iif($globs($chan),notice $nick,$iif(@ isin $left($1,1),msg $chan,notice $nick))
    hadd -m $+(rsh.,$nick) style $rstyle($right($1,-1))
    $iif($hget($+(rsh.,$nick),goal),hdel $+(rsh.,$nick) goal) | $iif($hget($+(rsh.,$nick),pgoal),hdel $+(rsh.,$nick) pgoal)   
    if ($hget($+(rsh.,$nick),style) == single) { hdel $+(rsh.,$nick) mons | hadd -m $+(rsh.,$nick) skill $skill($right($1,-1)) | if ($chr(35) isin $2) || (- isin $2) { hadd -m $+(rsh.,$nick) goal $right($2,2)) } | if (@ isin $3) { hadd -m $+(rsh.,$nick) mons $replace($3-,$chr(32),-,@,$null) } | elseif (@ isin $4) { hadd -m $+(rsh.,$nick) mons $replace($4-,$chr(32),-,@,$null) } | elseif (@ isin $2) { hadd -m $+(rsh.,$nick) mons $replace($4-,$chr(32),-,@,$null) } }
    if ($hget($+(rsh.,$nick),style) == pest) { hadd -m $+(rsh.,$nick) pskill $skill($2) | hadd -m $+(rsh.,$nick) pgoal $iif($chr(35) isin $3,$right($3,2)) }
    if ($hget($+(rsh.,$nick),style) == stats) { if (-e isin $2) { hadd -m $+(rsh.,$nick) type Exp } | elseif (-r isin $2) { hadd -m $+(rsh.,$nick) type Rank } | else { hadd -m $+(rsh.,$nick) type Level } }
    if ($chr(35) isin $2) || (- isin $2) || ($skill($2)) || (@ isin $2) { tokenize 32 $deltok($1-,2,32) }
    if ($chr(35) isin $2) || (@ isin $2) { tokenize 32 $deltok($1-,2-,32) }
    if (@ isin $3) { tokenize 32 $deltok($1-,3-,32) }
    if (@ isin $4) { tokenize 32 $deltok($1-,4-,32) }
    /username $iif($2,$2-) 
    if (!$hget($+(rsh.,$nick),user)) { $iif($globs($chan),notice $nick,$iif(@ isin $left($1,1),msg $chan,notice $nick)) No Username Given | halt }
    sockopen $+(rsh.,$nick) hiscore.runescape.com 80
  }
  elseif ($right($1,-1) == compare) || ($right($1,-1) == comp) {
    unset %full
    if ($4) {
      hadd -m $+(compare.,$nick) skill $skill($2)
      hadd -m $+(compare.,$nick) user1 $3
      hadd -m $+(compare.,$nick) user2 $4
    }
    elseif (!$4) {
      $iif(@ isin $1,msg $chan,notice $nick) $c1(Its !compare SKILL USER-1 USER-2)
      halt
    }
    hadd -m $+(compare.,$nick) disp $iif($globs($chan),notice $nick,$iif(@ isin $left($1,1),msg $chan,notice $nick))
    sockopen $+(compare.,$nick) hiscore.runescape.com 80
  }
  elseif ($regex($1,/[!@](defname|setname|setrsn|defrsn)/Si)) {
    if ($chr(36) isin $1-) { notice $nick You Cannot Use $ In Runescape... | halt }
    elseif ($len($2) <= 12) { writeini rsn.ini rsn $address($nick,2) $replace($2-,$chr(32),$chr(43))
      notice $nick $+($c1([),$c2($2-),$c1(])) $c1(Added and saved under host) $+($c1([),$c2($address($nick,2)),$c1(])) 
    }
  }
}
on *:sockopen:rsh.*: {  
  if ($sockerr) { halt }  
  sockwrite -nt $sockname GET /hiscorepersonal.ws?user1= $+ $hget($sockname,user) HTTP/1.1  
  sockwrite -nt $sockname Host: hiscore.runescape.com $crlf $+ $crlf
}
on *:sockread:rsh.*: { if ($sockerr) { halt } | else { var %rshread | sockread %rshread 
    if (*does not feature in* iswm %rshread) { $hget($sockname,disp) $c1(User Cannot Be Found) | hadd -m $sockname nf nf | halt } 
    if (*<td align="left">* iswm %rshread) {
      var %read2 | sockread %read2
      set %full $+(%full,$chr(32),$htmlfree(%read2))
      var %read | sockread %read
      if (%read == </td>) set %full $remove(%full,$htmlfree(%read2))
    }
    if (*<td align="right">* iswm %rshread) {
      set %full $+(%full,$chr(32),$htmlfree(%rshread))
    }  
    if (*</body>* iswm %rshread) {
      if ($hget($sockname,style) == stats) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if (attack isin %full) { set %cmb.attack $gettok(%full,$calc($findtok(%full,attack,32) + 2),32) }
        if (strength isin %full) { set %cmb.strength $gettok(%full,$calc($findtok(%full,strength,32) + 2),32) }
        if (defence isin %full) { set %cmb.defence $gettok(%full,$calc($findtok(%full,defence,32) + 2),32) }
        if (prayer isin %full) { set %cmb.prayer $gettok(%full,$calc($findtok(%full,prayer,32) + 2),32) }
        if (ranged isin %full) { set %cmb.ranged $gettok(%full,$calc($findtok(%full,ranged,32) + 2),32) }
        if (magic isin %full) { set %cmb.magic $gettok(%full,$calc($findtok(%full,magic,32) + 2),32) }
        if (hitpoints isin %full) { set %cmb.hitpoints $gettok(%full,$calc($findtok(%full,hitpoints,32) + 2),32) }
        var %z
        if ($hget($sockname,type) == Level) { set %z 3 } 
        elseif ($hget($sockname,type) == Exp) { set %z 4 }
        elseif ($hget($sockname,type) == Rank) { set %z 2 }
        var %y
        var %v
        var %fuller = $remove(%full,skillranklevelxp)
        var %x = 1
        if ($numtok(%fuller,32) >= 44) {
          while (%x <= $numtok(%full,32)) { 
            if (!$statskill($gettok(%fuller,%x,32))) { 
            set %y $+(%y,$chr(32),$c1($gettok(%fuller,%x,32)),:,$chr(32),$c2($gettok(%full,$calc(%x + %z),32))) }
            elseif ($cmbskill($gettok(%fuller,%x,32))) { set %v $+(%v,$chr(32),$c1($gettok(%fuller,%x,32)),:,$chr(32),$c2($gettok(%full,$calc(%x + %z),32))) }
          inc %x 4 }
          $hget($sockname,disp) $c1(Name:) $c2($upper($replace($hget($sockname,user),$chr(43),$chr(32)))) $c1(Overall:) $iif(overall isin %full,$c2($gettok(%full,$calc($findtok(%full,overall,32) + 2),32)),$c2(N\A)) $c1(Rank:) $iif(overall isin %full,$c2($gettok(%full,$calc($findtok(%full,overall,32) + 1),32)),$c2(N\A)) $c1(Combat:) $c2($iif($cmblevel(%cmb.attack,%cmb.strength,%cmb.defence,%cmb.hitpoints,%cmb.prayer,%cmb.ranged,%cmb.magic),$v1,N/A)) $c1(Stats:)
          $iif(%v,$hget($sockname,disp) %v)       
          $hget($sockname,disp) $left(%y,-5)
        } 
        else {
          while (%x <= $numtok(%full,32)) { 
            set %y $+(%y,$chr(32),$c1($gettok(%fuller,%x,32)),:,$chr(32),$c2($gettok(%full,$calc(%x + %z),32))) 
          inc %x 4 }
          $hget($sockname,disp) $c1(Name:) $c2($upper($replace($hget($sockname,user),$chr(43),$chr(32)))) $c1(Overall:) $iif(overall isin %full,$c2($gettok(%full,$calc($findtok(%full,overall,32) + 2),32)),$c2(N\A)) $c1(Rank:) $iif(overall isin %full,$c2($gettok(%full,$calc($findtok(%full,overall,32) + 1),32)),$c2(N\A)) $c1(Combat:) $c2($iif($cmblevel(%cmb.attack,%cmb.strength,%cmb.defence,%cmb.hitpoints,%cmb.prayer,%cmb.ranged,%cmb.magic),$v1,N/A)) $c1(Stats:)
          $hget($sockname,disp) $left(%y,-5)
        }     
        unset %full
        unset %cmb.*
      }
      elseif ($hget($sockname,style) == combat) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if (attack isin %full) { set %cmb.attack $gettok(%full,$calc($findtok(%full,attack,32) + 2),32) }
        if (strength isin %full) { set %cmb.strength $gettok(%full,$calc($findtok(%full,strength,32) + 2),32) }
        if (defence isin %full) { set %cmb.defence $gettok(%full,$calc($findtok(%full,defence,32) + 2),32) }
        if (prayer isin %full) { set %cmb.prayer $gettok(%full,$calc($findtok(%full,prayer,32) + 2),32) }
        if (ranged isin %full) { set %cmb.ranged $gettok(%full,$calc($findtok(%full,ranged,32) + 2),32) }
        if (magic isin %full) { set %cmb.magic $gettok(%full,$calc($findtok(%full,magic,32) + 2),32) }
        if (hitpoints isin %full) { set %cmb.hitpoints $gettok(%full,$calc($findtok(%full,hitpoints,32) + 2),32) }
        $hget($sockname,disp) $c1(Name:) $c2($upper($replace($hget($sockname,user),$chr(43),$chr(32)))) $c1(Combat:) $c2($cmblevel(%cmb.attack,%cmb.strength,%cmb.defence,%cmb.hitpoints,%cmb.prayer,%cmb.ranged,%cmb.magic))
        $hget($sockname,disp) $iif(%cmb.attack,$c1(Attack:) $c2(%cmb.attack)) $iif(%cmb.strength,$c1(Stength:) $c2(%cmb.strength)) $iif(%cmb.defence,$c1(Defence:) $c2(%cmb.defence)) $iif(%cmb.hitpoints,$c1(Hitpoints:) $c2(%cmb.hitpoints)) $iif(%cmb.ranged,$c1(Ranged:) $c2(%cmb.ranged)) $iif(%cmb.prayer,$c1(Prayer:) $c2(%cmb.prayer)) $iif(%cmb.magic,$c1(Magic:) $c2(%cmb.magic))
        var %combat = $remove($cmblevel(%cmb.attack,%cmb.strength,%cmb.defence,%cmb.hitpoints,%cmb.prayer,%cmb.ranged,%cmb.magic),melee,mage,range,based,[,])
        var %supercombat = $cmblevel(%cmb.attack,%cmb.strength,%cmb.defence,%cmb.hitpoints,%cmb.prayer,%cmb.ranged,%cmb.magic)
        var %temp = $abs($calc($int($calc(%combat +1)) - %combat)), $& 
          %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 (mage isin %supercombat) { var %lvl.base = $c1(Magic:) $c2($+([,%m.lvl,])) $c1(Defence:) $c2($+([,%d.lvl,])) $c1(Hp:) $c2($+([,%d.lvl,])) $c1(Prayer:) $c2($+([,%p.lvl,])) }
        elseif (range isin %supercombat) { var %lvl.base = $c1(Ranged:) $c2($+([,%r.lvl,])) $c1(Defence:) $c2($+([,%d.lvl,])) $c1(Hp:) $c2($+([,%d.lvl,])) $c1(Prayer:) $c2($+([,%p.lvl,])) }
        elseif (melee isin %supercombat) { var %lvl.base = $c1(Attack:) $c2($+([,%a.lvl,])) $c1(Strength:) $c2($+([,%s.lvl,])) $c1(Defence:) $c2($+([,%d.lvl,])) $c1(Hp:) $c2($+([,%d.lvl,])) $c1(Prayer:) $c2($+([,%p.lvl,])) }
        $hget($sockname,disp) %lvl.base
        unset %cmb.*
      }
      elseif ($hget($sockname,style) == single) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if ($hget($sockname,skill) isin %full) { set %sing.lvls $gettok(%full,$findtok(%full,$hget($sockname,skill),32) - $calc($findtok(%full,$hget($sockname,skill),32) + 3),32)      
          $hget($sockname,disp) $c1(Name:) $c2($upper($replace($hget($sockname,user),$chr(43),$chr(32)))) $c1(Skill:) $c2($hget($sockname,skill))  $iif($hget($sockname,skill) != overall,$c1(% of lvl 99:) $c2($round($calc(($remove($gettok(%sing.lvls,4,32),$chr(44)) / 13034431) * 100),2)) $+ $chr(37),)
          $hget($sockname,disp) $c1(Level:) $c2($gettok(%sing.lvls,3,32)) $c1(Rank:) $c2($gettok(%sing.lvls,2,32)) $c1(Experience:) $c2($gettok(%sing.lvls,4,32)) $iif($hget($sockname,skill) != overall,$c1(Experience to $iif($hget($sockname,goal),$+($c1([),$c2($hget($sockname,goal)),$c1(])),next level:)) $c2($acalc($iif($hget($sockname,goal),$xp($v1),$xp2next($gettok(%sing.lvls,3,32))) - $gettok(%sing.lvls,4,32)))) $iif($cmbskill($hget($sockname,skill)),$c1(Pest Control Tickets To Level:) $c2($bytes($floor($calc($calc($iif($hget($sockname,goal),$xp($hget($sockname,goal)),$xp2next($gettok($remove(%sing.lvls,$chr(44)),3,32))) - $gettok($remove(%sing.lvls,$chr(44)),4,32)) / $pc($gettok($remove(%sing.lvls,$chr(44)),3,32)))),b)) $+ $+($c1($chr(40)),$c2($pc($gettok($remove(%sing.lvls,$chr(44)),3,32))),$c1($chr(41))))
          if ($hget($sockname,skill) = overall) { halt }           
          var %x = $xstart($hget($sockname,skill)) 
          while (%x <= $calc($xstart($hget($sockname,skill)) + 9)) { 
            set %item $+(%item,$chr(32),$iif($gettok($readini(info.ini,$hget($sockname,skill),n $+ %x),1,61) isin $hget($sockname,mons),$c1(~!~) $c2($gettok($readini(info.ini,$hget($sockname,skill),n $+ %x),1,61)) $c1(~!~),$c1($gettok($readini(info.ini,$hget($sockname,skill),n $+ %x),1,61))),$chr(58),$chr(32),$c2($remove($bcalc($bcalc($iif($hget($sockname,goal),$xp($v1),$xp2next($gettok(%sing.lvls,3,32))) - $gettok(%sing.lvls,4,32)) / $gettok($readini(info.ini,$hget($sockname,skill),n $+ %x),2,61)),$chr(32))))
          inc %x }     
          $hget($sockname,disp) $+($c1([),$c2(For Target),$c1(])) %item          
          unset %item
        }
        else { $hget($sockname,disp) $c1(User not found for that skill!) | hdel $sockname nf | unset %full 
        }
      }
      elseif ($hget($sockname,style) == pest) { 
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if ($hget($sockname,pskill) isin %full) { set %pest.lvls $gettok(%full,$findtok(%full,$hget($sockname,pskill),32) - $calc($findtok(%full,$hget($sockname,pskill),32) + 3),32)
          $hget($sockname,disp) $c1(Name:) $c2($upper($hget($sockname,user))) $c1(Skill:) $c2($hget($sockname,pskill)) $c1(Level:) $c2($gettok(%pest.lvls,3,32)) $c1(Pestcontrol Tickets To $iif($hget($sockname,pgoal),$c2($hget($sockname,pgoal) $+ $c1(:)),Next Level:)) $c2($bytes($floor($calc($calc($iif($hget($sockname,pgoal),$xp($hget($sockname,pgoal)),$xp2next($gettok($remove(%pest.lvls,$chr(44)),3,32))) - $gettok($remove(%pest.lvls,$chr(44)),4,32)) / $pc($gettok($remove(%pest.lvls,$chr(44)),3,32)))),b)) $+ $+($c1($chr(40)),$c2($pc($gettok($remove(%pest.lvls,$chr(44)),3,32))),$c1($chr(41)))
        }
        else { $hget($sockname,disp) $c1(User not found for that skill!) | hdel $sockname nf | unset %full }
      }
      elseif ($hget($sockname,style) == duel) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if (attack isin %full) { set %duel.attack $gettok(%full,$calc($findtok(%full,attack,32) + 2),32) }
        if (strength isin %full) { set %duel.strength $gettok(%full,$calc($findtok(%full,strength,32) + 2),32) }
        if (defence isin %full) { set %duel.defence $gettok(%full,$calc($findtok(%full,defence,32) + 2),32) }
        if (prayer isin %full) { set %duel.prayer $gettok(%full,$calc($findtok(%full,prayer,32) + 2),32) }
        if (ranged isin %full) { set %duel.ranged $gettok(%full,$calc($findtok(%full,ranged,32) + 2),32) }
        if (magic isin %full) { set %duel.magic $gettok(%full,$calc($findtok(%full,magic,32) + 2),32) }
        if (hitpoints isin %full) { set %duel.hitpoints $gettok(%full,$calc($findtok(%full,hitpoints,32) + 2),32) }
        $hget($sockname,disp) $c1(Name:) $c2($upper($hget($sockname,user))) $iif(%duel.attack,$c1(Attack:) $c2(%duel.attack)) $iif(%duel.strength,$c1(Stength:) $c2(%duel.strength)) $iif(%duel.defence,$c1(Defence:) $c2(%duel.defence)) $iif(%duel.hitpoints,$c1(Hitpoints:) $c2(%duel.hitpoints)) $iif(%duel.ranged,$c1(Ranged:) $c2(%duel.ranged)) $iif(%duel.prayer,$c1(Prayer:) $c2(%duel.prayer)) $iif(%duel.magic,$c1(Magic:) $c2(%duel.magic))  
        unset %duel.*      
      } 
      elseif ($hget($sockname,style) == cmb) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if (overall isin %full) { set %cmb.overall $gettok(%full,$calc($findtok(%full,overall,32) + 3),32) } | else { $hget($sockname,disp) $c1(Cannot Be Calculated NO OVERALL) | halt } 
        if (attack isin %full) { set %cmb.attack $gettok(%full,$calc($findtok(%full,attack,32) + 2),32) }
        if (strength isin %full) { set %cmb.strength $gettok(%full,$calc($findtok(%full,strength,32) + 2),32) }
        if (defence isin %full) { set %cmb.defence $gettok(%full,$calc($findtok(%full,defence,32) + 2),32) }
        if (prayer isin %full) { set %cmb.prayer $gettok(%full,$calc($findtok(%full,prayer,32) + 2),32) }
        if (ranged isin %full) { set %cmb.ranged $gettok(%full,$calc($findtok(%full,ranged,32) + 2),32) }
        if (magic isin %full) { set %cmb.magic $gettok(%full,$calc($findtok(%full,magic,32) + 2),32) }
        if (hitpoints isin %full) { set %cmb.hitpoints $gettok(%full,$calc($findtok(%full,hitpoints,32) + 2),32) }
        if (attack isin %full) { set %xp.attack $gettok(%full,$calc($findtok(%full,attack,32) + 3),32) }
        if (strength isin %full) { set %xp.strength $gettok(%full,$calc($findtok(%full,strength,32) + 3),32) }
        if (defence isin %full) { set %xp.defence $gettok(%full,$calc($findtok(%full,defence,32) + 3),32) }
        if (prayer isin %full) { set %xp.prayer $gettok(%full,$calc($findtok(%full,prayer,32) + 3),32) }
        if (ranged isin %full) { set %xp.ranged $gettok(%full,$calc($findtok(%full,ranged,32) + 3),32) }
        if (magic isin %full) { set %xp.magic $gettok(%full,$calc($findtok(%full,magic,32) + 3),32) }
        if (hitpoints isin %full) { set %xp.hitpoints $gettok(%full,$calc($findtok(%full,hitpoints,32) + 3),32) }
        $hget($sockname,disp) $c1(Name:) $c2($upper($replace($hget($sockname,user),$chr(43),$chr(32)))) $c1(Combat Level:) $c2($cmblevel(%cmb.attack,%cmb.strength,%cmb.defence,%cmb.hitpoints,%cmb.prayer,%cmb.ranged,%cmb.magic))
        $hget($sockname,disp) $iif(%cmb.attack,$c1(Attack:) $c2(%cmb.attack)) $iif(%cmb.strength,$c1(Stength:) $c2(%cmb.strength)) $iif(%cmb.defence,$c1(Defence:) $c2(%cmb.defence)) $iif(%cmb.hitpoints,$c1(Hitpoints:) $c2(%cmb.hitpoints)) $iif(%cmb.ranged,$c1(Ranged:) $c2(%cmb.ranged)) $iif(%cmb.prayer,$c1(Prayer:) $c2(%cmb.prayer)) $iif(%cmb.magic,$c1(Magic:) $c2(%cmb.magic))
        $hget($sockname,disp) $c1(Percentage:) $c2($floor($calc(($remove(%xp.attack + %xp.strength + %xp.defence + %xp.hitpoints + %xp.ranged + %xp.magic + %xp.prayer,$chr(44))) / $remove(%cmb.overall,$chr(44)) * 100))) $+ % $c1(Out Of:) $c2(%cmb.overall)
        unset %cmb.* | unset %xp.*    
      } 
      elseif ($hget($sockname,style) == closest) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        var %yx = 2
        var %xy
        while (%yx <= $len(%full)) {
          set %xy $+(%xy,$chr(32),$gettok(%full,%yx,32),$chr(32),$xp2next($gettok(%full,$calc(%yx + 2),32),$gettok(%full,$calc(%yx + 3),32)))
        inc %yx 4 }
        var %u = 1
        var %t 
        var %i = $islowest($remove(%xy,$+($chr(32),0),$gettok(%xy,$findtok(%xy,overall,32),32),$gettok(%xy,$calc($findtok(%xy,overall,32) + 1),32),a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z))
        $hget($sockname,disp) $c1(Name:) $c2($upper($hget($sockname,user))) $c1(Closest Is:) $c2($gettok(%xy,$calc($findtok(%xy,%i,32) - 1),32)) $c1(With:) $c2($bytes(%i,b)) $c1(Xp To Level:) $c2($calc($gettok(%full,$calc($findtok(%full,$gettok(%xy,$calc($findtok(%xy,%i,32) - 1),32),32) + 2),32) + 1))
        unset %full
      }
      elseif ($hget($sockname,style) == furthest) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        var %yx = 2
        var %xy
        while (%yx <= $len(%full)) {
          set %xy $+(%xy,$chr(32),$gettok(%full,%yx,32),$chr(32),$xp2next($gettok(%full,$calc(%yx + 2),32),$gettok(%full,$calc(%yx + 3),32)))
        inc %yx 4 }
        var %u = 1
        var %t 
        var %i = $isfurthest($remove(%xy,$+($chr(32),0),$gettok(%xy,$findtok(%xy,overall,32),32),$gettok(%xy,$calc($findtok(%xy,overall,32) + 1),32),a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z))
        $hget($sockname,disp) $c1(Name:) $c2($upper($hget($sockname,user))) $c1(Furthest Is:) $c2($gettok(%xy,$calc($findtok(%xy,%i,32) - 1),32)) $c1(With:) $c2($bytes(%i,b)) $c1(Xp To Level:) $c2($calc($gettok(%full,$calc($findtok(%full,$gettok(%xy,$calc($findtok(%xy,%i,32) - 1),32),32) + 2),32) + 1))
        unset %full
      }
      elseif ($hget($sockname,style) == p2p) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if (herblore isin %full) { set %p2p.herblore $gettok(%full,$calc($findtok(%full,herblore,32) + 2),32) }
        if (construction isin %full) { set %p2p.construction $gettok(%full,$calc($findtok(%full,construction,32) + 2),32) }
        if (fletching isin %full) { set %p2p.fletching $gettok(%full,$calc($findtok(%full,fletching,32) + 2),32) }
        if (agility isin %full) { set %p2p.agility $gettok(%full,$calc($findtok(%full,agility,32) + 2),32) }
        if (thieving isin %full) { set %p2p.thieving $gettok(%full,$calc($findtok(%full,thieving,32) + 2),32) }
        if (slayer isin %full) { set %p2p.slayer $gettok(%full,$calc($findtok(%full,slayer,32) + 2),32) }
        if (farming isin %full) { set %p2p.farming $gettok(%full,$calc($findtok(%full,farming,32) + 2),32) }
        if (hunter isin %full) { set %p2p.hunter $gettok(%full,$calc($findtok(%full,hunter,32) + 2),32) }
        if (overall isin %full) { set %p2p.overall $gettok(%full,$calc($findtok(%full,overall,32) + 2),32) }
        $hget($sockname,disp) $c1(Name:) $c2($upper($hget($sockname,user))) $c1(Pay To Play Stats:)
        $hget($sockname,disp) $iif(%p2p.overall,$c1(Overall:) $c2(%p2p.overall)) $iif(%p2p.fletching,$c1(Fletching:) $c2(%p2p.fletching)) $iif(%p2p.Herblore,$c1(Herblore:) $c2(%p2p.herblore)) $iif(%p2p.agility,$c1(Agility:) $c2(%p2p.agility)) $iif(%p2p.Thieving,$c1(Thieving:) $c2(%p2p.thieving)) $iif(%p2p.Slayer,$c1(Slayer:) $c2(%p2p.slayer)) $iif(%p2p.Farming,$c1(Farming:) $c2(%p2p.farming)) $iif(%p2p.Hunter,$c1(Hunter:) $c2(%p2p.hunter)) $iif(%p2p.construction,$c1(Construction:) $c2(%p2p.construction))
        unset %p2p.*      
      }
      elseif ($hget($sockname,style) == f2p) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if (cooking isin %full) { set %f2p.cooking $gettok(%full,$calc($findtok(%full,cooking,32) + 2),32) }
        if (woodcutting isin %full) { set %f2p.woodcutting $gettok(%full,$calc($findtok(%full,woodcutting,32) + 2),32) }
        if (fishing isin %full) { set %f2p.fishing $gettok(%full,$calc($findtok(%full,fishing,32) + 2),32) }
        if (firemaking isin %full) { set %f2p.firemaking $gettok(%full,$calc($findtok(%full,firemaking,32) + 2),32) }
        if (crafting isin %full) { set %f2p.crafting $gettok(%full,$calc($findtok(%full,crafting,32) + 2),32) }
        if (smithing isin %full) { set %f2p.smithing $gettok(%full,$calc($findtok(%full,smithing,32) + 2),32) }
        if (mining isin %full) { set %f2p.mining $gettok(%full,$calc($findtok(%full,mining,32) + 2),32) }
        if (runecraft isin %full) { set %f2p.runecraft $gettok(%full,$calc($findtok(%full,runecraft,32) + 2),32) }
        if (overall isin %full) { set %f2p.overall $gettok(%full,$calc($findtok(%full,overall,32) + 2),32) }
        if (attack isin %full) { set %f2p.attack $gettok(%full,$calc($findtok(%full,attack,32) + 2),32) }
        if (strength isin %full) { set %f2p.strength $gettok(%full,$calc($findtok(%full,strength,32) + 2),32) }
        if (defence isin %full) { set %f2p.defence $gettok(%full,$calc($findtok(%full,defence,32) + 2),32) }
        if (prayer isin %full) { set %f2p.prayer $gettok(%full,$calc($findtok(%full,prayer,32) + 2),32) }
        if (ranged isin %full) { set %f2p.ranged $gettok(%full,$calc($findtok(%full,ranged,32) + 2),32) }
        if (magic isin %full) { set %f2p.magic $gettok(%full,$calc($findtok(%full,magic,32) + 2),32) }
        if (hitpoints isin %full) { set %f2p.hitpoints $gettok(%full,$calc($findtok(%full,hitpoints,32) + 2),32) }
        $hget($sockname,disp) $c1(Name:) $c2($upper($hget($sockname,user))) $c1(Free To Play Stats:)
        $hget($sockname,disp) $iif(%f2p.overall,$c1(Overall:) $c2(%f2p.overall)) $iif(%f2p.attack,$c1(Attack:) $c2(%f2p.attack)) $iif(%f2p.strength,$c1(Strength:) $c2(%f2p.strength)) $iif(%f2p.defence,$c1(Defence:) $c2(%f2p.defence)) $iif(%f2p.hitpoints,$c1(Hitpoints:) $c2(%f2p.hitpoints)) $iif(%f2p.Ranged,$c1(Ranged:) $c2(%f2p.ranged)) $iif(%f2p.prayer,$c1(Prayer:) $c2(%f2p.prayer)) $iif(%f2p.Magic,$c1(Magic:) $c2(%f2p.magic)) $iif(%f2p.cooking,$c1(Cooking:) $c2(%f2p.cooking)) $iif(%f2p.woodcutting,$c1(Woodcutting:) $c2(%f2p.woodcutting)) $iif(%f2p.Fishing,$c1(Fishing:) $c2(%f2p.fishing)) $iif(%f2p.firemaking,$c1(Firemaking:) $c2(%f2p.firemaking)) $iif(%f2p.crafting,$c1(Crafting:) $c2(%f2p.crafting)) $iif(%f2p.Smithing,$c1(Smithing:) $c2(%f2p.smithing)) $iif(%f2p.mining,$c1(Mining:) $c2(%f2p.mining)) $iif(%f2p.Runecraft,$c1(Runecraft:) $c2(%f2p.Runecraft))
        unset %f2p.*      
      }
      elseif ($hget($sockname,style) == join) {
        if ($hget($sockname,nf) == nf) { hdel $sockname nf | unset %full | halt }
        if (overall isin %full) { set %cmb.overall $gettok(%full,$calc($findtok(%full,overall,32) + 3),32) } | else { $hget($sockname,disp) $c1(Cannot Be Calculated NO OVERALL) | halt } 
        if (attack isin %full) { set %cmb.attack $gettok(%full,$calc($findtok(%full,attack,32) + 2),32) }
        if (strength isin %full) { set %cmb.strength $gettok(%full,$calc($findtok(%full,strength,32) + 2),32) }
        if (defence isin %full) { set %cmb.defence $gettok(%full,$calc($findtok(%full,defence,32) + 2),32) }
        if (prayer isin %full) { set %cmb.prayer $gettok(%full,$calc($findtok(%full,prayer,32) + 2),32) }
        if (ranged isin %full) { set %cmb.ranged $gettok(%full,$calc($findtok(%full,ranged,32) + 2),32) }
        if (magic isin %full) { set %cmb.magic $gettok(%full,$calc($findtok(%full,magic,32) + 2),32) }
        if (hitpoints isin %full) { set %cmb.hitpoints $gettok(%full,$calc($findtok(%full,hitpoints,32) + 2),32) }
        if (attack isin %full) { set %xp.attack $gettok(%full,$calc($findtok(%full,attack,32) + 3),32) }
        if (strength isin %full) { set %xp.strength $gettok(%full,$calc($findtok(%full,strength,32) + 3),32) }
        if (defence isin %full) { set %xp.defence $gettok(%full,$calc($findtok(%full,defence,32) + 3),32) }
        if (prayer isin %full) { set %xp.prayer $gettok(%full,$calc($findtok(%full,prayer,32) + 3),32) }
        if (ranged isin %full) { set %xp.ranged $gettok(%full,$calc($findtok(%full,ranged,32) + 3),32) }
        if (magic isin %full) { set %xp.magic $gettok(%full,$calc($findtok(%full,magic,32) + 3),32) }
        if (hitpoints isin %full) { set %xp.hitpoints $gettok(%full,$calc($findtok(%full,hitpoints,32) + 3),32) }
        $hget($sockname,disp) $c1(Name:) $c2($upper($replace($hget($sockname,user),$chr(43),$chr(32)))) $c1(Combat Level:) $c2($cmblevel(%cmb.attack,%cmb.strength,%cmb.defence,%cmb.hitpoints,%cmb.prayer,%cmb.ranged,%cmb.magic)) $c1(Attack + Strength:)  $c2($calc(%cmb.attack + %cmb.strength)) $iif(%cmb.attack,$c1(Attack:) $c2(%cmb.attack)) $iif(%cmb.strength,$c1(Stength:) $c2(%cmb.strength)) $iif(%cmb.defence,$c1(Defence:) $c2(%cmb.defence)) $iif(%cmb.hitpoints,$c1(Hitpoints:) $c2(%cmb.hitpoints)) $iif(%cmb.ranged,$c1(Ranged:) $c2(%cmb.ranged)) $iif(%cmb.prayer,$c1(Prayer:) $c2(%cmb.prayer)) $iif(%cmb.magic,$c1(Magic:) $c2(%cmb.magic))
        unset %cmb.*     
      }
    }
  }
}
alias pc {
  var %x $calc($1 ^ 2)
  var %y $floor($calc(%x / 6))
  return %y 
}
alias CmbLevel { 
  set %defence $calc($3 * 100) 
  set %hitpoints $calc($4 * 100) 
  set %prayer $5 
  if ($and(%prayer,1) == 1) { 
    set %prayer $calc((%prayer -1) * 50) 
  } 
  Else if ($and(%prayer,1) == 0) { 
    set %prayer $calc(%prayer * 50) 
  } 
  set %basecombat $calc((%defence + %hitpoints + %prayer) / 400) 
  set %attack $calc($1 * 130) 
  set %strength $calc($2 * 130) 
  set %ranged $6 
  set %mage $7 
  if ($and(%ranged,1) == 1) { 
    set %ranged $calc((%ranged - 1 + %ranged * 2) * 65) 
  } 
  Else if ($and(%ranged,1) == 0) { 
    set %ranged $calc(%ranged * 195) 
  } 
  if ($and(%mage,1) == 1) { 
    set %mage $calc((%mage - 1 + %mage * 2) * 65) 
  } 
  Else if ($and(%mage,1) == 0) { 
    set %mage $calc(%mage * 195) 
  } 
  set %meleecb $calc((%attack + %strength) / 400) 
  set %rangedcb $calc(%ranged / 400) 
  set %magecb $calc(%mage / 400) 

  if ((%meleecb > %rangedcb) && (%meleecb > %magecb)) { 
    return $calc(%meleecb + %basecombat) [Melee Based] 
  } 
  if ((%rangedcb > %meleecb) && (%rangedcb > %magecb)) { 
    Return $calc(%rangedcb + %basecombat) [Range Based] 
  } 
  if ((%magecb > %rangedcb) && (%magecb > %meleecb)) { 
    Return $calc(%magecb + %basecombat) [Mage Based] 
  } 
  unset %defence 
  unset %hitpoints 
  unset %prayer 
  unset %basecombat 
  unset %attack 
  unset %strength 
  unset %ranged 
  unset %mage 
  unset %meleecb 
  unset %rangedcb 
  unset %magecb 
} 
alias Skill {
  If ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall
  Elseif ($regex($1,/^at(t|k|tack)$/Si)) return Attack
  Elseif ($regex($1,/^st(r|re|rength)$/Si)) return Strength
  Elseif ($regex($1,/^de(f|fence)$/Si)) return Defence
  Elseif ($regex($1,/^h(its|p|itpoints)$/Si)) return Hitpoints
  Elseif ($regex($1,/^pra(y|yer)$/Si)) return Prayer
  Elseif ($regex($1,/^mag(e|ic)$/Si)) return Magic
  Elseif ($regex($1,/^rang(e|ed)$/Si)) return Ranged
  Elseif ($regex($1,/^agi(l|lity)$/Si)) return Agility
  Elseif ($regex($1,/^h(erb|erblore)$/Si)) return Herblore
  Elseif ($regex($1,/^thie(f|ve|ving)$/Si)) return Thieving
  Elseif ($regex($1,/^r(c|unecraft|unecrafting)$/Si)) return Runecraft
  Elseif ($regex($1,/^craf(t|ting)$/Si)) return Crafting
  Elseif ($regex($1,/^smit(h|hing)$/Si)) return Smithing
  Elseif ($regex($1,/^min(e|ing)$/Si)) return Mining
  Elseif ($regex($1,/^fis(h|hing)$/Si)) return Fishing
  Elseif ($regex($1,/^coo(k|king)$/Si)) return Cooking
  Elseif ($regex($1,/^f(m|ire|iremaking)$/Si)) return Firemaking
  Elseif ($regex($1,/^w(c|oodcut|oodcutting)$/Si)) return Woodcutting
  Elseif ($regex($1,/^sla(y|yer)$/Si)) return Slayer
  Elseif ($regex($1,/^far(m|ming)$/Si)) return Farming
  Elseif ($regex($1,/^fletc(h|hing)$/Si)) return Fletching
  Elseif ($regex($1,/^hun(ter|t|ting)$/Si)) return Hunter
  Elseif ($regex($1,/^(cons|construct|construction|poh)$/Si)) return Construction
}
alias xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) }
alias 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 cmbskill {
  if ($regex($1,/^at(t|k|tack)$/Si)) return Attack
  Elseif ($regex($1,/^st(r|re|rength)$/Si)) return Strength
  Elseif ($regex($1,/^de(f|fence)$/Si)) return Defence
  Elseif ($regex($1,/^h(its|p|itpoints)$/Si)) return Hitpoints
  Elseif ($regex($1,/^pra(y|yer)$/Si)) return Prayer
  Elseif ($regex($1,/^mag(e|ic)$/Si)) return Magic
  Elseif ($regex($1,/^rang(e|ed)$/Si)) return Range
}
alias rstyle {
  if ($1 == pest) { return pest }
  elseif ($1 == pc) { return pest }
  elseif ($1 == cmb) { return combat }
  elseif ($1 == combat) { return combat }
  elseif ($1 == stats) { return stats }
  elseif ($1 == rsstats) { return stats }
  elseif ($1 == duel) { return duel }
  elseif ($skill($1)) { return single }
  elseif ($1 == combat%) { return cmb }
  elseif ($1 == cmb%) { return cmb }
  elseif ($1 == closest) { return $v2 }
  elseif ($1 == next) { return closest }
  elseif ($1 == furthest) { return furthest }
  elseif ($1 == p2p) { return p2p }
  elseif ($1 == f2p) { return f2p }
  elseif ($1 == join) { return join }
}
alias bcalc { 
  tokenize 32 $remove($1-,$chr(44),$chr(32)) 
  var %matches $regex($1-,/L(\d\d?)/gi), %i = 1, %calculate = $1- 
  while (%i <= %matches) { 
    var %calculate = $replace(%calculate,L $+ $regml(%i),$LevelsAndXp($regml(%i))) 
    inc %i 
  } 
  if (k isin %calculate) { 
    var %x = 1, %total = $pos(%calculate,k,0) 
    while (%x <= %total) { 
      var %kpos = $pos(%calculate,k,%x), %kstartpos = $calc(%kpos - 1), %klen = 1 
      while ($mid(%calculate,%kstartpos,1) isin 1234567890.) && (%kstartpos > 0) { dec %kstartpos | inc %klen } 
      var %calculate = $iif(%kstartpos >= 0,$left(%calculate,%kstartpos)) $+ $chr(40) $+ $mid(%calculate,$calc($iif(%kstartpos == 0,0,%kstartpos +1)),%klen) $+ $chr(41) $+ $right(%calculate,- $+ %kpos) 
      inc %x 
    } 
  } 
  if (m isin %calculate) { 
    var %x = 1, %total = $pos(%calculate,m,0) 
    while (%x <= %total) { 
      var %mpos = $pos(%calculate,m,%x), %mstartpos = $calc(%mpos - 1), %mlen = 1 
      while ($mid(%calculate,%mstartpos,1) isin 1234567890.) && (%mstartpos > 0) { dec %mstartpos | inc %mlen } 
      var %calculate = $iif(%mstartpos >= 0,$left(%calculate,%mstartpos)) $+ $chr(40) $+ $mid(%calculate,$calc($iif(%mstartpos == 0,0,%mstartpos +1)),%mlen) $+ $chr(41) $+ $right(%calculate,- $+ %mpos) 
      inc %x 
    } 
  } 
  var %calculate $replace($remove(%calculate,$chr(44),$chr(61)),x,*,k,*1000,m,*1000000) 
  var %answer = $bytes($floor($calc(%calculate)),db)) 
  return %answer 
} 
alias xstart {
  if ($1 == attack) { return 1 }
  elseif ($1 == strength) { return 25 }
  elseif ($1 == defence) { return 13 }
  elseif ($1 == hitpoints) { return 37 }
  elseif ($1 == ranged) { return 49 }
  elseif ($1 == magic) { return 97 }
  elseif ($1 == prayer) { return 61 }
  elseif ($1 == cooking) { return 73 }
  elseif ($1 == fishing) { return 119 }
  elseif ($1 == firemaking) { return 109 }
  elseif ($1 == woodcutting) { return 85 }
  elseif ($1 == construction) { return 271 }
  elseif ($1 == slayer) { return 220 }
  elseif ($1 == thieving) { return 207 }
  elseif ($1 == agility) { return 193 }
  elseif ($1 == herblore) { return 180 }
  elseif ($1 == crafting) { return 143 }
  elseif ($1 == runecraft) { return 232 }
  elseif ($1 == farming) { return 247 }
  elseif ($1 == hunter) { return 259 }
  elseif ($1 == mining) { return 168 }
  elseif ($1 == smithing) { return 155 }
  elseif ($1 == fletching) { return 131 }
}
alias ranknum { 
  if ($1 == attack) { return 1 }
  elseif ($1 == overall) { return 0 }
  elseif ($1 == strength) { return 3 }
  elseif ($1 == defence) { return 2 }
  elseif ($1 == hitpoints) { return 4 }
  elseif ($1 == ranged) { return 5 }
  elseif ($1 == magic) { return 7 }
  elseif ($1 == prayer) { return 6 }
  elseif ($1 == cooking) { return 8 }
  elseif ($1 == fishing) { return 11 }
  elseif ($1 == firemaking) { return 12 }
  elseif ($1 == woodcutting) { return 9 }
  elseif ($1 == construction) { return 23 }
  elseif ($1 == slayer) { return 19 }
  elseif ($1 == thieving) { return 18 }
  elseif ($1 == agility) { return 17 }
  elseif ($1 == herblore) { return 16 }
  elseif ($1 == crafting) { return 13 }
  elseif ($1 == runecraft) { return 21 }
  elseif ($1 == farming) { return 20 }
  elseif ($1 == hunter) { return 22 }
  elseif ($1 == mining) { return 15 }
  elseif ($1 == smithing) { return 14 }
  elseif ($1 == fletching) { return 10 }
}
alias islowest {
  var %y $sorttok($remove($1-,$chr(44)),32,nr)
  return $gettok(%y,$numtok(%y,32),32)
}
alias isfurthest {
  var %y $sorttok($remove($1-,$chr(44)),32,nr)
  return $gettok(%y,1,32)
}
alias statskill {
  if ($regex($1,/^ov(erall)$/Si)) return Overall
  Elseif ($regex($1,/^at(t|k|tack)$/Si)) return Attack
  Elseif ($regex($1,/^st(r|re|rength)$/Si)) return Strength
  Elseif ($regex($1,/^de(f|fence)$/Si)) return Defence
  Elseif ($regex($1,/^h(its|p|itpoints)$/Si)) return Hitpoints
  Elseif ($regex($1,/^pra(y|yer)$/Si)) return Prayer
  Elseif ($regex($1,/^mag(e|ic)$/Si)) return Magic
  Elseif ($regex($1,/^rang(e|ed)$/Si)) return Ranged
}
alias htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp,&amp;) | return %x }  
on *:sockopen:compare.*: {  
  if ($sockerr) { halt }  
  sockwrite -nt $sockname GET /compare.ws?user1= $+ $hget($sockname,user1) $+ &user2= $+ $hget($sockname,user2) HTTP/1.1  
  sockwrite -nt $sockname Host: hiscore.runescape.com $crlf $+ $crlf
}
on *:sockread:compare.*: { if ($sockerr) { halt } | else { var %compread | sockread %compread  
    if (*does not feature in* iswm %compread) {  if ($hget($sockname,nodisp) == no) { halt } | $hget($sockname,disp) $c1(One Or More Users Cannot Be Found) | hadd -m $sockname nodisp no }
    if (*<td align="left">* iswm %compread) {
      var %read2 | sockread %read2
      .set %full $+(%full,$chr(32),$htmlfree(%read2))
      var %xread | sockread %xread | var %yread | sockread %yread
      if (*not ranked* iswm %yread) { .set %full $remove(%full,$htmlfree(%read2))
      }
    }
    if (*<td align="right">* iswm $remove(%compread,<td align="center">)) {
      .set %full $+(%full,$chr(32),$htmlfree(%compread))
    } 
    if (*</body>* iswm %compread) {
      if ($hget($sockname,nodisp) == no) { hdel $sockname nodisp | halt }
      if ($hget($sockname,skill) isin %full) {
        $hget($sockname,disp) $c1(Name:) $c2($hget($sockname,user1)) $c1(Is Level:) $c2($gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 1),32)) $c1(With:) $c2($gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 2),32)) $c1(Xp) $chr(124) $c1(Name:) $c2($hget($sockname,user2)) $c1(Is Level:) $c2($gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 4),32)) $c1(With:) $c2($gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 5),32)) $c1(Xp)
        $hget($sockname,disp) $c2($iif($remove($gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 2),32),$chr(44)) < $remove($gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 5),32),$chr(44)),$hget($sockname,user2),$hget($sockname,user1))) $c1(Wins $+ $chr(44) By) $remove($c2($acalc($remove($gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 2),32),$chr(44)) - $remove($gettok(%full,$acalc($findtok(%full,$hget($sockname,skill),32) + 5),32),$chr(44)))),$chr(45)) $c1(Xp $+ $chr(44) And By) $remove($c2($acalc($gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 4),32) - $gettok(%full,$calc($findtok(%full,$hget($sockname,skill),32) + 1),32))),$chr(45)) $c1(Levels)            
        unset %full
        unset %fullx
      }
    }
  }
} 
on *:sockopen:rank.*: {  
  if ($sockerr) { halt }  
  sockwrite -nt $sockname GET /overall.ws?table= $+ $ranknum($hget($sockname,skill)) $+ &rank= $+ $hget($sockname,rank) HTTP/1.1  
  sockwrite -nt $sockname Host: hiscore.runescape.com $crlf $+ $crlf
}
on *:sockread:rank.*: { if ($sockerr) { halt } | else { var %rankread | sockread %rankread  
    if (*<span style="color:#AA0022;">* iswm %rankread) {
      set %rankend $+(%rankend,$chr(32),$replace($htmlfree(%rankread),$chr(32),$chr(45)))
    }
    if (*<font color="#AA0022">* iswm %rankread) { 
      set %rankxp $htmlfree(%rankread)
    }
    if (*</body>* iswm %rankread) {
      $hget($sockname,disp) $c1(Rank:) $c2($hget($sockname,rank)) $c1(In The Skill Of:) $c2($hget($sockname,skill)) $c1(Is:) $c2($replace($gettok(%rankend,2,32),$chr(45),$chr(32))) $c1(At Level:) $c2($gettok(%rankend,3,32)) $c1(With:) $c2(%rankxp) $c1(Xp)
      unset %rankend    
      unset %rankxp
    }
  } 
}
alias Acalc { 
  tokenize 32 $remove($1-,$chr(44),$chr(32)) 
  var %matches $regex($1-,/L(\d\d?)/gi), %i = 1, %calculate = $1- 
  while (%i <= %matches) { 
    var %calculate = $replace(%calculate,L $+ $regml(%i),$LevelsAndXp($regml(%i))) 
    inc %i 
  } 
  if (k isin %calculate) { 
    var %x = 1, %total = $pos(%calculate,k,0) 
    while (%x <= %total) { 
      var %kpos = $pos(%calculate,k,%x), %kstartpos = $calc(%kpos - 1), %klen = 1 
      while ($mid(%calculate,%kstartpos,1) isin 1234567890.) && (%kstartpos > 0) { dec %kstartpos | inc %klen } 
      var %calculate = $iif(%kstartpos >= 0,$left(%calculate,%kstartpos)) $+ $chr(40) $+ $mid(%calculate,$calc($iif(%kstartpos == 0,0,%kstartpos +1)),%klen) $+ $chr(41) $+ $right(%calculate,- $+ %kpos) 
      inc %x 
    } 
  } 
  if (m isin %calculate) { 
    var %x = 1, %total = $pos(%calculate,m,0) 
    while (%x <= %total) { 
      var %mpos = $pos(%calculate,m,%x), %mstartpos = $calc(%mpos - 1), %mlen = 1 
      while ($mid(%calculate,%mstartpos,1) isin 1234567890.) && (%mstartpos > 0) { dec %mstartpos | inc %mlen } 
      var %calculate = $iif(%mstartpos >= 0,$left(%calculate,%mstartpos)) $+ $chr(40) $+ $mid(%calculate,$calc($iif(%mstartpos == 0,0,%mstartpos +1)),%mlen) $+ $chr(41) $+ $right(%calculate,- $+ %mpos) 
      inc %x 
    } 
  } 
  var %calculate $replace($remove(%calculate,$chr(44),$chr(61)),x,*,k,*1000,m,*1000000) 
  var %answer = $bytes($calc(%calculate),db) 
  return %answer 
}
on *:JOIN:#: { 
  if ($cmbj($chan)) {
    unset %full
    hadd -m $+(rsh.,$nick) user $iif($readini(rsn.ini,rsn,$address($nick,2)),$v1,$nick)
    hadd -m $+(rsh.,$nick) disp msg $chan
    hadd -m $+(rsh.,$nick) style join
    sockopen $+(rsh.,$nick) hiscore.runescape.com 80
  }
}
alias cmbj { if ($readini(cmbj.ini,$network,$1) == on) { return true } | else return $false }
alias username { 
  if ($chr(38) isin $1) {
    hadd -m $+(rsh.,$nick) user $readini(rsn.ini,rsn,$address($right($1,-1),2))
  }
  elseif (!$1) { 
    hadd -m $+(rsh.,$nick) user $iif($readini(rsn.ini,rsn,$address($nick,2)),$v1,$replace($nick,$chr(45),$chr(43)))
  }
  elseif ($1) {
    hadd -m $+(rsh.,$nick) user $replace($1-,$chr(32),$chr(43))
  }
}