All pastes #586662 Raw Edit

Mine

public text v1 · immutable
#586662 ·published 2007-06-23 23:31 UTC
rendered paste body
alias zs.reload {
  reload -rs " $+ $scriptdirbase.txt $+ "
  load -rs " $+ $scriptdircompare.txt $+ "
  load -rs " $+ $scriptdirdeathmatch.txt $+ "
  load -rs " $+ $scriptdiridle.txt $+ "
  load -rs " $+ $scriptdirsimple-scripts.txt $+ "
  load -rs " $+ $scriptdirstats.txt $+ "
  load -rs " $+ $scriptdirtrivia.txt $+ "
  load -rs " $+ $scriptdirmaxhit.txt $+ "
  load -rs " $+ $scriptdirworlds.txt $+ "
  msg $iif($1,$1,#zetaadmins) Code updated.
}
alias c1 { return 10 $+ $1- }
alias c2 { return 12 $+ $1- }
alias c3 { Return 2 $+ $1-  }
alias c4 { Return 11 $+ $1- }
alias chankill {
  set %channum 1
  set %channum1 0
  unset %channumn
  while ($chan(%channum) != $null) {
    if (($chan(%channum) == #zetasecure) || ($chan(%channum) == #zetaadmins) || ($chan(%channum) == #zetascript) || ($readini(WhiteList.ini,$network,$chan(%channum)))) {
      inc %channum
    }
    elseif ($nick($chan(%channum),0) < 3) {
      part $chan(%channum)
      set %channumn %channumn $chan(%channum)
      inc %channum
      inc %channum1
    }
    else {
      inc %channum
    }
  }
  msg $1 Chankill reported %channum1 channels below 3 users ( $+ %channumn $+ ).
}
alias zetacheck {
  set %nicknum 1
  while ($nick($1,%nicknum) != $null) {
    echo -a checking $nick($1,%nicknum)
    if (($nick($1,%nicknum) != $me) && (*zetascript* iswm $nick($1,%nicknum)) && ($nick($1,%nicknum) ison #zetasecure)) {
      echo -a checking2 $nick($1,%nicknum)
      if (($1 != #zetasecure) && ($1 != #zetaadmins) && ($1 != #zetascript) && (!$readini(WhiteList.ini,$network,$1))) { 
        echo -a checking3 $nick($1,%nicknum)
        part $1 Sorry it seems you already have a ZetaScript
        msg #ZetaSecure Parting $1 - Found another zetascript
        msg $$2 Zetacheck found another zeta.
        halt
      }
    }
    inc %nicknum
  }
  msg $$2 Zetacheck found no other zeta.
}
alias zetacheckall {
  set %channum 1
  set %channum1 0
  unset %channumn
  while ($chan(%channum) != $null) {
    set %nicknum 1
    while ($nick($chan(%channum),%nicknum) != $null) {
      if (($nick($chan(%channum),%nicknum) != $me) && (*zetascript* iswm $nick($chan(%channum),%nicknum)) && ($nick($chan(%channum),%nicknum) ison #zetasecure)) {
        if (($chan(%channum) != #zetasecure) && ($chan(%channum) != #zetaadmins) && ($chan(%channum) != #zetascript) && (!$readini(WhiteList.ini,$network,$chan(%channum)))) { 
          $iif(!$2,part $chan(%channum) Sorry it seems you already have a ZetaScript)
          $iif(!$2,msg #ZetaSecure Parting $chan(%channum) - Found another zetascript)

          inc %channum1
          set %channumn %channumn $chan(%channum)
          break
        }
      }
      inc %nicknum
    }
    inc %channum
  }
  msg $1 Zetacheck reports %channum1 channels with more than one zeta ( $+ %channumn $+ ).
}
alias clearall {
  set %clearall 1
  while ($chan(%clearall) != $null) {
    clear $chan(%clearall)
    inc %clearall
  }
}
alias Recover {
  set %recover 2
  while ($read(ChannelDB.ini,%recover)) {
    if ((*#* iswm $gettok($read(ChannelDB.ini,%recover),1,61))) {
      join $v2
    }
    inc %recover
  }
}
alias resave {
  remove ChannelDB.ini
  if ($chan(0) < 1) { return 0 }
  var %i = 1
  while (%i <= $chan(0)) {
    writeini -n ChannelDB.ini $zs(name) $chan(%i) Resave Command
    inc %i
  }
}
alias clearvars { unset %* }
alias showes {
  if ($1 == 0) { return $1 $2 $+ $3 }
  elseif ($1 == 1) { return $1 $2 }
  else { return $1 $2 $+ $3 }
}
alias chanlist {
  if ($chan(0) < 1) { return 0 }
  var %chanlist $chan(1)
  var %i = 2
  while (%i <= $chan(0)) {
    var %chanlist %chanlist $+ , $+ $chan(%i)
    inc %i
  }
  return %chanlist
}
alias blist { writeini -n blacklist.ini users $$1 $iif($2- == $null,No Reason Specified,$2-) | Echo 4 $+ $$1 has been blacklisted }
alias unblist { remini blacklist.ini users $$1 | Echo 4 $+ $$1 has been unblacklisted }
alias htmlfree {
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;), %x = $replace(%x,&quot;,"), %x = $replace(%x,&amp;,&)
  return %x
}
alias setmelee { if ($1 == Attack) || ($1 == Defence) || ($1 == Strength) { return true } }
alias sethp { if ($1 == Hitpoints) { return true } }
alias xp {
  var %x = 1, %level = $calc($1 - 1), %xp = 0
  while (%x <= %level) {
    var %TempXp = $calc($floor($calc(%x + 300 * 2 ^ (%x / 7))) / 4)
    inc %xp %TempXp
    inc %x
  }
  return $int(%xp)
}
alias xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) }
alias pest {
  var %exp $iif($2 != Prayer,$calc(($1 ^2)/6),$calc(($1 ^2)/12)), %xp.nxtlvl $exp($3), %xp.diff $4, %point $calc(%xp.diff / %exp)
  if (%point >= 100) { var %point $calc(%xp.diff / ((%exp * 0.1) + %exp)) }
  if ($1 == 99) { return 0 }
  else { return $bytes($gettok(%point,1,46),b) }
}
alias setpc {
  if ($1 == 0) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack
  elseif ($1 == 1) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
  elseif ($1 == 2) || ($regex($1,/^str(ength)?$/Si)) return Strength
  elseif ($1 == 3) || ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints
  elseif ($1 == 4) || ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged
  elseif ($1 == 5) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer
  elseif ($1 == 6) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic
}
alias xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) }

alias setskill {
  return $gettok($setskill0($1),1,32)
}
alias setskill2 {
  return $gettok($setskill0($1),2,32)
}
alias setskill0 {
  if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall 0
  elseif ($1 == 1) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack 2
  elseif ($1 == 2) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence 2
  elseif ($1 == 3) || ($regex($1,/^str(ength)?$/Si)) return Strength 3
  elseif ($1 == 4) || ($regex($1,/^(hp|hit)(s|points?)?$/Si)) return Hitpoints 4
  elseif ($1 == 5) || ($regex($1,/^r(ng|ange|anged|angeing|anger)?$/Si)) return Ranged 5
  elseif ($1 == 6) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer 6
  elseif ($1 == 7) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic 7
  elseif ($1 == 8) || ($regex($1,/^cook(ing)?$/Si)) return Cooking 8
  elseif ($1 == 9) || ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting 9
  elseif ($1 == 10) || ($regex($1,/^fletch(ing)?$/Si)) return Fletching 10
  elseif ($1 == 11) || ($regex($1,/^fish(ing)?$/Si)) return Fishing 11
  elseif ($1 == 12) || ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking 12
  elseif ($1 == 13) || ($regex($1,/^craft(ing)?$/Si)) return Crafting 13
  elseif ($1 == 14) || ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing 14
  elseif ($1 == 15) || ($regex($1,/^min(e|eing|ing)?$/Si)) return Mining 15
  elseif ($1 == 16) || ($regex($1,/^herb(law|lore)?$/Si)) return Herblore 16
  elseif ($1 == 17) || ($regex($1,/^agil(ity)?$/Si)) return Agility 17
  elseif ($1 == 18) || ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving 18
  elseif ($1 == 19) || ($regex($1,/^slay(er|ing)?$/Si)) return Slayer 19
  elseif ($1 == 20) || ($regex($1,/^farm(er|ing)?$/Si)) return Farming 20
  elseif ($1 == 21) || ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecraft 21
  elseif ($1 == 22) || ($regex($1,/^(con|construct)(ion|ing)?$/si)) return Construction 22
  elseif ($1 == 23) || ($regex($1,/^(hunt)(er|ing)?$/si)) return Hunter 23
  elseif ($1 == 24) || ($regex($1,/^c(mb|ombat)?$/si)) return Combat
}
alias striptags { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }
alias HPLevel {
  if ($1 > 95) return 9,9...................
  elseif ($1 > 90) return 9,9...................
  elseif ($1 > 85) return 9,9..................4,4.
  elseif ($1 > 80) return 9,9.................4,4..
  elseif ($1 > 75) return 9,9................4,4...
  elseif ($1 > 70) return 9,9...............4,4....
  elseif ($1 > 65) return 9,9..............4,4.....
  elseif ($1 > 60) return 9,9.............4,4......
  elseif ($1 > 55) return 9,9............4,4.......
  elseif ($1 > 50) return 9,9...........4,4........
  elseif ($1 > 45) return 9,9..........4,4.........
  elseif ($1 > 40) return 9,9.........4,4..........
  elseif ($1 > 35) return 9,9........4,4...........
  elseif ($1 > 30) return 9,9.......4,4............
  elseif ($1 > 25) return 9,9......4,4.............
  elseif ($1 > 20) return 9,9.....4,4..............
  elseif ($1 > 15) return 9,9....4,4...............
  elseif ($1 > 10) return 9,9...4,4................
  elseif ($1 > 5) return 9,9..4,4.................
  elseif ($1 > 0) return 9,9.4,4..................
  elseif ($1 == 0) return 4,4...................
}
alias Idlestyle {
  if ($regex($1,/^g(en|eneral)$/Si)) return General
  elseif ($regex($1,/^v(erb|erbrose)$/Si)) return Verbrose
}
on $*:TEXT:/^[!.](Def|Set)(name|RSN)/Si:#: {
  if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
  if (* $+ $chr(36) $+ * iswm $2-) { halt }
  if ($2) { writeini -n defrsn.ini RSNs $nick $replace($2-,$chr(32),-) | notice $nick $c1(We have saved) $c2($2-) $c1(as your DefRSN on) $c2($nick) }
  elseif (!$2) { notice $nick $c1(You must Specify a) $c2(RSN) $c1(to set) }
}
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!@.](stats|rsstats))/Si):#: {
  if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
  if (* $+ $chr(36) $+ * iswm $2-) { halt }
  inc %ID | set $+(%,stats.display.,%ID) $iif($left($iif($remove($1,$chr(44)) == $me,$iif($nick isop #ZetaAdmins,$2),$1),1) == @,$iif($remove($1,$chr(44)) != $me && $readini(Status2.ini,$network,$chan),.notice $nick,msg $chan),.notice $nick)
  if (!$iif($remove($1,$chr(44)) == $me,$3,$2)) {
    if ($readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$nick) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) all | sockopen $+(stats.,%ID) hiscore.runescape.com 80 } 
    elseif (!$readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $nick | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) all | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
  }
  elseif ($iif($remove($1,$chr(44)) == $me,$3,$2)) { 
    if ($chr(37) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) {
      if ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) { set $+(%,stats.rsn.,%ID) $iif($readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($3-,$chr(32),-),$replace($2-,$chr(32),-)),$chr(38),$chr(37))),$v1,$iif($remove($iif($remove($1,$chr(44)) == $me,$replace($3-,$chr(32),-),$replace($2-,$chr(32),-)),$chr(38),$chr(37)),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) percent | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
      elseif ($chr(38) !isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) { set $+(%,stats.rsn.,%ID) $iif($remove($iif($remove($1,$chr(44)) == $me,$replace($3-,$chr(32),-),$replace($2-,$chr(32),-)),$chr(37)),$v1,$iif($readini(defrsn.ini,RSNs,$nick),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) percent | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
    }
    elseif ($chr(60) isin $iif($remove($1,$chr(44)) == $me,$3,$2) || $chr(62) isin $iif($remove($1,$chr(44)) == $me,$3,$2)) { set $+(%,stats.rsn.,%ID) $iif($chr(38) isin $iif($remove($1,$chr(44)) == $me,$4-,$3-),$iif($readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$chr(38),$chr(60),$chr(62))),$readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$chr(38),$chr(60),$chr(62))),$nick),$remove($iif($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$iif($readini(defrsn.ini,RSNs,$nick),$readini(defrsn.ini,RSNs,$nick),$nick)),$chr(60),$chr(62)))
      set $+(%,stats.level.,%ID) $remove($iif($remove($1,$chr(44)) == $me,$3,$2),$chr(60),$chr(62))
      set $+(%,stats.gl.,%ID) $iif($chr(60) isin $iif($remove($1,$chr(44)) == $me,$3,$2),$chr(60),$chr(62))
      set $+(%,stats.number.,%ID) 1
      set $+(%,stats.number.2.,%ID) 1
      set $+(%,stats.type.,%ID) glthan
      sockopen $+(stats.,%ID) hiscore.runescape.com 80
    }
    elseif ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) {      
      if ($readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) all | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
      elseif (!$readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { notice $nick $c2($remove($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(38))) $c1(does not have a) $c2(RSN) $c1(saved in our DataBase) }
    }
    else { set $+(%,stats.rsn.,%ID) $replace($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(32),-) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) all | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
  }
}
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!@.](pc|pest))/Si):#: {
  if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
  if (* $+ $chr(36) $+ * iswm $2-) { halt }
  inc %ID | set $+(%,stats.display.,%ID) $iif($left($iif($remove($1,$chr(44)) == $me,$iif($nick isop #ZetaAdmins,$2),$1),1) == @,$iif($remove($1,$chr(44)) != $me && $readini(Status2.ini,$network,$chan),.notice $nick,msg $chan),.notice $nick)
  if (!$iif($remove($1,$chr(44)) == $me,$3,$2)) {
    if ($readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$nick) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) pcall | sockopen $+(stats.,%ID) hiscore.runescape.com 80 } 
    elseif (!$readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $nick | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) pcall | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
  }
  elseif ($iif($remove($1,$chr(44)) == $me,$3,$2)) {
    if ($setpc($iif($remove($1,$chr(44)) == $me,$3,$2))) {
      if ($chr(35) isin $iif($remove($1,$chr(44)) == $me,$4,$3)) {
        if ($remove($iif($remove($1,$chr(44)) == $me,$4,$3),$chr(35)) !isnum 1-99) { $($+(%,stats.display.,%ID),2) $c1(I'm sorry) $c2($nick) $c1(but you must specify a level between) $c2(1 and 99) }
        else {
          if ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$5-,$4-)) { set $+(%,stats.rsn.,%ID) $iif($readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($5-,$chr(32),-),$replace($4-,$chr(32),-)),$chr(38))),$v1,$iif($remove($iif($remove($1,$chr(44)) == $me,$replace($5-,$chr(32),-),$replace($4-,$chr(32),-)),$chr(38)),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.skill.,%ID) $setpc($iif($remove($1,$chr(44)) == $me,$3,$2)) | set $+(%,stats.level.,%ID) $iif($remove($iif($remove($1,$chr(44)) == $me,$4,$3),$chr(35)),$v1,99) | set $+(%,stats.type.,%ID) pclevelskill | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
          elseif ($chr(38) !isin $iif($remove($1,$chr(44)) == $me,$5-,$4-)) { set $+(%,stats.rsn.,%ID) $iif($iif($remove($1,$chr(44)) == $me,$replace($5-,$chr(32),-),$replace($4-,$chr(32),-)),$v1,$iif($readini(defRSN.ini,RSNs,$nick),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.skill.,%ID) $setpc($iif($remove($1,$chr(44)) == $me,$3,$2)) | set $+(%,stats.level.,%ID) $iif($remove($iif($remove($1,$chr(44)) == $me,$4,$3),$chr(35)),$v1,99) | set $+(%,stats.type.,%ID) pclevelskill | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
        }      
      }
      elseif ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$4-,$3-)) {
        if ($readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($4-,$chr(38)),$remove($3-,$chr(38))),$chr(32),-))) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($4-,$chr(38)),$remove($3-,$chr(38))),$chr(32),-))) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.skill.,%ID) $setpc($iif($remove($1,$chr(44)) == $me,$3,$2)) | set $+(%,stats.type.,%ID) pcskill | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
        elseif (!$readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($4-,$chr(38)),$remove($3-,$chr(38))),$chr(32),-))) { notice $nick $c2($remove($iif($remove($1,$chr(44)) == $me,$4-,$3-),$chr(38))) $c1(does not have a) $c2(RSN) $c1(saved in our DataBase) }
      }
      else { set $+(%,stats.rsn.,%ID) $iif($replace($iif($remove($1,$chr(44)) == $me,$4-,$3-),$chr(32),-),$v1,$iif($readini(defRSN.ini,RSNs,$nick),$v1,$nick)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.skill.,%ID) $setpc($iif($remove($1,$chr(44)) == $me,$3,$2)) | set $+(%,stats.type.,%ID) pcskill | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
    }
    else { set $+(%,stats.rsn.,%ID) $iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(32),-),$remove($2-,$chr(32),-)) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) pcall | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
  }
}
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!@.](cmb|combat))/Si):#: {
  if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
  if (* $+ $chr(36) $+ * iswm $2-) { halt }
  inc %ID | set $+(%,stats.display.,%ID) $iif($left($iif($remove($1,$chr(44)) == $me,$iif($nick isop #ZetaAdmins,$2),$1),1) == @,$iif($remove($1,$chr(44)) != $me && $readini(Status2.ini,$network,$chan),.notice $nick,msg $chan),.notice $nick)
  if (!$iif($remove($1,$chr(44)) == $me,$3,$2)) {
    if ($readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$nick) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) combat | sockopen $+(stats.,%ID) hiscore.runescape.com 80 } 
    elseif (!$readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $nick | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) combat | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
  }
  elseif ($iif($remove($1,$chr(44)) == $me,$3,$2)) {
    if ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) {
      if ($readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) combat | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
      elseif (!$readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { notice $nick $c2($remove($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(38))) $c1(does not have a) $c2(RSN) $c1(saved in our DataBase) }
    }
    else { set $+(%,stats.rsn.,%ID) $replace($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(32),-) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) combat | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
  }
}
on $*:TEXT:/^[!@]reqs (on|off)/Si:#: {
  if ($readini(Status.ini,$me,$chan) == DChan) { halt }
  if ($nick isop $chan) {
    if ($2 == on) {
      if ($readini(ChannelReq.ini,$chan,status)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but Req checker is already on!) }
      elseif (!$readini(ChannelReq.ini,$chan,status)) { writeini -n ChannelReq.ini $chan status on | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(Channel Req enforcer is now online in) $c2($chan) }
    }
    elseif ($2 == off) {
      if ($readini(ChannelReq.ini,$chan,status)) { remini ChannelReq.ini $chan status | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(Channel Req enforcer is now offline in) $c2($chan) }
      elseif (!$readini(ChannelReq.ini,$chan,status)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but Req checker is already off!) }
    }
  }
}
on $*:TEXT:/^[!@]banreqs /Si:#: {
  if ($readini(Status.ini,$me,$chan) == DChan) { halt }
  if ($nick isop $chan) {
    if ($2 == kick) {
      if ($readini(ChannelReq.ini,$chan,kb)) { remini ChannelReq.ini $chan kb | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(Ban reqs are now set to kick for) $c2($chan) }
      elseif (!$readini(ChannelReq.ini,$chan,kb)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but ban reqs are already set to kick!) }
    }
    elseif ($2 isnum 200-1000) { writeini -n ChannelReq.ini $chan kb $2 | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(Ban reqs have been set to $2 in) $c2($chan) }
    else { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but there was an error processing your request) $c2(Syntax: !/@setbanreqs Time in Seconds $+ /off) }
  }
}
on $*:TEXT:/^[!@]reqstat (on|off)/Si:#: {
  if ($readini(Status.ini,$me,$chan) == DChan) { halt }
  if ($nick isop $chan) {
    if ($2 == on) {
      if ($readini(ChannelReq.ini,$chan,msgstat)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but stats messager is already on!) }
      elseif (!$readini(ChannelReq.ini,$chan,msgstat)) { writeini -n ChannelReq.ini $chan msgstat on | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(stats messager is now online in) $c2($chan) }
    }
    elseif ($2 == off) {
      if ($readini(ChannelReq.ini,$chan,msgstat)) { remini ChannelReq.ini $chan msgstat | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(stats messager is now offline in) $c2($chan) }
      elseif (!$readini(ChannelReq.ini,$chan,msgstat)) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but stats messager is already off!) }
    }
  }
}
on $*:TEXT:/^[!@]resetreqs/Si:#: {
  if ($readini(Status.ini,$me,$chan) == DChan) { halt }
  if ($nick isop $chan) { remini ChannelReq.ini $chan | $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(All Reqs for) $c2($chan) $c1(have been reset and the req enforcer has been turned off) }
}
on $*:TEXT:/^[!@]setreq /Si:#: {
  if ($readini(Status.ini,$me,$chan) == DChan) { halt }
  if ($nick isop $chan) {  
    if ($setskill($2)) && ($3 isnum) { writeini -n ChannelReq.ini $chan $setskill($2) $3 | set %x 0
      while ($setskill(%x)) { set $+(%,stats.req.,$chan) $($+(%,stats.req.,$chan),2) $iif($readini(ChannelReq.ini,$chan,$setskill(%x)),$c1($setskill(%x)) $c2($readini(ChannelReq.ini,$chan,$setskill(%x))),$c1($setskill(%x)) $c2(0)) | inc %x }
      $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(We have saved) $c2($chan $+ 's) $c1(Requirements as:) | $iif($left($1,1) == @,msg $chan,.notice $nick) $($+(%,stats.req.,$chan),2) | unset $+(%,stats.req.,$chan)
    }
    elseif ($setskill($2)) && ($3 !isnum) { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but a channel Requirement must be a number) }
    else { $iif($left($1,1) == @,msg $chan,.notice $nick) $c1(I'm Sorry) $c2($nick) $c1(but a channel Requirement must specify a valid skill) }
  }
}
on *:JOIN:#: {
  if ($readini(Status.ini,$me,$chan) == DChan) || ($nick == $me) { halt }
  if (!$readini(ChannelReq.ini,$chan,status)) { halt }
  else { inc %ID | set $+(%,stats.chan.,%ID) $chan | set $+(%,stats.rsn.,%ID) $remove($nick,|,[,],) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) req | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
}
on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!@.](.*))/Si):#: {  
  if ($setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),@,!))) && ($setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),@,!)) != Combat) {
    if ($readini(Status.ini,$me,$chan) == DChan && $remove($1,$chr(44)) != $me) { halt }
    if (* $+ $chr(36) $+ * iswm $2-) { halt }
    inc %ID | set $+(%,stats.display.,%ID) $iif($left($iif($remove($1,$chr(44)) == $me,$iif($nick isop #ZetaAdmins,$2),$1),1) == @,$iif($remove($1,$chr(44)) != $me && $readini(Status2.ini,$network,$chan),.notice $nick,msg $chan),.notice $nick) | set $+(%,stats.display.2.,%ID) .notice $nick
    if (!$iif($remove($1,$chr(44)) == $me,$3,$2)) {
      if ($readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$nick) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) skill | set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@)) | sockopen $+(stats.,%ID) hiscore.runescape.com 80 } 
      elseif (!$readini(defrsn.ini,RSNs,$nick)) { set $+(%,stats.rsn.,%ID) $nick | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) skill | set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@)) | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
    }
    elseif ($iif($remove($1,$chr(44)) == $me,$3,$2)) {
      if ($chr(35) isin $iif($remove($1,$chr(44)) == $me,$3,$2)) { set $+(%,stats.rsn.,%ID) $iif($chr(38) isin $iif($remove($1,$chr(44)) == $me,$4-,$3-),$iif($readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$chr(38),$chr(35))),$readini(defrsn.ini,RSNs,$remove($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$chr(38),$chr(35))),$nick),$remove($iif($iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$iif($remove($1,$chr(44)) == $me,$replace($4-,$chr(32),-),$replace($3-,$chr(32),-)),$iif($readini(defrsn.ini,RSNs,$nick),$readini(defrsn.ini,RSNs,$nick),$nick)),$chr(35)))
        set $+(%,stats.level.,%ID) $remove($iif($remove($1,$chr(44)) == $me,$3,$2),$chr(35))
        set $+(%,stats.number.,%ID) 1
        set $+(%,stats.number.2.,%ID) 1
        set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@))
        set $+(%,stats.type.,%ID) levelskill
        sockopen $+(stats.,%ID) hiscore.runescape.com 80
      }
      elseif ($chr(38) isin $iif($remove($1,$chr(44)) == $me,$3-,$2-)) {
        if ($readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { set $+(%,stats.rsn.,%ID) $readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) skill | set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@)) | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
        elseif (!$readini(defrsn.ini,RSNs,$replace($iif($remove($1,$chr(44)) == $me,$remove($3-,$chr(38)),$remove($2-,$chr(38))),$chr(32),-))) { notice $nick $c2($remove($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(38))) $c1(does not have a) $c2(RSN) $c1(saved in our DataBase) }
      }
      else { set $+(%,stats.rsn.,%ID) $replace($iif($remove($1,$chr(44)) == $me,$3-,$2-),$chr(32),-) | set $+(%,stats.number.,%ID) 1 | set $+(%,stats.number.2.,%ID) 1 | set $+(%,stats.type.,%ID) skill | set $+(%,stats.skill.,%ID) $setskill($remove($iif($remove($1,$chr(44)) == $me,$2,$1),!,@)) | sockopen $+(stats.,%ID) hiscore.runescape.com 80 }
    }
  }
}
on *:SOCKOPEN:stats.*: {
  var %ID = $gettok($sockname,2,46)
  sockwrite -nt $sockname GET /hiscorepersonal.ws?user1= $+ $($+(%,stats.rsn.,%ID),2) HTTP/1.1 
  sockwrite -nt $sockname Host: hiscore.runescape.com
  sockwrite -nt $sockname $crlf $crlf
}
on *:SOCKREAD:stats.*: {
  var %ID = $gettok($sockname,2,46)
  if ($sockerr) { $($+(%,stats.display.,%ID),2) Error: $sockerr Please contact Ktravaglini | cleanup %ID }
  else { var %templine | sockread %templine
    if ($setskill(%templine)) { set $+(%,stats.skill.2.,%ID) %templine }
    elseif (does not feature in the hiscores. You have to be in the top 1 million (for any skill) and have a minimum skill level of 30.</i> isin %templine) {
      if ($($+(%,stats.type.,%ID),2) == req) { set %x 1
        if (0 < $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),Combat),$v1,0)) { inc $+(%,stats.violate.,%ID) 1 }
        while (%x < 25) {
          if (0 < $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),$setskill(%x)),$v1,0)  ) { inc $+(%,stats.violate.,%ID) 1 | inc %x }
          else { inc %x }
        }
      msg $($+(%,stats.chan.,%ID),2) $c1($remove(%templine,</i>)) $c1($chr(40)) $+ $c2($iif($($+(%,stats.violate.,%ID),2),$v1,0)) $c1(Req Violations $+ $chr(41)) | $iif($($+(%,stats.violate.,%ID),2) >= 1,kick $($+(%,stats.chan.,%ID),2) $($+(%,stats.rsn.,%ID),2) You do not meet $($+(%,stats.violate.,%ID),2) of this $($+(%,stats.chan.,%ID),2) $+ 's requirements,noop) | cleanup %ID | sockclose $sockname }
      else { $($+(%,stats.display.,%ID),2) $c1($remove(%templine,</i>)) | cleanup %ID | sockclose $sockname | halt }
    }
    elseif ($regex(%templine,<td align="right">(.*)</td>)) && (<img class= !isin $regml(1)) && (<b>Rank</b></td><td align="right"><b>Level</b></td><td align="right"><b>XP</b> !isin $regml(1)) {
      if ($($+(%,stats.number.,%ID),2) == 3) { set $+(%,stats.,$($+(%,stats.skill.2.,%ID),2),.exp.,%ID) $regml(1) | inc $+(%,stats.number.,%ID) 1 }
      if ($($+(%,stats.number.,%ID),2) == 2) { set $+(%,stats.,$($+(%,stats.skill.2.,%ID),2),.level.,%ID) $regml(1) | inc $+(%,stats.number.,%ID) 1 }
      if ($($+(%,stats.number.,%ID),2) == 1) { set $+(%,stats.,$($+(%,stats.skill.2.,%ID),2),.rank.,%ID) $regml(1) | inc $+(%,stats.number.,%ID) 1 }
      if ($($+(%,stats.number.,%ID),2) == 4) { set $+(%,stats.number.,%ID) 1 }
    }
    elseif ($regex(%templine,</table>)) {
      if ($($+(%,stats.type.,%ID),2) == all) {
        while ($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46))  $c2($($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2)) | inc $+(%,stats.number.2.,%ID) 1 }
        if (!$var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:) | $($+(%,stats.display.,%ID),2) $($+(%,stats.statline.,%ID),2) | cleanup %ID | sockclose $sockname }
      }
      if ($($+(%,stats.type.,%ID),2) == glthan) {
        while ($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) {
          if ($($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2) $($+(%,stats.gl.,%ID),2) $($+(%,stats.level.,%ID),2)) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46))  $c2($($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2)) | inc $+(%,stats.number.2.,%ID) 1 }
          else {  inc $+(%,stats.number.2.,%ID) 1 }
        }
        if (!$var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) { 
          if (!$($+(%,stats.level.,%ID),2)) { $($+(%,stats.display.,%ID),2) $c1(I'm sorry but you must speicfy a) $c2(level) $c1(to lookup) | cleanup %ID | sockclose $sockname }
          elseif ($($+(%,stats.level.,%ID),2) !isnum) { $($+(%,stats.display.,%ID),2) $c1(I'm sorry but) $c2(Runescape levels) $c1(have to be numbers) | cleanup %ID | sockclose $sockname }
          else { $($+(%,stats.display.,%ID),2) $c1(Stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:) | $($+(%,stats.display.,%ID),2) $iif($($+(%,stats.statline.,%ID),2),$($+(%,stats.statline.,%ID),2),$c1(None of) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1('s skills are $iif($($+(%,stats.gl.,%ID),2) == >,greater than,less than)) $c2($iif($($+(%,stats.level.,%ID),2),$($+(%,stats.level.,%ID),2),nothing))) | cleanup %ID | sockclose $sockname }
        } 
      }  
      if ($($+(%,stats.type.,%ID),2) == Percent) {
        while ($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) {
          if ($remove($bytes($iif($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46) != overall,$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / $xp(99)) * 100),$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / ($xp(99) * 23) * 100))),b),$chr(44)) < 101) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46)) $c2($bytes($iif($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46) != overall,$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / $xp(99)) * 100),$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / ($xp(99) * 23) * 100))),b) $+ %) | inc $+(%,stats.number.2.,%ID) 1 }
          elseif ($remove($bytes($iif($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46) != overall,$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / $xp(99)) * 100),$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / ($xp(99) * 23) * 100))),b),$chr(44)) > 100) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46)) $c2($bytes($iif($gettok($var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2)),2,46) != overall,$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / 200000000) * 100),$calc(($remove($($var($+(%,stats.*.exp.,%ID),$($+(%,stats.number.2.,%ID),2)),2),$chr(44)) / 4600000000) * 100))) $+ %) | inc $+(%,stats.number.2.,%ID) 1 }
        }
        if (!$var($+(%,stats.*.level.,%ID),$($+(%,stats.number.2.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:) | $($+(%,stats.display.,%ID),2) $($+(%,stats.statline.,%ID),2) | cleanup %ID | sockclose $sockname }
      }
      if ($($+(%,stats.type.,%ID),2) == pcall) { set %x 0
        while (%x <= 6) {
          if ($setpc(%x) == Prayer) { set %xpperpointpray $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 12) | set %pointsneededpray $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointpray) | $iif(%pointsneededpray >= 100,set %pointsneededpray $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointpray * .10) + %xpperpointpray)),noop) | set %praylvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
          elseif ($setpc(%x) == Attack) { set %xpperpointatt $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededatt $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointatt) | $iif(%pointsneededatt >= 100,set %pointsneededatt $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointatt * .10) + %xpperpointatt)),noop) | set %attlvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
          elseif ($setpc(%x) == Defence) { set %xpperpointdef $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededdef $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointdef) | $iif(%pointsneededdef >= 100,set %pointsneededdef $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointdef * .10) + %xpperpointdef)),noop) | set %deflvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
          elseif ($setpc(%x) == Strength) { set %xpperpointstr $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededstr $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointstr) | $iif(%pointsneededstr >= 100,set %pointsneededstr $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointstr * .10) + %xpperpointstr)),noop) | set %strlvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
          elseif ($setpc(%x) == Hitpoints) { set %xpperpointhp $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededhp $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointhp) | $iif(%pointsneededhp >= 100,set %pointsneededhp $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointhp * .10) + %xpperpointhp)),noop) | set %hplvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
          elseif ($setpc(%x) == Ranged) { set %xpperpointrange $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededrange $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointrange) | $iif(%pointsneededrange >= 100,set %pointsneededrange $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointrange * .10) + %xpperpointrange)),noop) | set %rangelvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
          elseif ($setpc(%x) == Magic) { set %xpperpointmage $calc(($($+(%,stats.,$setpc(%x),.level.,%ID),2) * $($+(%,stats.,$setpc(%x),.level.,%ID),2)) / 6) | set %pointsneededmage $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / %xpperpointmage) | $iif(%pointsneededmage >= 100,set %pointsneededmage $calc($xp2next($($+(%,stats.,$setpc(%x),.level.,%ID),2),$remove($($+(%,stats.,$setpc(%x),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$setpc(%x),.level.,%ID),2) + 1)) / ((%xpperpointmage * .10) + %xpperpointmage)),noop) | set %magelvl $iif($($+(%,stats.,$setpc(%x),.level.,%ID),2),$v1,0) }
          inc %x
        }
        $($+(%,stats.display.,%ID),2) $c1(Pest Control Points for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:)
        set $+(%,stats.line.1.,%ID) $c1(Attack:) $c1($chr(123)) $+ $c2(%attlvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededatt,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointatt,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Defence:) $c1($chr(123)) $+ $c2(%deflvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededdef,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointdef,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Strength:) $c1($chr(123)) $+ $c2(%strlvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededstr,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointstr,b)) $+ $c1(xp/point $+ $chr(93))
        set $+(%,stats.line.2.,%ID) $c1(Hitpoints:) $c1($chr(123)) $+ $c2(%hplvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededhp,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointhp,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Magic:) $c1($chr(123)) $+ $c2(%magelvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededmage,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointmage,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Ranged:) $c1($chr(123)) $+ $c2(%rangelvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededrange,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointrange,b)) $+ $c1(xp/point $+ $chr(93)) $c1(Prayer:) $c1($chr(123)) $+ $c2(%praylvl) $+ $c1($chr(125)) $c2($bytes(%pointsneededpray,b)) $c1($chr(91)) $+ $c2($bytes(%xpperpointpray,b)) $+ $c1(xp/point $+ $chr(93))
        $($+(%,stats.display.,%ID),2) $($+(%,stats.line.1.,%ID),2) $($+(%,stats.line.2.,%ID),2) | cleanup %ID | sockclose $sockname
      }   
      if ($($+(%,stats.type.,%ID),2) == skill) {
        tokenize 32 $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.rank.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2) $xp2next($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2),$remove($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) + 1))
        if ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2)) {  $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.skill.,%ID),2)) $c1(stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:)
          if ($($+(%,stats.skill.,%ID),2) != Overall) {
            if ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) < 99) { set $+(%,stats.number.,%ID) 1
              if ($setmelee($($+(%,stats.skill.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp to level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($4,b)) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $4) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($calc($2 + 1)),$c1($chr(41))) $c1(Damage To Deal For Level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($calc($4 / 4),b)) }
              elseif ($sethp($($+(%,stats.skill.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp to level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($4,b)) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $4) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($calc($2 + 1)),$c1($chr(41))) $c1(Damage To Deal For Level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($calc($4 / (4 / 3)),b)) }
              else { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp to level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($4,b)) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $4) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($calc($2 + 1)),$c1($chr(41))) }
              while ($($+(%,stats.number.,%ID),2) <= 9) { set $+(%,stats.2next.,%ID) $($+(%,stats.2next.,%ID),2) $c1($replace($gettok($readini(exp.ini,$($+(%,stats.skill.,%ID),2),$($+(%,stats.number.,%ID),2)),2-,32),-,$chr(32)) $+ :) $c2($bytes($calc($4 / $gettok($readini(exp.ini,$($+(%,stats.skill.,%ID),2),$($+(%,stats.number.,%ID),2)),1,32)),b)) | inc $+(%,stats.number.,%ID) } 
              $($+(%,stats.display.2.,%ID),2) $c1(<For Level) $c2($calc($2 + 1)) $+ $c1(>) $($+(%,stats.2next.,%ID),2) | cleanup %ID | sockclose $sockname
            }
            elseif ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) >= 99) {  $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) | cleanup %ID | sockclose $sockname }
          }
          elseif ($($+(%,stats.skill.,%ID),2) == Overall) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) | cleanup %ID | sockclose $sockname }
        }
        elseif (!$($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2)) { $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(does not feature in the hiscores for $($+(%,stats.skill.,%ID),2) $+ . You have to be in the top 1 million (for any skill) and have a minimum skill level of 30.) | cleanup %ID | sockclose $sockname }
      }
      if ($($+(%,stats.type.,%ID),2) == levelskill) {
        tokenize 32 $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.rank.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2) $bytes($calc($xp($($+(%,stats.level.,%ID),2)) - $remove($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2),$chr(44))),b) $xp($($+(%,stats.level.,%ID),2))
        if ($($+(%,stats.level.,%ID),2) > 99) { $($+(%,stats.display.,%ID),2) $c1(Runescape levels can only be between) $c2(1) $c1(and) $c2(99) | cleanup %ID | sockclose $sockname | halt }
        elseif ($($+(%,stats.level.,%ID),2) < $2) { $($+(%,stats.display.,%ID),2) $c1(You cant specify a level lower than your own) $c2(Runescape) $c1(level in) $c2($($+(%,stats.skill.,%ID),2)) | cleanup %ID | sockclose $sockname | halt }
        elseif ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2)) {  $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.skill.,%ID),2)) $c1(stats for) $c2($($+(%,stats.rsn.,%ID),2)) $+ $c1(:)
          if ($($+(%,stats.skill.,%ID),2) != Overall) {
            if ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) < 99) { set $+(%,stats.number.,%ID) 1 
              if ($setmelee($($+(%,stats.skill.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp To level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(:) $c2($4) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $remove($4,$chr(44))) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($($+(%,stats.level.,%ID),2)),$c1($chr(41))) $c1(Damage To Deal For Level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($calc($remove($4,$chr(44)) / 4),b)) }
              elseif ($sethp($($+(%,stats.skill.,%ID),2))) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp To level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(:) $c2($4) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $remove($4,$chr(44))) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($($+(%,stats.level.,%ID),2)),$c1($chr(41))) $c1(Damage To Deal For Level) $c2($calc($2 + 1)) $+ $c1(:) $c2($bytes($calc($remove($4,$chr(44)) / (4 / 3)),b)) }
              else { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) $+($c1($chr(40)),$c2($bytes($calc(($remove($3,$chr(44)) / $xp(99)) * 100),3d) $+ %) $c1(of) $c2(99),$c1($chr(41))) $c1(Exp To level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(:) $c2($4) $+($c1($chr(40)),$c2($bytes($calc((($5 - $xp($2)) - $remove($4,$chr(44))) / ($5 - $xp($2)) * 100),d3) $+ %) $c1(to level) $c2($($+(%,stats.level.,%ID),2)),$c1($chr(41))) }
              while ($($+(%,stats.number.,%ID),2) <= 9) { set $+(%,stats.2next.,%ID) $($+(%,stats.2next.,%ID),2) $c1($replace($gettok($readini(exp.ini,$($+(%,stats.skill.,%ID),2),$($+(%,stats.number.,%ID),2)),2-,32),-,$chr(32)) $+ :) $c2($bytes($calc($remove($4,$chr(44)) / $gettok($readini(exp.ini,$($+(%,stats.skill.,%ID),2),$($+(%,stats.number.,%ID),2)),1,32)),b)) | inc $+(%,stats.number.,%ID) }
              $($+(%,stats.display.2.,%ID),2) $c1(<For Level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(>) $($+(%,stats.2next.,%ID),2) | cleanup %ID | sockclose $sockname
            }
            elseif ($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) >= 99) {  $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) | cleanup %ID | sockclose $sockname }
          }
          elseif ($($+(%,stats.skill.,%ID),2) == Overall) { $($+(%,stats.display.,%ID),2) $c1(Rank:) $c2($1) $c1(Level:) $c2($2) $c1(Exp): $c2($3) | cleanup %ID | sockclose $sockname }
        }
        elseif (!$($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2)) { $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(does not feature in the hiscores for $($+(%,stats.skill.,%ID),2) $+ . You have to be in the top 1 million (for any skill) and have a minimum skill level of 30.) | cleanup %ID | sockclose $sockname }
      }
      if ($($+(%,stats.type.,%ID),2) == pcskill) {
        tokenize 32 $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.rank.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2) $xp2next($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2),$remove($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) + 1))
        if ($2 < 99) { $iif($($+(%,stats.type.,%ID),2) == Prayer,set %xpperpoint $calc(($2 * $2) / 12),set %xpperpoint $calc(($2 * $2) / 6)) | $iif($calc($remove($4,$chr(44)) / %xpperpoint) < 100, set %pointsneeded $v1,set %pointsneeded $calc($remove($4,$chr(44)) / ((%xpperpoint * .10) + %xpperpoint))) | $($+(%,stats.display.,%ID),2) $c1(RSN:) $c2($($+(%,stats.rsn.,%ID),2)) $c1(Skill:) $c2($($+(%,stats.skill.,%ID),2)) $c1(Level:) $c2($bytes($2,b)) $c1(PC Points Needed for level) $c2($bytes($calc($2 + 1),b)) $+ $c1(:) $c2($bytes(%pointsneeded,b)) $c1(Exp/point:) $c2($bytes(%xpperpoint,b)) | cleanup %ID | sockclose $sockname }
        elseif ($2 > 98) { $($+(%,stats.display.,%ID),2) $c1(I'm Sorry but) $c2(%rsn) $c1(has level 99 in) $c2(%skill) $c1(and can no longer level up) | cleanup %ID | sockclose $sockname }
      }
      elseif ($($+(%,stats.type.,%ID),2) == pclevelskill) {
        tokenize 32 $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.rank.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) $($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2) $xp2next($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2),$remove($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.exp.,%ID),2),$chr(44))) $xp($calc($($+(%,stats.,$($+(%,stats.skill.,%ID),2),.level.,%ID),2) + 1))
        if ($2 < 99) {
          if ($($+(%,stats.level.,%ID),2) > $2) { $iif($($+(%,stats.skill.,%ID),2) == Prayer,set %xpperpoint $calc(((($($+(%,stats.level.,%ID),2) + $2) / 2) * (($($+(%,stats.level.,%ID),2) + $2) / 2)) / 12),set %xpperpoint $calc(((($($+(%,stats.level.,%ID),2) + $2) / 2) * (($($+(%,stats.level.,%ID),2) + $2) / 2)) / 6)) | $iif($calc(($xp($($+(%,stats.level.,%ID),2)) - $remove($3,$chr(44))) / %xpperpoint) < 100,set %pointsneeded $calc(($xp($($+(%,stats.level.,%ID),2)) - $remove($3,$chr(44))) / %xpperpoint),set %pointsneeded $calc(($xp($($+(%,stats.level.,%ID),2)) - $remove($3,$chr(44))) / ((%xpperpoint * .10) + %xpperpoint)))) 
            $($+(%,stats.display.,%ID),2) $c1(RSN:) $c2($($+(%,stats.rsn.,%ID),2)) $c1(Skill:) $c2($($+(%,stats.skill.,%ID),2)) $c1(Level:) $c2($2) $c1(PC Points Needed for level) $c2($($+(%,stats.level.,%ID),2)) $+ $c1(:) $c2($bytes(%pointsneeded,b)) $c1(Exp/point:) $c2($bytes(%xpperpoint,b)) | cleanup %ID | sockclose $sockname
          }          
          elseif ($($+(%,stats.level.,%ID),2) >= $2) { %display $c1(I'm sorry but) $c2($($+(%,stats.level.,%ID),2)) $c1(is greater than) $c2($($+(%,stats.rsn.,%ID),2) $+ 's) $c1(level in) $c2($($+(%,stats.skill.,%ID),2)) | cleanup %ID | sockclose $sockname }
        }
        elseif ($2 > 98) { $($+(%,stats.display.,%ID),2) $c1(I'm Sorry but) $c2($($+(%,stats.rsn.,%ID),2)) $c1(has level 99 in) $c2($($+(%,stats.skill.,%ID),2)) $c1(and can no longer level up) | cleanup %ID | sockclose $sockname }
      }
      if ($($+(%,stats.type.,%ID),2) == combat) {
        var %a.mult = .32707, %s.mult = .324, %d.mult = .25, %h.mult = .25, %p.mult = .124, %r.mult = .487, %m.mult = .487
        set %a $iif($($+(%,stats.Attack.level.,%ID),2),$v1,-) | set %s $iif($($+(%,stats.Strength.level.,%ID),2),$v1,-) | set %d $iif($($+(%,stats.Defence.level.,%ID),2),$v1,-) | set %h $iif($($+(%,stats.hitpoints.level.,%ID),2),$v1,-) | set %r $iif($($+(%,stats.ranged.level.,%ID),2),$v1,-) | set %m $iif($($+(%,stats.magic.level.,%ID),2),$v1,-) | set %p $iif($($+(%,stats.prayer.level.,%ID),2),$v1,-)
        if (%a !isnum) && (%s !isnum) && (%d !isnum) && (%h !isnum) && (%h !isnum) && (%r !isnum) && (%p !isnum) { $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(does not appear in any combat skills) | halt }
        set %meleecombat $calc(%a * %a.mult + %s * %s.mult + %d * %d.mult + %h * %h.mult + %p * %p.mult) | set %RangedCombat $calc(%r * %r.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult) | set %MagicCombat $calc(%m * %m.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult)
        if (%MagicCombat == %RangedCombat) && (%MagicCombat == %RangedCombat) { var %cmbstyle = Balanced, %combat = %MeleeCombat }
        elseif (%MagicCombat > %RangedCombat) && (%MagicCombat > %MeleeCombat) { var %cmbstyle = Magic, %Combat = %MagicCombat }
        elseif (%RangedCombat > %MeleeCombat) { var %cmbstyle = Ranged, %Combat = %RangedCombat }
        else { var %cmbstyle = Melee, %combat = %MeleeCombat }
        set %cmb.temp $abs($calc($int($calc(%combat +1)) - %combat)) | set %a.2lvl $ceil($calc(%cmb.temp / %a.mult)) | set %s.2lvl $ceil($calc(%cmb.temp / %s.mult)) | set %d.2lvl $ceil($calc(%cmb.temp / %d.mult)) | set %m.2lvl $ceil($calc(%cmb.temp / %m.mult)) | set %r.2lvl $ceil($calc(%cmb.temp / %r.mult)) | set %p.2lvl $ceil($calc(%cmb.temp / %p.mult))
        if (%cmbstyle == magic) { var %dynamic.2lvl = $c1(Magic:) $c2(%m.2lvl) }
        elseif (%cmbstyle == Ranged) { var %dynamic.2lvl = $c1(Ranged:) $c2(%r.2lvl) }
        else { var %dynamic.2lvl = $c1(Att:) $c2(%a.2lvl) $c1(Str:) $c2(%s.2lvl) }      
        set %combat $round(%combat,2)
        $($+(%,stats.display.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(is level) $c2($bytes(%combat,5d)) $c1([) $+ $c2($bytes($calc((%combat / 126) * 100),b) $+ %) $+ $c1(]) $c1($chr(40)) $+ $c2(%cmbstyle style) $+ $c1($chr(41)) | $($+(%,stats.display.,%ID),2) $c1(Attack:) $c2(%a) $c1(Defence:) $c2(%d) $c1(Strength:) $c2(%s) $c1(Hits:) $c2(%h) $c1(Mage:) $c2(%m) $c1(Range:) $c2(%r) $c1(Pray:) $c2(%p)
        if (%combat < 126) { $($+(%,stats.display.,%ID),2) $c1(Levels for) $c2($calc($int(%combat) + 1)) $+ $c1(:) %dynamic.2lvl $c1(Def/Hp:) $c2(%d.2lvl) $c1(Prayer:) $c2(%p.2lvl) | cleanup %ID | cleancmb %ID | sockclose $sockname }
        elseif (%combat >= 127) { cleancmb %ID | sockclose $sockname }
      }  
      if ($($+(%,stats.type.,%ID),2) == req) {
        var %a.mult = .32707, %s.mult = .324, %d.mult = .25, %h.mult = .25, %p.mult = .124, %r.mult = .487, %m.mult = .487
        set %a $iif($($+(%,stats.Attack.level.,%ID),2),$v1,-) | set %s $iif($($+(%,stats.Strength.level.,%ID),2),$v1,-) | set %d $iif($($+(%,stats.Defence.level.,%ID),2),$v1,-) | set %h $iif($($+(%,stats.hitpoints.level.,%ID),2),$v1,-) | set %r $iif($($+(%,stats.ranged.level.,%ID),2),$v1,-) | set %m $iif($($+(%,stats.magic.level.,%ID),2),$v1,-) | set %p $iif($($+(%,stats.prayer.level.,%ID),2),$v1,-)
        set %meleecombat $calc(%a * %a.mult + %s * %s.mult + %d * %d.mult + %h * %h.mult + %p * %p.mult) | set %RangedCombat $calc(%r * %r.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult) | set %MagicCombat $calc(%m * %m.mult + %p * %p.mult + %d * %d.mult + %h * %h.mult)
        if (%MagicCombat == %RangedCombat) && (%MagicCombat == %RangedCombat) { var %cmbstyle = Balanced, %combat = %MeleeCombat }
        elseif (%MagicCombat > %RangedCombat) && (%MagicCombat > %MeleeCombat) { var %cmbstyle = Magic, %Combat = %MagicCombat }
        elseif (%RangedCombat > %MeleeCombat) { var %cmbstyle = Ranged, %Combat = %RangedCombat }
        else { var %cmbstyle = Melee, %combat = %MeleeCombat }
        set %combat $bytes(%combat,3d) | set %x 0
        if ($iif(%combat,$v1,0) < $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),Combat),$v1,0)) { inc $+(%,stats.violate.,%ID) 1 }
        while (%x < 25) {
          if ($iif($($+(%,stats.,$setskill(%x),.level.,%ID),2),$v1,0) < $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),$setskill(%x)),$v1,0)  ) { inc $+(%,stats.violate.,%ID) 1 | inc %x }
          else { inc %x }
        }
        while ($($+(%,stats.number.2.,%ID),2) < 8) {
          if ($($+(%,stats.,$setskill($($+(%,stats.number.2.,%ID),2)),.level.,%ID),2)) { set $+(%,stats.statline.,%ID) $($+(%,stats.statline.,%ID),2) $c1($setskill($($+(%,stats.number.2.,%ID),2)) $+ :)  $c2($($+(%,stats.,$setskill($($+(%,stats.number.2.,%ID),2)),.level.,%ID),2)) | inc $+(%,stats.number.2.,%ID) 1 }
          else { inc $+(%,stats.number.2.,%ID) 1 }
        }
        msg $($+(%,stats.chan.,%ID),2) $c2($($+(%,stats.rsn.,%ID),2)) $c1(has) $c2($iif($($+(%,stats.violate.,%ID),2),$v1,0)) $c1(Req Violations) | $iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),msgstat),msg $($+(%,stats.chan.,%ID),2) $c1(Combat) $c2(%combat) $c1([) $+ $c2($bytes($calc((%combat / 126) * 100),b) $+ %) $+ $c1(]) $c1($chr(40)) $+ $c2(%cmbstyle style) $+ $c1($chr(41)) $($+(%,stats.statline.,%ID),2),noop) | $iif($($+(%,stats.violate.,%ID),2) >= 1,$iif($readini(ChannelReq.ini,$($+(%,stats.chan.,%ID),2),kb),ban -ku $+ $v1 $($+(%,stats.chan.,%ID),2) $($+(%,stats.rsn.,%ID),2) You do not meet $($+(%,stats.violate.,%ID),2) of this $($+(%,stats.chan.,%ID),2) $+ 's requirements,kick $($+(%,stats.chan.,%ID),2) $($+(%,stats.rsn.,%ID),2) You do not meet $($+(%,stats.violate.,%ID),2) of this $($+(%,stats.chan.,%ID),2) $+ 's requirements),noop) | sockclose $sockname
      }
    }
  }
}
alias cleanup { unset $+(%,stats.*.,$1-) }
alias cleancmb { unset %a | unset %s | unset %d | unset %h | unset %r | unset %m | unset %p | unset %meleecombat | unset %RangedCombat | unset %MagicCombat | unset %cmb.temp | unset %a.2lvl | unset %s.2lvl | unset %d.2lvl | unset %m.2lvl | unset %r.2lvl | unset %p.2lvl }