All pastes #971708 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-04-04 22:36 UTC
rendered paste body
on $*:TEXT:/^[!@]stats/Si:#: {
  if ($2 == $null) && ($readini(botinfo.ini,n,defname,$address($nick,3)) == $null) {
    $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** [ $+ $c1($nick,Error) $+ ]: $c2($nick,You must specify a player or default name.)
    halt
  }
  var %x 1
  while ($sock(stats. $+ %x)) {
    inc %x
  }
  var %y 1
  while (%y <= $numtok($2-,32)) {
    if ($remove($gettok($2-,%y,32),$chr(95),$chr(45)) isalnum) {
    }
    elseif ($chr(62) isin $gettok($2-,%y,32)) || ($chr(60) isin $gettok($2-,%y,32)) {
      var %ep $gettok($2-,%y,32)
    }
    elseif ($chr(38) isin $gettok($2-,%y,32)) {
      if ($readini(botinfo.ini,n,defname,$address($left($gettok($2-,%y,32),-1),3))) {
        var %name  $readini(botinfo.ini,n,defname,$address($left($gettok($2-,%y,32),-1),3))
      }
      else {
        $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93)) $c2($nick,The name) $qt($c1($nick,$left($gettok($2-,%y,32),-1))) $c2($nick,does not have a defname set OR is not on the channel.)
        halt
      }
    }
    inc %y
  }
  if (!%name) && ($readini(botinfo.ini,n,defname,$address($nick,3))) {
    var %name  $readini(botinfo.ini,n,defname,$address($nick,3))
  }
  elseif (!%name) && (!$readini(botinfo.ini,n,defname,$address($nick,3))) {
    $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93)) $c2($nick,You must specify a name to lookup or set a default name.)
    halt
  }
  sockopen $+(stats.,%x) hiscore.runescape.com 80
  sockmark $+(stats.,%x) -1 $+ ~ $+ $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) $+ ~ $+ %name $+ ~ $+ $nick $+ ~ $+ $iif(%ep,%ep)
}
on *:SOCKOPEN:stats.*: {
  sockwrite -n $sockname GET /index_lite.ws?player= $+ $gettok($sock($sockname).mark,3,126) HTTP/1.1
  sockwrite -n $sockname Host: hiscore.runescape.com
  sockwrite -n $sockname $crlf
}
on *:SOCKREAD:stats.*: {
  var %read
  sockread %read
  if (404 - Page isin %read) {
    $gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $c2($gettok($sock($sockname).mark,4,126),does not appear in the high scores list.)
    sockclose $sockname
  }
  if (*,*,* iswm %read) {
    var %x $gettok($sock($sockname).mark,1,126)
    inc %x
    if (-1 !isin %read) {
      if ($gettok($sock($sockname).mark,5,126)) {
        if ($chr(60) isin $gettok($sock($sockname).mark,5,126)) {
          if ($gettok(%read,2,44) < $remove($gettok($sock($sockname).mark,5,126),$chr(60),$chr(62))) {
            sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124)
          }
          else {
            sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126)
          }
        }
        else {
          if ($gettok(%read,2,44) > $remove($gettok($sock($sockname).mark,5,126),<,>)) {
            sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124)
          }
          else {
            sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126)
          }
        }
      }
      else {
        sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126) $+ ~ $c2($gettok($sock($sockname).mark,4,126),$skill(%x)) $c1($gettok($sock($sockname).mark,4,126),$iif($gettok(%read,2,44) == -1,0,$v1)) $chr(124)
      }
    }
    else {
      sockmark $sockname %x $+ ~ $+ $gettok($sock($sockname).mark,2-,126)
    }
    if (%x == 23) {
      if ($numtok($gettok($sock($sockname).mark,4-,126),32) <= 65) {
        $gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,5-,126),~),-1)
      }
      else {
        $gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,5-23,126),~),-1)
        $gettok($sock($sockname).mark,2,126) *** [ $+ $c1($gettok($sock($sockname).mark,4,126),$upper($replace($gettok($sock($sockname).mark,3,126),$chr(95),$chr(32)))) $+ ]: $left($remove($gettok($sock($sockname).mark,24-,126),~),-1)
      }
    }
  }
}
on $*:TEXT:/^[!@]pc (att|attack|str|strength|def|defence|hp|hitpoints|range|ranged|ranging|pray|prayer|praying|magic|mage)/Si:#: {
  var %x 1
  while ($gettok($2-,%x,32)) {
    if ($chr(35) isin $gettok($2-,%x,32)) && ($remove($gettok($2-,%x,32),$chr(35)) isnum 31-99) {
      var %level $remove($gettok($2-,%x,32),$chr(35))
    }
    elseif ($chr(38) isin $gettok($2-,%x,32)) {
      if ($readini(botinfo.ini,n,defname,$address($left($gettok($2-,%x,32),-1),3)) != $null) {
        var %name  $v1
      }
      else {
        $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93),:) $c2($nick,The name) $qt($c1($nick,$left($gettok($2-,%x,32),-1))) $c2($nick,does not have a defname set OR is not on the channel.)
        halt
      }
    }
    elseif ($gettok($remove($2-,$chr(95)),%x,32) isalnum) && ($gettok($2-,%x,32) != $2) {
      var %name  %name $gettok($2-,%x,32)
    }
    if (%name == $null) {
      var %name  $readini(botinfo.ini,n,defname,$address($nick,3))
    }
    if (%level == $null) {
      var %level null
    }
    inc %x
  }
  if (%name != $null) {
    var %name  $replace(%name,$chr(32),$chr(95))
    if ($numtok(%name,95) > 1) {
      var %name  $gettok(%name,2-,95)
    }
  }
  if (%name == $null) {
    $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) *** $+($chr(91),$c1($nick,Error),$chr(93),:) $c2($nick,You must specify a player or default name.)
    halt
  }
  var %x 1
  while ($sock(pc. $+ %x)) {
    inc %x
  }
  sockopen $+(pc.,%x) hiscore.runescape.com 80
  sockmark $+(pc.,%x) $iif($left($1,1) $+(=,=) @ && $istok($readini(botinfo.ini,n,IgnoreChannel,Channels),$chan,32) $+(=,=) $false,msg $chan,notice $nick) $+ ~ $+ %name $+ ~ $+ %level $+ ~ $+ $skill2($2) $+ ~ $+ $nick
}
on *:SOCKOPEN:pc.*: {
  sockwrite -n $sockname GET /index_lite.ws?player= $gettok($sock($sockname).mark,2,126) HTTP/1.1
  sockwrite -n $sockname Host: hiscore.runescape.com 80
  sockwrite -n $sockname $crlf
}
on *:SOCKREAD:pc.*: {
  var %overall,%attack,%defence,%strength,%hitpoints,%ranged,%prayer,%magic
  sockread %overall
  if (*404 - page not* iswm %overall) {
    $gettok($sock($sockname).mark,1,126) *** $+($chr(91),$c1($gettok($sock($sockname).mark,5,126),Error),$chr(93),:) $c2($gettok($sock($sockname).mark,5,126),The name) $qt($c1($gettok($sock($sockname).mark,5,126),$gettok($sock($sockname).mark,2,126))) $c2($gettok($sock($sockname).mark,5,126),does not appear in the hiscores.)
    sockclose $sockname
    halt
  }
  if (*,*,* iswm %overall) {
    var %name  $gettok($sock($sockname).mark,5,126)
    sockread %attack
    sockread %defence
    sockread %strength
    sockread %hitpoints
    sockread %ranged
    sockread %prayer
    sockread %magic
    if ($gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44) == 99) {
      $gettok($sock($sockname).mark,1,126) *** $+($chr(91),$c1(%name,Error),$chr(93),:) $c2(%name,The name) $qt($c1(%name,$gettok($sock($sockname).mark,2,126))) $c2(%name, is already level 99) $c1(%name,$gettok($sock($sockname).mark,4,126)) $+ $c2(%name,!)
      sockclose $sockname
      halt
    }
    if ($gettok($sock($sockname).mark,3,126) <= $gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44)) && ($gettok($sock($sockname).mark,3,126) != null) {
      $gettok($sock($sockname).mark,1,126) *** $+($chr(91),$c1(%name,Error),$chr(93),:) $c2(%name,You must pick a level greater than your current level.)
      sockclose $sockname
      halt
    }
    var %x $iif($gettok($sock($sockname).mark,3,126) == null,$calc($gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44) + 1),$v1)
    var %y $gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44)
    var %single 0,%100 0,%10 0
    while (%y < %x) {
      var %exp $calc($floor($calc(%y * %y / 600)) * 35)
      if (%y == $gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],2,44)) {
        var %xpneeded $calc($xpforlevel($calc(%y + 1)) - $gettok(% [ $+ [ $gettok($sock($sockname).mark,4,126) ] ],3,44))
      }
      else {
        var %xpneeded $calc($xpforlevel($calc(%y + 1)) - $xpforlevel(%y))
      }
      inc %single $calc(%xpneeded / %exp)
      inc %10 $calc(%xpneeded / $calc($calc($calc(%exp * 10) * .01) + $calc(%exp * 10)))
      inc %100 $calc(%xpneeded / $calc($calc($calc(%exp * 100) * .1) + $calc(%exp * 100)))
      inc %y
    }
    $gettok($sock($sockname).mark,1,126) *** $+($chr(91),$c1(%name,$upper($gettok($sock($sockname).mark,2,126))),$chr(93),:) $c1(%name,$ceil(%single)) $c2(%name,single points $+ $chr(44)) $c1(%name,$ceil(%10)) $c2(%name,sets of 10) $+($chr(40),$c1(%name,$calc($ceil(%10) * 10)),$chr(32) $+ $c2(%name,points),$chr(41))) $+ $c2(%name,$chr(44) or) $c1(%name,$ceil(%100)) $c2(%name,sets of 100 points) $+($chr(40),$c1(%name,$calc($ceil(%100) * 100)),$c2(%name,$chr(160) $+ points),$chr(41)) $c2(%name,needed for level) $c1(%name,%x $gettok($sock($sockname).mark,4,126)) $+ $c2(%name,.)
    sockclose $sockname
  }
}